This commit is contained in:
墨大叔 2024-09-29 17:57:53 +08:00
parent 4532ffb78d
commit 5a47e4bcb2
8 changed files with 219 additions and 128 deletions

View File

@ -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]
}
}

View File

@ -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() {

View File

@ -76,7 +76,8 @@ export default {
type: 'pie',
color: [
'#8D4EDA',
'#00B2FF'
'#00B2FF',
'#fa6247'
],
radius: ['30%', '50%'],
avoidLabelOverlap: false,

View File

@ -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,

View File

@ -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 => {

View File

@ -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'

View File

@ -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 />

View File

@ -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 => {