fix: 物联卡及数据解析替换
This commit is contained in:
parent
2607f9aace
commit
4d8f68dabb
|
@ -1,6 +1,6 @@
|
|||
|
||||
<template>
|
||||
<a-card>
|
||||
<j-card>
|
||||
<div>
|
||||
<div class="top">
|
||||
<div class="top-left">
|
||||
|
@ -25,9 +25,9 @@
|
|||
</div>
|
||||
<div>
|
||||
脚本语言:
|
||||
<a-select :defaultValue="'JavaScript'" style="width: 200;margin-left: 5px;">
|
||||
<a-select-option value="JavaScript">JavaScript(ECMAScript 5)</a-select-option>
|
||||
</a-select>
|
||||
<j-select :defaultValue="'JavaScript'" style="width: 200;margin-left: 5px;">
|
||||
<j-select-option value="JavaScript">JavaScript(ECMAScript 5)</j-select-option>
|
||||
</j-select>
|
||||
<AIcon type="ExpandOutlined" style="margin-left: 20px;" @click="toggle" />
|
||||
</div>
|
||||
</div>
|
||||
|
@ -42,7 +42,7 @@
|
|||
|
||||
})
|
||||
}"></div>
|
||||
<MonacoEditor language="javascript" style="height: 100%;" theme="vs" v-model:modelValue="editorValue" />
|
||||
<j-monaco-editor language="javascript" style="height: 100%;" theme="vs" v-model:modelValue="editorValue" />
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div style="width: 49.5%;">
|
||||
|
@ -51,25 +51,25 @@
|
|||
<div class="bottom-title-topic">
|
||||
<template v-if="instanceStore.current.transport === 'MQTT'">
|
||||
<div style="margin-right: 5px;">Topic:</div>
|
||||
<a-auto-complete placeholder="请输入Topic" style="width: 300px" :options="topicList"
|
||||
<j-auto-complete placeholder="请输入Topic" style="width: 300px" :options="topicList"
|
||||
:allowClear="true" :filterOption="(inputValue: any, option: any) =>
|
||||
option!.value.indexOf(inputValue) !== -1" v-model:value="topic" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<div style="margin-right: 5px;">URL:</div>
|
||||
<a-input placeholder="请输入URL" v-model:value="url" style="width: 300px"></a-input>
|
||||
<j-input placeholder="请输入URL" v-model:value="url" style="width: 300px"></j-input>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<a-textarea :rows="5" placeholder="// 二进制数据以0x开头的十六进制输入,字符串数据输入原始字符串" style="margin-top: 10px;"
|
||||
<j-textarea :rows="5" placeholder="// 二进制数据以0x开头的十六进制输入,字符串数据输入原始字符串" style="margin-top: 10px;"
|
||||
v-model:value="simulation" />
|
||||
</div>
|
||||
<div style="width: 49.5%;">
|
||||
<div class="bottom-title">
|
||||
<div class="bottom-title-text">运行结果</div>
|
||||
</div>
|
||||
<a-textarea :autoSize="{ minRows: 5 }" :style="resStyle" v-model:value="result" />
|
||||
<j-textarea :autoSize="{ minRows: 5 }" :style="resStyle" v-model:value="result" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -87,13 +87,13 @@
|
|||
保存
|
||||
</PermissionButton>
|
||||
</div>
|
||||
</a-card>
|
||||
</j-card>
|
||||
</template>
|
||||
|
||||
<script setup lang='ts' name="Parsing">
|
||||
import AIcon from '@/components/AIcon'
|
||||
import PermissionButton from '@/components/PermissionButton/index.vue'
|
||||
import MonacoEditor from '@/components/MonacoEditor/index.vue';
|
||||
// import MonacoEditor from '@/components/MonacoEditor/index.vue';
|
||||
import { useFullscreen } from '@vueuse/core'
|
||||
import { useInstanceStore } from '@/store/instance';
|
||||
import {
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
|
||||
<template>
|
||||
<a-card>
|
||||
<j-card>
|
||||
<div>
|
||||
<div class="top">
|
||||
<div>
|
||||
脚本语言:
|
||||
<a-select :defaultValue="'JavaScript'" style="width: 200;margin-left: 5px;">
|
||||
<a-select-option value="JavaScript">JavaScript(ECMAScript 5)</a-select-option>
|
||||
</a-select>
|
||||
<j-select :defaultValue="'JavaScript'" style="width: 200;margin-left: 5px;">
|
||||
<j-select-option value="JavaScript">JavaScript(ECMAScript 5)</j-select-option>
|
||||
</j-select>
|
||||
<AIcon type="ExpandOutlined" style="margin-left: 20px;" @click="toggle" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="edit" ref="el">
|
||||
<MonacoEditor language="javascript" style="height: 100%;" theme="vs" v-model:modelValue="editorValue" />
|
||||
<j-monaco-editor language="javascript" style="height: 100%;" theme="vs" v-model:modelValue="editorValue" />
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div style="width: 49.5%;">
|
||||
|
@ -21,25 +21,25 @@
|
|||
<div class="bottom-title-topic">
|
||||
<template v-if="productStore.current.transportProtocol === 'MQTT'">
|
||||
<div style="margin-right: 5px;">Topic:</div>
|
||||
<a-auto-complete placeholder="请输入Topic" style="width: 300px" :options="topicList"
|
||||
<j-auto-complete placeholder="请输入Topic" style="width: 300px" :options="topicList"
|
||||
:allowClear="true" :filterOption="(inputValue: any, option: any) =>
|
||||
option!.value.indexOf(inputValue) !== -1" v-model:value="topic" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<div style="margin-right: 5px;">URL:</div>
|
||||
<a-input placeholder="请输入URL" v-model:value="url" style="width: 300px"></a-input>
|
||||
<j-input placeholder="请输入URL" v-model:value="url" style="width: 300px"></j-input>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<a-textarea :rows="5" placeholder="// 二进制数据以0x开头的十六进制输入,字符串数据输入原始字符串" style="margin-top: 10px;"
|
||||
<j-textarea :rows="5" placeholder="// 二进制数据以0x开头的十六进制输入,字符串数据输入原始字符串" style="margin-top: 10px;"
|
||||
v-model:value="simulation" />
|
||||
</div>
|
||||
<div style="width: 49.5%;">
|
||||
<div class="bottom-title">
|
||||
<div class="bottom-title-text">运行结果</div>
|
||||
</div>
|
||||
<a-textarea :autoSize="{ minRows: 5 }" :style="resStyle" v-model:value="result" />
|
||||
<j-textarea :autoSize="{ minRows: 5 }" :style="resStyle" v-model:value="result" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -57,13 +57,13 @@
|
|||
保存
|
||||
</PermissionButton>
|
||||
</div>
|
||||
</a-card>
|
||||
</j-card>
|
||||
</template>
|
||||
|
||||
<script setup lang='ts' name="DataAnalysis">
|
||||
import AIcon from '@/components/AIcon'
|
||||
import PermissionButton from '@/components/PermissionButton/index.vue'
|
||||
import MonacoEditor from '@/components/MonacoEditor/index.vue';
|
||||
// import MonacoEditor from '@/components/MonacoEditor/index.vue';
|
||||
import { useFullscreen } from '@vueuse/core'
|
||||
import { useProductStore } from '@/store/product';
|
||||
import {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!-- 绑定设备 -->
|
||||
<template>
|
||||
<a-modal
|
||||
<j-modal
|
||||
:maskClosable="false"
|
||||
width="1100px"
|
||||
:visible="true"
|
||||
|
@ -18,7 +18,7 @@
|
|||
@search="handleSearch"
|
||||
type="simple"
|
||||
/>
|
||||
<JTable
|
||||
<j-pro-table
|
||||
ref="bindDeviceRef"
|
||||
:columns="columns"
|
||||
:request="queryUnbounded"
|
||||
|
@ -44,14 +44,14 @@
|
|||
}}
|
||||
</template>
|
||||
<template #state="slotProps">
|
||||
<a-badge
|
||||
<j-badge
|
||||
:text="slotProps.state.text"
|
||||
:status="statusMap.get(slotProps.state.value)"
|
||||
/>
|
||||
</template>
|
||||
</JTable>
|
||||
</j-pro-table>
|
||||
</div>
|
||||
</a-modal>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
|
|
@ -8,15 +8,15 @@
|
|||
:data="current"
|
||||
@change="saveChange"
|
||||
/>
|
||||
<a-row :gutter="[24, 24]">
|
||||
<a-col :span="24">
|
||||
<a-card>
|
||||
<a-descriptions size="small" :column="3" bordered>
|
||||
<j-row :gutter="[24, 24]">
|
||||
<j-col :span="24">
|
||||
<j-card>
|
||||
<j-descriptions size="small" :column="3" bordered>
|
||||
<template #title>
|
||||
<Guide>
|
||||
<template #title>
|
||||
<span>基本信息</span>
|
||||
<a-button
|
||||
<j-button
|
||||
type="link"
|
||||
@click="
|
||||
() => {
|
||||
|
@ -28,74 +28,74 @@
|
|||
>
|
||||
<AIcon type="EditOutlined"></AIcon>
|
||||
编辑
|
||||
</a-button>
|
||||
</j-button>
|
||||
</template>
|
||||
</Guide>
|
||||
</template>
|
||||
|
||||
<a-descriptions-item label="卡号">{{
|
||||
<j-descriptions-item label="卡号">{{
|
||||
detail.id
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="ICCID">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="ICCID">{{
|
||||
detail.iccId
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="绑定设备">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="绑定设备">{{
|
||||
detail.deviceName
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="平台类型">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="平台类型">{{
|
||||
detail.operatorPlatformType?.text
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="平台名称">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="平台名称">{{
|
||||
detail.platformConfigName
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="运营商">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="运营商">{{
|
||||
detail.operatorName
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="类型">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="类型">{{
|
||||
detail.cardType?.text
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="激活日期">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="激活日期">{{
|
||||
detail.activationDate
|
||||
? moment(detail.activationDate).format(
|
||||
'YYYY-MM-DD HH:mm:ss',
|
||||
)
|
||||
: ''
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="更新时间">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="更新时间">{{
|
||||
detail.updateTime
|
||||
? moment(detail.updateTime).format(
|
||||
'YYYY-MM-DD HH:mm:ss',
|
||||
)
|
||||
: ''
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="总流量">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="总流量">{{
|
||||
detail.totalFlow
|
||||
? detail.totalFlow.toFixed(2) + ' M'
|
||||
: ''
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="使用流量">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="使用流量">{{
|
||||
detail.usedFlow
|
||||
? detail.usedFlow.toFixed(2) + ' M'
|
||||
: ''
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="剩余流量">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="剩余流量">{{
|
||||
detail.residualFlow
|
||||
? detail.residualFlow.toFixed(2) + ' M'
|
||||
: ''
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="状态">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="状态">{{
|
||||
detail?.cardState?.text
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="说明">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="说明">{{
|
||||
detail?.describe
|
||||
}}</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
</a-card>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
}}</j-descriptions-item>
|
||||
</j-descriptions>
|
||||
</j-card>
|
||||
</j-col>
|
||||
<j-col :span="24">
|
||||
<!-- 流量统计 -->
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="16">
|
||||
<j-row :gutter="24">
|
||||
<j-col :span="16">
|
||||
<div class="card">
|
||||
<Guide title="流量统计">
|
||||
<template #extra>
|
||||
|
@ -113,15 +113,15 @@
|
|||
:chartData="flowData"
|
||||
/>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
</j-col>
|
||||
<j-col :span="8">
|
||||
<div class="card">
|
||||
<Guide title="数据统计" />
|
||||
<div class="static-info" style="min-height: 490px">
|
||||
<div class="data-statistics-item">
|
||||
<div class="flow-info" style="width: 100%">
|
||||
<div class="label">昨日流量消耗</div>
|
||||
<a-tooltip placement="bottomLeft">
|
||||
<j-tooltip placement="bottomLeft">
|
||||
<template #title>
|
||||
<span>{{ dayTotal }} M</span>
|
||||
</template>
|
||||
|
@ -129,7 +129,7 @@
|
|||
{{ dayTotal }}
|
||||
<span class="unit">M</span>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</j-tooltip>
|
||||
</div>
|
||||
<LineChart
|
||||
color="#FBA500"
|
||||
|
@ -139,7 +139,7 @@
|
|||
<div class="data-statistics-item">
|
||||
<div class="flow-info" style="width: 100%">
|
||||
<div class="label">当月流量消耗</div>
|
||||
<a-tooltip placement="bottomLeft">
|
||||
<j-tooltip placement="bottomLeft">
|
||||
<template #title>
|
||||
<span>{{ monthTotal }} M</span>
|
||||
</template>
|
||||
|
@ -147,14 +147,14 @@
|
|||
{{ monthTotal }}
|
||||
<span class="unit">M</span>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</j-tooltip>
|
||||
</div>
|
||||
<LineChart :chartData="monthOptions" />
|
||||
</div>
|
||||
<div class="data-statistics-item">
|
||||
<div class="flow-info" style="width: 100%">
|
||||
<div class="label">本年流量消耗</div>
|
||||
<a-tooltip placement="bottomLeft">
|
||||
<j-tooltip placement="bottomLeft">
|
||||
<template #title>
|
||||
<span>{{ yearTotal }} M</span>
|
||||
</template>
|
||||
|
@ -162,7 +162,7 @@
|
|||
{{ yearTotal }}
|
||||
<span class="unit">M</span>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</j-tooltip>
|
||||
</div>
|
||||
<LineChart
|
||||
color="#58E1D3"
|
||||
|
@ -171,10 +171,10 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</page-container>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<!-- 导入 -->
|
||||
<a-modal
|
||||
<j-modal
|
||||
:maskClosable="false"
|
||||
:visible="true"
|
||||
title="导入"
|
||||
|
@ -10,30 +10,30 @@
|
|||
@cancel="handleCancel"
|
||||
>
|
||||
<div style="margin-top: 10px">
|
||||
<a-form :layout="'vertical'">
|
||||
<a-form-item label="平台对接" required>
|
||||
<a-select
|
||||
<j-form :layout="'vertical'">
|
||||
<j-form-item label="平台对接" required>
|
||||
<j-select
|
||||
showSearch
|
||||
v-model:value="modelRef.configId"
|
||||
:options="configList"
|
||||
placeholder="请选择平台对接"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</j-select>
|
||||
</j-form-item>
|
||||
|
||||
<a-form-item v-if="modelRef.configId" label="文件格式">
|
||||
<a-radio-group
|
||||
<j-form-item v-if="modelRef.configId" label="文件格式">
|
||||
<j-radio-group
|
||||
button-style="solid"
|
||||
v-model:value="modelRef.fileType"
|
||||
placeholder="请选择文件格式"
|
||||
>
|
||||
<a-radio-button value="xlsx">xlsx</a-radio-button>
|
||||
<a-radio-button value="csv">csv</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<j-radio-button value="xlsx">xlsx</j-radio-button>
|
||||
<j-radio-button value="csv">csv</j-radio-button>
|
||||
</j-radio-group>
|
||||
</j-form-item>
|
||||
|
||||
<a-form-item label="文件上传" v-if="modelRef.configId">
|
||||
<a-upload
|
||||
<j-form-item label="文件上传" v-if="modelRef.configId">
|
||||
<j-upload
|
||||
v-model:fileList="modelRef.upload"
|
||||
name="file"
|
||||
:action="FILE_UPLOAD"
|
||||
|
@ -44,24 +44,24 @@
|
|||
:showUploadList="false"
|
||||
@change="fileChange"
|
||||
>
|
||||
<a-button :loading="loading">
|
||||
<j-button :loading="loading">
|
||||
<template #icon>
|
||||
<AIcon type="UploadOutlined" />
|
||||
</template>
|
||||
文件上传
|
||||
</a-button>
|
||||
</a-upload>
|
||||
</a-form-item>
|
||||
<a-form-item v-if="modelRef.configId" label="下载模板">
|
||||
<a-space>
|
||||
<a-button icon="file" @click="downFileFn('xlsx')">
|
||||
</j-button>
|
||||
</j-upload>
|
||||
</j-form-item>
|
||||
<j-form-item v-if="modelRef.configId" label="下载模板">
|
||||
<j-space>
|
||||
<j-button icon="file" @click="downFileFn('xlsx')">
|
||||
.xlsx
|
||||
</a-button>
|
||||
<a-button icon="file" @click="downFileFn('csv')">
|
||||
</j-button>
|
||||
<j-button icon="file" @click="downFileFn('csv')">
|
||||
.csv
|
||||
</a-button>
|
||||
</a-space>
|
||||
</a-form-item>
|
||||
</j-button>
|
||||
</j-space>
|
||||
</j-form-item>
|
||||
<div v-if="totalCount">
|
||||
<a-icon class="check-num" type="check" /> 已完成 总数量
|
||||
<span class="check-num">{{ totalCount }}</span>
|
||||
|
@ -71,9 +71,9 @@
|
|||
失败 总数量
|
||||
<span class="check-num">{{ errCount }}</span>
|
||||
</div>
|
||||
</a-form>
|
||||
</j-form>
|
||||
</div>
|
||||
</a-modal>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-modal
|
||||
<j-modal
|
||||
:maskClosable="false"
|
||||
width="600px"
|
||||
:visible="true"
|
||||
|
@ -11,39 +11,39 @@
|
|||
:confirmLoading="btnLoading"
|
||||
>
|
||||
<div style="margin-top: 10px">
|
||||
<a-form
|
||||
<j-form
|
||||
:layout="'vertical'"
|
||||
ref="formRef"
|
||||
:rules="rules"
|
||||
:model="modelRef"
|
||||
>
|
||||
<a-form-item label="卡号" name="id">
|
||||
<a-input
|
||||
<j-form-item label="卡号" name="id">
|
||||
<j-input
|
||||
v-model:value="modelRef.id"
|
||||
placeholder="请输入卡号"
|
||||
:disabled="type === 'edit'"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item name="iccId">
|
||||
></j-input>
|
||||
</j-form-item>
|
||||
<j-form-item name="iccId">
|
||||
<template #label>
|
||||
<span>
|
||||
ICCID
|
||||
<a-tooltip title="IC卡的唯一识别号码">
|
||||
<j-tooltip title="IC卡的唯一识别号码">
|
||||
<AIcon
|
||||
type="QuestionCircleOutlined"
|
||||
style="margin-left: 2px"
|
||||
/>
|
||||
</a-tooltip>
|
||||
</j-tooltip>
|
||||
</span>
|
||||
</template>
|
||||
<a-input
|
||||
<j-input
|
||||
v-model:value="modelRef.iccId"
|
||||
placeholder="请输入ICCID"
|
||||
:disabled="type === 'edit'"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="平台对接" name="platformConfigId">
|
||||
<a-select
|
||||
</j-form-item>
|
||||
<j-form-item label="平台对接" name="platformConfigId">
|
||||
<j-select
|
||||
showSearch
|
||||
:filter-option="filterOption"
|
||||
:disabled="type === 'edit'"
|
||||
|
@ -52,11 +52,11 @@
|
|||
v-model:value="modelRef.platformConfigId"
|
||||
placeholder="请选择平台对接"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</j-select>
|
||||
</j-form-item>
|
||||
|
||||
<a-form-item label="运营商" name="operatorName">
|
||||
<a-select
|
||||
<j-form-item label="运营商" name="operatorName">
|
||||
<j-select
|
||||
allowClear
|
||||
showSearch
|
||||
:filter-option="filterOption"
|
||||
|
@ -64,10 +64,10 @@
|
|||
v-model:value="modelRef.operatorName"
|
||||
placeholder="请选择运营商"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="类型" name="cardType">
|
||||
<a-select
|
||||
</j-select>
|
||||
</j-form-item>
|
||||
<j-form-item label="类型" name="cardType">
|
||||
<j-select
|
||||
allowClear
|
||||
showSearch
|
||||
:disabled="type === 'edit'"
|
||||
|
@ -76,19 +76,19 @@
|
|||
v-model:value="modelRef.cardType"
|
||||
placeholder="请选择类型"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="说明" name="describe">
|
||||
<a-textarea
|
||||
</j-select>
|
||||
</j-form-item>
|
||||
<j-form-item label="说明" name="describe">
|
||||
<j-textarea
|
||||
v-model:value="modelRef.describe"
|
||||
placeholder="请输入说明"
|
||||
showCount
|
||||
:maxlength="200"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</j-form-item>
|
||||
</j-form>
|
||||
</div>
|
||||
</a-modal>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
<template>
|
||||
<page-container>
|
||||
<Search :columns="columns" target="iot-card-management-search" @search="handleSearch" />
|
||||
<JTable ref="cardManageRef" :columns="columns" :request="query"
|
||||
<j-pro-table ref="cardManageRef" :columns="columns" :request="query"
|
||||
:defaultParams="{ sorts: [{ name: 'createTime', order: 'desc' }] }" :rowSelection="{
|
||||
selectedRowKeys: _selectedRowKeys,
|
||||
onChange: onSelectChange,
|
||||
}" @cancelSelect="cancelSelect" :params="params" :gridColumn="3">
|
||||
<template #headerTitle>
|
||||
<a-space>
|
||||
<j-space>
|
||||
<a-button type="primary" @click="handleAdd">
|
||||
<AIcon type="PlusOutlined" />新增
|
||||
</a-button>
|
||||
|
@ -80,7 +80,7 @@
|
|||
</a-menu>
|
||||
</template>
|
||||
</a-dropdown>
|
||||
</a-space>
|
||||
</j-space>
|
||||
</template>
|
||||
<template #card="slotProps">
|
||||
<CardBox :value="slotProps" @click="handleClick" :actions="getActions(slotProps, 'card')" v-bind="slotProps"
|
||||
|
@ -265,7 +265,7 @@
|
|||
</template>
|
||||
</a-space>
|
||||
</template>
|
||||
</JTable>
|
||||
</j-pro-table>
|
||||
<!-- 批量导入 -->
|
||||
<Import v-if="importVisible" @close="importVisible = false" />
|
||||
<!-- 批量导出 -->
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
<template>
|
||||
<page-container>
|
||||
<div class="card-dashboard-container">
|
||||
<a-card style="margin-bottom: 24px">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24"><Guide title="数据统计" /></a-col>
|
||||
<a-col :span="8">
|
||||
<j-card style="margin-bottom: 24px">
|
||||
<j-row :gutter="24">
|
||||
<j-col :span="24"><Guide title="数据统计" /></j-col>
|
||||
<j-col :span="8">
|
||||
<div class="data-statistics-item">
|
||||
<div class="flow-info" style="width: 100%">
|
||||
<div class="label">昨日流量消耗</div>
|
||||
<a-tooltip placement="bottomLeft">
|
||||
<j-tooltip placement="bottomLeft">
|
||||
<template #title>
|
||||
<span>{{ dayTotal }} M</span>
|
||||
</template>
|
||||
|
@ -17,19 +17,19 @@
|
|||
{{ dayTotal }}
|
||||
<span class="unit">M</span>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</j-tooltip>
|
||||
</div>
|
||||
<LineChart
|
||||
color="#FBA500"
|
||||
:chartData="dayOptions"
|
||||
/>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
</j-col>
|
||||
<j-col :span="8">
|
||||
<div class="data-statistics-item">
|
||||
<div class="flow-info" style="width: 100%">
|
||||
<div class="label">当月流量消耗</div>
|
||||
<a-tooltip placement="bottomLeft">
|
||||
<j-tooltip placement="bottomLeft">
|
||||
<template #title>
|
||||
<span>{{ monthTotal }} M</span>
|
||||
</template>
|
||||
|
@ -37,16 +37,16 @@
|
|||
{{ monthTotal }}
|
||||
<span class="unit">M</span>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</j-tooltip>
|
||||
</div>
|
||||
<LineChart :chartData="monthOptions" />
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
</j-col>
|
||||
<j-col :span="8">
|
||||
<div class="data-statistics-item">
|
||||
<div class="flow-info" style="width: 100%">
|
||||
<div class="label">本年流量消耗</div>
|
||||
<a-tooltip placement="bottomLeft">
|
||||
<j-tooltip placement="bottomLeft">
|
||||
<template #title>
|
||||
<span>{{ yearTotal }} M</span>
|
||||
</template>
|
||||
|
@ -54,18 +54,18 @@
|
|||
{{ yearTotal }}
|
||||
<span class="unit">M</span>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</j-tooltip>
|
||||
</div>
|
||||
<LineChart
|
||||
color="#58E1D3"
|
||||
:chartData="yearOptions"
|
||||
/>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-card>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="16">
|
||||
</j-col>
|
||||
</j-row>
|
||||
</j-card>
|
||||
<j-row :gutter="24">
|
||||
<j-col :span="16">
|
||||
<div class="static-card">
|
||||
<Guide title="流量统计">
|
||||
<template #extra>
|
||||
|
@ -85,11 +85,11 @@
|
|||
:chartData="flowData"
|
||||
/>
|
||||
<div class="empty-body" v-else>
|
||||
<a-empty :image="Empty.PRESENTED_IMAGE_SIMPLE" />
|
||||
<j-empty :image="Empty.PRESENTED_IMAGE_SIMPLE" />
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
</j-col>
|
||||
<j-col :span="8">
|
||||
<div class="static-card">
|
||||
<Guide title="流量使用TOP10">
|
||||
<template #extra>
|
||||
|
@ -118,7 +118,7 @@
|
|||
</div>
|
||||
<div class="cardNum">{{ item.cardNum }}</div>
|
||||
<div class="progress">
|
||||
<a-progress
|
||||
<j-progress
|
||||
:strokeColor="'#ADC6FF'"
|
||||
:trailColor="'#E0E4E8'"
|
||||
:strokeLinecap="'butt'"
|
||||
|
@ -128,7 +128,7 @@
|
|||
(item.value / topTotal) * 100,
|
||||
)
|
||||
"
|
||||
></a-progress>
|
||||
></j-progress>
|
||||
</div>
|
||||
<div class="total">
|
||||
{{ item?.value?.toFixed(2) }} M
|
||||
|
@ -136,11 +136,11 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="empty-body" v-else>
|
||||
<a-empty :image="Empty.PRESENTED_IMAGE_SIMPLE" />
|
||||
<j-empty :image="Empty.PRESENTED_IMAGE_SIMPLE" />
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</div>
|
||||
</page-container>
|
||||
</template>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!-- 物联卡-首页 -->
|
||||
<template>
|
||||
<page-container>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="14">
|
||||
<j-row :gutter="24">
|
||||
<j-col :span="14">
|
||||
<div class="home-guide">
|
||||
<Guide title="物联卡引导"></Guide>
|
||||
<div
|
||||
|
@ -25,8 +25,8 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="10">
|
||||
</j-col>
|
||||
<j-col :span="10">
|
||||
<div class="home-statistics">
|
||||
<Guide title="基础统计">
|
||||
<template #extra>
|
||||
|
@ -71,8 +71,8 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" style="min-height: 580px">
|
||||
</j-col>
|
||||
<j-col :span="24" style="min-height: 580px">
|
||||
<div class="home-body">
|
||||
<Guide
|
||||
title="平台架构图"
|
||||
|
@ -82,22 +82,20 @@
|
|||
<img :src="getImage('/iot-card/iotcard-home.png')" />
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</page-container>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { getImage } from '@/utils/comm';
|
||||
import Guide from '../components/Guide.vue';
|
||||
import { message } from 'ant-design-vue';
|
||||
import moment from 'moment';
|
||||
import { queryFlow, list } from '@/api/iot-card/home';
|
||||
import * as echarts from 'echarts';
|
||||
import { useMenuStore } from '@/store/menu';
|
||||
import { usePermissionStore } from '@/store/permission';
|
||||
|
||||
const router = useRouter();
|
||||
const { proxy } = <any>getCurrentInstance();
|
||||
|
||||
interface GuideItemProps {
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
<template>
|
||||
<page-container>
|
||||
<a-card>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="14">
|
||||
<j-card>
|
||||
<j-row :gutter="24">
|
||||
<j-col :span="14">
|
||||
<TitleComponent data="详情" />
|
||||
<a-form
|
||||
<j-form
|
||||
:layout="'vertical'"
|
||||
ref="formRef"
|
||||
:rules="rules"
|
||||
:model="form"
|
||||
>
|
||||
<a-form-item
|
||||
<j-form-item
|
||||
label="平台类型"
|
||||
name="operatorName"
|
||||
required
|
||||
|
@ -28,104 +28,104 @@
|
|||
v-model:value="form.operatorName"
|
||||
@change="typeChange"
|
||||
></PlatformType
|
||||
></a-form-item>
|
||||
<a-form-item label="名称" name="name">
|
||||
<a-input
|
||||
></j-form-item>
|
||||
<j-form-item label="名称" name="name">
|
||||
<j-input
|
||||
v-model:value="form.name"
|
||||
placeholder="请输入名称"
|
||||
/>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
|
||||
<!-- onelink -->
|
||||
<div v-if="form.operatorName === 'onelink'">
|
||||
<a-form-item label="App ID" name="appId">
|
||||
<a-input
|
||||
<j-form-item label="App ID" name="appId">
|
||||
<j-input
|
||||
v-model:value="form.appId"
|
||||
placeholder="请输入App ID"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="Password" name="passWord">
|
||||
<a-input-password
|
||||
</j-form-item>
|
||||
<j-form-item label="Password" name="passWord">
|
||||
<j-input-password
|
||||
v-model:value="form.passWord"
|
||||
placeholder="请输入密码"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="接口地址" name="apiAddr">
|
||||
<a-input
|
||||
</j-form-item>
|
||||
<j-form-item label="接口地址" name="apiAddr">
|
||||
<j-input
|
||||
v-model:value="form.apiAddr"
|
||||
placeholder="请输入接口地址"
|
||||
/>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
</div>
|
||||
<!-- ctwing -->
|
||||
<div v-if="form.operatorName === 'ctwing'">
|
||||
<a-form-item label="用户id" name="userId">
|
||||
<a-input
|
||||
<j-form-item label="用户id" name="userId">
|
||||
<j-input
|
||||
v-model:value="form.userId"
|
||||
placeholder="请输入用户id"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="密码" name="passWord">
|
||||
<a-input-password
|
||||
</j-form-item>
|
||||
<j-form-item label="密码" name="passWord">
|
||||
<j-input-password
|
||||
v-model:value="form.passWord"
|
||||
placeholder="请输入密码"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="secretKey" name="secretKey">
|
||||
<a-input
|
||||
</j-form-item>
|
||||
<j-form-item label="secretKey" name="secretKey">
|
||||
<j-input
|
||||
v-model:value="form.secretKey"
|
||||
placeholder="请输入secretKey"
|
||||
/>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
</div>
|
||||
<!-- unicom -->
|
||||
<div v-if="form.operatorName === 'unicom'">
|
||||
<a-form-item label="App ID" name="appId">
|
||||
<a-input
|
||||
<j-form-item label="App ID" name="appId">
|
||||
<j-input
|
||||
v-model:value="form.appId"
|
||||
placeholder="请输入App ID"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="App Secret" name="appSecret">
|
||||
<a-input
|
||||
</j-form-item>
|
||||
<j-form-item label="App Secret" name="appSecret">
|
||||
<j-input
|
||||
v-model:value="form.appSecret"
|
||||
placeholder="请输入App Secret"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="创建者ID" name="openId">
|
||||
<a-input
|
||||
</j-form-item>
|
||||
<j-form-item label="创建者ID" name="openId">
|
||||
<j-input
|
||||
v-model:value="form.openId"
|
||||
placeholder="请输入创建者ID"
|
||||
/>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
</div>
|
||||
|
||||
<a-form-item label="说明" name="explain">
|
||||
<a-textarea
|
||||
<j-form-item label="说明" name="explain">
|
||||
<j-textarea
|
||||
v-model:value="form.explain"
|
||||
placeholder="请输入说明"
|
||||
showCount
|
||||
:rows="3"
|
||||
:maxlength="200"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-divider />
|
||||
<a-button
|
||||
</j-form-item>
|
||||
<j-form-item>
|
||||
<j-divider />
|
||||
<j-button
|
||||
:loading="saveBtnLoading"
|
||||
type="primary"
|
||||
@click="handleSave"
|
||||
>
|
||||
保存
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-col>
|
||||
<a-col :span="10">
|
||||
</j-button>
|
||||
</j-form-item>
|
||||
</j-form>
|
||||
</j-col>
|
||||
<j-col :span="10">
|
||||
<Doc :type="form.operatorName" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-card>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</j-card>
|
||||
</page-container>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
获取路径:“中移物联卡能力开放平台”--“个人中心”--“客户信息”--“接入信息”
|
||||
</p>
|
||||
<div class="image">
|
||||
<a-image
|
||||
<j-image
|
||||
width="100%"
|
||||
:src="getImage('/iot-card/onelink-appid.png')"
|
||||
/>
|
||||
|
@ -37,7 +37,7 @@
|
|||
获取路径:“中移物联卡能力开放平台”--“个人中心”--“客户信息”--“接入信息”
|
||||
</p>
|
||||
<div class="image">
|
||||
<a-image
|
||||
<j-image
|
||||
width="100%"
|
||||
:src="getImage('/iot-card/onelink-pass.png')"
|
||||
/>
|
||||
|
@ -77,7 +77,7 @@
|
|||
获取路径:“5G连接管理平台”--“能力开放”--“API网关账号管理”
|
||||
</p>
|
||||
<div class="image">
|
||||
<a-image
|
||||
<j-image
|
||||
width="100%"
|
||||
:src="getImage('/iot-card/ctwing-id.png')"
|
||||
/>
|
||||
|
@ -90,7 +90,7 @@
|
|||
获取路径:“5G连接管理平台”--“能力开放”--“API网关账号管理”
|
||||
</p>
|
||||
<div class="image">
|
||||
<a-image
|
||||
<j-image
|
||||
width="100%"
|
||||
:src="getImage('/iot-card/ctwing-pass.png')"
|
||||
/>
|
||||
|
@ -103,7 +103,7 @@
|
|||
获取路径:“5G连接管理平台”--“能力开放”--“API网关账号管理”
|
||||
</p>
|
||||
<div class="image">
|
||||
<a-image
|
||||
<j-image
|
||||
width="100%"
|
||||
:src="getImage('/iot-card/ctwing-secret.png')"
|
||||
/>
|
||||
|
@ -137,7 +137,7 @@
|
|||
获取路径:“雁飞智连CMP平台”--“我的应用”--“应用列表”
|
||||
</p>
|
||||
<div class="image">
|
||||
<a-image
|
||||
<j-image
|
||||
width="100%"
|
||||
:src="getImage('/iot-card/unicom-id.png')"
|
||||
/>
|
||||
|
@ -150,7 +150,7 @@
|
|||
获取路径:“雁飞智连CMP平台”--“我的应用”--“应用列表”
|
||||
</p>
|
||||
<div class="image">
|
||||
<a-image
|
||||
<j-image
|
||||
width="100%"
|
||||
:src="getImage('/iot-card/unicom-secret.png')"
|
||||
/>
|
||||
|
@ -164,7 +164,7 @@
|
|||
<br />
|
||||
</p>
|
||||
<div class="image">
|
||||
<a-image
|
||||
<j-image
|
||||
width="100%"
|
||||
:src="getImage('/iot-card/unicom-openid.png')"
|
||||
/>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
target="platform-search"
|
||||
@search="handleSearch"
|
||||
/>
|
||||
<JTable
|
||||
<j-pro-table
|
||||
ref="platformRef"
|
||||
:columns="columns"
|
||||
:request="queryList"
|
||||
|
@ -15,11 +15,14 @@
|
|||
:gridColumn="3"
|
||||
>
|
||||
<template #headerTitle>
|
||||
<a-space>
|
||||
<a-button type="primary" @click="handleAdd">
|
||||
<j-space>
|
||||
<!-- <j-button type="primary" @click="handleAdd">
|
||||
<AIcon type="PlusOutlined" />新增
|
||||
</a-button>
|
||||
</a-space>
|
||||
</j-button> -->
|
||||
<PermissionButton @click="handleAdd" :hasPermission="'iot-card/Platform:add'" type="primary">
|
||||
<AIcon type="PlusOutlined" />新增
|
||||
</PermissionButton>
|
||||
</j-space>
|
||||
</template>
|
||||
<template #card="slotProps">
|
||||
<CardBox
|
||||
|
@ -42,18 +45,18 @@
|
|||
<h3 class="card-item-content-title">
|
||||
{{ slotProps.name }}
|
||||
</h3>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<j-row>
|
||||
<j-col :span="12">
|
||||
<div class="card-item-content-text">
|
||||
平台类型
|
||||
</div>
|
||||
<div>{{ slotProps.operatorName }}</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
</j-col>
|
||||
<j-col :span="12">
|
||||
<div class="card-item-content-text">说明</div>
|
||||
<div>{{ slotProps.explain }}</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</template>
|
||||
<template #actions="item">
|
||||
<PermissionButton :disabled="item.disabled" :popConfirm="item.popConfirm" :tooltip="{
|
||||
|
@ -69,7 +72,7 @@
|
|||
</CardBox>
|
||||
</template>
|
||||
<template #state="slotProps">
|
||||
<a-badge
|
||||
<j-badge
|
||||
:text="slotProps.state.text"
|
||||
:status="
|
||||
slotProps.state.value === 'disabled'
|
||||
|
@ -79,7 +82,7 @@
|
|||
/>
|
||||
</template>
|
||||
<template #action="slotProps">
|
||||
<a-space :size="16">
|
||||
<j-space :size="16">
|
||||
<template
|
||||
v-for="i in getActions(slotProps,'table')"
|
||||
:key="i.key"
|
||||
|
@ -98,9 +101,9 @@
|
|||
<template #icon><AIcon :type="i.icon" /></template>
|
||||
</PermissionButton>
|
||||
</template>
|
||||
</a-space>
|
||||
</j-space>
|
||||
</template>
|
||||
</JTable>
|
||||
</j-pro-table>
|
||||
</page-container>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-modal
|
||||
<j-modal
|
||||
:maskClosable="false"
|
||||
width="1000px"
|
||||
:visible="true"
|
||||
|
@ -10,40 +10,40 @@
|
|||
@cancel="handleCancel"
|
||||
>
|
||||
<div style="margin-top: 10px">
|
||||
<a-descriptions
|
||||
<j-descriptions
|
||||
:column="2"
|
||||
bordered
|
||||
:contentStyle="{ minWidth: '300px' }"
|
||||
:labelStyle="{ minWidth: '120px' }"
|
||||
>
|
||||
<a-descriptions-item label="充值金额">{{
|
||||
<j-descriptions-item label="充值金额">{{
|
||||
data.chargeMoney
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="账户id">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="账户id">{{
|
||||
data?.rechargeId
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="平台对接">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="平台对接">{{
|
||||
data.configName
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="订单号">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="订单号">{{
|
||||
data.orderNumber
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="支付方式">{{
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="支付方式">{{
|
||||
data.paymentType
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="支付URL">
|
||||
}}</j-descriptions-item>
|
||||
<j-descriptions-item label="支付URL">
|
||||
<div style="height: 100px; overflow: auto">
|
||||
{{ data.url ? data.url : '' }}
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="订单时间">{{
|
||||
</j-descriptions-item>
|
||||
<j-descriptions-item label="订单时间">{{
|
||||
data.createTime
|
||||
? moment(data.createTime).format('YYYY-MM-DD HH:mm:ss')
|
||||
: '-'
|
||||
}}</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
}}</j-descriptions-item>
|
||||
</j-descriptions>
|
||||
</div>
|
||||
</a-modal>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-modal
|
||||
<j-modal
|
||||
:maskClosable="false"
|
||||
width="600px"
|
||||
:visible="true"
|
||||
|
@ -17,14 +17,14 @@
|
|||
style="margin-right: 6px"
|
||||
/>暂只支持移动OneLink平台
|
||||
</div>
|
||||
<a-form
|
||||
<j-form
|
||||
layout="vertical"
|
||||
ref="formRef"
|
||||
:rules="rules"
|
||||
:model="modelRef"
|
||||
>
|
||||
<a-form-item label="平台对接" name="configId">
|
||||
<a-select
|
||||
<j-form-item label="平台对接" name="configId">
|
||||
<j-select
|
||||
v-model:value="modelRef.configId"
|
||||
:options="configList"
|
||||
allowClear
|
||||
|
@ -32,16 +32,16 @@
|
|||
style="width: 100%"
|
||||
placeholder="请选择平台对接"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="账户id" name="rechargeId">
|
||||
<a-input
|
||||
</j-select>
|
||||
</j-form-item>
|
||||
<j-form-item label="账户id" name="rechargeId">
|
||||
<j-input
|
||||
v-model:value="modelRef.rechargeId"
|
||||
placeholder="请输入账户id"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="充值金额" name="chargeMoney">
|
||||
<a-input-number
|
||||
</j-form-item>
|
||||
<j-form-item label="充值金额" name="chargeMoney">
|
||||
<j-input-number
|
||||
allowClear
|
||||
:precision="2"
|
||||
style="width: 100%"
|
||||
|
@ -50,20 +50,20 @@
|
|||
:max="500"
|
||||
placeholder="请输入1~500之间的金额"
|
||||
/>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
|
||||
<a-form-item label="支付方式" name="paymentType">
|
||||
<a-select
|
||||
<j-form-item label="支付方式" name="paymentType">
|
||||
<j-select
|
||||
allowClear
|
||||
:options="PaymentMethod"
|
||||
v-model:value="modelRef.paymentType"
|
||||
placeholder="请选择支付方式"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</j-select>
|
||||
</j-form-item>
|
||||
</j-form>
|
||||
</div>
|
||||
</a-modal>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
<template>
|
||||
<page-container>
|
||||
<Search :columns="columns" target="recharge-search" @search="handleSearch" />
|
||||
<JTable ref="rechargeRef" :columns="columns" :request="queryRechargeList" model="TABLE"
|
||||
<j-pro-table ref="rechargeRef" :columns="columns" :request="queryRechargeList" model="TABLE"
|
||||
:defaultParams="{ sorts: [{ name: 'createTime', order: 'desc' }] }" :params="params">
|
||||
<template #headerTitle>
|
||||
<a-space>
|
||||
<j-space>
|
||||
<PermissionButton @click="visible = true" :hasPermission="'iot-card/Recharge:pay'" type="primary">
|
||||
充值
|
||||
</PermissionButton>
|
||||
|
@ -15,7 +15,7 @@
|
|||
</span>
|
||||
本平台仅提供充值入口,具体充值结果需以运营商的充值结果为准
|
||||
</div>
|
||||
</a-space>
|
||||
</j-space>
|
||||
</template>
|
||||
<template #createTime="slotProps">
|
||||
{{
|
||||
|
@ -27,7 +27,7 @@
|
|||
}}
|
||||
</template>
|
||||
<template #action="slotProps">
|
||||
<a-space :size="16">
|
||||
<j-space :size="16">
|
||||
<template
|
||||
v-for="i in getActions(slotProps)"
|
||||
:key="i.key"
|
||||
|
@ -46,9 +46,9 @@
|
|||
<template #icon><AIcon :type="i.icon" /></template>
|
||||
</PermissionButton>
|
||||
</template>
|
||||
</a-space>
|
||||
</j-space>
|
||||
</template>
|
||||
</JTable>
|
||||
</j-pro-table>
|
||||
<!-- 充值 -->
|
||||
<Save v-if="visible" @change="saveChange" />
|
||||
<Detail v-if="detailVisible" :data="current" @close="close" />
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
target="record-search"
|
||||
@search="handleSearch"
|
||||
/>
|
||||
<JTable
|
||||
<j-pro-table
|
||||
ref="RecordRef"
|
||||
:columns="columns"
|
||||
:request="queryList"
|
||||
|
@ -21,7 +21,7 @@
|
|||
: ''
|
||||
}}
|
||||
</template>
|
||||
</JTable>
|
||||
</j-pro-table>
|
||||
</page-container>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
<template>
|
||||
<div>
|
||||
<a-radio-group
|
||||
<j-radio-group
|
||||
v-if="quickBtn"
|
||||
default-value="today"
|
||||
button-style="solid"
|
||||
v-model:value="radioValue"
|
||||
@change="(e) => handleBtnChange(e.target.value)"
|
||||
>
|
||||
<a-radio-button
|
||||
<j-radio-button
|
||||
v-for="item in quickBtnList"
|
||||
:key="item.value"
|
||||
:value="item.value"
|
||||
>
|
||||
{{ item.label }}
|
||||
</a-radio-button>
|
||||
</a-radio-group>
|
||||
</j-radio-button>
|
||||
</j-radio-group>
|
||||
<a-range-picker
|
||||
format="YYYY-MM-DD"
|
||||
valueFormat="YYYY-MM-DD"
|
||||
|
|
|
@ -3896,10 +3896,10 @@ jetlinks-store@^0.0.3:
|
|||
resolved "https://registry.npmjs.org/jetlinks-store/-/jetlinks-store-0.0.3.tgz"
|
||||
integrity sha512-AZf/soh1hmmwjBZ00fr1emuMEydeReaI6IBTGByQYhTmK1Zd5pQAxC7WLek2snRAn/HHDgJfVz2hjditKThl6Q==
|
||||
|
||||
jetlinks-ui-components@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.0.tgz#dca7bb82e53f464990b0851635e8f82be6c69db6"
|
||||
integrity sha512-pgJ0Uiw4Dxc0AU2GqaOaVhNYun1VEmv78OtJcir2sq9rVSIuXCtTl1eHYMPiiPb6z1fG677KKs1gqvrpUwhguQ==
|
||||
jetlinks-ui-components@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.1.tgz#d9e6f5bd9b98523fb4708269be9b4e9bba3437b9"
|
||||
integrity sha512-P8ykIynH6ti9c4KndFfHu/dwewqiWm4Gjki4e+IlCJcwq1at2iokWAITOVm9UsBnEBqWhTQowpK6vlSyTlW+9g==
|
||||
dependencies:
|
||||
"@vueuse/core" "^9.12.0"
|
||||
ant-design-vue "^3.2.15"
|
||||
|
|
Loading…
Reference in New Issue