细节优化,权限更新
This commit is contained in:
parent
b361dc02b3
commit
b356dca701
|
@ -1,5 +1,5 @@
|
||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 扫码床垫-开发
|
VUE_APP_TITLE = 创亿康-开发
|
||||||
|
|
||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
ENV = 'development'
|
ENV = 'development'
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 扫码床垫管理系统
|
VUE_APP_TITLE = 创亿康管理系统
|
||||||
|
|
||||||
# 生产环境配置
|
# 生产环境配置
|
||||||
ENV = 'production'
|
ENV = 'production'
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 扫码床垫管理系统
|
VUE_APP_TITLE = 创亿康管理系统
|
||||||
|
|
||||||
NODE_ENV = production
|
NODE_ENV = production
|
||||||
|
|
||||||
|
|
|
@ -161,6 +161,7 @@ export default {
|
||||||
doLoad(ids) {
|
doLoad(ids) {
|
||||||
listSmUserByIds(ids).then(res => {
|
listSmUserByIds(ids).then(res => {
|
||||||
this.selected = res.data;
|
this.selected = res.data;
|
||||||
|
this.$emit('load', this.selected)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 修改值
|
// 修改值
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
请上传
|
请上传
|
||||||
<template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
|
<template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
|
||||||
<template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
|
<template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
|
||||||
|
<template v-if="filePx"> 建议像素为 <b style="color: #f56c6c">{{ filePx }}</b></template>
|
||||||
的文件
|
的文件
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -53,6 +54,11 @@ export default {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 5,
|
default: 5,
|
||||||
},
|
},
|
||||||
|
// 像素大小
|
||||||
|
filePx: {
|
||||||
|
type: String,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
// 大小限制(MB)
|
// 大小限制(MB)
|
||||||
fileSize: {
|
fileSize: {
|
||||||
type: Number,
|
type: Number,
|
||||||
|
@ -67,6 +73,14 @@ export default {
|
||||||
isShowTip: {
|
isShowTip: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
|
},
|
||||||
|
width: {
|
||||||
|
type: String,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
height: {
|
||||||
|
type: String,
|
||||||
|
default: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
|
@ -1,5 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="todo-list" v-loading="loading">
|
<div class="todo-list" v-loading="loading">
|
||||||
|
<div class="todo-item" @click="$router.push('/smUser/userVerify?status=1')">
|
||||||
|
<div class="label"><svg-icon icon-class="user"/> 用户审核</div>
|
||||||
|
<div class="value">
|
||||||
|
<count-to :start-val="0" :end-val="data.userVerifyCount" :duration="3000"/>
|
||||||
|
</div>
|
||||||
|
<div class="unit">条</div>
|
||||||
|
</div>
|
||||||
<div class="todo-item" @click="$router.push('/mch/mchApply?status=0')">
|
<div class="todo-item" @click="$router.push('/mch/mchApply?status=0')">
|
||||||
<div class="label"><svg-icon icon-class="apply"/> 商家合作申请</div>
|
<div class="label"><svg-icon icon-class="apply"/> 商家合作申请</div>
|
||||||
<div class="value">
|
<div class="value">
|
||||||
|
@ -55,7 +62,8 @@ export default {
|
||||||
mchApplyCount: 0,
|
mchApplyCount: 0,
|
||||||
storeApplyCount: 0,
|
storeApplyCount: 0,
|
||||||
abnormalCount: 0,
|
abnormalCount: 0,
|
||||||
arrearsDeviceCount: 0
|
arrearsDeviceCount: 0,
|
||||||
|
userVerifyCount: 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="login">
|
<div class="login">
|
||||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
||||||
<h3 class="title">扫码床垫后台管理系统</h3>
|
<h3 class="title">创亿康后台管理系统</h3>
|
||||||
|
|
||||||
<el-form-item prop="username">
|
<el-form-item prop="username">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="register">
|
<div class="register">
|
||||||
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
|
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
|
||||||
<h3 class="title">扫码床垫后台管理系统</h3>
|
<h3 class="title">创亿康后台管理系统</h3>
|
||||||
<el-form-item prop="username">
|
<el-form-item prop="username">
|
||||||
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
|
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
|
||||||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
|
|
|
@ -115,10 +115,10 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改广告对话框 -->
|
<!-- 添加或修改广告对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="广告图片" prop="picture">
|
<el-form-item label="广告图片" prop="picture">
|
||||||
<image-upload v-model="form.picture" :limit="1"/>
|
<image-upload v-model="form.picture" :limit="1" file-px="680 * 218 px"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="广告类型" prop="type">
|
<el-form-item label="广告类型" prop="type">
|
||||||
<el-select v-model="form.type" placeholder="请选择广告类型" style="width: 100%">
|
<el-select v-model="form.type" placeholder="请选择广告类型" style="width: 100%">
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
<dict-tag :options="dict.type.user_type" :value="d.row[column.key]"/>
|
<dict-tag :options="dict.type.user_type" :value="d.row[column.key]"/>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'userId'">
|
<template v-else-if="column.key === 'userId'">
|
||||||
<user-link :id="d.row.userId" :name="d.row.userMobile"/>
|
<user-link :id="d.row.userId" :name="`${d.row.userName}(${d.row.userMobile})`"/>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'qrcode'">
|
<template v-else-if="column.key === 'qrcode'">
|
||||||
<el-popover
|
<el-popover
|
||||||
|
@ -115,6 +115,9 @@
|
||||||
<template v-else-if="column.key === 'point'">
|
<template v-else-if="column.key === 'point'">
|
||||||
{{d.row[column.key] | money | defaultValue}} %
|
{{d.row[column.key] | money | defaultValue}} %
|
||||||
</template>
|
</template>
|
||||||
|
<template v-else-if="column.key === 'surplusPoint'">
|
||||||
|
{{d.row.userPoint - d.row.point | money | defaultValue}} %
|
||||||
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
{{d.row[column.key]}}
|
{{d.row[column.key]}}
|
||||||
</template>
|
</template>
|
||||||
|
@ -156,6 +159,7 @@
|
||||||
<user-input
|
<user-input
|
||||||
v-model="form.userId"
|
v-model="form.userId"
|
||||||
@change="onChangeCreator"
|
@change="onChangeCreator"
|
||||||
|
@load="onLoadCreator"
|
||||||
:query="{types: [SmUserType.SALE, SmUserType.BIZ]}"
|
:query="{types: [SmUserType.SALE, SmUserType.BIZ]}"
|
||||||
show-type
|
show-type
|
||||||
/>
|
/>
|
||||||
|
@ -172,7 +176,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="投资人" prop="investorId" v-if="form.userType === SmUserType.BUSINESS_PLACE">
|
<el-form-item label="投资人" prop="investorId" v-if="form.userType === SmUserType.BUSINESS_PLACE">
|
||||||
<user-input v-model="form.investorId" placeholder="请选择推广经营场所绑定的投资人" :query="{type: SmUserType.INVESTOR}" show-type/>
|
<user-input v-model="form.investorId" placeholder="请选择推广经营场所绑定的投资人" :before-open="beforeOpenInvestor" :query="investorQuery" show-type/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分成比例" prop="point">
|
<el-form-item label="分成比例" prop="point">
|
||||||
<el-input-number v-model="form.point" placeholder="请输入分成比例" controls-position="right" :min="0" :max="100" :precision="2" style="width: calc(100% - 1.5em)"/> %
|
<el-input-number v-model="form.point" placeholder="请输入分成比例" controls-position="right" :min="0" :max="100" :precision="2" style="width: calc(100% - 1.5em)"/> %
|
||||||
|
@ -221,6 +225,13 @@ export default {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
// 投资人查询条件
|
||||||
|
investorQuery() {
|
||||||
|
return {
|
||||||
|
type: SmUserType.INVESTOR,
|
||||||
|
referenceId: this.form.userId
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: { QrCode, UserLink, UserInput },
|
components: { QrCode, UserLink, UserInput },
|
||||||
|
@ -234,9 +245,10 @@ export default {
|
||||||
{key: 'codeId', visible: true, label: '推广码ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
{key: 'codeId', visible: true, label: '推广码ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||||
{key: 'codeNo', visible: true, label: '推广码编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'codeNo', visible: true, label: '推广码编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'qrcode', visible: true, label: '二维码', minWidth: null, sortable: false, overflow: false, align: 'center', width: "80"},
|
{key: 'qrcode', visible: true, label: '二维码', minWidth: null, sortable: false, overflow: false, align: 'center', width: "80"},
|
||||||
{key: 'userId', visible: true, label: '创建人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'userId', visible: true, label: '创建人', minWidth: null, sortable: true, overflow: false, align: 'center', width: "300"},
|
||||||
{key: 'userType', visible: true, label: '推广角色', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'userType', 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: 'point', visible: true, label: '分成比例', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
|
{key: 'surplusPoint', visible: true, label: '剩余比例', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||||
{key: 'investorId', visible: false, label: '投资人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'investorId', visible: false, label: '投资人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'expireTime', visible: true, label: '过期时间', minWidth: "120", sortable: false, overflow: false, align: 'center', width: null},
|
{key: 'expireTime', visible: true, label: '过期时间', minWidth: "120", sortable: false, overflow: false, align: 'center', width: null},
|
||||||
// {key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
// {key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
|
@ -304,11 +316,27 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getShareCodeWxUrl,
|
getShareCodeWxUrl,
|
||||||
|
beforeOpenInvestor() {
|
||||||
|
if (this.form.userId == null) {
|
||||||
|
this.$message.warning("请先选择创建人");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
onLoadCreator(list) {
|
||||||
|
if (list != null && list.length > 0) {
|
||||||
|
this.creatorUserType = list[0].type;
|
||||||
|
}
|
||||||
|
},
|
||||||
onChangeCreator(user) {
|
onChangeCreator(user) {
|
||||||
this.creatorUserType = user.type;
|
this.creatorUserType = user.type;
|
||||||
if (this.disabledUserType(this.form.userType)) {
|
if (this.disabledUserType(this.form.userType)) {
|
||||||
this.form.userType = null;
|
this.form.userType = null;
|
||||||
}
|
}
|
||||||
|
if (this.form.investorId != null) {
|
||||||
|
this.form.investorId = null;
|
||||||
|
this.$message.info("由于更换了创建人,请重新选择投资人")
|
||||||
|
}
|
||||||
},
|
},
|
||||||
/** 当排序按钮被点击时触发 **/
|
/** 当排序按钮被点击时触发 **/
|
||||||
onSortChange(column) {
|
onSortChange(column) {
|
||||||
|
|
|
@ -278,6 +278,10 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.queryParams = {
|
||||||
|
...this.queryParams,
|
||||||
|
...this.$route.query
|
||||||
|
}
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -60,13 +60,16 @@
|
||||||
<el-descriptions-item label="型号功能" :span="2">
|
<el-descriptions-item label="型号功能" :span="2">
|
||||||
<dict-tag :options="dict.type.sm_model_tag" :value="deviceData.modelTags" size="mini"/>
|
<dict-tag :options="dict.type.sm_model_tag" :value="deviceData.modelTags" size="mini"/>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="WIFI">{{deviceData.wifi | defaultValue}}</el-descriptions-item>
|
<!-- <el-descriptions-item label="WIFI">{{deviceData.wifi | defaultValue}}</el-descriptions-item>-->
|
||||||
<el-descriptions-item label="剩余时长">{{surplusTimeDesc(surplusTime).text}}</el-descriptions-item>
|
<el-descriptions-item label="剩余时长">{{surplusTimeDesc(surplusTime).text}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="设备剩余时长" :span="2">
|
<el-descriptions-item label="设备剩余时长" :span="2">
|
||||||
{{surplusTimeDesc(deviceData.remainTime).text}}
|
{{surplusTimeDesc(deviceData.remainTime).text}}
|
||||||
<span class="remark-text">最近更新时间:{{deviceData.lastPullTime}}</span>
|
<span class="remark-text">最近更新时间:{{deviceData.lastPullTime | defaultValue}}</span>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="备注">{{deviceData.remark | defaultValue}}</el-descriptions-item>
|
<el-descriptions-item label="备注">{{deviceData.remark | defaultValue}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="尺寸">{{deviceData.size | defaultValue}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="面料">{{deviceData.fabric | defaultValue}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="填充物">{{deviceData.fill | defaultValue}}</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
|
@ -74,22 +77,22 @@
|
||||||
<el-row type="flex">
|
<el-row type="flex">
|
||||||
<el-statistic title="代理商">
|
<el-statistic title="代理商">
|
||||||
<template #formatter>
|
<template #formatter>
|
||||||
<user-link :name="deviceData.agentName" :id="deviceData.agentId" class="statistic-link"/>
|
<user-link :name="deviceData.agentName" :id="deviceData.agentId" />
|
||||||
</template>
|
</template>
|
||||||
</el-statistic>
|
</el-statistic>
|
||||||
<el-statistic title="业务员">
|
<el-statistic title="业务员">
|
||||||
<template #formatter>
|
<template #formatter>
|
||||||
<user-link :name="deviceData.bizManName" :id="deviceData.bizManId" class="statistic-link"/>
|
<user-link :name="deviceData.bizManName" :id="deviceData.bizManId"/>
|
||||||
</template>
|
</template>
|
||||||
</el-statistic>
|
</el-statistic>
|
||||||
<el-statistic title="投资人">
|
<el-statistic title="投资人">
|
||||||
<template #formatter>
|
<template #formatter>
|
||||||
<user-link :name="deviceData.userName" :id="deviceData.userId" class="statistic-link"/>
|
<user-link :name="deviceData.userName" :id="deviceData.userId"/>
|
||||||
</template>
|
</template>
|
||||||
</el-statistic>
|
</el-statistic>
|
||||||
<el-statistic title="经营场所">
|
<el-statistic title="经营场所">
|
||||||
<template #formatter>
|
<template #formatter>
|
||||||
<store-link :name="deviceData.storeName" :id="deviceData.storeId" class="statistic-link"/>
|
<store-link :name="deviceData.storeName" :id="deviceData.storeId"/>
|
||||||
</template>
|
</template>
|
||||||
</el-statistic>
|
</el-statistic>
|
||||||
<el-statistic title="房间号">
|
<el-statistic title="房间号">
|
||||||
|
@ -97,41 +100,37 @@
|
||||||
{{deviceData.room | defaultValue}}
|
{{deviceData.room | defaultValue}}
|
||||||
</template>
|
</template>
|
||||||
</el-statistic>
|
</el-statistic>
|
||||||
<el-statistic title="订单总数" :value="deviceData.orderCount" :precision="2" suffix="单"/>
|
<el-statistic title="订单总数" :value="deviceData.orderCount" :precision="0" suffix="单"/>
|
||||||
<el-statistic title="订单金额" :value="deviceData.orderAmount" :precision="2" suffix="元"/>
|
<el-statistic title="订单金额" :value="deviceData.orderAmount" :precision="2" suffix="元"/>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-card class="box-card" header="分成详情">
|
<el-card class="box-card" header="分成详情">
|
||||||
<line-field v-for="item of deviceData.bonusList" :label="item.arrivalName">
|
<div style="height: 228px;overflow: auto;">
|
||||||
<template #label>
|
<el-result v-if="isEmpty(deviceData.bonusList)" sub-title="暂无分成信息"/>
|
||||||
<div style="display: flex">
|
<line-field v-for="item of deviceData.bonusList" :label="item.arrivalName">
|
||||||
<dict-tag :options="dict.type.bonus_arrival_type" :value="item.arrivalType" size="mini"/>
|
<template #label>
|
||||||
<div style="margin-left: 0.5em">{{item.arrivalName}}</div>
|
<div style="display: flex">
|
||||||
</div>
|
<dict-tag :options="dict.type.bonus_arrival_type" :value="item.arrivalType" size="mini"/>
|
||||||
</template>
|
<div style="margin-left: 0.5em">{{item.arrivalName}}</div>
|
||||||
{{item.point | money | defaultValue}} %
|
</div>
|
||||||
</line-field>
|
</template>
|
||||||
|
{{item.point | money | defaultValue}} %
|
||||||
|
</line-field>
|
||||||
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<el-tabs>
|
<el-tabs>
|
||||||
<el-tab-pane label="订单列表" :lazy="true">
|
<el-tab-pane label="订单列表" :lazy="true" v-if="checkPermi(['system:bill:list'])">
|
||||||
<recharge v-if="deviceData.deviceId != null" :query="{deviceId: deviceData.deviceId}" :view="views.device"/>
|
<recharge v-if="deviceData.deviceId != null" :query="{deviceId: deviceData.deviceId}" :view="views.device"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="时长变化记录" :lazy="true">
|
<el-tab-pane label="时长变化记录" :lazy="true" v-if="checkPermi(['ss:time:list'])">
|
||||||
<record-time :query="{deviceId: deviceData.deviceId}" view="device"/>
|
<record-time :query="{deviceId: deviceData.deviceId}" view="device"/>
|
||||||
</el-tab-pane>
|
</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"/>-->
|
|
||||||
<!-- </el-tab-pane>-->
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
@ -174,6 +173,9 @@ import { $serviceType, $view } from '@/utils/mixins'
|
||||||
import LineField from '@/components/LineField/index.vue'
|
import LineField from '@/components/LineField/index.vue'
|
||||||
import RechargeList from '@/views/ss/store/components/rechargeList.vue'
|
import RechargeList from '@/views/ss/store/components/rechargeList.vue'
|
||||||
import Recharge from '@/views/system/recharge/index.vue'
|
import Recharge from '@/views/system/recharge/index.vue'
|
||||||
|
import { isEmpty } from '@/utils'
|
||||||
|
import hasPermi from '@/directive/permission/hasPermi'
|
||||||
|
import { checkPermi } from '@/utils/permission'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Device/:deviceId',
|
name: 'Device/:deviceId',
|
||||||
|
@ -231,6 +233,8 @@ export default {
|
||||||
clearInterval(this.timer);
|
clearInterval(this.timer);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
checkPermi,
|
||||||
|
isEmpty,
|
||||||
handleUnbind() {
|
handleUnbind() {
|
||||||
this.$confirm('是否强制解绑该设备?', '警告', {
|
this.$confirm('是否强制解绑该设备?', '警告', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
|
|
|
@ -194,7 +194,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
@click="handleSee(scope.row)"
|
@click="handleSee(scope.row)"
|
||||||
v-hasPermi="['system:device:detail']"
|
v-hasPermi="['system:device:query']"
|
||||||
>详情</el-button>
|
>详情</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
|
|
|
@ -128,21 +128,21 @@
|
||||||
<form-col :span="span * 2" label="备注" prop="remark">
|
<form-col :span="span * 2" label="备注" prop="remark">
|
||||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
</form-col>
|
</form-col>
|
||||||
<form-col :span="span * 2" label="默认服务费" prop="serviceRate" label-width="7em">
|
<!-- <form-col :span="span * 2" label="默认服务费" prop="serviceRate" label-width="7em">-->
|
||||||
<el-input v-model="form.serviceRate" placeholder="请输入服务费">
|
<!-- <el-input v-model="form.serviceRate" placeholder="请输入服务费">-->
|
||||||
<template #prepend>
|
<!-- <template #prepend>-->
|
||||||
<el-select v-model="form.serviceType" placeholder="请选择服务费收取方式" style="width: 10em">
|
<!-- <el-select v-model="form.serviceType" placeholder="请选择服务费收取方式" style="width: 10em">-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="dict in dict.type.service_type"
|
<!-- v-for="dict in dict.type.service_type"-->
|
||||||
:key="dict.value"
|
<!-- :key="dict.value"-->
|
||||||
:label="dict.label"
|
<!-- :label="dict.label"-->
|
||||||
:value="dict.value"
|
<!-- :value="dict.value"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
<template #append>{{serviceUnit(form.serviceType)}}</template>
|
<!-- <template #append>{{serviceUnit(form.serviceType)}}</template>-->
|
||||||
</el-input>
|
<!-- </el-input>-->
|
||||||
</form-col>
|
<!-- </form-col>-->
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
|
|
|
@ -68,10 +68,10 @@
|
||||||
|
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<el-tabs>
|
<el-tabs>
|
||||||
<el-tab-pane label="支付信息" lazy>
|
<el-tab-pane label="支付信息" lazy v-if="checkPermi(['ss:payBill:list'])">
|
||||||
<pay-bill v-if="detail.billId != null" :query="{bstId: detail.billId}" :view="views.recharge"/>
|
<pay-bill v-if="detail.billId != null" :query="{bstId: detail.billId}" :view="views.recharge"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="分成信息" lazy>
|
<el-tab-pane label="分成信息" lazy v-if="checkPermi(['ss:bonus:list'])">
|
||||||
<bonus :query="{billId: detail.billId}" :view="views.recharge"/>
|
<bonus :query="{billId: detail.billId}" :view="views.recharge"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
@ -89,6 +89,7 @@ import { SuitFeeType, views } from '@/utils/constants'
|
||||||
import PayBill from '@/views/ss/payBill/index.vue'
|
import PayBill from '@/views/ss/payBill/index.vue'
|
||||||
import StoreLink from '@/components/Business/Store/StoreLink.vue'
|
import StoreLink from '@/components/Business/Store/StoreLink.vue'
|
||||||
import Bonus from '@/views/ss/bonus/index.vue'
|
import Bonus from '@/views/ss/bonus/index.vue'
|
||||||
|
import { checkPermi } from '@/utils/permission'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'RechargeDetail',
|
name: 'RechargeDetail',
|
||||||
|
@ -122,6 +123,7 @@ export default {
|
||||||
this.getDetail();
|
this.getDetail();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
checkPermi,
|
||||||
getDetail() {
|
getDetail() {
|
||||||
getBill(this.id).then(res => {
|
getBill(this.id).then(res => {
|
||||||
this.detail = res.data;
|
this.detail = res.data;
|
||||||
|
|
|
@ -21,26 +21,31 @@
|
||||||
<el-descriptions-item label="实名认证">
|
<el-descriptions-item label="实名认证">
|
||||||
<el-tag :type="userData.isReal ? 'success' : 'danger'" size="mini">{{userData.isReal ? '已实名' : '未实名'}}</el-tag>
|
<el-tag :type="userData.isReal ? 'success' : 'danger'" size="mini">{{userData.isReal ? '已实名' : '未实名'}}</el-tag>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="推广人">
|
||||||
|
<user-link :id="userData.referenceId" :name="userData.referenceName"/>
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="直属代理">
|
<el-descriptions-item label="直属代理">
|
||||||
<user-link :id="userData.agentId" :name="userData.agentName"/>
|
<user-link :id="userData.agentId" :name="userData.agentName"/>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="经营场所数" v-if="userData.type === SmUserType.BUSINESS_PLACE">
|
<el-descriptions-item label="运营商">
|
||||||
{{userData.storeCount | defaultValue}} 家
|
{{userData.deptName | defaultValue}}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<!-- <el-descriptions-item label="微信OpenId" :span="3">{{userData.wxOpenId | defaultValue}}</el-descriptions-item>-->
|
||||||
<el-descriptions-item label="分成比例" v-if="[SmUserType.BUSINESS_PLACE, SmUserType.NORMAL].includes(userData.type)">
|
<el-descriptions-item label="分成比例" v-if="[SmUserType.BUSINESS_PLACE, SmUserType.NORMAL].includes(userData.type)">
|
||||||
{{userData.point | money | defaultValue}} %
|
{{userData.point | money | defaultValue}} %
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="设备数">{{userData.deviceCount | defaultValue}} 台</el-descriptions-item>
|
<el-descriptions-item label="代理数">{{userData.agentCount | defaultValue}} 人</el-descriptions-item>
|
||||||
<el-descriptions-item label="代理数">{{userData.investorCount | defaultValue}} 人</el-descriptions-item>
|
<el-descriptions-item label="业务员数">{{userData.bizManCount | defaultValue}} 人</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="投资人数">{{userData.investorCount | defaultValue}} 人</el-descriptions-item>
|
||||||
<el-descriptions-item label="经营场所数">{{userData.storeCount | defaultValue}} 家</el-descriptions-item>
|
<el-descriptions-item label="经营场所数">{{userData.storeCount | defaultValue}} 家</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="设备数">{{userData.deviceCount | defaultValue}} 台</el-descriptions-item>
|
||||||
<el-descriptions-item label="账户余额">{{userData.balance | money | defaultValue}} 元</el-descriptions-item>
|
<el-descriptions-item label="账户余额">{{userData.balance | money | defaultValue}} 元</el-descriptions-item>
|
||||||
<el-descriptions-item label="总收入">{{userData.totalIncome | money | defaultValue}} 元</el-descriptions-item>
|
<el-descriptions-item label="总收入">{{userData.totalIncome | money | defaultValue}} 元</el-descriptions-item>
|
||||||
<el-descriptions-item label="总充值">{{userData.rechargeAmount | money | defaultValue}} 元</el-descriptions-item>
|
<el-descriptions-item label="总充值">{{userData.rechargeAmount | money | defaultValue}} 元</el-descriptions-item>
|
||||||
<el-descriptions-item label="总提现">{{userData.withDrawlAmount | money | defaultValue}} 元</el-descriptions-item>
|
<el-descriptions-item label="总提现">{{userData.withDrawlAmount | money | defaultValue}} 元</el-descriptions-item>
|
||||||
<el-descriptions-item label="真实姓名">{{userData.realName | defaultValue}}</el-descriptions-item>
|
<!-- <el-descriptions-item label="真实姓名">{{userData.realName | defaultValue}}</el-descriptions-item>-->
|
||||||
<el-descriptions-item label="身份证">{{userData.realIdCard | defaultValue}}</el-descriptions-item>
|
<!-- <el-descriptions-item label="身份证">{{userData.realIdCard | defaultValue}}</el-descriptions-item>-->
|
||||||
<el-descriptions-item label="实名手机" >{{userData.realPhone | defaultValue}}</el-descriptions-item>
|
<!-- <el-descriptions-item label="实名手机" >{{userData.realPhone | defaultValue}}</el-descriptions-item>-->
|
||||||
<el-descriptions-item label="微信OpenId" :span="3">{{userData.wxOpenId | defaultValue}}</el-descriptions-item>
|
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -56,56 +61,53 @@
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<el-tabs>
|
<el-tabs>
|
||||||
<template v-if="userData.type === SmUserType.SALE">
|
<template v-if="userData.type === SmUserType.SALE">
|
||||||
<el-tab-pane label="代理商列表" lazy>
|
<el-tab-pane label="代理商列表" lazy v-if="checkPermi(['system:smUser:agentList'])">
|
||||||
<sm-user :query="{referenceId: userData.userId, type: SmUserType.SALE}"/>
|
<sm-user :query="{referenceId: userData.userId, type: SmUserType.SALE}"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="业务员列表" lazy >
|
<el-tab-pane label="业务员列表" lazy v-if="checkPermi(['system:smUser:bizList'])">
|
||||||
<sm-user :query="{referenceId: userData.userId, type: SmUserType.BIZ}"/>
|
<sm-user :query="{referenceId: userData.userId, type: SmUserType.BIZ}"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="投资人列表" lazy >
|
<el-tab-pane label="投资人列表" lazy v-if="checkPermi(['system:smUser:investorList'])">
|
||||||
<sm-user :query="{agentId: userData.userId, type: SmUserType.INVESTOR}"/>
|
<sm-user :query="{agentId: userData.userId, type: SmUserType.INVESTOR}"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="合作场所" lazy >
|
<el-tab-pane label="合作场所" lazy v-if="checkPermi(['ss:storeInvestor:list'])">
|
||||||
<store-investor :query="{investorAgentId: userData.userId}"/>
|
<store-investor :query="{investorAgentId: userData.userId}"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="设备列表" lazy>
|
<el-tab-pane label="设备列表" lazy v-if="checkPermi(['system:device:list'])">
|
||||||
<device v-if="userData.userId != null" :query="{agentId: this.userData.userId}"/>
|
<device v-if="userData.userId != null" :query="{agentId: this.userData.userId}"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="userData.type === SmUserType.BIZ">
|
<template v-if="userData.type === SmUserType.BIZ">
|
||||||
<el-tab-pane label="业务员列表" lazy >
|
<el-tab-pane label="业务员列表" lazy v-if="checkPermi(['system:smUser:bizList'])">
|
||||||
<sm-user :query="{referenceId: userData.userId, type: SmUserType.BIZ}"/>
|
<sm-user :query="{referenceId: userData.userId, type: SmUserType.BIZ}"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="投资人列表" lazy >
|
<el-tab-pane label="投资人列表" lazy v-if="checkPermi(['system:smUser:investorList'])">
|
||||||
<sm-user :query="{referenceId: userData.userId, type: SmUserType.INVESTOR}"/>
|
<sm-user :query="{referenceId: userData.userId, type: SmUserType.INVESTOR}"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="合作场所" lazy >
|
<el-tab-pane label="合作场所" lazy v-if="checkPermi(['ss:storeInvestor:list'])">
|
||||||
<store-investor :query="{bizId: userData.userId}" :view="views.user"/>
|
<store-investor :query="{bizId: userData.userId}" :view="views.user"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="设备列表" lazy>
|
<el-tab-pane label="设备列表" lazy v-if="checkPermi(['system:device:list'])">
|
||||||
<device v-if="userData.userId != null" :query="{investorReferenceId: this.userData.userId}"/>
|
<device v-if="userData.userId != null" :query="{investorReferenceId: this.userData.userId}"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="userData.type === SmUserType.INVESTOR">
|
<template v-if="userData.type === SmUserType.INVESTOR">
|
||||||
<el-tab-pane label="设备列表" lazy>
|
<el-tab-pane label="设备列表" lazy v-if="checkPermi(['system:device:list'])">
|
||||||
<user-device :user-id="userData.userId"/>
|
<user-device :user-id="userData.userId"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="合作场所" lazy>
|
<el-tab-pane label="合作场所" lazy v-if="checkPermi(['ss:storeInvestor:list'])">
|
||||||
<store-investor :query="{investorId: userData.userId}" :view="views.user"/>
|
<store-investor :query="{investorId: userData.userId}" :view="views.user"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="userData.type === SmUserType.BUSINESS_PLACE">
|
<template v-if="userData.type === SmUserType.BUSINESS_PLACE">
|
||||||
<el-tab-pane label="经营场所" lazy>
|
<el-tab-pane label="经营场所" lazy v-if="checkPermi(['ss:store:list'])">
|
||||||
<store :query="{userId: userData.userId}" :view="views.user"/>
|
<store :query="{userId: userData.userId}" :view="views.user"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</template>
|
</template>
|
||||||
<el-tab-pane label="余额变化记录" lazy>
|
<el-tab-pane label="财务记录" lazy v-if="checkPermi(['ss:recordBalance:list'])">
|
||||||
<record-balance v-if="userData.userId != null" :query="{userId: userData.userId, subjectType: RecordBalanceSubjectType.USER}" :view="views.user"/>
|
<record-balance v-if="userData.userId != null" :query="{userId: userData.userId, subjectType: RecordBalanceSubjectType.USER}" :view="views.user"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="经营场所列表" lazy v-if="userData.type === SmUserType.BUSINESS_PLACE">
|
<el-tab-pane label="收款账户" lazy v-if="checkPermi(['ss:account:list'])">
|
||||||
<store :query="{userId: userData.userId}" :view="views.user"/>
|
|
||||||
</el-tab-pane>
|
|
||||||
<el-tab-pane label="收款账户" lazy>
|
|
||||||
<account v-if="userData.userId != null" :query="{userId: userData.userId}" :view="views.user"/>
|
<account v-if="userData.userId != null" :query="{userId: userData.userId}" :view="views.user"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- <el-tab-pane label="用户秘钥" lazy>-->
|
<!-- <el-tab-pane label="用户秘钥" lazy>-->
|
||||||
|
@ -136,6 +138,7 @@ import StoreInvestor from '@/views/ss/storeInvestor/index.vue'
|
||||||
import SmUser from '@/views/system/smUser/index.vue'
|
import SmUser from '@/views/system/smUser/index.vue'
|
||||||
import User from '@/views/system/user/index.vue'
|
import User from '@/views/system/user/index.vue'
|
||||||
import UserLink from '@/components/Business/SmUser/UserLink.vue'
|
import UserLink from '@/components/Business/SmUser/UserLink.vue'
|
||||||
|
import { checkPermi } from '@/utils/permission'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'User/:userId',
|
name: 'User/:userId',
|
||||||
|
@ -165,6 +168,7 @@ export default {
|
||||||
this.initData();
|
this.initData();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
checkPermi,
|
||||||
initData() {
|
initData() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
getSmUser(this.$route.params.userId).then(response => {
|
getSmUser(this.$route.params.userId).then(response => {
|
||||||
|
|
|
@ -17,18 +17,18 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="推广人" prop="referenceMobile">
|
<el-form-item label="推广人" prop="referenceName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.referenceMobile"
|
v-model="queryParams.referenceName"
|
||||||
placeholder="请输入推广人手机号"
|
placeholder="请输入推广人名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="微信openId" prop="wxOpenId" label-width="7em">
|
<el-form-item label="直属代理" prop="agentName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.wxOpenId"
|
v-model="queryParams.agentName"
|
||||||
placeholder="请输入微信openId"
|
placeholder="请输入直属代理名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="login">
|
<div class="login">
|
||||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
||||||
<h3 class="title">扫码床垫商户中心</h3>
|
<h3 class="title">创亿康商户中心</h3>
|
||||||
|
|
||||||
<el-form-item prop="username">
|
<el-form-item prop="username">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
|
@ -7,7 +7,7 @@ function resolve(dir) {
|
||||||
|
|
||||||
const CompressionPlugin = require('compression-webpack-plugin')
|
const CompressionPlugin = require('compression-webpack-plugin')
|
||||||
|
|
||||||
const name = process.env.VUE_APP_TITLE || '扫码床垫管理系统' // 网页标题
|
const name = process.env.VUE_APP_TITLE || '创亿康管理系统' // 网页标题
|
||||||
|
|
||||||
const port = process.env.port || process.env.npm_config_port || 3301 // 端口
|
const port = process.env.port || process.env.npm_config_port || 3301 // 端口
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user