优化
This commit is contained in:
parent
4532ffb78d
commit
5a47e4bcb2
|
@ -84,7 +84,16 @@ export const SuitFeeType = {
|
|||
TIMING: "1", // 计时收费
|
||||
COUNT: "2", // 按量收费
|
||||
TIME_COUNT: "3", // 分时段按量收费
|
||||
TIME_TIMING: "4" // 分时段按时收费
|
||||
TIME_TIMING: "4", // 分时段按时收费
|
||||
|
||||
// 时长列表
|
||||
timeList() {
|
||||
return [this.TIMING, this.TIME_TIMING];
|
||||
},
|
||||
// 电量列表
|
||||
eleList() {
|
||||
return [this.COUNT, this.TIME_COUNT];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -165,3 +174,18 @@ export const DeviceServiceMode = {
|
|||
DIRECT: "1", // 直营模式
|
||||
AGENT: "2" // 代理模式
|
||||
}
|
||||
|
||||
// 分成方类型
|
||||
export const BonusArrivalType = {
|
||||
PLATFORM: "1", // 平台
|
||||
AGENT: "2", // 代理商
|
||||
MCH: "3", // 商户
|
||||
// 用户表
|
||||
userList() {
|
||||
return [this.AGENT, this.MCH]
|
||||
},
|
||||
// 部门表
|
||||
deptList() {
|
||||
return [this.PLATFORM]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -152,6 +152,7 @@ export default {
|
|||
modelCount: 0,
|
||||
userCount: 0,
|
||||
tenantCount: 0,
|
||||
agentCount: 0,
|
||||
history: [],
|
||||
},
|
||||
queryParams: {},
|
||||
|
@ -197,7 +198,8 @@ export default {
|
|||
}
|
||||
return [
|
||||
{value: this.briefData.userCount, name: "商户"},
|
||||
{value: this.briefData.tenantCount, name: "用户"}
|
||||
{value: this.briefData.tenantCount, name: "用户"},
|
||||
{value: this.briefData.agentCount, name: "代理商"},
|
||||
]
|
||||
},
|
||||
// 用户差值
|
||||
|
@ -206,9 +208,9 @@ export default {
|
|||
return 0;
|
||||
}
|
||||
if (this.yesterdayData == null) {
|
||||
return this.briefData.userCount + this.briefData.tenantCount;
|
||||
return this.briefData.userCount + this.briefData.tenantCount + this.briefData.agentCount;
|
||||
}
|
||||
return this.briefData.userCount + this.briefData.tenantCount - this.yesterdayData.totalUser;
|
||||
return this.briefData.userCount + this.briefData.tenantCount + this.briefData.agentCount - this.yesterdayData.totalUser;
|
||||
},
|
||||
// 余额差值
|
||||
compareBalance() {
|
||||
|
|
|
@ -76,7 +76,8 @@ export default {
|
|||
type: 'pie',
|
||||
color: [
|
||||
'#8D4EDA',
|
||||
'#00B2FF'
|
||||
'#00B2FF',
|
||||
'#fa6247'
|
||||
],
|
||||
radius: ['30%', '50%'],
|
||||
avoidLabelOverlap: false,
|
||||
|
|
|
@ -96,6 +96,10 @@
|
|||
<template v-else-if="column.key === 'refundAmount'">
|
||||
<span style="color: red">{{d.row.refundAmount | money | defaultValue}} 元</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'arrivalName'">
|
||||
<user-link v-if="BonusArrivalType.userList().includes(d.row.arrivalType)" :id="d.row.arrivalId" :name="d.row.arrivalName"/>
|
||||
<template v-else> {{d.row.arrivalName | defaultValue}}</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
{{d.row[column.key] | defaultValue}}
|
||||
</template>
|
||||
|
@ -193,7 +197,8 @@
|
|||
<script>
|
||||
import { listBonus, getBonus, delBonus, addBonus, updateBonus } from "@/api/ss/bonus";
|
||||
import { $showColumns, $view } from '@/utils/mixins'
|
||||
import { views } from '@/utils/constants'
|
||||
import { BonusArrivalType, SmUserType, views } from '@/utils/constants'
|
||||
import UserLink from '@/components/Business/SmUser/UserLink.vue'
|
||||
|
||||
// 默认排序字段
|
||||
const defaultSort = {
|
||||
|
@ -203,6 +208,15 @@ const defaultSort = {
|
|||
|
||||
export default {
|
||||
name: "Bonus",
|
||||
computed: {
|
||||
BonusArrivalType() {
|
||||
return BonusArrivalType
|
||||
},
|
||||
SmUserType() {
|
||||
return SmUserType
|
||||
}
|
||||
},
|
||||
components: { UserLink },
|
||||
mixins: [$showColumns, $view],
|
||||
dicts: ['bonus_status', 'bonus_arrival_type'],
|
||||
props: {
|
||||
|
@ -220,8 +234,8 @@ export default {
|
|||
{key: 'id', visible: true, label: '分成编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||
{key: 'billNo', visible: true, label: '订单编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "180"},
|
||||
{key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'arrivalName', visible: true, label: '收款名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'arrivalType', visible: true, label: '收款类型', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'arrivalName', visible: true, label: '收款方', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'arrivalType', visible: true, label: '类型', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'point', visible: true, label: '分成比例', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'amount', visible: true, label: '总金额', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'waitAmount', visible: true, label: '待分金额', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
|
@ -255,7 +269,7 @@ export default {
|
|||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
pageSize: 20,
|
||||
orderByColumn: defaultSort.prop,
|
||||
isAsc: defaultSort.order,
|
||||
id: null,
|
||||
|
|
|
@ -127,10 +127,15 @@ import StoreApply from '@/views/ss/storeApply/index.vue'
|
|||
import { views } from '@/utils/constants'
|
||||
import Device from '@/views/system/device/index.vue'
|
||||
import Recharge from '@/views/system/recharge/index.vue'
|
||||
import { isEmpty } from '@/utils'
|
||||
import deviceData from 'svg-sprite-loader/examples/custom-runtime-generator/build/main'
|
||||
|
||||
export default {
|
||||
name: 'storeDetail',
|
||||
computed: {
|
||||
deviceData() {
|
||||
return deviceData
|
||||
},
|
||||
views() {
|
||||
return views
|
||||
}
|
||||
|
@ -151,6 +156,7 @@ export default {
|
|||
clearInterval(this.timer);
|
||||
},
|
||||
methods: {
|
||||
isEmpty,
|
||||
getDetail() {
|
||||
this.loading = true;
|
||||
getStore(this.$route.query.storeId).then(res => {
|
||||
|
|
|
@ -1,115 +1,113 @@
|
|||
<template>
|
||||
<div class="app-container" v-loading="loading" >
|
||||
<div v-if="deviceData">
|
||||
<el-card class="box-card" >
|
||||
<el-descriptions title="设备信息" :column="4">
|
||||
<template slot="extra">
|
||||
<el-dropdown style="margin-right: 1em">
|
||||
<el-button>
|
||||
更多操作<i class="el-icon-arrow-down el-icon--right"></i>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item>
|
||||
<el-link :underline="false" icon="el-icon-plus" @click="handleAddElectricity">增加时长</el-link>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<el-link :underline="false" icon="el-icon-refresh" @click="handleReset">时长归零</el-link>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<el-link :underline="false" icon="el-icon-refresh" @click="handleResetEle">电量归零</el-link>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<el-link :underline="false" icon="el-icon-switch-button" v-if="!isOpen" @click="handleSwitch(true)">强制开启</el-link>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<el-link :underline="false" icon="el-icon-switch-button" v-if="isOpen" @click="handleSwitch(false)">强制关闭</el-link>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<el-link :underline="false" icon="el-icon-link" type="danger" @click="handleUnbind" :disabled="deviceData.userId == null">强制解绑</el-link>
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<el-row :gutter="16">
|
||||
<el-col :lg="18" :xs="24">
|
||||
<el-card class="box-card" >
|
||||
<el-descriptions title="设备信息" :column="4">
|
||||
<template slot="extra">
|
||||
<el-button size="small" plain icon="el-icon-plus" @click="handleAddElectricity">增加时长</el-button>
|
||||
<el-button size="small" plain icon="el-icon-refresh" @click="handleReset">时长归零</el-button>
|
||||
<el-button size="small" plain icon="el-icon-refresh" @click="handleResetEle">电量归零</el-button>
|
||||
<el-button size="small" plain type="warning" icon="el-icon-switch-button" v-if="!isOpen" @click="handleSwitch(true)">强制开启</el-button>
|
||||
<el-button size="small" plain type="warning" icon="el-icon-switch-button" v-if="isOpen" @click="handleSwitch(false)">强制关闭</el-button>
|
||||
<el-button size="small" plain icon="el-icon-refresh" @click="refreshIot(deviceId, true)" style="margin-right: 1em">刷新设备信息</el-button>
|
||||
<el-popover
|
||||
placement="left"
|
||||
width="180"
|
||||
trigger="click">
|
||||
<div class="qr-code-box">
|
||||
<qr-code :text="qrCodeText(deviceData)" :width="150" :height="150" />
|
||||
<p>扫描二维码进行设备绑定</p>
|
||||
</div>
|
||||
<el-button size="small" slot="reference" type="primary" icon="el-icon-picture">设备二维码</el-button>
|
||||
</el-popover>
|
||||
</template>
|
||||
<el-descriptions-item label="MAC-1">
|
||||
{{deviceData.mac | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="MAC-2">
|
||||
{{deviceData.mac2 | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="SN">
|
||||
{{deviceData.deviceNo | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备状态">
|
||||
<dict-tag :options="dict.type.sm_device_status" :value="deviceData.status" size="mini"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备到期时间">{{deviceData.rentTime | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="型号">{{deviceData.model | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="型号功能" :span="2">
|
||||
<dict-tag :options="dict.type.sm_model_tag" :value="deviceData.modelTags" size="mini"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="限制充值时间">
|
||||
{{deviceData.limitRechargeTime | defaultValue}}
|
||||
<boolean-tag v-if="deviceData.limitRechargeTime != null" :value="!isLimitRecharge" size="small" true-text="限制充值中" false-text="已解封"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="限制充值原因">
|
||||
{{deviceData.limitRechargeReason | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
|
||||
<el-button icon="el-icon-refresh" @click="refreshIot(deviceId, true)" style="margin-right: 1em">刷新设备信息</el-button>
|
||||
<el-popover
|
||||
placement="left"
|
||||
width="180"
|
||||
trigger="click">
|
||||
<div class="qr-code-box">
|
||||
<qr-code :text="qrCodeText(deviceData)" :width="150" :height="150" />
|
||||
<p>扫描二维码进行设备绑定</p>
|
||||
</div>
|
||||
<el-button slot="reference" type="primary" icon="el-icon-picture">设备二维码</el-button>
|
||||
</el-popover>
|
||||
</template>
|
||||
<el-descriptions-item label="MAC-1">
|
||||
{{deviceData.mac | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="MAC-2">
|
||||
{{deviceData.mac2 | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="SN">
|
||||
{{deviceData.deviceNo | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备状态">
|
||||
<dict-tag :options="dict.type.sm_device_status" :value="deviceData.status" size="mini"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备到期时间">{{deviceData.rentTime | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="型号">{{deviceData.model | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="型号功能" :span="2">
|
||||
<dict-tag :options="dict.type.sm_model_tag" :value="deviceData.modelTags" size="mini"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="限制充值时间">
|
||||
{{deviceData.limitRechargeTime | defaultValue}}
|
||||
<boolean-tag v-if="deviceData.limitRechargeTime != null" :value="!isLimitRecharge" size="small" true-text="限制充值中" false-text="已解封"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="限制充值原因">
|
||||
{{deviceData.limitRechargeReason | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
<el-card class="box-card">
|
||||
<el-descriptions :column="4" title="物联网信息">
|
||||
<el-descriptions-item label="在线状态">
|
||||
<dict-tag :options="dict.type.sm_device_online_status" :value="deviceData.onlineStatus" size="mini"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="最后在线时间">
|
||||
{{deviceData.lastOnlineStatus | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="WIFI">{{deviceData.wifi | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="开关状态">
|
||||
<el-tag :type="isOpen ? 'success' : 'danger'" size="mini">{{isOpen ? '已开启' : '已关闭'}}</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="电压">{{deviceData.voltage | money | defaultValue }} V</el-descriptions-item>
|
||||
<el-descriptions-item label="电流">{{deviceData.electricity | money | defaultValue }} A</el-descriptions-item>
|
||||
<el-descriptions-item label="功率">{{deviceData.realTimePower | money | defaultValue }} W</el-descriptions-item>
|
||||
<el-descriptions-item label="总用电量">
|
||||
{{deviceData.totalElectriQuantity | money | defaultValue}} 度
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="剩余时长">{{surplusTimeDesc(surplusTime).text}}</el-descriptions-item>
|
||||
<el-descriptions-item label="剩余时长/电量" :span="2">
|
||||
{{surplusTimeDesc(deviceData.remainTime).text}} / {{deviceData.surplusEle | defaultValue}} 度
|
||||
<span class="remark-text">最近更新时间:{{deviceData.lastPullTime}}</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :lg="6" :xs="24">
|
||||
<el-card class="box-card">
|
||||
<el-descriptions title="归属信息" :column="1">
|
||||
<el-descriptions-item label="设备名称">{{deviceData.deviceName | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="服务模式">
|
||||
<dict-tag :options="dict.type.device_service_mode" :value="deviceData.serviceMode" size="small"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属代理" v-if="deviceData.serviceMode === DeviceServiceMode.AGENT">
|
||||
<user-link :name="deviceData.agentName" :id="deviceData.agentId"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属商户">
|
||||
<user-link :name="deviceData.userName" :id="deviceData.userId"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="店铺名称">
|
||||
<store-link :name="deviceData.storeName" :id="deviceData.storeId"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="月费">
|
||||
{{deviceData.monthFee | money | defaultValue}} %
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="平台服务费" v-if="deviceData.serviceMode === DeviceServiceMode.DIRECT">
|
||||
{{deviceData.realServiceRate | money | defaultValue}} %
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="代理服务费" v-if="deviceData.serviceMode === DeviceServiceMode.AGENT">
|
||||
{{deviceData.realServiceRate | money | defaultValue}} %
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="备注">{{deviceData.remark | defaultValue}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-button size="small" style="width: 100%" plain icon="el-icon-link" type="danger" @click="handleUnbind" :disabled="deviceData.userId == null">解绑商户</el-button>
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card">
|
||||
<el-descriptions :column="4" title="物联网信息">
|
||||
<el-descriptions-item label="在线状态">
|
||||
<dict-tag :options="dict.type.sm_device_online_status" :value="deviceData.onlineStatus" size="mini"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="最后在线时间">
|
||||
{{deviceData.lastOnlineStatus | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="开关状态">
|
||||
<el-tag :type="isOpen ? 'success' : 'danger'" size="mini">{{isOpen ? '已开启' : '已关闭'}}</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="WIFI">{{deviceData.wifi | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="电压">{{deviceData.voltage | money | defaultValue }} V</el-descriptions-item>
|
||||
<el-descriptions-item label="电流">{{deviceData.electricity | money | defaultValue }} A</el-descriptions-item>
|
||||
<el-descriptions-item label="功率">{{deviceData.realTimePower | money | defaultValue }} KW</el-descriptions-item>
|
||||
<el-descriptions-item label="总用电量">
|
||||
{{deviceData.totalElectriQuantity | money | defaultValue}} 度
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="剩余时长">{{surplusTimeDesc(surplusTime).text}}</el-descriptions-item>
|
||||
<el-descriptions-item label="剩余时长/电量" :span="2">
|
||||
{{surplusTimeDesc(deviceData.remainTime).text}} / {{deviceData.surplusEle | defaultValue}} 度
|
||||
<span class="remark-text">最近更新时间:{{deviceData.lastPullTime}}</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card">
|
||||
<el-descriptions title="所属人信息" :column="4">
|
||||
<el-descriptions-item label="所属用户">
|
||||
<user-link :name="deviceData.userName" :id="deviceData.userId"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备名称">{{deviceData.deviceName | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="店铺名称">
|
||||
<store-link :name="deviceData.storeName" :id="deviceData.storeId"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="服务费">
|
||||
{{deviceData.realServiceRate | money | defaultValue}} %
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="备注">{{deviceData.remark | defaultValue}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-card class="box-card">
|
||||
<el-tabs>
|
||||
|
@ -131,7 +129,6 @@
|
|||
</el-tab-pane>
|
||||
<el-tab-pane label="抄表记录" :lazy="true">
|
||||
<reading-record :device-id="deviceData.deviceId"/>
|
||||
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="绑定记录" :lazy="true">
|
||||
<bind-record :device-id="deviceData.deviceId"/>
|
||||
|
@ -177,6 +174,8 @@ import UserLink from '@/components/Business/SmUser/UserLink.vue'
|
|||
import { $serviceType, $view } from '@/utils/mixins'
|
||||
import Recharge from '@/views/system/recharge/index.vue'
|
||||
import BooleanTag from '@/components/BooleanTag/index.vue'
|
||||
import { DeviceServiceMode } from '@/utils/constants'
|
||||
import { isEmpty } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'Device/:deviceId',
|
||||
|
@ -190,7 +189,7 @@ export default {
|
|||
Suit,
|
||||
SuitList,
|
||||
TenantList, ResetRecord, BindRecord, ReadingRecord, MeterRecordReport, QrCode, RechargeRecord, LineChart},
|
||||
dicts: ['sm_device_status', 'sm_device_outage_way', 'sm_device_notice_way', 'sm_model_tag', 'sm_device_online_status', 'service_type'],
|
||||
dicts: ['sm_device_status', 'sm_device_outage_way', 'sm_device_notice_way', 'sm_model_tag', 'sm_device_online_status', 'service_type', 'device_service_mode'],
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
|
@ -211,6 +210,9 @@ export default {
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
DeviceServiceMode() {
|
||||
return DeviceServiceMode
|
||||
},
|
||||
qrCodeText() {
|
||||
return (device) => {
|
||||
return getWxIndexUrl({ s: device.deviceNo});
|
||||
|
@ -240,8 +242,9 @@ export default {
|
|||
clearInterval(this.timer);
|
||||
},
|
||||
methods: {
|
||||
isEmpty,
|
||||
handleUnbind() {
|
||||
this.$confirm('是否强制解绑该设备?', '警告', {
|
||||
this.$confirm('是否强制解绑该商户?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
|
|
@ -205,9 +205,15 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="服务费" align="center" prop="serviceRate" width="180">
|
||||
<template slot-scope="d">
|
||||
月费:{{d.row.monthFee | money | defaultValue}} 元/月 <br/>
|
||||
平台服务费:{{d.row.realServiceRate | money | defaultValue}} % <br/>
|
||||
代理服务费:{{d.row.agentServiceRate | money | defaultValue}} % <br/>
|
||||
<template v-if="d.row.monthFee">
|
||||
月费:{{d.row.monthFee | money | defaultValue}} 元/月 <br/>
|
||||
</template>
|
||||
<template v-if="d.row.serviceMode === DeviceServiceMode.DIRECT">
|
||||
平台服务费:{{d.row.realServiceRate | money | defaultValue}} % <br/>
|
||||
</template>
|
||||
<template v-if="d.row.serviceMode === DeviceServiceMode.AGENT">
|
||||
代理服务费:{{d.row.agentServiceRate | money | defaultValue}} % <br/>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||
|
|
|
@ -40,6 +40,18 @@
|
|||
<el-descriptions-item label="设备SN">
|
||||
<device-link :id="detail.deviceId" :text="detail.deviceNo"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备MAC-1">
|
||||
<device-link :id="detail.deviceId" :text="detail.deviceMac"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备MAC-2">
|
||||
<device-link :id="detail.deviceId" :text="detail.deviceMac2"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备产品ID">
|
||||
{{detail.deviceProductId | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备服务模式">
|
||||
<dict-tag :value="detail.deviceServiceMode" :options="dict.type.device_service_mode" size="small"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备充值状态" v-if="[SuitFeeType.TIMING, SuitFeeType.COUNT].includes(detail.suitFeeType)">
|
||||
<dict-tag :value="detail.deviceRechargeStatus"
|
||||
:options="dict.type.sm_transaction_bill_device_recharge_status"
|
||||
|
@ -50,7 +62,18 @@
|
|||
<el-tag type="success" v-else-if="detail.isFinished" size="small">已结束</el-tag>
|
||||
<el-tag type="info" v-else size="small">未开始</el-tag>
|
||||
</el-descriptions-item>
|
||||
<template v-if="detail.isFinished">
|
||||
<el-descriptions-item label="设备关闭状态">
|
||||
<dict-tag :value="detail.closeStatus" :options="dict.type.recharge_close_status" size="small"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="设备关闭状态描述">
|
||||
{{detail.closeResult | defaultValue}}
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card">
|
||||
<el-descriptions title="套餐信息" :column="4">
|
||||
<el-descriptions-item label="套餐名称">{{detail.suitName | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="套餐计费模式">
|
||||
|
@ -61,11 +84,13 @@
|
|||
</el-descriptions-item>
|
||||
<el-descriptions-item label="套餐时长" v-if="detail.suitFeeType === SuitFeeType.TIMING">{{detail.suitTime | defaultValue}} {{suitTimeUnit(detail.suitTimeUnit)}}</el-descriptions-item>
|
||||
<el-descriptions-item label="套餐电量" v-if="detail.suitFeeType === SuitFeeType.COUNT">{{detail.suitTime | defaultValue}} 度</el-descriptions-item>
|
||||
<el-descriptions-item label="使用时长" v-if="SuitFeeType.timeList().includes(detail.suitFeeType)">{{toDescriptionFromSecond(detail.totalUse).text | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="使用电量" v-if="SuitFeeType.eleList().includes(detail.suitFeeType)">{{detail.totalUse | defaultValue}} 度</el-descriptions-item>
|
||||
<el-descriptions-item label="开始时间">{{detail.suitStartTime | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="结束时间">{{detail.suitEndTime | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="失效时间">{{detail.suitExpireTime | defaultValue}}</el-descriptions-item>
|
||||
<el-descriptions-item label="开始总用电量">{{detail.suitStartEle | defaultValue}} 度</el-descriptions-item>
|
||||
<el-descriptions-item label="结束总用电量">{{detail.suitEndEle | defaultValue}} 度</el-descriptions-item>
|
||||
<el-descriptions-item label="开始总用电量">{{detail.suitStartEle | money | defaultValue}} 度</el-descriptions-item>
|
||||
<el-descriptions-item label="结束总用电量">{{detail.suitEndEle | money | defaultValue}} 度</el-descriptions-item>
|
||||
<el-descriptions-item label="低功率自动关闭" :span="2">
|
||||
<template v-if="detail.suitEnableLowPowerClose">
|
||||
<span style="color: green;margin-right: 0.5em;">已开启<i class="el-icon-check"/></span>
|
||||
|
@ -89,9 +114,14 @@
|
|||
</el-descriptions-item>
|
||||
<el-descriptions-item label="支付时间">{{detail.payTime | defaultValue}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card">
|
||||
<el-descriptions title="代理信息" :column="1" v-if="DeviceServiceMode.AGENT === detail.deviceServiceMode">
|
||||
<el-descriptions-item label="代理商">
|
||||
<user-link :id="detail.agentName" :name="detail.agentId"/>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="代理商手机号">{{detail.agentMobile | defaultValue}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<el-descriptions title="商户信息" :column="1">
|
||||
<el-descriptions-item label="商户">
|
||||
<user-link :id="detail.mchId" :name="detail.mchName"/>
|
||||
|
@ -127,18 +157,22 @@ import Refund from '@/views/ss/refund/index.vue'
|
|||
import { findLabel } from '@/utils'
|
||||
import DeviceLink from '@/components/Business/Device/DeviceLink.vue'
|
||||
import UserLink from '@/components/Business/SmUser/UserLink.vue'
|
||||
import { SuitFeeType, views } from '@/utils/constants'
|
||||
import { DeviceServiceMode, SuitFeeType, views } from '@/utils/constants'
|
||||
import PayBill from '@/views/ss/payBill/index.vue'
|
||||
import Bonus from '@/views/ss/bonus/index.vue'
|
||||
import { $recharge } from '@/utils/mixins'
|
||||
import RefundDialog from '@/views/system/recharge/components/RefundDialog.vue'
|
||||
import { toDescriptionFromSecond } from '@/utils/date'
|
||||
|
||||
export default {
|
||||
name: 'Recharge/:billId',
|
||||
mixins: [$recharge],
|
||||
components: { RefundDialog, Bonus, PayBill, UserLink, DeviceLink, Refund },
|
||||
dicts: ['channel_type','sm_transaction_bill_status', 'sm_transaction_bill_device_recharge_status', 'time_unit', 'suit_fee_mode', 'suit_fee_type'],
|
||||
dicts: ['channel_type','sm_transaction_bill_status', 'sm_transaction_bill_device_recharge_status', 'time_unit', 'suit_fee_mode', 'suit_fee_type', 'recharge_close_status', 'device_service_mode'],
|
||||
computed: {
|
||||
DeviceServiceMode() {
|
||||
return DeviceServiceMode
|
||||
},
|
||||
views() {
|
||||
return views
|
||||
},
|
||||
|
@ -167,6 +201,7 @@ export default {
|
|||
this.getDetail();
|
||||
},
|
||||
methods: {
|
||||
toDescriptionFromSecond,
|
||||
getDetail() {
|
||||
this.loading = true;
|
||||
getBill(this.id).then(res => {
|
||||
|
|
Loading…
Reference in New Issue
Block a user