Merge remote-tracking branch 'origin/master'
# Conflicts: # src/views/purchaseShop/inteAmend.vue
|
@ -1,5 +1,5 @@
|
|||
## 盛安到家1.0管理系统
|
||||
- 盛安到家1.0管理系统基于vue、element-ui构建开发,实现盛安到家1.0管理系统前端功能,提供一套更优的前端解决方案
|
||||
## 盛安小象1.0管理系统
|
||||
- 盛安小象1.0管理系统基于vue、element-ui构建开发,实现盛安小象1.0管理系统前端功能,提供一套更优的前端解决方案
|
||||
- 前后端分离,通过token进行数据交互,可独立部署
|
||||
- 主题定制,通过scss变量统一一站式定制
|
||||
- 动态菜单,通过菜单管理统一管理访问路由
|
||||
|
|
|
@ -15,8 +15,8 @@ module.exports = {
|
|||
proxyTable: devEnv.OPEN_PROXY === false ? {} : {
|
||||
'/proxyApi': {
|
||||
// target: "https://sausers.blxinchuang.com/sqx_fast/",
|
||||
// target: "http://192.168.2.222:8187/sqx_fast/",
|
||||
target: "https://admin.sjajk.com/sqx_fast/", //生产需替换
|
||||
target: "http://localhost:8187/sqx_fast/",
|
||||
// target: "https://admin.sjajk.com/sqx_fast/", //生产需替换
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/proxyApi': ''
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<!-- <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=miP4RMG1yZoROVRSqTPghvUaRb68iGUB"></script> -->
|
||||
<title>盛安到家1.0系统</title>
|
||||
<title>盛安小象1.0系统</title>
|
||||
<% if (process.env.NODE_ENV === 'production') { %>
|
||||
<!-- 生产环境 -->
|
||||
<script>document.write('<script src="./config/index.js?t=' + new Date().getTime() + '"><\/script>');</script>
|
||||
|
|
|
@ -21,6 +21,41 @@ const globalRoutes = [
|
|||
{ path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } }
|
||||
]
|
||||
|
||||
// 添加 dashboard 到 globalRoutes
|
||||
globalRoutes.push({
|
||||
path: '/dashboard',
|
||||
component: _import('common/dashboard'),
|
||||
name: 'dashboard',
|
||||
meta: { title: '驾驶舱', isTab: true },
|
||||
beforeEnter(to, from, next) {
|
||||
let token = Vue.cookie.get('token')
|
||||
if (!token || !/\S/.test(token)) {
|
||||
clearLoginInfo()
|
||||
next({ name: 'login' })
|
||||
}
|
||||
next();
|
||||
}
|
||||
});
|
||||
|
||||
// 添加 dashboard 到 globalRoutes
|
||||
globalRoutes.push({
|
||||
path: '/dashboard_',
|
||||
component: _import('common/dashboard'),
|
||||
name: 'dashboard_',
|
||||
meta: { title: '驾驶舱', isTab: true },
|
||||
beforeEnter(to, from, next) {
|
||||
let token = Vue.cookie.get('token')
|
||||
if (!token || !/\S/.test(token)) {
|
||||
clearLoginInfo()
|
||||
next({ name: 'login' })
|
||||
}
|
||||
// next()
|
||||
window.open('/dashboard', '_blank');
|
||||
// 取消当前导航
|
||||
next(false);
|
||||
}
|
||||
});
|
||||
|
||||
// 主入口路由(需嵌套上左右整体布局)
|
||||
const mainRoutes = {
|
||||
path: '/',
|
||||
|
@ -38,6 +73,7 @@ const mainRoutes = {
|
|||
{ path: '/allocationList', component: _import('allocation/allocationList'), name: 'allocationList', meta: { title: '配置列表', isTab: true } },
|
||||
{ path: '/financeList', component: _import('finance/financeList'), name: 'financeList', meta: { title: '财务中心', isTab: true } },
|
||||
{ path: '/message', component: _import('message/message'), name: 'message', meta: { title: '消息中心', isTab: true } },
|
||||
{ path: '/newUserTip', component: _import('newUserTip/newUserTip'), name: 'newUserTip', meta: { title: '新用户注册', isTab: true } },
|
||||
{ path: '/taskConfig', component: _import('taskConfig/taskConfig'), name: 'taskConfig', meta: { title: '任务配置', isTab: true } },
|
||||
{ path: '/bannerList', component: _import('banner/bannerList'), name: 'bannerList', meta: { title: '首页装修', isTab: true } },
|
||||
{ path: '/materialPackage', component: _import('materialPackage/materialPackage'), name: 'materialPackage', meta: { title: '物料包', isTab: true } },
|
||||
|
@ -156,7 +192,7 @@ const mainRoutes = {
|
|||
{ path: '/artificerPartitioningDetails', component: _import('bl/artificer/artificerPartitioningDetails'), name: 'artificerPartitioningDetails', meta: { title: '技师分成明细配置列表', isTab: true } },
|
||||
{ path: '/artificerRechargeReward', component: _import('bl/artificer/artificerRechargeReward'), name: 'artificerRechargeReward', meta: { title: '技师充值奖励配置列表', isTab: true } },
|
||||
{ path: '/blPingjiaTag', component: _import('bl/pingjiaTag/blPingjiaTag'), name: 'blPingjiaTag', meta: { title: '用户评价标签', isTab: true } },
|
||||
{ path: '/shipinquan', component: _import('bl/shipinquan/shipinquan'), name: 'shipinquan', meta: { title: '视频圈', isTab: true } },
|
||||
{ path: '/shipinquan', component: _import('bl/shipinquan/shipinquan'), name: 'shipinquan', meta: { title: '视频圈', isTab: true } }
|
||||
],
|
||||
beforeEnter(to, from, next) {
|
||||
let token = Vue.cookie.get('token')
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue'
|
||||
|
||||
const serverUrl = "https://admin.sjajk.com/sqx_fast/";//生产需替换
|
||||
// const serverUrl = "http://192.168.2.222:8187/sqx_fast/";
|
||||
// const serverUrl = "https://admin.sjajk.com/sqx_fast/";//生产需替换
|
||||
const serverUrl = "http://localhost:8187/sqx_fast/";
|
||||
// const serverUrl = "http://120.46.52.165/sqx_fast/";
|
||||
// const serverUrl = "https://sausers.blxinchuang.com/sqx_fast/";
|
||||
|
||||
|
|
|
@ -55,6 +55,52 @@
|
|||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="front" label="身份证正面" width="150">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.front == null || scope.row.front == ''">
|
||||
暂无图片
|
||||
</div>
|
||||
<div v-if="scope.row.front" style="display:flex;flex-wrap: wrap;">
|
||||
<el-popover placement="top-start" title="" trigger="hover">
|
||||
<img style="width: 50px; height: 50px" :src="scope.row.front" alt=""
|
||||
slot="reference">
|
||||
<img style="width: auto; height: 600px" :src="scope.row.front" alt="">
|
||||
</el-popover>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="back" label="身份证返面" width="150">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.back == null || scope.row.back == ''">
|
||||
暂无图片
|
||||
</div>
|
||||
<div v-if="scope.row.back" style="display:flex;flex-wrap: wrap;">
|
||||
<el-popover placement="top-start" title="" trigger="hover">
|
||||
<img style="width: 50px; height: 50px" :src="scope.row.back" alt=""
|
||||
slot="reference">
|
||||
<img style="width: auto; height: 600px" :src="scope.row.back" alt="">
|
||||
</el-popover>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="certification" label="资格证书" >
|
||||
<template slot-scope="scope">
|
||||
<div v-if="!scope.row.certification || scope.row.certification.trim() === ''">
|
||||
暂无图片
|
||||
</div>
|
||||
<div v-else style="display:flex;flex-wrap: wrap;">
|
||||
<!-- 使用split方法根据逗号分割字符串 -->
|
||||
<div v-for="(src, index) in scope.row.certification.split(',')" :key="index" style="margin-right: 10px;">
|
||||
<el-popover placement="top-start" title="" trigger="hover">
|
||||
<!-- 展示缩略图 -->
|
||||
<img style="width: 50px; height: 50px;" :src="src.trim()" alt="" slot="reference">
|
||||
<!-- 放大显示 -->
|
||||
<img style="width: auto; height: 600px;" :src="src.trim()" alt="">
|
||||
</el-popover>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="age" label="年龄" >
|
||||
</el-table-column>
|
||||
<el-table-column prop="phone" label="电话" >
|
||||
|
|
|
@ -3,10 +3,7 @@
|
|||
<!-- 列表 -->
|
||||
<div style="display: inline-block">
|
||||
<span>状态:</span>
|
||||
<el-select
|
||||
clearable
|
||||
v-model="status"
|
||||
style="width: 150px;">
|
||||
<el-select clearable v-model="status" style="width: 150px;">
|
||||
<el-option value="" label="全部"></el-option>
|
||||
<el-option value="0" label="申请中"></el-option>
|
||||
<el-option value="1" label="已授权"></el-option>
|
||||
|
@ -15,123 +12,66 @@
|
|||
</div>
|
||||
<div style="margin-left:10px;display: inline-block">
|
||||
<span>姓名:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入姓名"
|
||||
v-model="name">
|
||||
<el-input style="width: 200px" placeholder="请输入姓名" v-model="name">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-left:10px;display: inline-block">
|
||||
<span>电话:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入电话"
|
||||
v-model="phone">
|
||||
<el-input style="width: 200px" placeholder="请输入电话" v-model="phone">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-left:10px;display: inline-block;">
|
||||
<span>申请开始时间:</span>
|
||||
<el-date-picker style="width: 160px;" v-model="startTime" align="right"
|
||||
type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择开始时间">
|
||||
<el-date-picker style="width: 160px;" v-model="startTime" align="right" type="datetime" format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd" placeholder="选择开始时间">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div style="margin-left:10px;display: inline-block;">
|
||||
<span>申请截止时间:</span>
|
||||
<el-date-picker style="width: 160px;" v-model="endTime" align="right" type="datetime"
|
||||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择截止时间">
|
||||
<el-date-picker style="width: 160px;" v-model="endTime" align="right" type="datetime" format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd" placeholder="选择截止时间">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleSelect"
|
||||
>查询
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleSelect">查询
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleClear"
|
||||
>重置
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleClear">重置
|
||||
</el-button>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list">
|
||||
<el-table-column
|
||||
prop="id"
|
||||
label="编号"
|
||||
width="80"
|
||||
>
|
||||
<el-table-column prop="id" label="编号" width="80">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="userId"
|
||||
label="用户ID"
|
||||
width="80"
|
||||
>
|
||||
<el-table-column prop="userId" label="用户ID" width="80">
|
||||
</el-table-column>
|
||||
<el-table-column prop="avatar" label="头像">
|
||||
<template slot-scope="scope">
|
||||
<img
|
||||
v-if="scope.row.avatar && scope.row.avatar != ''"
|
||||
:src="scope.row.avatar"
|
||||
width="40"
|
||||
height="40"
|
||||
/>
|
||||
<img v-if="scope.row.avatar && scope.row.avatar != ''" :src="scope.row.avatar" width="40"
|
||||
height="40" />
|
||||
<span v-else>暂无图片</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="userName"
|
||||
label="昵称"
|
||||
width="120"
|
||||
>
|
||||
<el-table-column prop="userName" label="昵称" width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="姓名"
|
||||
width="120"
|
||||
>
|
||||
<el-table-column prop="name" label="姓名" width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
label="手机号"
|
||||
width="120"
|
||||
>
|
||||
<el-table-column prop="phone" label="手机号" width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="level"
|
||||
label="等级"
|
||||
width="120"
|
||||
>
|
||||
<el-table-column prop="level" label="等级" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.level == 1">一级</span>
|
||||
<span v-if="scope.row.level == 2">二级</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="agent"
|
||||
label="所属代理商"
|
||||
width="120"
|
||||
>
|
||||
<el-table-column prop="agent" label="所属代理商" width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="superiorFxy"
|
||||
label="上级分销"
|
||||
width="120"
|
||||
>
|
||||
<el-table-column prop="superiorFxy" label="上级分销" width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="remarks"
|
||||
label="备注"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="remarks" label="备注" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
label="申请时间"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="createTime" label="申请时间" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column label="到期时间" width="150">
|
||||
<template slot-scope="scope">
|
||||
{{ calcDqsj(scope.row) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" prop="status">
|
||||
<template slot-scope="scope">
|
||||
|
@ -140,148 +80,77 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="操作" prop="id" width="300" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleView(scope.row)"
|
||||
>查看
|
||||
<el-button size="mini" type="primary" style="margin: 5px" @click="handleView(scope.row)">查看
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.status == 0"
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleEdit(scope.row)"
|
||||
>修改
|
||||
<el-button v-if="scope.row.status == 0" size="mini" type="primary" style="margin: 5px"
|
||||
@click="handleEdit(scope.row)">修改
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.status == 0"
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除
|
||||
<el-button v-if="scope.row.status == 0" size="mini" type="primary" style="margin: 5px"
|
||||
@click="handleDelete(scope.row)">删除
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.status != 1"
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleApply(scope.row)"
|
||||
>授权
|
||||
<el-button v-if="scope.row.status != 1" size="mini" type="primary" style="margin: 5px"
|
||||
@click="handleApply(scope.row)">授权
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.status == 1 || scope.row.status == 2"
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleCancelApply(scope.row)"
|
||||
>取消授权
|
||||
<el-button v-if="scope.row.status == 1 || scope.row.status == 2" size="mini" type="primary"
|
||||
style="margin: 5px" @click="handleCancelApply(scope.row)">取消授权
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.status == 1"
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleAgent(scope.row)"
|
||||
>修改代理
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.status == 1 && scope.row.blFxyLevel == 1"
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleSuperiorFxyView(scope.row)"
|
||||
>修改上级分销
|
||||
<!-- <el-button v-if="scope.row.status == 1" size="mini" type="primary" style="margin: 5px"
|
||||
@click="handleAgent(scope.row)">修改代理
|
||||
</el-button> -->
|
||||
<el-button v-if="scope.row.status == 1 && scope.row.blFxyLevel == 1" size="mini" type="primary"
|
||||
style="margin: 5px" @click="handleSuperiorFxyView(scope.row)">修改上级分销
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px">
|
||||
<el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:page-sizes="[10, 20, 30, 40]"
|
||||
:page-size="limit"
|
||||
:current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper"
|
||||
:total="tableData.totalCount"
|
||||
>
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper" :total="tableData.totalCount">
|
||||
</el-pagination>
|
||||
</div>
|
||||
<!-- 查看 -->
|
||||
<el-dialog :title="titles" :visible.sync="dialogFormViewVisible" center @close="closeFxy">
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">用户ID:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userId"
|
||||
type="text"
|
||||
placeholder=""
|
||||
:disabled="true"
|
||||
>
|
||||
<el-input style="width: 50%" v-model="userId" type="text" placeholder="" :disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px; display: flex">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">头像:</span>
|
||||
<div
|
||||
style="
|
||||
<div style="
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
border: 1px dashed #c0ccda;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
line-height: 148px;
|
||||
"
|
||||
>
|
||||
<img
|
||||
:src="avatar"
|
||||
class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px"
|
||||
/>
|
||||
">
|
||||
<img :src="avatar" class="avatar" style="border-radius: 6px; width: 148px; height: 148px" />
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">昵称:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userName"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="userName" :disabled="true"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">姓名:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="name"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="name" :disabled="true"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">手机号:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="phone"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="phone" :disabled="true"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">等级:</span>
|
||||
<el-select
|
||||
clearable
|
||||
v-model="level"
|
||||
style="width: 150px;"
|
||||
:disabled="true">
|
||||
<el-select clearable v-model="level" style="width: 150px;" :disabled="true">
|
||||
<el-option :value="1" :key="1" label="一级"></el-option>
|
||||
<el-option :value="2" :key="2" label="二级"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right"
|
||||
>备注:</span
|
||||
>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="remarks"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="true"
|
||||
>
|
||||
<span style="width: 200px; display: inline-block; text-align: right">备注:</span>
|
||||
<el-input style="width: 50%" v-model="remarks" type="textarea" :rows="4" :disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
|
@ -293,13 +162,7 @@
|
|||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">审批意见:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="opinion"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-input style="width: 50%" v-model="opinion" type="textarea" :rows="4" :disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
@ -310,79 +173,44 @@
|
|||
<el-dialog :title="titles" :visible.sync="dialogFormVisible" center @close="closeFxy">
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">用户ID:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userId"
|
||||
type="text"
|
||||
placeholder="请选择用户"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-input style="width: 50%" v-model="userId" type="text" placeholder="请选择用户" :disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px; display: flex">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">头像:</span>
|
||||
<div
|
||||
style="
|
||||
<div style="
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
border: 1px dashed #c0ccda;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
line-height: 148px;
|
||||
"
|
||||
>
|
||||
<img
|
||||
:src="avatar"
|
||||
class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px"
|
||||
/>
|
||||
">
|
||||
<img :src="avatar" class="avatar" style="border-radius: 6px; width: 148px; height: 148px" />
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">昵称:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userName"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="userName" :disabled="true"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">姓名:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="name"
|
||||
placeholder="请输入姓名"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="name" placeholder="请输入姓名"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">手机号:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="phone"
|
||||
placeholder="请输入手机号"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="phone" placeholder="请输入手机号"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">等级:</span>
|
||||
<el-select
|
||||
clearable
|
||||
v-model="level"
|
||||
style="width: 150px;">
|
||||
<el-select clearable v-model="level" style="width: 150px;">
|
||||
<el-option :value="1" :key="1" label="一级"></el-option>
|
||||
<el-option :value="2" :key="2" label="二级"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right"
|
||||
>备注:</span
|
||||
>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="remarks"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
placeholder="请输入备注"
|
||||
>
|
||||
<span style="width: 200px; display: inline-block; text-align: right">备注:</span>
|
||||
<el-input style="width: 50%" v-model="remarks" type="textarea" :rows="4" placeholder="请输入备注">
|
||||
</el-input>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
@ -394,52 +222,27 @@
|
|||
<el-dialog title="上级分销员列表" :visible.sync="dialogFxyListFormVisible" width="60%" center>
|
||||
<div style="margin-left: 10px; display: inline-block;">
|
||||
<span>昵称:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入姓名"
|
||||
v-model="fxyName"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入姓名" v-model="fxyName"></el-input>
|
||||
</div>
|
||||
<div style="margin-left: 10px; display: inline-block">
|
||||
<span>手机号:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入手机号"
|
||||
v-model="fxyPhone"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入手机号" v-model="fxyPhone"></el-input>
|
||||
</div>
|
||||
<div style="margin-left: 10px; display: inline-block">
|
||||
<span>邀请码:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入邀请码"
|
||||
v-model="invitationCode"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入邀请码" v-model="invitationCode"></el-input>
|
||||
</div>
|
||||
<el-button
|
||||
style="margin-left: 10px;"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
<el-button style="margin-left: 10px;" size="mini" type="primary" icon="document"
|
||||
@click="handleSelectSuperiorFxy">查询
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleClearFxy">重置
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleClearFxy">重置
|
||||
</el-button>
|
||||
<el-table :data="fxyTableData.list" style="width: 100%">
|
||||
<el-table-column prop="userId" label="用户ID"></el-table-column>
|
||||
<el-table-column prop="avatar" label="头像">
|
||||
<template slot-scope="scope">
|
||||
<img
|
||||
v-if="scope.row.avatar && scope.row.avatar != ''"
|
||||
:src="scope.row.avatar"
|
||||
width="40"
|
||||
height="40"
|
||||
/>
|
||||
<img v-if="scope.row.avatar && scope.row.avatar != ''" :src="scope.row.avatar" width="40"
|
||||
height="40" />
|
||||
<span v-else>暂无图片</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -448,26 +251,16 @@
|
|||
<el-table-column prop="invitationCode" label="邀请码"></el-table-column>
|
||||
<el-table-column label="操作" prop="id">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
style="margin: 10px 0"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleAddFxy(scope.row)"
|
||||
>设置
|
||||
<el-button style="margin: 10px 0" size="mini" type="primary" icon="document"
|
||||
@click="handleAddFxy(scope.row)">设置
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px">
|
||||
<el-pagination
|
||||
@size-change="handleFxySizeChange"
|
||||
@current-change="handleFxyCurrentChange"
|
||||
:page-size="fxyLimit"
|
||||
:current-page="fxyPage"
|
||||
layout="total, prev, pager, next,jumper"
|
||||
:total="fxyTableData.totalCount"
|
||||
></el-pagination>
|
||||
<el-pagination @size-change="handleFxySizeChange" @current-change="handleFxyCurrentChange"
|
||||
:page-size="fxyLimit" :current-page="fxyPage" layout="total, prev, pager, next,jumper"
|
||||
:total="fxyTableData.totalCount"></el-pagination>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<用户列表<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
|
||||
|
@ -475,82 +268,44 @@
|
|||
<el-dialog :title="titles" :visible.sync="dialogApproveFormVisible" center @close="closeFxy">
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">用户ID:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userId"
|
||||
type="text"
|
||||
placeholder="请选择用户"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-input style="width: 50%" v-model="userId" type="text" placeholder="请选择用户" :disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px; display: flex">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">头像:</span>
|
||||
<div
|
||||
style="
|
||||
<div style="
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
border: 1px dashed #c0ccda;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
line-height: 148px;
|
||||
"
|
||||
>
|
||||
<img
|
||||
:src="avatar"
|
||||
class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px"
|
||||
/>
|
||||
">
|
||||
<img :src="avatar" class="avatar" style="border-radius: 6px; width: 148px; height: 148px" />
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">昵称:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userName"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="userName" :disabled="true"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">姓名:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="name"
|
||||
placeholder="请输入姓名"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="name" placeholder="请输入姓名" :disabled="true"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">手机号:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="phone"
|
||||
placeholder="请输入手机号"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="phone" placeholder="请输入手机号" :disabled="true"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">等级:</span>
|
||||
<el-select
|
||||
clearable
|
||||
v-model="level"
|
||||
style="width: 150px;"
|
||||
:disabled="true">
|
||||
<el-select clearable v-model="level" style="width: 150px;" :disabled="true">
|
||||
<el-option :value="1" :key="1" label="一级"></el-option>
|
||||
<el-option :value="2" :key="2" label="二级"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right"
|
||||
>备注:</span
|
||||
>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="remarks"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="true"
|
||||
>
|
||||
<span style="width: 200px; display: inline-block; text-align: right">备注:</span>
|
||||
<el-input style="width: 50%" v-model="remarks" type="textarea" :rows="4" :disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
|
@ -562,13 +317,7 @@
|
|||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">审批意见:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="opinion"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
placeholder="请输入审批意见"
|
||||
>
|
||||
<el-input style="width: 50%" v-model="opinion" type="textarea" :rows="4" placeholder="请输入审批意见">
|
||||
</el-input>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
@ -584,7 +333,7 @@
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
statusData:[{id:0,value:'待授权'},{id:1,value:'已授权'},{id:2,value:'已驳回'}],
|
||||
statusData: [{ id: 0, value: '待授权' }, { id: 1, value: '已授权' }, { id: 2, value: '已驳回' }],
|
||||
apiUrl: "",
|
||||
titles: "",
|
||||
tableDataLoading: false,
|
||||
|
@ -611,18 +360,64 @@ export default {
|
|||
fxyPhone: "",
|
||||
fxyPage: 1,
|
||||
fxyLimit: 10,
|
||||
fxyTableData:{},
|
||||
fxyTableData: {},
|
||||
invitationCode: "",
|
||||
configInfo: {},//fxmLimit 1永久 2 申请时间+fxmLimitDays天数内
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
showDictValue(data, datas){
|
||||
addDaysToDate(createTimeStr, daysToAdd) {
|
||||
// 将字符串解析为Date对象
|
||||
let date = new Date(createTimeStr.replace(' ', 'T'));
|
||||
|
||||
// 添加天数
|
||||
date.setDate(date.getDate() + daysToAdd);
|
||||
|
||||
// 格式化输出
|
||||
let year = date.getFullYear();
|
||||
let month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
let day = String(date.getDate()).padStart(2, '0');
|
||||
let hours = String(date.getHours()).padStart(2, '0');
|
||||
let minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
let seconds = String(date.getSeconds()).padStart(2, '0');
|
||||
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||
},
|
||||
calcDqsj(row) {
|
||||
if (this.configInfo.fxmLimit == 1) return '永久'
|
||||
else return this.addDaysToDate(row.createTime, this.configInfo.fxmLimitDays)
|
||||
},
|
||||
queryConfig() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/fxyConfig/info"),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
id: 1,
|
||||
}),
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
if (data.data != null) {
|
||||
resolve(data.data);
|
||||
} else {
|
||||
resolve({});
|
||||
}
|
||||
} else {
|
||||
resolve({});
|
||||
}
|
||||
}).catch(error => {
|
||||
resolve({});
|
||||
});
|
||||
});
|
||||
},
|
||||
showDictValue(data, datas) {
|
||||
const dictItem = datas.find(item => data === item.id);
|
||||
return dictItem ? dictItem.value : '';
|
||||
},
|
||||
// 获取服务包列表数据
|
||||
handleSelect() {
|
||||
async handleSelect() {
|
||||
this.tableDataLoading = true;
|
||||
this.configInfo = await this.queryConfig()
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/fxyApply/findPage"),
|
||||
method: "get",
|
||||
|
@ -635,7 +430,7 @@ export default {
|
|||
startTime: this.startTime,
|
||||
endTime: this.endTime,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data;
|
||||
console.log(this.tableData);
|
||||
|
@ -653,7 +448,7 @@ export default {
|
|||
// 重置
|
||||
handleClear() {
|
||||
this.name = "";
|
||||
this.phone ="";
|
||||
this.phone = "";
|
||||
this.status = "";
|
||||
this.startTime = "";
|
||||
this.endTime = "";
|
||||
|
@ -687,7 +482,7 @@ export default {
|
|||
this.dialogApproveFormVisible = true;
|
||||
},
|
||||
|
||||
handleView(row){
|
||||
handleView(row) {
|
||||
this.titles = "查看";
|
||||
this.id = row.id;
|
||||
this.userId = row.userId;
|
||||
|
@ -732,7 +527,7 @@ export default {
|
|||
this.dialogFormVisible = true;
|
||||
},
|
||||
|
||||
closeFxy(){
|
||||
closeFxy() {
|
||||
this.handleClear();
|
||||
},
|
||||
// 提交添加、修改
|
||||
|
@ -798,7 +593,7 @@ export default {
|
|||
level: this.level,
|
||||
remarks: this.remarks,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.dialogFormVisible = false;
|
||||
this.clearDatas();
|
||||
|
@ -821,7 +616,7 @@ export default {
|
|||
}
|
||||
});
|
||||
},
|
||||
handleDelete(row){
|
||||
handleDelete(row) {
|
||||
this.$confirm(`确定删除此条信息?`, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
|
@ -834,7 +629,7 @@ export default {
|
|||
params: this.$http.adornParams({
|
||||
id: id
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.clearDatas();
|
||||
this.$message({
|
||||
|
@ -855,7 +650,7 @@ export default {
|
|||
});
|
||||
}
|
||||
});
|
||||
}).catch(() => {});
|
||||
}).catch(() => { });
|
||||
},
|
||||
//授权
|
||||
handleApprove() {
|
||||
|
@ -889,7 +684,7 @@ export default {
|
|||
userId: this.userId,
|
||||
level: this.level,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.dialogApproveFormVisible = false;
|
||||
this.clearDatas();
|
||||
|
@ -913,7 +708,7 @@ export default {
|
|||
});
|
||||
},
|
||||
//取消授权
|
||||
handleCancelApply(row){
|
||||
handleCancelApply(row) {
|
||||
let id = row.id;
|
||||
let userId = row.userId;
|
||||
this.$http({
|
||||
|
@ -925,7 +720,7 @@ export default {
|
|||
status: 0,
|
||||
userId: userId
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.clearDatas();
|
||||
this.$message({
|
||||
|
@ -947,32 +742,32 @@ export default {
|
|||
}
|
||||
});
|
||||
},
|
||||
clearDatas(){
|
||||
this.apiUrl="";
|
||||
this.tableDataLoading= false;
|
||||
this.id= "";
|
||||
this.name= "";
|
||||
this.phone= "";
|
||||
this.level= "";
|
||||
this.status= "";
|
||||
this.startTime= "";
|
||||
this.endTime= "";
|
||||
this.page= 1;
|
||||
this.limit= 10;
|
||||
this.dialogFormVisible= false;
|
||||
this.dialogApproveFormVisible= false;
|
||||
clearDatas() {
|
||||
this.apiUrl = "";
|
||||
this.tableDataLoading = false;
|
||||
this.id = "";
|
||||
this.name = "";
|
||||
this.phone = "";
|
||||
this.level = "";
|
||||
this.status = "";
|
||||
this.startTime = "";
|
||||
this.endTime = "";
|
||||
this.page = 1;
|
||||
this.limit = 10;
|
||||
this.dialogFormVisible = false;
|
||||
this.dialogApproveFormVisible = false;
|
||||
},
|
||||
|
||||
closeDetail(){
|
||||
closeDetail() {
|
||||
this.handleSelect();
|
||||
},
|
||||
|
||||
handleSuperiorFxyView(row){
|
||||
handleSuperiorFxyView(row) {
|
||||
this.userId = row.userId,
|
||||
this.handleClearFxy();
|
||||
this.handleClearFxy();
|
||||
this.dialogFxyListFormVisible = true;
|
||||
},
|
||||
handleSelectSuperiorFxy(){
|
||||
handleSelectSuperiorFxy() {
|
||||
this.fxyTableDataLoading = true;
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/fxyApply/findSuperiorFxyPage"),
|
||||
|
@ -984,7 +779,7 @@ export default {
|
|||
phone: this.fxyPhone,
|
||||
invitationCode: this.invitationCode,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.fxyTableData = data.data;
|
||||
} else {
|
||||
|
@ -1021,7 +816,7 @@ export default {
|
|||
this.handleSelectSuperiorFxy();
|
||||
},
|
||||
|
||||
handleAddFxy(row){
|
||||
handleAddFxy(row) {
|
||||
let userId = this.userId;
|
||||
let invitationCode = row.invitationCode;
|
||||
this.$http({
|
||||
|
@ -1031,7 +826,7 @@ export default {
|
|||
userId: userId,
|
||||
invitationCode: invitationCode,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.clearDatas();
|
||||
this.$message({
|
||||
|
@ -1066,6 +861,7 @@ export default {
|
|||
.customWidth {
|
||||
width: 80% !important;
|
||||
}
|
||||
|
||||
.el-dialog--center {
|
||||
text-align: center;
|
||||
margin-top: 1vh !important;
|
||||
|
|
|
@ -1,151 +1,261 @@
|
|||
<template>
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="220px">
|
||||
<el-row>
|
||||
<el-col style="background: #ff00001f;line-height: 40px;padding-left: 10px;margin-bottom: 10px;">
|
||||
<span>分销员的佣金应该由该笔订单服务技师和该技师绑定的上级代理承担</span>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="启用分销员功能" prop="isOpen">
|
||||
<el-radio-group v-model="dataForm.isOpen">
|
||||
<el-radio :label="1">开启</el-radio>
|
||||
<el-radio :label="0">关闭</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="分销员审核" prop="isApprove">
|
||||
<el-radio-group v-model="dataForm.isApprove">
|
||||
<el-radio :label="1">开启</el-radio>
|
||||
<el-radio :label="0">关闭</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-form-item label="分销提成方式" prop="type">
|
||||
<el-radio-group v-model="dataForm.type">
|
||||
<el-radio :label="1">按人员来提成</el-radio>
|
||||
<el-radio :label="2">按服务项目来提成</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一级分销返佣(%)" prop="oneRate">
|
||||
<el-input-number v-model="dataForm.oneRate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="二级分销返佣(%)" prop="twoRate">
|
||||
<el-input-number v-model="dataForm.twoRate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="技师承担(%)" prop="artificerRate">
|
||||
<el-input-number v-model="dataForm.artificerRate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="技师所属代理承担(%)" prop="agentRate">
|
||||
<el-input-number v-model="dataForm.agentRate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-form-item label="邀请用户/下级返佣最高比例(%)" prop="mostRate">
|
||||
<el-input-number v-model="dataForm.mostRate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邀请用户推广海报背景图" prop="userImage">
|
||||
<div style="width: 148px;height: 148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
|
||||
<el-upload
|
||||
class="avatar-uploader"
|
||||
v-model="dataForm.userImage"
|
||||
:action="uploadUrl"
|
||||
:show-file-list="false"
|
||||
:on-success="handleUserImageSuccess"
|
||||
:on-progress="onUserImageProgress"
|
||||
>
|
||||
<img
|
||||
v-if="dataForm.userImage != ''"
|
||||
:src="dataForm.userImage"
|
||||
class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px"
|
||||
/>
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邀请分销员推广海报背景图" prop="fxyImage">
|
||||
<div style="width: 148px;height: 148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
|
||||
<el-upload
|
||||
class="avatar-uploader"
|
||||
v-model="dataForm.fxyImage"
|
||||
:action="uploadUrl"
|
||||
:show-file-list="false"
|
||||
:on-success="handleFxyImageSuccess"
|
||||
:on-progress="onFxyImageProgress"
|
||||
>
|
||||
<img
|
||||
v-if="dataForm.fxyImage != ''"
|
||||
:src="dataForm.fxyImage"
|
||||
class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px"
|
||||
/>
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col style="background: rgb(0,161,255,0.12);line-height: 40px;padding-left: 10px;margin-bottom: 10px;">
|
||||
<span>分销员付费申请设置</span>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一级分销员门槛费" prop="oneFee">
|
||||
<el-input-number v-model="dataForm.oneFee" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一级推荐提成(%)" prop="oneRecommendRate">
|
||||
<el-input-number v-model="dataForm.oneRecommendRate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="二级分销员门槛费" prop="twoFee">
|
||||
<el-input-number v-model="dataForm.twoFee" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="二级推荐提成(%)" prop="twoRecommendRate">
|
||||
<el-input-number v-model="dataForm.twoRecommendRate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col style="background: rgb(0,161,255,0.12);line-height: 40px;padding-left: 10px;margin-bottom: 10px;">
|
||||
<span>其他设置</span>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-form-item label="分销码时效性" prop="fxmLimit">
|
||||
<el-radio-group v-model="dataForm.fxmLimit">
|
||||
<el-radio :label="1">永久性</el-radio>
|
||||
<el-radio :label="2">限制时效天数</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="dataForm.fxmLimit == 2">
|
||||
<el-form-item label="" prop="fxmLimitDays">
|
||||
<el-input-number v-model="dataForm.fxmLimitDays" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-button type="primary" @click="dataFormSubmit()">提交</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
|
||||
label-width="250px">
|
||||
<el-row>
|
||||
<el-col style="background: #ff00001f;line-height: 40px;padding-left: 10px;margin-bottom: 10px;">
|
||||
<span>分销员的佣金应该由该笔订单服务技师和该技师绑定的上级代理承担</span>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="启用分销员功能" prop="isOpen">
|
||||
<label slot="label">
|
||||
启用分销员功能
|
||||
<el-tooltip effect="dark" content="关闭后用户端不展示“我是经纪人”功能,并不参与分佣计算。" placement="right">
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-radio-group v-model="dataForm.isOpen">
|
||||
<el-radio :label="1">开启</el-radio>
|
||||
<el-radio :label="0">关闭</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="分销员审核" prop="isApprove">
|
||||
<label slot="label">
|
||||
分销员审核
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
关闭后用户端不展示“申请经纪人”功能,并不参与分佣计算。
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-radio-group v-model="dataForm.isApprove">
|
||||
<el-radio :label="1">开启</el-radio>
|
||||
<el-radio :label="0">关闭</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-form-item label="分销提成方式" prop="type">
|
||||
<label slot="label">
|
||||
分销提成方式
|
||||
<!-- <el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
abc
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip> -->
|
||||
</label>
|
||||
<el-radio-group v-model="dataForm.type">
|
||||
<el-radio :label="1">按人员来提成</el-radio>
|
||||
<el-radio :label="2">按服务项目来提成</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一级分销返佣(%)" prop="oneRate">
|
||||
<label slot="label">
|
||||
一级分销返佣(%)
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
一级分销员分佣计算所使用的比例:当为0时取一级推荐提成比例。
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.oneRate" controls-position="right" :precision="2" :min="0"
|
||||
:step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="二级分销返佣(%)" prop="twoRate">
|
||||
<label slot="label">
|
||||
二级分销返佣(%)
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
二级分销员分佣计算所使用的比例:当为0时取二级推荐提成比例。
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.twoRate" controls-position="right" :precision="2" :min="0"
|
||||
:step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="技师承担(%)" prop="artificerRate">
|
||||
<label slot="label">
|
||||
技师承担(%)
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
一级分销员分佣费用从技师身上扣除的百分比
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.artificerRate" controls-position="right" :precision="2" :min="0"
|
||||
:step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="技师所属代理承担(%)" prop="agentRate">
|
||||
<label slot="label">
|
||||
技师所属代理承担(%)
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
二级分销员分佣费用从技师身上扣除的百分比
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.agentRate" controls-position="right" :precision="2" :min="0"
|
||||
:step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-form-item label="邀请用户/下级返佣最高比例(%)" prop="mostRate">
|
||||
<label slot="label">
|
||||
邀请用户/下级返佣最高比例(%)
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
二级分销员从一级分销员身上分润最大百分比,如此处设置10%,一级分销员分佣5元,二级分销员从一级分销员分润5元*10%。
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.mostRate" controls-position="right" :precision="2" :min="0"
|
||||
:step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邀请用户推广海报背景图" prop="userImage">
|
||||
<div
|
||||
style="width: 148px;height: 148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
|
||||
<el-upload class="avatar-uploader" v-model="dataForm.userImage" :action="uploadUrl"
|
||||
:show-file-list="false" :on-success="handleUserImageSuccess"
|
||||
:on-progress="onUserImageProgress">
|
||||
<img v-if="dataForm.userImage != ''" :src="dataForm.userImage" class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邀请分销员推广海报背景图" prop="fxyImage">
|
||||
<div
|
||||
style="width: 148px;height: 148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
|
||||
<el-upload class="avatar-uploader" v-model="dataForm.fxyImage" :action="uploadUrl"
|
||||
:show-file-list="false" :on-success="handleFxyImageSuccess"
|
||||
:on-progress="onFxyImageProgress">
|
||||
<img v-if="dataForm.fxyImage != ''" :src="dataForm.fxyImage" class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col style="background: rgb(0,161,255,0.12);line-height: 40px;padding-left: 10px;margin-bottom: 10px;">
|
||||
<span>分销员付费申请设置</span>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一级分销员门槛费" prop="oneFee">
|
||||
<label slot="label">
|
||||
一级分销员门槛费
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
申请一级分销员时所缴的手续费
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.oneFee" controls-position="right" :precision="2" :min="0"
|
||||
:step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一级推荐提成(%)" prop="oneRecommendRate">
|
||||
<label slot="label">
|
||||
一级推荐提成(%)
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
一级分销员推荐提成比例
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.oneRecommendRate" controls-position="right" :precision="2"
|
||||
:min="0" :step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="二级分销员门槛费" prop="twoFee">
|
||||
<label slot="label">
|
||||
二级分销员门槛费
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
申请二级分销员时所缴的手续费
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.twoFee" controls-position="right" :precision="2" :min="0"
|
||||
:step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="二级推荐提成(%)" prop="twoRecommendRate">
|
||||
<label slot="label">
|
||||
二级推荐提成(%)
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
二级分销员推荐提成比例
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-input-number v-model="dataForm.twoRecommendRate" controls-position="right" :precision="2"
|
||||
:min="0" :step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col style="background: rgb(0,161,255,0.12);line-height: 40px;padding-left: 10px;margin-bottom: 10px;">
|
||||
<span>其他设置</span>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-form-item label="分销码时效性" prop="fxmLimit">
|
||||
<label slot="label">
|
||||
分销码时效性
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template slot="content">
|
||||
永久性:分销员分佣无时间天数限制;<br/>
|
||||
限制时效天数:分销员有效分佣天数=注册开始时间+配置天数;
|
||||
</template>
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</label>
|
||||
<el-radio-group v-model="dataForm.fxmLimit">
|
||||
<el-radio :label="1">永久性</el-radio>
|
||||
<el-radio :label="2">限制时效天数</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="dataForm.fxmLimit == 2">
|
||||
<el-form-item label="" prop="fxmLimitDays">
|
||||
<el-input-number v-model="dataForm.fxmLimitDays" controls-position="right" :precision="2" :min="0"
|
||||
:step="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-button type="primary" @click="dataFormSubmit()">提交</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let defReqRule = (message = '不能为空') => { return { required: true, message, trigger: 'blur' } };
|
||||
import {serverPaths} from '@/utils/enumData'
|
||||
import { serverPaths } from '@/utils/enumData'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -173,21 +283,21 @@ export default {
|
|||
fxmLimitDays: "",
|
||||
},
|
||||
dataRule: {
|
||||
isOpen: [ defReqRule('请选择是否启用') ],
|
||||
isApprove: [ defReqRule('请选择是否审核') ],
|
||||
type: [ defReqRule('请选择提成方式') ],
|
||||
oneRate: [ defReqRule('请输入一级分销返佣!') ],
|
||||
twoRate: [ defReqRule('请输入二级分销返佣') ],
|
||||
artificerRate: [ defReqRule('请输入技师承担') ],
|
||||
agentRate: [ defReqRule('请代理商承担') ],
|
||||
mostRate: [ defReqRule('请输入返佣最高比例') ],
|
||||
userImage: [ defReqRule('请上传邀请用户推广海报背景图') ],
|
||||
fxyImage: [ defReqRule('请上传邀请分销员推广海报背景图') ],
|
||||
oneFee: [ defReqRule('请输入一级分销员门槛费') ],
|
||||
oneRecommendRate: [ defReqRule('请输入一级推荐提成') ],
|
||||
twoFee: [ defReqRule('请输入二级分销员门槛费') ],
|
||||
twoRecommendRate: [ defReqRule('请输入二级推荐提成') ],
|
||||
fxmLimit: [ defReqRule('请选择分销码时效性') ],
|
||||
isOpen: [defReqRule('请选择是否启用')],
|
||||
isApprove: [defReqRule('请选择是否审核')],
|
||||
type: [defReqRule('请选择提成方式')],
|
||||
oneRate: [defReqRule('请输入一级分销返佣!')],
|
||||
twoRate: [defReqRule('请输入二级分销返佣')],
|
||||
artificerRate: [defReqRule('请输入技师承担')],
|
||||
agentRate: [defReqRule('请代理商承担')],
|
||||
mostRate: [defReqRule('请输入返佣最高比例')],
|
||||
userImage: [defReqRule('请上传邀请用户推广海报背景图')],
|
||||
fxyImage: [defReqRule('请上传邀请分销员推广海报背景图')],
|
||||
oneFee: [defReqRule('请输入一级分销员门槛费')],
|
||||
oneRecommendRate: [defReqRule('请输入一级推荐提成')],
|
||||
twoFee: [defReqRule('请输入二级分销员门槛费')],
|
||||
twoRecommendRate: [defReqRule('请输入二级推荐提成')],
|
||||
fxmLimit: [defReqRule('请选择分销码时效性')],
|
||||
},
|
||||
}
|
||||
},
|
||||
|
@ -204,7 +314,7 @@ export default {
|
|||
}),
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
if(data.data!=null){
|
||||
if (data.data != null) {
|
||||
this.dataForm = data.data
|
||||
}
|
||||
}
|
||||
|
@ -226,7 +336,7 @@ export default {
|
|||
url: this.$http.adornUrl("commission/fxyConfig/save"),
|
||||
method: 'post',
|
||||
params: this.$http.adornParams(saveData)
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
|
|
|
@ -3,190 +3,107 @@
|
|||
<!-- 列表 -->
|
||||
<div style="margin-left:10px;display: inline-block">
|
||||
<span>姓名:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入姓名"
|
||||
v-model="name">
|
||||
<el-input style="width: 200px" placeholder="请输入姓名" v-model="name">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-left:10px;display: inline-block">
|
||||
<span>电话:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入电话"
|
||||
v-model="phone">
|
||||
<el-input style="width: 200px" placeholder="请输入电话" v-model="phone">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-left:10px;display: inline-block;">
|
||||
<span>入驻开始时间:</span>
|
||||
<el-date-picker style="width: 160px;" v-model="startTime" align="right"
|
||||
type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择开始时间">
|
||||
<el-date-picker style="width: 160px;" v-model="startTime" align="right" type="datetime" format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd" placeholder="选择开始时间">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div style="margin-left:10px;display: inline-block;">
|
||||
<span>入驻截止时间:</span>
|
||||
<el-date-picker style="width: 160px;" v-model="endTime" align="right" type="datetime"
|
||||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择截止时间">
|
||||
<el-date-picker style="width: 160px;" v-model="endTime" align="right" type="datetime" format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd" placeholder="选择截止时间">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleSelect"
|
||||
>查询
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleSelect">查询
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleClear"
|
||||
>重置
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleClear">重置
|
||||
</el-button>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list">
|
||||
<el-table-column
|
||||
prop="id"
|
||||
label="编号"
|
||||
width="80"
|
||||
>
|
||||
<el-table-column prop="id" label="编号" width="80">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="userId"
|
||||
label="用户ID"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="userId" label="用户ID">
|
||||
</el-table-column>
|
||||
<el-table-column prop="avatar" label="头像">
|
||||
<template slot-scope="scope">
|
||||
<img
|
||||
v-if="scope.row.avatar && scope.row.avatar != ''"
|
||||
:src="scope.row.avatar"
|
||||
width="40"
|
||||
height="40"
|
||||
/>
|
||||
<img v-if="scope.row.avatar && scope.row.avatar != ''" :src="scope.row.avatar" width="40"
|
||||
height="40" />
|
||||
<span v-else>暂无图片</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="userName"
|
||||
label="昵称"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column label="级别">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ calcLevel(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="姓名"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column label="提成比例">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ calcRate(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
label="手机号"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="userName" label="昵称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="approveTime"
|
||||
label="入驻时间"
|
||||
width="180"
|
||||
>
|
||||
<el-table-column prop="name" label="姓名">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="artificerCount"
|
||||
label="累计邀请技师"
|
||||
width="150"
|
||||
align="right"
|
||||
>
|
||||
<el-table-column prop="phone" label="手机号" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ordersCount"
|
||||
label="累计成交订单数量"
|
||||
width="150"
|
||||
align="right"
|
||||
>
|
||||
<el-table-column prop="approveTime" label="入驻时间" width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="money"
|
||||
label="累计获得佣金"
|
||||
width="150"
|
||||
align="right"
|
||||
>
|
||||
<el-table-column prop="artificerCount" label="累计邀请技师" align="right">
|
||||
</el-table-column>
|
||||
<el-table-column prop="ordersCount" label="累计成交订单数量" width="150" align="right">
|
||||
</el-table-column>
|
||||
<el-table-column prop="money" label="累计获得佣金" width="150" align="right">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #3E8EF7;cursor: pointer;" @click="moneyDetail(scope.row)">{{ scope.row.money }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" prop="id" width="150" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleInvitationView(scope.row)"
|
||||
>邀请的技师
|
||||
<el-button size="mini" type="primary" style="margin: 5px"
|
||||
@click="handleInvitationView(scope.row)">邀请的技师
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px">
|
||||
<el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:page-sizes="[10, 20, 30, 40]"
|
||||
:page-size="limit"
|
||||
:current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper"
|
||||
:total="tableData.totalCount"
|
||||
>
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper" :total="tableData.totalCount">
|
||||
</el-pagination>
|
||||
</div>
|
||||
<!-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 用户列表弹框 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<-->
|
||||
<el-dialog title="邀请技师列表" :visible.sync="dialogUserListFormVisible" width="60%" center @close="closeUserList">
|
||||
<div style="margin-left: 10px; display: inline-block;">
|
||||
<span>姓名:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入姓名"
|
||||
v-model="userName"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入姓名" v-model="userName"></el-input>
|
||||
</div>
|
||||
<div style="margin-left: 10px; display: inline-block">
|
||||
<span>手机号:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入手机号"
|
||||
v-model="userPhone"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入手机号" v-model="userPhone"></el-input>
|
||||
</div>
|
||||
<el-button
|
||||
style="margin-left: 10px;"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
<el-button style="margin-left: 10px;" size="mini" type="primary" icon="document"
|
||||
@click="handleSelectUsers">查询
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleClearUsers">重置
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleClearUsers">重置
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document"
|
||||
@click="showArtificerView">技师列表
|
||||
</el-button>
|
||||
<el-table :data="userTableData.list" style="width: 100%">
|
||||
<el-table-column prop="userId" label="用户ID"></el-table-column>
|
||||
<el-table-column prop="avatar" label="头像">
|
||||
<template slot-scope="scope">
|
||||
<img
|
||||
v-if="scope.row.avatar && scope.row.avatar != ''"
|
||||
:src="scope.row.avatar"
|
||||
width="40"
|
||||
height="40"
|
||||
/>
|
||||
<img v-if="scope.row.avatar && scope.row.avatar != ''" :src="scope.row.avatar" width="40"
|
||||
height="40" />
|
||||
<span v-else>暂无图片</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -194,72 +111,43 @@
|
|||
<el-table-column prop="phone" label="手机号"></el-table-column>
|
||||
<el-table-column label="操作" prop="id">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
style="margin: 10px 0"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleCancelInvitation(scope.row)"
|
||||
>取消邀请
|
||||
<el-button style="margin: 10px 0" size="mini" type="primary" icon="document"
|
||||
@click="handleCancelInvitation(scope.row)">取消邀请
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px">
|
||||
<el-pagination
|
||||
@size-change="handleUserSizeChange"
|
||||
@current-change="handleUserCurrentChange"
|
||||
:page-size="userLimit"
|
||||
:current-page="userPage"
|
||||
layout="total, prev, pager, next,jumper"
|
||||
:total="userTableData.totalCount"
|
||||
></el-pagination>
|
||||
<el-pagination @size-change="handleUserSizeChange" @current-change="handleUserCurrentChange"
|
||||
:page-size="userLimit" :current-page="userPage" layout="total, prev, pager, next,jumper"
|
||||
:total="userTableData.totalCount"></el-pagination>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<用户列表<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
|
||||
|
||||
<!-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 技师列表弹框 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<-->
|
||||
<el-dialog title="技师列表" :visible.sync="dialogArtificerListFormVisible" width="60%" center @close="closeInvitation">
|
||||
<el-dialog title="技师列表" :visible.sync="dialogArtificerListFormVisible" width="60%" center
|
||||
@close="closeInvitation">
|
||||
<div style="margin-left: 10px; display: inline-block;">
|
||||
<span>姓名:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入姓名"
|
||||
v-model="artificerName"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入姓名" v-model="artificerName"></el-input>
|
||||
</div>
|
||||
<div style="margin-left: 10px; display: inline-block">
|
||||
<span>手机号:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入手机号"
|
||||
v-model="artificerPhone"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入手机号" v-model="artificerPhone"></el-input>
|
||||
</div>
|
||||
<el-button
|
||||
style="margin-left: 10px;"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
<el-button style="margin-left: 10px;" size="mini" type="primary" icon="document"
|
||||
@click="handleSelectArtificer">查询
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document"
|
||||
@click="handleClearArtificers">重置
|
||||
</el-button>
|
||||
<el-table :data="artificerTableData.list" style="width: 100%">
|
||||
<el-table-column prop="userId" label="用户ID"></el-table-column>
|
||||
<el-table-column prop="avatar" label="头像">
|
||||
<template slot-scope="scope">
|
||||
<img
|
||||
v-if="scope.row.avatar && scope.row.avatar != ''"
|
||||
:src="scope.row.avatar"
|
||||
width="40"
|
||||
height="40"
|
||||
/>
|
||||
<img v-if="scope.row.avatar && scope.row.avatar != ''" :src="scope.row.avatar" width="40"
|
||||
height="40" />
|
||||
<span v-else>暂无图片</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -267,30 +155,33 @@
|
|||
<el-table-column prop="phone" label="手机号"></el-table-column>
|
||||
<el-table-column label="操作" prop="id">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
style="margin: 10px 0"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleInvitation(scope.row)"
|
||||
>邀请
|
||||
<el-button style="margin: 10px 0" size="mini" type="primary" icon="document"
|
||||
@click="handleInvitation(scope.row)">邀请
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px">
|
||||
<el-pagination
|
||||
@size-change="handleArtificerSizeChange"
|
||||
@current-change="handleArtificerCurrentChange"
|
||||
:page-size="artificerLimit"
|
||||
:current-page="artificerPage"
|
||||
layout="total, prev, pager, next,jumper"
|
||||
:total="artificerTableData.totalCount"
|
||||
></el-pagination>
|
||||
<el-pagination @size-change="handleArtificerSizeChange" @current-change="handleArtificerCurrentChange"
|
||||
:page-size="artificerLimit" :current-page="artificerPage" layout="total, prev, pager, next,jumper"
|
||||
:total="artificerTableData.totalCount"></el-pagination>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<技师列表<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
|
||||
<!-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 佣金详细信息弹框 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<-->
|
||||
<el-dialog title="佣金详细信息列表" :visible.sync="yjxxVisible" width="60%" center @close="yjxxVisible = false">
|
||||
<el-table :data="moneyDetailData.list" style="width: 100%">
|
||||
<el-table-column prop="createTime" label="日期"></el-table-column>
|
||||
<el-table-column prop="money" label="金额"></el-table-column>
|
||||
<el-table-column prop="title" label="详情"></el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px">
|
||||
<el-pagination @size-change="handleyjxxSizeChange" @current-change="handleyjxxCurrentChange"
|
||||
:page-size="yjxxLimit" :current-page="yjxxPage" layout="total, prev, pager, next,jumper"
|
||||
:total="moneyDetailData.totalCount"></el-pagination>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<技师列表<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -318,18 +209,59 @@ export default {
|
|||
userPhone: "",
|
||||
userPage: 1,
|
||||
userLimit: 10,
|
||||
userTableData:{},
|
||||
userTableData: {},
|
||||
dialogArtificerListFormVisible: false,
|
||||
artificerTableDataLoading: false,
|
||||
artificerName: "",
|
||||
artificerPhone: "",
|
||||
artificerPage: 1,
|
||||
artificerLimit: 10,
|
||||
artificerTableData:{},
|
||||
artificerTableData: {},
|
||||
jsjb: [],//技师级别 判断大于minNumber 小于等于maxNumber 级别level 比例rate(一个数没有单位)
|
||||
moneyDetailData: [],
|
||||
yjxxVisible:false,
|
||||
yjxxPage:1,
|
||||
yjxxLimit:10,
|
||||
yjxxUserId:''
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
showDictValue(data, datas){
|
||||
calcLevel(row) {
|
||||
let result = []
|
||||
if (row.artificerCount == 0) {
|
||||
result = this.jsjb.filter(item => { return item.minNumber == 0 })
|
||||
} else {
|
||||
result = this.jsjb.filter(item => { return row.artificerCount > item.minNumber && row.artificerCount <= item.maxNumber })
|
||||
}
|
||||
return result[0] ? result[0].level : ''
|
||||
},
|
||||
calcRate(row) {
|
||||
let result = []
|
||||
if (row.artificerCount == 0) {
|
||||
result = this.jsjb.filter(item => { return item.minNumber == 0 })
|
||||
} else {
|
||||
result = this.jsjb.filter(item => { return row.artificerCount > item.minNumber && row.artificerCount <= item.maxNumber })
|
||||
}
|
||||
return result[0] ? result[0].rate + '%' : ''
|
||||
},
|
||||
queryJsjb() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/jjrConfigLevel/findList"),
|
||||
method: "get",
|
||||
params: this.$http.adornParams({}),
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
resolve(data.data);
|
||||
} else {
|
||||
reject([]);
|
||||
}
|
||||
}).catch(error => {
|
||||
reject([]);
|
||||
});
|
||||
});
|
||||
},
|
||||
showDictValue(data, datas) {
|
||||
const dictItem = datas.find(item => data === item.id);
|
||||
return dictItem ? dictItem.value : '';
|
||||
},
|
||||
|
@ -347,7 +279,7 @@ export default {
|
|||
startTime: this.startTime,
|
||||
endTime: this.endTime,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data;
|
||||
console.log(this.tableData);
|
||||
|
@ -365,7 +297,7 @@ export default {
|
|||
// 重置
|
||||
handleClear() {
|
||||
this.name = "";
|
||||
this.phone ="";
|
||||
this.phone = "";
|
||||
this.startTime = "";
|
||||
this.endTime = "";
|
||||
this.page = 1;
|
||||
|
@ -384,16 +316,35 @@ export default {
|
|||
this.handleSelect();
|
||||
},
|
||||
|
||||
closeUserList(){
|
||||
closeUserList() {
|
||||
this.handleClear();
|
||||
},
|
||||
|
||||
handleInvitationView(row){
|
||||
handleInvitationView(row) {
|
||||
this.invitationCode = row.invitationCode;
|
||||
this.handleSelectUsers();
|
||||
this.dialogUserListFormVisible = true;
|
||||
},
|
||||
handleSelectUsers(){
|
||||
moneyDetail(row) {
|
||||
if(row){
|
||||
this.yjxxPage = 1
|
||||
this.yjxxLimit = 10
|
||||
this.yjxxUserId = row.userId
|
||||
}
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/jjrData/moneyDetail"),
|
||||
method: "get",
|
||||
params: this.$http.adornParams({
|
||||
page: this.yjxxPage,
|
||||
limit: this.yjxxLimit,
|
||||
userId: this.yjxxUserId
|
||||
}),
|
||||
}).then(({ data }) => {
|
||||
this.moneyDetailData = data.data
|
||||
this.yjxxVisible = true
|
||||
})
|
||||
},
|
||||
handleSelectUsers() {
|
||||
this.userTableDataLoading = true;
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/jjrData/invitationArtificerPage"),
|
||||
|
@ -405,7 +356,7 @@ export default {
|
|||
name: this.userName,
|
||||
phone: this.userPhone
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.userTableData = data.data;
|
||||
} else {
|
||||
|
@ -433,7 +384,7 @@ export default {
|
|||
},
|
||||
|
||||
//取消邀请
|
||||
handleCancelInvitation(row){
|
||||
handleCancelInvitation(row) {
|
||||
let userId = row.userId;
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/jjrData/cancelInvitation"),
|
||||
|
@ -441,7 +392,7 @@ export default {
|
|||
params: this.$http.adornParams({
|
||||
artificerUserId: userId,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: "取消成功",
|
||||
|
@ -472,12 +423,12 @@ export default {
|
|||
this.handleSelectUsers();
|
||||
},
|
||||
|
||||
showArtificerView(){
|
||||
showArtificerView() {
|
||||
this.handleSelectArtificer();
|
||||
this.dialogArtificerListFormVisible = true;
|
||||
},
|
||||
|
||||
handleSelectArtificer(){
|
||||
handleSelectArtificer() {
|
||||
this.artificerTableDataLoading = true;
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/jjrData/artificerPage"),
|
||||
|
@ -488,7 +439,7 @@ export default {
|
|||
name: this.artificerName,
|
||||
phone: this.artificerPhone
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.artificerTableData = data.data;
|
||||
} else {
|
||||
|
@ -502,7 +453,17 @@ export default {
|
|||
this.artificerTableDataLoading = false;
|
||||
});
|
||||
},
|
||||
//分页
|
||||
handleyjxxSizeChange(val) {
|
||||
this.yjxxLimit = val;
|
||||
this.moneyDetail();
|
||||
},
|
||||
|
||||
//翻页
|
||||
handleyjxxCurrentChange(val) {
|
||||
this.yjxxPage = val;
|
||||
this.moneyDetail();
|
||||
},
|
||||
//分页
|
||||
handleArtificerSizeChange(val) {
|
||||
this.artificerLimit = val;
|
||||
|
@ -524,7 +485,7 @@ export default {
|
|||
this.handleSelectArtificer();
|
||||
},
|
||||
|
||||
handleInvitation(row){
|
||||
handleInvitation(row) {
|
||||
let userId = row.userId;
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/jjrData/modifyJjr"),
|
||||
|
@ -533,7 +494,7 @@ export default {
|
|||
artificerUserId: userId,
|
||||
invitationCode: this.invitationCode,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: "邀请成功",
|
||||
|
@ -555,12 +516,14 @@ export default {
|
|||
});
|
||||
},
|
||||
|
||||
closeInvitation(){
|
||||
closeInvitation() {
|
||||
this.handleClearUsers();
|
||||
},
|
||||
|
||||
},
|
||||
mounted() {
|
||||
async mounted() {
|
||||
let a = await this.queryJsjb()
|
||||
if (a) this.jsjb = a
|
||||
this.handleSelect();
|
||||
},
|
||||
};
|
||||
|
@ -570,106 +533,107 @@ export default {
|
|||
.customWidth {
|
||||
width: 80% !important;
|
||||
}
|
||||
|
||||
.el-dialog--center {
|
||||
text-align: center;
|
||||
margin-top: 1vh !important;
|
||||
margin-top: 1vh !important;
|
||||
}
|
||||
|
||||
.el-tooltip__popper {
|
||||
width: 200px;
|
||||
padding: 10px;
|
||||
color: #000 !important;
|
||||
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.4);
|
||||
background-color: #fff !important;
|
||||
width: 200px;
|
||||
padding: 10px;
|
||||
color: #000 !important;
|
||||
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.4);
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
.adver_main.box a {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 150px;
|
||||
line-height: 150px;
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 150px;
|
||||
line-height: 150px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.bannerManin span {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.bannerManin img {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.bannerbtn a {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
color: #3e8ef7 !important;
|
||||
text-decoration: none;
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
color: #3e8ef7 !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.imgs {
|
||||
position: relative;
|
||||
border-radius: 6px;
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
margin-right: 10px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
border-radius: 6px;
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
margin-right: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.dels {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dels .el-icon-delete {
|
||||
line-height: 148px;
|
||||
padding-left: 58px;
|
||||
font-size: 25px;
|
||||
color: #fff;
|
||||
line-height: 148px;
|
||||
padding-left: 58px;
|
||||
font-size: 25px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.imgs:hover .dels {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
display: block;
|
||||
opacity: 0.5;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
display: block;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.bqList {
|
||||
padding: 4px 14px;
|
||||
margin: 4px;
|
||||
border: 1px solid #efefef;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
border-radius: 4px;
|
||||
margin-right: 15px;
|
||||
padding: 4px 14px;
|
||||
margin: 4px;
|
||||
border: 1px solid #efefef;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
border-radius: 4px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.delss {
|
||||
display: none;
|
||||
position: relative;
|
||||
display: none;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.delss .el-icon-delete {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.bqList:hover .delss {
|
||||
display: initial;
|
||||
opacity: 0.5;
|
||||
display: initial;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.tj {
|
||||
padding: 6px !important;
|
||||
margin: 4px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
padding: 6px !important;
|
||||
margin: 4px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -3,224 +3,116 @@
|
|||
<!-- 列表 -->
|
||||
<div style="margin-left:10px;display: inline-block">
|
||||
<span>编码:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入编码"
|
||||
v-model="qdsCode">
|
||||
<el-input style="width: 200px" placeholder="请输入编码" v-model="qdsCode">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-left:10px;display: inline-block">
|
||||
<span>渠道商:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入渠道商"
|
||||
v-model="name">
|
||||
<el-input style="width: 200px" placeholder="请输入渠道商" v-model="name">
|
||||
</el-input>
|
||||
</div>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleSelect"
|
||||
>查询
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleSelect">查询
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleClear"
|
||||
>重置
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleClear">重置
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleEdit(0)"
|
||||
>新增渠道码
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleEdit(0)">新增渠道码
|
||||
</el-button>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list">
|
||||
<el-table-column
|
||||
prop="id"
|
||||
label="序号"
|
||||
width="80"
|
||||
>
|
||||
<el-table-column prop="id" label="序号" width="80">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="渠道码名称"
|
||||
width="220"
|
||||
>
|
||||
<el-table-column prop="name" label="渠道码名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="code"
|
||||
label="编码"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="code" label="编码" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column prop="lm" label="所属类目">
|
||||
<template slot-scope="scope">
|
||||
{{ showDictValue(scope.row.lm, lmData) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="qdsName"
|
||||
label="渠道商"
|
||||
width="200"
|
||||
>
|
||||
<el-table-column prop="qdsName" label="渠道商" width="200">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="userName"
|
||||
label="绑定人员"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="userName" label="绑定人员">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="rate"
|
||||
label="渠道分成"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="rate" label="渠道分成">
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.rate}}%</span>
|
||||
<span>{{ scope.row.rate }}%</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="codeImage" label="渠道码">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top-start" title="" trigger="hover">
|
||||
<img style="width: 50px; height: 50px;margin: 3px;" :src="scope.row.codeImage" alt=""
|
||||
slot="reference">
|
||||
slot="reference">
|
||||
<img style="width: 300px;height:auto" :src="scope.row.codeImage" alt="">
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
label="创建时间"
|
||||
width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" prop="id" width="360" fixed="right">
|
||||
<el-table-column label="推广时间" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleEdit(scope.row)"
|
||||
>编辑
|
||||
<span>{{ scope.row.startDate }} ~ {{ scope.row.endDate }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" prop="id" >
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" style="margin: 5px" @click="handleEdit(scope.row)">编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除
|
||||
<el-button size="mini" type="primary" style="margin: 5px" @click="handleDelete(scope.row)">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px">
|
||||
<el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:page-sizes="[10, 20, 30, 40]"
|
||||
:page-size="limit"
|
||||
:current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper"
|
||||
:total="tableData.totalCount"
|
||||
>
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper" :total="tableData.totalCount">
|
||||
</el-pagination>
|
||||
</div>
|
||||
<!-- 添加、修改 -->
|
||||
<el-dialog :title="titles" :visible.sync="dialogFormVisible" center @close="closeDialog">
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">渠道码名称:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="name"
|
||||
placeholder="请输入渠道码名称"
|
||||
></el-input>
|
||||
<el-input style="width: 50%" v-model="name" placeholder="请输入渠道码名称"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">所属类目:</span>
|
||||
<el-select clearable v-model="lm" style="width: 50%">
|
||||
<el-option
|
||||
v-for="item in lmData"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
>
|
||||
<el-option v-for="item in lmData" :key="item.id" :label="item.name" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">渠道分成%:</span>
|
||||
<el-input-number v-model="rate" controls-position="right" :precision="2" :min="0" :step="1" placeholder="请输入渠道分成(%)"/>
|
||||
<el-input-number v-model="rate" controls-position="right" :precision="2" :min="0" :step="1"
|
||||
placeholder="请输入渠道分成(%)" />
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">绑定人员:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userId"
|
||||
type="text"
|
||||
placeholder="请选择用户"
|
||||
:disabled="true"
|
||||
v-show="false"
|
||||
>
|
||||
<el-input style="width: 50%" v-model="userId" type="text" placeholder="请选择用户" :disabled="true"
|
||||
v-show="false">
|
||||
</el-input>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userName"
|
||||
type="text"
|
||||
placeholder="请选择用户"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-input style="width: 50%" v-model="userName" type="text" placeholder="请选择用户" :disabled="true">
|
||||
</el-input>
|
||||
<el-button
|
||||
style="margin: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="showUsersView()"
|
||||
>用户列表
|
||||
<el-button style="margin: 10px" size="mini" type="primary" icon="document" @click="showUsersView()">用户列表
|
||||
</el-button>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">广告投放成本:</span>
|
||||
<el-input-number v-model="cost" controls-position="right" :precision="2" :min="0" :step="1" placeholder="请输入广告投放成本(元)"/>
|
||||
<el-input-number v-model="cost" controls-position="right" :precision="2" :min="0" :step="1"
|
||||
placeholder="请输入广告投放成本(元)" />
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">推广时间段:</span>
|
||||
<el-date-picker
|
||||
v-model="tgDate"
|
||||
type="daterange"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">推广时间段:</span>
|
||||
<el-date-picker v-model="tgDate" type="daterange" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right">投放地点:</span>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="address"
|
||||
placeholder="请输入投放地点"
|
||||
></el-input>
|
||||
<span style="width: 200px; display: inline-block; text-align: right">投放地点:</span>
|
||||
<el-input style="width: 50%" v-model="address" placeholder="请输入投放地点"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right"
|
||||
>备注:</span
|
||||
>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="remarks"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
placeholder="请输入备注"
|
||||
>
|
||||
<span style="width: 200px; display: inline-block; text-align: right">备注:</span>
|
||||
<el-input style="width: 50%" v-model="remarks" type="textarea" :rows="4" placeholder="请输入备注">
|
||||
</el-input>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
@ -232,44 +124,23 @@
|
|||
<el-dialog title="用户列表" :visible.sync="dialogUserListFormVisible" width="60%" center>
|
||||
<div style="margin-left: 10px; display: inline-block;">
|
||||
<span>昵称:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入昵称"
|
||||
v-model="userName"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入昵称" v-model="userName"></el-input>
|
||||
</div>
|
||||
<div style="margin-left: 10px; display: inline-block">
|
||||
<span>手机号:</span>
|
||||
<el-input
|
||||
style="width: 200px"
|
||||
placeholder="请输入手机号"
|
||||
v-model="phone"
|
||||
></el-input>
|
||||
<el-input style="width: 200px" placeholder="请输入手机号" v-model="phone"></el-input>
|
||||
</div>
|
||||
<el-button
|
||||
style="margin-left: 10px;"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
<el-button style="margin-left: 10px;" size="mini" type="primary" icon="document"
|
||||
@click="handleSelectUsers">查询
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleClearUsers">重置
|
||||
<el-button style="margin-left: 10px" size="mini" type="primary" icon="document" @click="handleClearUsers">重置
|
||||
</el-button>
|
||||
<el-table :data="userTableData.list" style="width: 100%">
|
||||
<el-table-column prop="userId" label="用户ID"></el-table-column>
|
||||
<el-table-column prop="avatar" label="头像">
|
||||
<template slot-scope="scope">
|
||||
<img
|
||||
v-if="scope.row.avatar && scope.row.avatar != ''"
|
||||
:src="scope.row.avatar"
|
||||
width="40"
|
||||
height="40"
|
||||
/>
|
||||
<img v-if="scope.row.avatar && scope.row.avatar != ''" :src="scope.row.avatar" width="40"
|
||||
height="40" />
|
||||
<span v-else>暂无图片</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -278,26 +149,16 @@
|
|||
<el-table-column prop="qdsName" label="渠道商名称"></el-table-column>
|
||||
<el-table-column label="操作" prop="id">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
style="margin: 10px 0"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="handleAddUser(scope.row)"
|
||||
>添加
|
||||
<el-button style="margin: 10px 0" size="mini" type="primary" icon="document"
|
||||
@click="handleAddUser(scope.row)">添加
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px">
|
||||
<el-pagination
|
||||
@size-change="handleUserSizeChange"
|
||||
@current-change="handleUserCurrentChange"
|
||||
:page-size="userLimit"
|
||||
:current-page="userPage"
|
||||
layout="total, prev, pager, next,jumper"
|
||||
:total="userTableData.totalCount"
|
||||
></el-pagination>
|
||||
<el-pagination @size-change="handleUserSizeChange" @current-change="handleUserCurrentChange"
|
||||
:page-size="userLimit" :current-page="userPage" layout="total, prev, pager, next,jumper"
|
||||
:total="userTableData.totalCount"></el-pagination>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
@ -336,11 +197,11 @@ export default {
|
|||
userTableDataLoading: false,
|
||||
userPage: 1,
|
||||
userLimit: 10,
|
||||
userTableData:{},
|
||||
userTableData: {},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
showDictValue(data, datas){
|
||||
showDictValue(data, datas) {
|
||||
const dictItem = datas.find(item => data === item.id);
|
||||
return dictItem ? dictItem.name : '';
|
||||
},
|
||||
|
@ -350,7 +211,7 @@ export default {
|
|||
url: this.$http.adornUrl("commission/qdsCode/lmList"),
|
||||
method: "get",
|
||||
params: this.$http.adornParams({}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.lmData = data.data;
|
||||
} else {
|
||||
|
@ -375,7 +236,7 @@ export default {
|
|||
name: this.name,
|
||||
code: this.qdsCode,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data;
|
||||
} else {
|
||||
|
@ -392,7 +253,7 @@ export default {
|
|||
// 重置
|
||||
handleClear() {
|
||||
this.name = "";
|
||||
this.qdsCode ="";
|
||||
this.qdsCode = "";
|
||||
this.page = 1;
|
||||
this.handleSelect();
|
||||
},
|
||||
|
@ -422,7 +283,7 @@ export default {
|
|||
this.cost = row.cost;
|
||||
this.startDate = row.startDate;
|
||||
this.endDate = row.endDate;
|
||||
this.tgDate = [row.startDate,row.endDate];
|
||||
this.tgDate = [row.startDate, row.endDate];
|
||||
this.address = row.address;
|
||||
this.remarks = row.remarks;
|
||||
} else {
|
||||
|
@ -436,14 +297,14 @@ export default {
|
|||
this.cost = 0;
|
||||
this.startDate = "";
|
||||
this.endDate = "";
|
||||
this.tgDate = [this.getCurrentDate(),this.getCurrentDate()];
|
||||
this.tgDate = [this.getCurrentDate(), this.getCurrentDate()];
|
||||
this.address = "";
|
||||
this.remarks = "";
|
||||
}
|
||||
this.dialogFormVisible = true;
|
||||
},
|
||||
|
||||
closeDialog(){
|
||||
closeDialog() {
|
||||
this.handleClear();
|
||||
},
|
||||
// 提交
|
||||
|
@ -522,7 +383,7 @@ export default {
|
|||
lm: this.lm,
|
||||
remarks: this.remarks,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.dialogFormVisible = false;
|
||||
this.closeDialog();
|
||||
|
@ -545,7 +406,7 @@ export default {
|
|||
}
|
||||
});
|
||||
},
|
||||
handleDelete(row){
|
||||
handleDelete(row) {
|
||||
this.$confirm(`确定删除此条信息?`, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
|
@ -558,7 +419,7 @@ export default {
|
|||
params: this.$http.adornParams({
|
||||
id: id
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.closeDialog();
|
||||
this.$message({
|
||||
|
@ -579,14 +440,14 @@ export default {
|
|||
});
|
||||
}
|
||||
});
|
||||
}).catch(() => {});
|
||||
}).catch(() => { });
|
||||
},
|
||||
|
||||
showUsersView(){
|
||||
showUsersView() {
|
||||
this.handleSelectUsers();
|
||||
this.dialogUserListFormVisible = true;
|
||||
},
|
||||
handleSelectUsers(){
|
||||
handleSelectUsers() {
|
||||
this.userTableDataLoading = true;
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("commission/qdsCode/findUserPage"),
|
||||
|
@ -597,7 +458,7 @@ export default {
|
|||
userName: this.userName,
|
||||
phone: this.phone,
|
||||
}),
|
||||
}).then(({data}) => {
|
||||
}).then(({ data }) => {
|
||||
if (data.code == 0) {
|
||||
this.userTableData = data.data;
|
||||
} else {
|
||||
|
@ -633,12 +494,12 @@ export default {
|
|||
this.handleSelectUsers();
|
||||
},
|
||||
|
||||
handleAddUser(row){
|
||||
handleAddUser(row) {
|
||||
this.userId = row.userId;
|
||||
this.userName = row.userName;
|
||||
this.dialogUserListFormVisible = false;
|
||||
},
|
||||
getCurrentDate(){
|
||||
getCurrentDate() {
|
||||
const currentDate = new Date();
|
||||
const year = currentDate.getFullYear();
|
||||
const month = currentDate.getMonth() + 1; // 月份从0开始,需要加1
|
||||
|
@ -657,106 +518,107 @@ export default {
|
|||
.customWidth {
|
||||
width: 80% !important;
|
||||
}
|
||||
|
||||
.el-dialog--center {
|
||||
text-align: center;
|
||||
margin-top: 1vh !important;
|
||||
margin-top: 1vh !important;
|
||||
}
|
||||
|
||||
.el-tooltip__popper {
|
||||
width: 200px;
|
||||
padding: 10px;
|
||||
color: #000 !important;
|
||||
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.4);
|
||||
background-color: #fff !important;
|
||||
width: 200px;
|
||||
padding: 10px;
|
||||
color: #000 !important;
|
||||
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.4);
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
.adver_main.box a {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 150px;
|
||||
line-height: 150px;
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 150px;
|
||||
line-height: 150px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.bannerManin span {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.bannerManin img {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.bannerbtn a {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
color: #3e8ef7 !important;
|
||||
text-decoration: none;
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
color: #3e8ef7 !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.imgs {
|
||||
position: relative;
|
||||
border-radius: 6px;
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
margin-right: 10px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
border-radius: 6px;
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
margin-right: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.dels {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dels .el-icon-delete {
|
||||
line-height: 148px;
|
||||
padding-left: 58px;
|
||||
font-size: 25px;
|
||||
color: #fff;
|
||||
line-height: 148px;
|
||||
padding-left: 58px;
|
||||
font-size: 25px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.imgs:hover .dels {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
display: block;
|
||||
opacity: 0.5;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
display: block;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.bqList {
|
||||
padding: 4px 14px;
|
||||
margin: 4px;
|
||||
border: 1px solid #efefef;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
border-radius: 4px;
|
||||
margin-right: 15px;
|
||||
padding: 4px 14px;
|
||||
margin: 4px;
|
||||
border: 1px solid #efefef;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
border-radius: 4px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.delss {
|
||||
display: none;
|
||||
position: relative;
|
||||
display: none;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.delss .el-icon-delete {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.bqList:hover .delss {
|
||||
display: initial;
|
||||
opacity: 0.5;
|
||||
display: initial;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.tj {
|
||||
padding: 6px !important;
|
||||
margin: 4px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
padding: 6px !important;
|
||||
margin: 4px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<!-- <el-col>
|
||||
<el-form-item label="渠道商返佣比例(%)" prop="rate">
|
||||
<el-input-number v-model="dataForm.rate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col>
|
||||
<el-form-item label="技师承担(%)" prop="artificerRate">
|
||||
<el-input-number v-model="dataForm.artificerRate" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
|
|
|
@ -63,13 +63,12 @@
|
|||
<el-table-column
|
||||
prop="qdmName"
|
||||
label="渠道码名称"
|
||||
width="220"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="qdsCode"
|
||||
width="130"
|
||||
label="编码"
|
||||
width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column prop="lm" label="所属类目">
|
||||
|
@ -80,40 +79,49 @@
|
|||
<el-table-column
|
||||
prop="qdsName"
|
||||
label="渠道商"
|
||||
width="200"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="userName"
|
||||
label="绑定人员"
|
||||
width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="rate"
|
||||
label="渠道分成"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.rate}}%</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="smCount"
|
||||
label="扫码数量"
|
||||
width="150"
|
||||
prop="xyhsmsl"
|
||||
label="扫码数量-新用户"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="lyhsmsl"
|
||||
label="扫码数量-老客户"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="yxzcpts"
|
||||
label="有效注册平台数"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ordersCount"
|
||||
label="订单数量"
|
||||
width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="money"
|
||||
prop="zje"
|
||||
label="订单总金额"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="qdsfy"
|
||||
label="累计获得佣金"
|
||||
width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
|
|
@ -43,6 +43,11 @@
|
|||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col v-show="dataForm.type == 2">
|
||||
<el-form-item label="抽成比例(%)">
|
||||
<el-input-number v-model="dataForm.ccbl" controls-position="right" :precision="2" :min="0" :step="1"/>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col>
|
||||
<el-form-item label="邀请业务员推广海报背景图" prop="salesmanImage">
|
||||
<div style="width: 148px;height: 148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
|
||||
|
@ -131,6 +136,15 @@ export default {
|
|||
},
|
||||
// 表单提交
|
||||
dataFormSubmit() {
|
||||
if(this.dataForm.type == 2){
|
||||
if(!this.dataForm.ccbl){
|
||||
this.$message({
|
||||
message: '请输入抽成比例',
|
||||
type: 'warning'
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
let saveData = Object.assign({}, this.dataForm);
|
||||
|
|
|
@ -432,6 +432,17 @@ export default {
|
|||
});
|
||||
}).catch(() => {});
|
||||
},
|
||||
//更新菜单提示状态
|
||||
dataSelectSpq() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/bl/shipinquan/dataSelectSpq'),
|
||||
method: 'get',
|
||||
}).then(({ data }) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberSpq', data.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
//授权
|
||||
handleApprove() {
|
||||
if (this.status == "") {
|
||||
|
@ -472,6 +483,7 @@ export default {
|
|||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.handleSelect();
|
||||
this.dataSelectSpq();
|
||||
},
|
||||
});
|
||||
} else {
|
||||
|
@ -572,6 +584,7 @@ export default {
|
|||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.handleSelect();
|
||||
this.dataSelectSpq();
|
||||
},
|
||||
});
|
||||
} else {
|
||||
|
|
|
@ -34,11 +34,12 @@
|
|||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="byUserName" label="被投诉用户" width="100">
|
||||
<el-table-column prop="byUserName" label="被投诉技师" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #4f9dec;cursor: pointer;" @click="updates(scope.row.byUserId)">
|
||||
<span v-if="scope.row.byUserId != -1" style="color: #4f9dec;cursor: pointer;" @click="updates(scope.row.byUserId)">
|
||||
{{ scope.row.byUserName?scope.row.byUserName:'未绑定'}}
|
||||
</span>
|
||||
<span v-else style="color: #333;" >平台</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="typeName" label="投诉类型" width="150">
|
||||
|
@ -69,17 +70,22 @@
|
|||
<el-table-column prop="createAt" label="投诉时间" width="100"></el-table-column>
|
||||
<el-table-column prop="type" label="状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.type=='0'">待审核</span>
|
||||
<span v-if="scope.row.type=='1'">通过</span>
|
||||
<span v-if="scope.row.type=='0' && scope.row.byUserId!='-1'">待审核</span>
|
||||
<span v-if="scope.row.type=='0' && scope.row.byUserId=='-1'">待回复</span>
|
||||
<span v-if="scope.row.type=='1' && scope.row.byUserId!='-1'">通过</span>
|
||||
<span v-if="scope.row.type=='1' && scope.row.byUserId=='-1'">已回复</span>
|
||||
<span v-if="scope.row.type=='2'">拒绝</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="100" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" v-if="scope.row.type=='0'" @click="passClicks1(scope.row)"
|
||||
<el-button size="mini" type="primary" v-if="scope.row.type=='0' && scope.row.byUserId == '-1'" @click="passClicks1(scope.row,'回复')"
|
||||
:disabled="!isAuth('business:tongguo')" style="margin:5px">回复
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary" v-if="scope.row.type=='0' && scope.row.byUserId != '-1'" @click="passClicks1(scope.row,'通过')"
|
||||
:disabled="!isAuth('business:tongguo')" style="margin:5px">通过
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary" v-if="scope.row.type=='0'" @click="refuseClick(scope.row)"
|
||||
<el-button size="mini" type="primary" v-if="scope.row.type=='0' && scope.row.byUserId != '-1'" @click="refuseClick(scope.row,'拒绝')"
|
||||
:disabled="!isAuth('business:jujue')" style="margin:5px">拒绝
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -92,16 +98,16 @@
|
|||
</el-pagination>
|
||||
</div>
|
||||
<!-- 任务拒绝弹框 -->
|
||||
<el-dialog title="拒绝" :visible.sync="dialogFormVisible" center>
|
||||
<el-dialog :title="tsbt" :visible.sync="dialogFormVisible" center>
|
||||
<div style="margin-bottom: 10px;">
|
||||
<span
|
||||
style="width: 200px;display: inline-block;text-align: right;position: relative;top: -70px;">拒绝理由:</span>
|
||||
<el-input style="width:50%;" v-model="content" type="textarea" :rows="4" placeholder="请输入拒绝理由">
|
||||
style="width: 200px;display: inline-block;text-align: right;position: relative;top: -70px;">{{(tsbt=='回复')?(tsbt+'内容'):(tsbt+'理由')}}:</span>
|
||||
<el-input style="width:50%;" v-model="content" type="textarea" :rows="4" :placeholder="'请输入'">
|
||||
</el-input>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="refuseto()">确 定</el-button>
|
||||
<el-button type="primary" @click="replyto()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-tab-pane>
|
||||
|
@ -221,6 +227,7 @@
|
|||
],
|
||||
content: '',
|
||||
status: 1,
|
||||
tsbt:'',
|
||||
helpTakeId: '',
|
||||
indentNumbers: '',
|
||||
complaintId: '',
|
||||
|
@ -373,18 +380,19 @@
|
|||
})
|
||||
},
|
||||
//任务拒绝
|
||||
refuseClick(rows) {
|
||||
refuseClick(rows,tip) {
|
||||
this.tsbt = tip
|
||||
this.status = 2
|
||||
this.helpTakeId = rows.id
|
||||
this.content = ''
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
refuseto() {
|
||||
replyto() {
|
||||
if (this.content == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入拒绝理由',
|
||||
message: '请输入'+this.status==1?'通过':'拒绝'+'理由',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
|
@ -410,6 +418,7 @@
|
|||
this.content = ''
|
||||
this.status = -1
|
||||
this.dataSelect()
|
||||
this.dataSelectPy()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
@ -424,7 +433,7 @@
|
|||
})
|
||||
},
|
||||
//单条任务通过
|
||||
passClicks(row) {
|
||||
passClicks(row,tip) {
|
||||
this.content = '同意'
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('message/auditMessage'),
|
||||
|
@ -463,47 +472,29 @@
|
|||
|
||||
})
|
||||
},
|
||||
//单条投诉通过
|
||||
passClicks1(row) {
|
||||
this.status = 1
|
||||
this.content = '同意'
|
||||
//统计未处理数据量
|
||||
dataSelectPy() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('message/auditMessage'),
|
||||
method: 'post',
|
||||
url: this.$http.adornUrl('message/selectMessageCount'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'ids': row.id,
|
||||
'status': 1,
|
||||
'auditContent': this.content,
|
||||
'state': 7,
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.content = ''
|
||||
this.status = -1
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.content = ''
|
||||
this.status = -1
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
data
|
||||
}) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberDts', data.data)
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
passClicks1(rows,tip){
|
||||
this.tsbt = tip
|
||||
this.status = 1
|
||||
this.helpTakeId = rows.id
|
||||
this.content = ''
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
// 添加素材弹框
|
||||
advertNotice() {
|
||||
this.dialogFormVisible2 = true
|
||||
|
|
|
@ -127,6 +127,22 @@
|
|||
}
|
||||
},
|
||||
methods: {
|
||||
// 更新紧急求助菜单提示信息
|
||||
dataSelectJjqz() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('message/selectMessageCount'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'state': 9,
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberJjqz', data.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
// 多选
|
||||
changeFun(val) {
|
||||
this.checkBoxData = val
|
||||
|
@ -221,7 +237,7 @@
|
|||
},
|
||||
// 处理
|
||||
classdelete(row) {
|
||||
this.$confirm(`确定处理该投诉?`, '提示', {
|
||||
this.$confirm(`确定处理该请求?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
@ -244,6 +260,7 @@
|
|||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect()
|
||||
this.dataSelectJjqz()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
|
|
@ -30,14 +30,16 @@
|
|||
<div style="display: inline-block;margin-bottom: 6px;">
|
||||
<span>是否超时:</span>
|
||||
<el-select v-model="overTimeOrders" style="width:150px;margin-left: 10px;" @change="select()">
|
||||
<el-option v-for="item in statesnumCs" :key="item.value" :label="item.label" :value="item.value">
|
||||
<el-option v-for="item in statesnumCs" :key="item.value" :label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="display: inline-block;margin-bottom: 6px;">
|
||||
<span>是否警告:</span>
|
||||
<el-select v-model="warning" style="width:150px;margin-left: 10px;" @change="select()">
|
||||
<el-option v-for="item in statesnumCs" :key="item.value" :label="item.label" :value="item.value">
|
||||
<el-option v-for="item in statesnumCs" :key="item.value" :label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
@ -53,25 +55,25 @@
|
|||
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" @click="cleans">重置
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list">
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list" height="550px">
|
||||
<el-table-column fixed prop="id" label="编号" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{scope.$index+1}}
|
||||
{{ scope.$index + 1 }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="userName" label="用户昵称" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #4f9dec;cursor: pointer;" @click="updates(scope.row.userId)">
|
||||
{{ scope.row.userName?scope.row.userName:'未绑定'}}
|
||||
{{ scope.row.userName ? scope.row.userName : '未绑定' }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="artificerName" label="技师昵称" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #4f9dec;cursor: pointer;" @click="updates(scope.row.artificerId)">
|
||||
{{ scope.row.artificerName?scope.row.artificerName:'未绑定'}}
|
||||
{{ scope.row.artificerName ? scope.row.artificerName : '未绑定' }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -81,12 +83,12 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="artificerPhone" label="技师电话" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="address" label="服务地址" width="200"></el-table-column>
|
||||
<el-table-column prop="address" label="服务地址" width="200"></el-table-column>
|
||||
<el-table-column prop="longitude" label="用户经度" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="latitude" label="用户纬度" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="artificerAddress" label="技师地址" width="200"></el-table-column>
|
||||
<el-table-column prop="artificerAddress" label="技师地址" width="200"></el-table-column>
|
||||
<el-table-column prop="artificerLongitude" label="技师经度" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="artificerLatitude" label="技师纬度" width="160">
|
||||
|
@ -108,31 +110,32 @@
|
|||
<el-table-column prop="createTime" label="创建时间" width="160"></el-table-column>
|
||||
<el-table-column prop="warning" label="是否警告" fixed="right" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #f56c6c;" v-if="scope.row.warning==1">是</span>
|
||||
<span style="color: #f56c6c;" v-if="scope.row.warning == 1">是</span>
|
||||
<span style="color: #999;" v-else>否</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="overTimeOrders" label="是否超时" fixed="right" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #f56c6c;" v-if="scope.row.overTimeOrders==1">是</span>
|
||||
<span style="color: #f56c6c;" v-if="scope.row.overTimeOrders == 1">是</span>
|
||||
<span style="color: #999;" v-else>否</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="订单状态" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #f56c6c;" v-if="scope.row.status==1">待支付</span>
|
||||
<span style="color: #E87D0D;" v-if="scope.row.status==2">待服务</span>
|
||||
<span style="color: #009900;" v-if="scope.row.status==3">待评价</span>
|
||||
<span style="color: #999;" v-if="scope.row.status==4">已取消</span>
|
||||
<span style="color: #999;" v-if="scope.row.status==5">已完成</span>
|
||||
<span style="color: red;" v-if="scope.row.status==6">服务中</span>
|
||||
<span style="color: #E87D0D;" v-if="scope.row.status==7">技师出发</span>
|
||||
<span style="color: #E87D0D;" v-if="scope.row.status==8">技师到达</span>
|
||||
<span style="color: #f56c6c;" v-if="scope.row.status == 1">待支付</span>
|
||||
<span style="color: #E87D0D;" v-if="scope.row.status == 2">待服务</span>
|
||||
<span style="color: #009900;" v-if="scope.row.status == 3">待评价</span>
|
||||
<span style="color: #999;" v-if="scope.row.status == 4">已取消</span>
|
||||
<span style="color: #999;" v-if="scope.row.status == 5">已完成</span>
|
||||
<span style="color: red;" v-if="scope.row.status == 6">服务中</span>
|
||||
<span style="color: #E87D0D;" v-if="scope.row.status == 7">技师出发</span>
|
||||
<span style="color: #E87D0D;" v-if="scope.row.status == 8">技师到达</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createAt" label="处理状态" width="120" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="danger" :disabled="!isAuth('orderCenter:wancheng')" v-if="scope.row.status==2||scope.row.status==6||scope.row.status==7||scope.row.status==8"
|
||||
<el-button size="mini" type="danger" :disabled="!isAuth('orderCenter:wancheng')"
|
||||
v-if="scope.row.status == 2 || scope.row.status == 6 || scope.row.status == 7 || scope.row.status == 8"
|
||||
@click="wancheng(scope.row)" style="margin:5px;" plain>完成订单</el-button>
|
||||
<!-- <span v-if="scope.row.type=='1'" style="color: #13ce66;">已处理</span>
|
||||
<span v-else style="color: #ff4949;">待处理</span>
|
||||
|
@ -153,326 +156,330 @@
|
|||
</el-tabs>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
classify: 1,
|
||||
indentNumber: '',
|
||||
imageUrl: '',
|
||||
url: '',
|
||||
complaintState: '',
|
||||
activeName: 'first',
|
||||
tableDataLoading: true,
|
||||
dialogFormVisible: false,
|
||||
dialogFormVisible2: false,
|
||||
tableData: [],
|
||||
checkBoxData: [], //多选框选择的值
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
classify: 1,
|
||||
indentNumber: '',
|
||||
imageUrl: '',
|
||||
url: '',
|
||||
complaintState: '',
|
||||
activeName: 'first',
|
||||
tableDataLoading: true,
|
||||
dialogFormVisible: false,
|
||||
dialogFormVisible2: false,
|
||||
tableData: [],
|
||||
checkBoxData: [], //多选框选择的值
|
||||
|
||||
content: '',
|
||||
status: '',
|
||||
helpTakeId: '',
|
||||
indentNumbers: '',
|
||||
complaintId: '',
|
||||
message: '',
|
||||
title: '',
|
||||
type: 3,
|
||||
form: {
|
||||
id: '',
|
||||
illegal: '',
|
||||
forfeitMoney: '',
|
||||
},
|
||||
formLabelWidth: '200px',
|
||||
dialogFormVisible1: false,
|
||||
guangaoData: {},
|
||||
content: '',
|
||||
status: '',
|
||||
helpTakeId: '',
|
||||
indentNumbers: '',
|
||||
complaintId: '',
|
||||
message: '',
|
||||
title: '',
|
||||
type: 3,
|
||||
form: {
|
||||
id: '',
|
||||
illegal: '',
|
||||
illegalId: '',
|
||||
forfeitMoney: '',
|
||||
illegalList: [],
|
||||
phone:'',
|
||||
artificerName:'',
|
||||
userName:'',
|
||||
artificerPhone:'',
|
||||
overTimeOrders:0,
|
||||
warning:0,
|
||||
statesnumCs: [{
|
||||
value: 0,
|
||||
label: '全部'
|
||||
},
|
||||
{
|
||||
value: 1,
|
||||
label: '是'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '否'
|
||||
}
|
||||
],
|
||||
statesnum: [{
|
||||
value: '',
|
||||
label: '全部'
|
||||
},
|
||||
// {
|
||||
// value: 1,
|
||||
// label: '待支付'
|
||||
// },
|
||||
{
|
||||
value: 2,
|
||||
label: '待服务'
|
||||
},
|
||||
// {
|
||||
// value: 3,
|
||||
// label: '待评价'
|
||||
// },
|
||||
// {
|
||||
// value: 4,
|
||||
// label: '已取消'
|
||||
// },
|
||||
{
|
||||
value: 5,
|
||||
label: '已完成'
|
||||
},
|
||||
{
|
||||
value: 6,
|
||||
label: '服务中'
|
||||
},
|
||||
{
|
||||
label: '技师出发',
|
||||
value: 7
|
||||
},
|
||||
{
|
||||
label: '技师到达',
|
||||
value: 8
|
||||
},
|
||||
],
|
||||
},
|
||||
formLabelWidth: '200px',
|
||||
dialogFormVisible1: false,
|
||||
guangaoData: {},
|
||||
illegal: '',
|
||||
illegalId: '',
|
||||
forfeitMoney: '',
|
||||
illegalList: [],
|
||||
phone: '',
|
||||
artificerName: '',
|
||||
userName: '',
|
||||
artificerPhone: '',
|
||||
overTimeOrders: 0,
|
||||
warning: 0,
|
||||
statesnumCs: [{
|
||||
value: 0,
|
||||
label: '全部'
|
||||
},
|
||||
{
|
||||
value: 1,
|
||||
label: '是'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '否'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 多选
|
||||
changeFun(val) {
|
||||
this.checkBoxData = val
|
||||
],
|
||||
statesnum: [{
|
||||
value: '',
|
||||
label: '全部'
|
||||
},
|
||||
//处理默认选中当前日期
|
||||
// getNowTime () {
|
||||
// var now = new Date()
|
||||
// var year = now.getFullYear() //得到年份
|
||||
// var month = now.getMonth() //得到月份
|
||||
// var date = now.getDate() //得到日期
|
||||
// var hh = now.getHours() < 10 ? '0' + now.getHours() : now.getHours()
|
||||
// var mm = now.getMinutes() < 10 ? '0' + now.getMinutes() : now.getMinutes()
|
||||
// var ss = now.getSeconds() < 10 ? '0' + now.getSeconds() : now.getSeconds()
|
||||
// month = month + 1
|
||||
// month = month.toString().padStart(2, '0')
|
||||
// date = date.toString().padStart(2, '0')
|
||||
// var defaultDate = `${year}-${month}-${date} ${hh}:${mm}:${ss}`
|
||||
// return defaultDate
|
||||
// this.$set(this.info, 'stockDate', defaultDate)
|
||||
// {
|
||||
// value: 1,
|
||||
// label: '待支付'
|
||||
// },
|
||||
// tabs切换
|
||||
handleClick(tab, event) {
|
||||
if (tab._props.label == '订单列表') {
|
||||
this.page = 1
|
||||
this.limit = 10
|
||||
this.dataSelect()
|
||||
}
|
||||
|
||||
{
|
||||
value: 2,
|
||||
label: '待服务'
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.limit = val
|
||||
this.dataSelect()
|
||||
// {
|
||||
// value: 3,
|
||||
// label: '待评价'
|
||||
// },
|
||||
// {
|
||||
// value: 4,
|
||||
// label: '已取消'
|
||||
// },
|
||||
{
|
||||
value: 5,
|
||||
label: '已完成'
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val
|
||||
this.dataSelect()
|
||||
{
|
||||
value: 6,
|
||||
label: '服务中'
|
||||
},
|
||||
|
||||
// 查询资源列表
|
||||
select() {
|
||||
{
|
||||
label: '技师出发',
|
||||
value: 7
|
||||
},
|
||||
{
|
||||
label: '技师到达',
|
||||
value: 8
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 多选
|
||||
changeFun(val) {
|
||||
this.checkBoxData = val
|
||||
},
|
||||
//处理默认选中当前日期
|
||||
// getNowTime () {
|
||||
// var now = new Date()
|
||||
// var year = now.getFullYear() //得到年份
|
||||
// var month = now.getMonth() //得到月份
|
||||
// var date = now.getDate() //得到日期
|
||||
// var hh = now.getHours() < 10 ? '0' + now.getHours() : now.getHours()
|
||||
// var mm = now.getMinutes() < 10 ? '0' + now.getMinutes() : now.getMinutes()
|
||||
// var ss = now.getSeconds() < 10 ? '0' + now.getSeconds() : now.getSeconds()
|
||||
// month = month + 1
|
||||
// month = month.toString().padStart(2, '0')
|
||||
// date = date.toString().padStart(2, '0')
|
||||
// var defaultDate = `${year}-${month}-${date} ${hh}:${mm}:${ss}`
|
||||
// return defaultDate
|
||||
// this.$set(this.info, 'stockDate', defaultDate)
|
||||
// },
|
||||
// tabs切换
|
||||
handleClick(tab, event) {
|
||||
if (tab._props.label == '订单列表') {
|
||||
this.page = 1
|
||||
this.limit = 10
|
||||
this.dataSelect()
|
||||
}
|
||||
|
||||
this.dataSelect()
|
||||
},
|
||||
// 重置资源列表
|
||||
cleans() {
|
||||
this.phone = ''
|
||||
this.artificerName = ''
|
||||
this.userName = ''
|
||||
this.artificerPhone = ''
|
||||
this.illegalId = ''
|
||||
this.overTimeOrders = 0
|
||||
this.warning = 0
|
||||
this.status = ''
|
||||
this.page = 1
|
||||
this.dataSelect()
|
||||
},
|
||||
// select选择事件
|
||||
animeDat(state) {
|
||||
this.page = 1
|
||||
this.complaintState = state
|
||||
console.log(state)
|
||||
this.dataSelect()
|
||||
},
|
||||
animeDat1(state) {
|
||||
this.page = 1
|
||||
this.illegalId = state
|
||||
this.dataSelect()
|
||||
},
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.limit = val
|
||||
this.dataSelect()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val
|
||||
this.dataSelect()
|
||||
},
|
||||
|
||||
// 查询资源列表
|
||||
select() {
|
||||
this.page = 1
|
||||
this.limit = 10
|
||||
|
||||
this.dataSelect()
|
||||
},
|
||||
// 重置资源列表
|
||||
cleans() {
|
||||
this.phone = ''
|
||||
this.artificerName = ''
|
||||
this.userName = ''
|
||||
this.artificerPhone = ''
|
||||
this.illegalId = ''
|
||||
this.overTimeOrders = 0
|
||||
this.warning = 0
|
||||
this.status = ''
|
||||
this.page = 1
|
||||
this.dataSelect()
|
||||
},
|
||||
// select选择事件
|
||||
animeDat(state) {
|
||||
this.page = 1
|
||||
this.complaintState = state
|
||||
console.log(state)
|
||||
this.dataSelect()
|
||||
},
|
||||
animeDat1(state) {
|
||||
this.page = 1
|
||||
this.illegalId = state
|
||||
this.dataSelect()
|
||||
},
|
||||
|
||||
|
||||
// 获取数据列表
|
||||
dataSelect() {
|
||||
this.tableDataLoading = true
|
||||
// 获取数据列表
|
||||
dataSelect() {
|
||||
this.tableDataLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('artificer/selectArtificerOrdersList'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.page,
|
||||
'limit': this.limit,
|
||||
'artificerName': this.artificerName,
|
||||
'phone': this.phone,
|
||||
'artificerPhone': this.artificerPhone,
|
||||
'userName': this.userName,
|
||||
'overTimeOrders': this.overTimeOrders,
|
||||
'status': '',
|
||||
'warning': this.warning
|
||||
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.tableDataLoading = false
|
||||
let returnData = data.data
|
||||
this.tableData = returnData
|
||||
}
|
||||
})
|
||||
},
|
||||
// 详情跳转
|
||||
updates(userId) {
|
||||
this.$router.push({
|
||||
path: '/userDetail',
|
||||
query: {
|
||||
userId: userId
|
||||
}
|
||||
})
|
||||
},
|
||||
// 处理
|
||||
classdelete(row) {
|
||||
this.$confirm(`确定处理该投诉?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('artificer/selectArtificerOrdersList'),
|
||||
method: 'get',
|
||||
url: this.$http.adornUrl('message/auditMessage'),
|
||||
method: 'post',
|
||||
params: this.$http.adornParams({
|
||||
'page':this.page,
|
||||
'limit':this.limit,
|
||||
'artificerName':this.artificerName,
|
||||
'phone':this.phone,
|
||||
'artificerPhone':this.artificerPhone,
|
||||
'userName':this.userName,
|
||||
'overTimeOrders':this.overTimeOrders,
|
||||
'status':'',
|
||||
'warning':this.warning
|
||||
|
||||
'ids': row.id,
|
||||
'status': 1,
|
||||
'auditContent': '',
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.tableDataLoading = false
|
||||
let returnData = data.data
|
||||
this.tableData = returnData
|
||||
}
|
||||
})
|
||||
},
|
||||
// 详情跳转
|
||||
updates(userId) {
|
||||
this.$router.push({
|
||||
path: '/userDetail',
|
||||
query: {
|
||||
userId: userId
|
||||
}
|
||||
})
|
||||
},
|
||||
// 处理
|
||||
classdelete(row) {
|
||||
this.$confirm(`确定处理该投诉?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('message/auditMessage'),
|
||||
method: 'post',
|
||||
params: this.$http.adornParams({
|
||||
'ids': row.id,
|
||||
'status': 1,
|
||||
'auditContent': '',
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'warning',
|
||||
duration: 1500,
|
||||
onClose: () => { }
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'warning',
|
||||
duration: 1500,
|
||||
onClose: () => {}
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
dataSelectD(){
|
||||
if(this.$route.query.types){
|
||||
if(this.$route.query.types==1){
|
||||
this.warning =1
|
||||
this.overTimeOrders =0
|
||||
}else{
|
||||
this.warning =0
|
||||
this.overTimeOrders =1
|
||||
}
|
||||
}else{
|
||||
this.warning = 0
|
||||
this.overTimeOrders = 0
|
||||
}
|
||||
this.dataSelect()
|
||||
},
|
||||
// 完成订单
|
||||
wancheng(row){
|
||||
let delid = row.ordersId
|
||||
this.$confirm(`确定进行完成订单操作吗?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('artificer/accomplishOrders?ordersId='+delid),
|
||||
method: 'post',
|
||||
params: this.$http.adornParams({})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if(data.code==0){
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}else{
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'warning',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
})
|
||||
},
|
||||
}).catch(() => { })
|
||||
},
|
||||
mounted() {
|
||||
if(this.$route.query.types){
|
||||
if(this.$route.query.types==1){
|
||||
this.warning =1
|
||||
this.overTimeOrders =0
|
||||
}else{
|
||||
this.warning =0
|
||||
this.overTimeOrders =1
|
||||
dataSelectD() {
|
||||
if (this.$route.query.types) {
|
||||
if (this.$route.query.types == 1) {
|
||||
this.warning = 1
|
||||
this.overTimeOrders = 0
|
||||
} else {
|
||||
this.warning = 0
|
||||
this.overTimeOrders = 1
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
this.warning = 0
|
||||
this.overTimeOrders = 0
|
||||
}
|
||||
this.dataSelect()
|
||||
},
|
||||
watch: {
|
||||
'$route': 'dataSelectD'
|
||||
// 完成订单
|
||||
wancheng(row) {
|
||||
let delid = row.ordersId
|
||||
this.$confirm(`确定进行完成订单操作吗?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('app/artificer/accomplishOrders'),
|
||||
method: 'post',
|
||||
params: this.$http.adornParams({
|
||||
ordersId: delid,
|
||||
earlyFinishReason:row.earlyFinishReason,
|
||||
adminOperation:1
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'warning',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
})
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
if (this.$route.query.types) {
|
||||
if (this.$route.query.types == 1) {
|
||||
this.warning = 1
|
||||
this.overTimeOrders = 0
|
||||
} else {
|
||||
this.warning = 0
|
||||
this.overTimeOrders = 1
|
||||
}
|
||||
} else {
|
||||
this.warning = 0
|
||||
this.overTimeOrders = 0
|
||||
}
|
||||
this.dataSelect()
|
||||
},
|
||||
watch: {
|
||||
'$route': 'dataSelectD'
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.customWidth {
|
||||
width: 80% !important;
|
||||
}
|
||||
.customWidth {
|
||||
width: 80% !important;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -0,0 +1,337 @@
|
|||
html,body{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
html{
|
||||
font-size: 100px;
|
||||
}
|
||||
ul,h1,h2,h3,h4,h5,h6,p{
|
||||
list-style: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
a{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/*正文*/
|
||||
.t_container{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
min-width: 1360px;
|
||||
background: url('../img/true.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
min-height: 756px;
|
||||
}
|
||||
.t_header{
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
background: url('../img/linx.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
}
|
||||
.t_header span{
|
||||
color: #fff;
|
||||
font-size: 0.36rem;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -0.24rem;
|
||||
left: 9%;
|
||||
}
|
||||
.t_main{
|
||||
width: 98%;
|
||||
height: 8.74rem;
|
||||
margin: 0 auto;
|
||||
margin-top: 0.2rem;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.t_left_box{
|
||||
position: relative;
|
||||
width: 3.36rem;
|
||||
height: 4.6rem;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
}
|
||||
.t_l_line{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
.t_r_line{
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.t_center_box{
|
||||
width: 6.82rem;
|
||||
display: inline-block;
|
||||
min-width: 490px;
|
||||
}
|
||||
.t_top_box{
|
||||
width: 100%;
|
||||
height: 1.13rem;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
.t_bottom_box{
|
||||
width: 100%;
|
||||
height: 3.17rem;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.t_right_box{
|
||||
display: inline-block;
|
||||
width: 7.8rem;
|
||||
height: 4.6rem;
|
||||
position: relative;
|
||||
min-width: 560px;
|
||||
}
|
||||
.b_left_box{
|
||||
display: inline-block;
|
||||
width: 5.9rem;
|
||||
height: 3.6rem;
|
||||
position: relative;
|
||||
min-width: 425px;
|
||||
}
|
||||
.b_center_box{
|
||||
display: inline-block;
|
||||
width: 6rem;
|
||||
height: 3.6rem;
|
||||
position: relative;
|
||||
min-width: 432px;
|
||||
}
|
||||
.b_right_box{
|
||||
display: inline-block;
|
||||
width: 6rem;
|
||||
height: 3.6rem;
|
||||
position: relative;
|
||||
min-width: 432px;
|
||||
}
|
||||
.t_mbox{
|
||||
width: 3rem;
|
||||
height: 1.28rem;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
margin-top: 0.2rem;
|
||||
}
|
||||
.t_rbox{
|
||||
background: #D9523F;
|
||||
}
|
||||
.t_gbox{
|
||||
background: #13D0B2;
|
||||
}
|
||||
.t_ybox{
|
||||
background: #F6A645;
|
||||
}
|
||||
.t_mbox i{
|
||||
display: inline-block;
|
||||
width: 0.46rem;
|
||||
height: 0.48rem;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 20%;
|
||||
margin: auto;
|
||||
}
|
||||
.t_mbox h2{
|
||||
font-size: 0.28rem;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
}
|
||||
.t_mbox span{
|
||||
font-size: 0.2rem;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 24%;
|
||||
left: 48%;
|
||||
}
|
||||
.t_rbox i{
|
||||
background: url(../img/indent.png) no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t_gbox i{
|
||||
background: url(../img/vip.png) no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t_ybox i{
|
||||
background: url(../img/consumption.png) no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t_nav{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.t_nav li{
|
||||
display: inline-block;
|
||||
width: 30%;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
}
|
||||
.t_nav li span{
|
||||
font-size: 0.16rem;
|
||||
color: #1AA1FD;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
top: 25%;
|
||||
}
|
||||
.t_nav li h1{
|
||||
font-size: 0.30rem;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
top: 50%;
|
||||
}
|
||||
.t_nav li i{
|
||||
width: 1px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
right: -0.2rem;
|
||||
background: url('../img/sper.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t_table{
|
||||
font-size: 0.16rem;
|
||||
color: #fff;
|
||||
width: 94%;
|
||||
margin: 0 auto;
|
||||
border-spacing: 0;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
margin-top: 12%;
|
||||
}
|
||||
.t_table tr{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 0.42rem;
|
||||
}
|
||||
.t_table thead tr{
|
||||
background: #053A98;
|
||||
}
|
||||
.t_table tbody tr td:first-child{
|
||||
border-left: 1px solid #053A98;
|
||||
}
|
||||
.t_table td{
|
||||
border-bottom: 1px solid #053A98;
|
||||
border-right: 1px solid #053A98;
|
||||
}
|
||||
.t_title{
|
||||
position: absolute;
|
||||
font-size: 0.18rem;
|
||||
color: #fff;
|
||||
left: 5%;
|
||||
top: 10%;
|
||||
}
|
||||
.t_b_h,t_b_m{
|
||||
position: absolute;
|
||||
font-size: 0.16rem;
|
||||
left: 54%;
|
||||
width: 50%;
|
||||
height: 4.6rem;
|
||||
}
|
||||
.t_b_h span{
|
||||
position: absolute;
|
||||
color: #fff;
|
||||
top: 10%;
|
||||
}
|
||||
.t_b_h img{
|
||||
position: absolute;
|
||||
width: 0.53rem;
|
||||
height: 0.53rem;
|
||||
top: 6%;
|
||||
left: 24%
|
||||
}
|
||||
.t_b_h h3{
|
||||
font-size: 0.36rem;
|
||||
color: #F0FF00;
|
||||
position: absolute;
|
||||
left: 55%;
|
||||
top: 8%;
|
||||
width: 1rem;
|
||||
}
|
||||
.t_b_h h3 span{
|
||||
font-size: 0.2rem;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 28%;
|
||||
color: #0072FF;
|
||||
}
|
||||
.t_b_m img{
|
||||
position: absolute;
|
||||
left: 52%;
|
||||
top: 22%;
|
||||
border-top: 1px dotted #F0FF00;
|
||||
padding: 0 0.18rem;
|
||||
padding-top: 20px;
|
||||
width: 3.19rem;
|
||||
height: 1.67rem;
|
||||
}
|
||||
.t_b_box,.t_b_box1,.t_b_box2,.t_b_box3{
|
||||
width: 1.3rem;
|
||||
height: 0.56rem;
|
||||
border: 1px dotted #F0FF00;
|
||||
border-radius: 5px;
|
||||
position: absolute;
|
||||
}
|
||||
.t_b_box{
|
||||
top: 68%;
|
||||
left: 56%;
|
||||
}
|
||||
.t_b_box span,.t_b_box1 span,.t_b_box2 span,.t_b_box3 span{
|
||||
font-size: 0.14rem;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
left: 10%;
|
||||
}
|
||||
.t_b_box i,.t_b_box1 i,.t_b_box2 i,.t_b_box3 i{
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 15%
|
||||
}
|
||||
.t_b_box i{
|
||||
background: url('../img/t.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t_b_box1 i{
|
||||
background: url('../img/s.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t_b_box2 i{
|
||||
background: url('../img/j.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t_b_box3 i{
|
||||
background: url('../img/g.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t_b_box h2,.t_b_box1 h2,.t_b_box2 h2,.t_b_box3 h2{
|
||||
font-size: 0.18rem;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 30%;
|
||||
left: 40%;
|
||||
}
|
||||
.t_b_box1{
|
||||
top: 68%;
|
||||
left: 78%;
|
||||
}
|
||||
.t_b_box2{
|
||||
top: 84%;
|
||||
left: 56%;
|
||||
}
|
||||
.t_b_box3{
|
||||
top: 84%;
|
||||
left: 78%;
|
||||
}
|
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1740643891246" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9900" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100"><path d="M424.87757431 440.0236721c4.2719763 0 8.54395259-1.68289975 11.90975211-5.04869927 3.23634569-3.23634569 4.91924543-7.63777581 4.91924543-11.90975208l-0.12945382-349.784241c0-2.20071506-1.29453827-4.2719763-3.49525334-5.17815308-2.20071506-0.9061768-4.53088395-0.38836148-6.08432987 1.29453827L313.6767368 187.07089383 155.09579852 29.26667852c-2.97743803-2.97743803-7.24941431-4.91924543-11.9097521-4.91924543-4.66033778 0-8.80286025 1.81235358-11.90975211 4.91924543l-107.70558418 107.18776889c-3.10689185 2.97743803-4.91924543 7.24941431-4.91924544 11.90975209 0 4.66033778 1.81235358 8.93231408 4.91924544 11.90975211l158.45148444 157.8042153-114.95499852 114.43718322c-1.55344592 1.55344592-2.07126124 3.88361482-1.16508444 6.2137837 0.9061768 2.20071506 2.97743803 3.49525333 5.17815308 3.49525334l353.79730962-2.20071507z m0 0M423.45358222 584.23523555c4.2719763 0 8.67340642 1.68289975 11.90975209 4.91924543 3.3657995 3.3657995 4.91924543 7.63777581 4.91924544 11.90975211l-0.12945383 352.76167901c0 2.20071506-1.29453827 4.2719763-3.49525333 5.17815308-2.20071506 0.9061768-4.53088395 0.38836148-6.08432987-1.16508443l-118.1913442-117.6735289-158.58093827 157.93366913c-2.97743803 2.97743803-7.24941431 4.91924543-11.9097521 4.91924544-4.66033778 0-8.80286025-1.81235358-11.9097521-4.91924544l-107.7055842-107.18776888c-3.10689185-3.10689185-4.91924543-7.24941431-4.91924543-11.9097521 0-4.66033778 1.81235358-8.93231408 4.91924543-11.9097521l158.45148445-157.67476148-114.95499852-114.56663703c-1.55344592-1.55344592-2.07126124-4.01306864-1.29453828-6.2137837 0.9061768-2.20071506 2.97743803-3.49525333 5.17815309-3.49525334l353.79730963-0.9061768z m0 0M601.71150222 437.43459555c-4.2719763 0-8.54395259-1.68289975-11.90975209-5.04869925-3.3657995-3.23634569-4.91924543-7.63777581-4.91924544-11.90975211l0.12945383-349.78424099c0-2.20071506 1.29453827-4.2719763 3.49525333-5.17815307 2.20071506-0.9061768 4.53088395-0.38836148 6.08432988 1.29453826l118.32079802 117.67352889 158.58093828-157.80421531c3.10689185-2.97743803 7.24941431-4.91924543 11.9097521-4.91924544 4.66033778 0 8.80286025 1.81235358 11.90975209 4.91924544l107.57613037 107.18776889c3.10689185 2.97743803 4.91924543 7.24941431 4.91924544 11.90975211 0 4.66033778-1.81235358 8.93231408-4.91924544 11.90975209L844.43742815 315.48909037l114.95499852 114.43718321c1.55344592 1.55344592 2.07126124 3.88361482 1.16508444 6.2137837-0.9061768 2.20071506-2.97743803 3.49525333-5.17815308 3.49525333l-353.66785581-2.20071506z m0 0M601.84095605 584.23523555c-4.2719763 0-8.67340642 1.68289975-11.9097521 4.91924543-3.3657995 3.3657995-5.04869925 7.63777581-5.04869926 11.90975211l0.12945383 352.76167901c0 2.20071506 1.29453827 4.2719763 3.49525333 5.17815308 2.20071506 0.9061768 4.53088395 0.38836148 6.08432988-1.16508443l118.32079802-117.6735289 158.58093828 157.93366913c3.10689185 2.97743803 7.24941431 4.91924543 11.9097521 4.91924544 4.66033778 0 8.80286025-1.81235358 11.90975209-4.91924544l107.57613037-107.18776888c3.10689185-3.10689185 4.91924543-7.24941431 4.91924544-11.9097521 0-4.66033778-1.81235358-8.93231408-4.91924544-11.9097521l-158.45148444-157.93366914 115.08445235-114.56663703c1.55344592-1.55344592 2.07126124-4.01306864 1.29453826-6.2137837-0.9061768-2.20071506-2.97743803-3.49525333-5.17815307-3.49525334l-353.79730964-0.64726914z m0 0" fill="#ffffff" p-id="9901"></path></svg>
|
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 175 KiB |
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,14 @@
|
|||
$(function(){
|
||||
var whdef = 100/1920;// 表示1920的设计图,使用100PX的默认值
|
||||
var wH = window.innerHeight;// 当前窗口的高度
|
||||
var wW = window.innerWidth;// 当前窗口的宽度
|
||||
var rem = wW * whdef;// 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
|
||||
$('html').css('font-size', rem + "px");
|
||||
});
|
||||
$(window).resize(function (){// 绑定到窗口的这个事件中
|
||||
var whdef = 100/1920;// 表示1920的设计图,使用100PX的默认值
|
||||
var wH = window.innerHeight;// 当前窗口的高度
|
||||
var wW = window.innerWidth;// 当前窗口的宽度
|
||||
var rem = wW * whdef;// 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
|
||||
$('html').css('font-size', rem + "px");
|
||||
});
|
|
@ -3,7 +3,7 @@
|
|||
<div class="site-content__wrapper">
|
||||
<div class="site-content">
|
||||
<div class="login-main">
|
||||
<h3 class="login-title">盛安到家1.0管理系统</h3>
|
||||
<h3 class="login-title">盛安小象1.0管理系统</h3>
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon>
|
||||
<el-form-item prop="userName">
|
||||
<el-input v-model="dataForm.userName" placeholder="帐号"></el-input>
|
||||
|
|
|
@ -2,15 +2,13 @@
|
|||
<nav class="site-navbar" :class="'site-navbar--' + navbarLayoutType">
|
||||
<div class="site-navbar__header">
|
||||
<h1 class="site-navbar__brand">
|
||||
<a class="site-navbar__brand-lg" href="javascript:;">盛安到家1.0系统</a>
|
||||
<a class="site-navbar__brand-lg" href="javascript:;">盛安小象1.0系统</a>
|
||||
<a class="site-navbar__brand-mini" href="javascript:;">
|
||||
<img src="~@/assets/img/avatar.png" style="width: 30px;height: 30px; border-radius: 50%;">
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
<div><audio ref="audioPlayer" ></audio>
|
||||
<el-button id="aaaaaaaaaa">播放</el-button>
|
||||
</div>
|
||||
<audio ref="audioPlayer" ></audio>
|
||||
<div class="site-navbar__body clearfix">
|
||||
<el-menu class="site-navbar__menu" mode="horizontal">
|
||||
<el-menu-item class="site-navbar__switch" index="0" @click="sidebarFold = !sidebarFold">
|
||||
|
@ -72,10 +70,10 @@
|
|||
|
||||
<script>
|
||||
import UpdatePassword from './main-navbar-update-password'
|
||||
import tipmap3 from '@/assets/mp3/tip.mp3';
|
||||
import {
|
||||
clearLoginInfo
|
||||
} from '@/utils'
|
||||
import {speak} from '@/utils/speechReminder.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -88,6 +86,9 @@ export default {
|
|||
chatNumJl: 0,
|
||||
chatNumSpq:0,
|
||||
chatNumQy: 0,
|
||||
chatNumLts: 0,
|
||||
chatNumXxzx:0,
|
||||
chatNumXyhzc:0,
|
||||
chatNumJjqz: 0,
|
||||
chatNumYh: 0,
|
||||
chatNumJg: 0,
|
||||
|
@ -161,6 +162,7 @@ export default {
|
|||
this.$cookie.set('numberJg', '')
|
||||
this.$cookie.set('numberLts', '')
|
||||
this.$cookie.set('numberSpq', '')
|
||||
this.$cookie.set('numberXxzx', '')
|
||||
sessionStorage.clear()
|
||||
//router.options.isAddDynamicMenuRoutes = false;
|
||||
this.$router.push({
|
||||
|
@ -316,6 +318,7 @@ export default {
|
|||
}) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberDts', data.data)
|
||||
if (data.data > 0) this.playAudio(require('@/assets/mp3/ts.mp3'))
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -332,6 +335,7 @@ export default {
|
|||
}) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberJjqz', data.data)
|
||||
if (data.data > 0) this.playAudio(require('@/assets/mp3/jjqz.mp3'))
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -388,8 +392,8 @@ export default {
|
|||
}
|
||||
})
|
||||
},
|
||||
playAudio(){
|
||||
this.$refs.audioPlayer.src = require('@/assets/mp3/tip.mp3');
|
||||
playAudio(media){
|
||||
this.$refs.audioPlayer.src = media;
|
||||
this.$refs.audioPlayer.play();
|
||||
},
|
||||
// 获取视频圈未审核数据
|
||||
|
@ -400,10 +404,31 @@ export default {
|
|||
}).then(({ data }) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberSpq', data.data)
|
||||
document.getElementById('aaaaaaaaaa').addEventListener('click',()=>{
|
||||
console.log("dddd")
|
||||
this.playAudio()
|
||||
})
|
||||
if (data.data > 0) this.playAudio(require('@/assets/mp3/spq.mp3'))
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取消息中心未阅读数据量
|
||||
dataSelectXxzx() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/message/dataSelectXxzx'),
|
||||
method: 'get',
|
||||
}).then(({ data }) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberXxzx', data.data)
|
||||
if (data.data > 0) this.playAudio(require('@/assets/mp3/xxzx.mp3'))
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取消息中心新用户注册数据
|
||||
dataSelectXyhzc() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/message/dataSelectXyhzc'),
|
||||
method: 'get',
|
||||
}).then(({ data }) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberXyhzc', data.data)
|
||||
if (data.data > 0) this.playAudio(require('@/assets/mp3/xyhzc.mp3'))
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -419,6 +444,7 @@ export default {
|
|||
}).then(({ data }) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberLts', data.data)
|
||||
if (data.data > 0) this.playAudio(require('@/assets/mp3/lts.mp3'))
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -547,6 +573,9 @@ export default {
|
|||
}
|
||||
},
|
||||
mounted() {
|
||||
// setInterval(() => {
|
||||
// speak('有新用户注册成功!',{})
|
||||
// }, 3000);
|
||||
this.getRingId();
|
||||
this.userSelect()
|
||||
// this.chatSelect()
|
||||
|
@ -559,6 +588,8 @@ export default {
|
|||
this.dataSelectYh()
|
||||
this.dataSelectLts()
|
||||
this.dataSelectSpq()
|
||||
this.dataSelectXxzx()
|
||||
this.dataSelectXyhzc()
|
||||
if ((this.userId && this.ringOrderId) && (this.userId == this.ringOrderId)) {
|
||||
this.dataSelectJg()
|
||||
this.dataSelectCs()
|
||||
|
@ -585,7 +616,25 @@ export default {
|
|||
// this.chatNumQy = setInterval(() => {
|
||||
// this.dataSelectPy()
|
||||
// }, 60000)
|
||||
// }, 8000);
|
||||
// }, 16000);
|
||||
// //聊天室
|
||||
// setTimeout(() => {
|
||||
// this.chatNumLts = setInterval(() => {
|
||||
// this.dataSelectLts()
|
||||
// }, 60000)
|
||||
// }, 24000);
|
||||
// //消息中心
|
||||
// setTimeout(() => {
|
||||
// this.chatNumXxzx = setInterval(() => {
|
||||
// this.dataSelectXxzx()
|
||||
// }, 60000)
|
||||
// }, 32000);
|
||||
// // 新用户注册
|
||||
// setTimeout(() => {
|
||||
// this.chatNumXyhzc = setInterval(() => {
|
||||
// this.dataSelectXyhzc()
|
||||
// }, 60000)
|
||||
// }, 40000);
|
||||
// //实名认证
|
||||
// this.chatNumJl = setInterval(() => {
|
||||
// this.dataSelect()
|
||||
|
@ -608,15 +657,24 @@ export default {
|
|||
},
|
||||
beforeDestroy() {
|
||||
//生产需替换
|
||||
//紧急求助定时任务
|
||||
// clearInterval(this.chatNumJjqz);
|
||||
// //视频圈定时任务
|
||||
// clearInterval(this.chatNumSpq);
|
||||
// //投诉中心定时任务
|
||||
// clearInterval(this.chatNumQy);
|
||||
// //聊天室定时任务
|
||||
// clearInterval(this.chatNumLts);
|
||||
// //消息中心定时任务
|
||||
// clearInterval(this.chatNumXxzx);
|
||||
// //新用户注册定时任务
|
||||
// clearInterval(this.chatNumXyhzc);
|
||||
// clearInterval(this.chatNum)
|
||||
// clearInterval(this.chatNumJl);
|
||||
// clearInterval(this.chatNumQy);
|
||||
// clearInterval(this.chatNumJjqz);
|
||||
// clearInterval(this.chatNumYh);
|
||||
// clearInterval(this.chatNumJg);
|
||||
// clearInterval(this.chatNumCs);
|
||||
// clearInterval(this.chatNumXdd);
|
||||
// clearInterval(this.chatNumSpq);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
<el-badge class="item" v-if="menu.menuId==195&&chatNumLts!=0" is-dot>
|
||||
<span> </span>
|
||||
</el-badge>
|
||||
<el-badge class="item" v-if="menu.menuId==323&&havaMsg(323)" is-dot>
|
||||
<span> </span>
|
||||
</el-badge>
|
||||
</template>
|
||||
<sub-menu v-for="item in menu.list" :key="item.menuId" :menu="item" :dynamicMenuRoutes="dynamicMenuRoutes">
|
||||
</sub-menu>
|
||||
|
@ -28,6 +31,9 @@
|
|||
<icon-svg :name="menu.icon || ''" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span>{{ menu.name }}</span>
|
||||
</span>
|
||||
<el-badge class="item" v-if="menu.menuId==41&&chatNumXxzx!=0" :value="chatNumXxzx">
|
||||
<span> </span>
|
||||
</el-badge>
|
||||
<el-badge class="item" v-if="menu.menuId==79&&chatNumLts!=0" :value="chatNumLts">
|
||||
<span> </span>
|
||||
</el-badge>
|
||||
|
@ -49,6 +55,9 @@
|
|||
<el-badge class="item" v-if="menu.menuId==314&&chatNumSpq!=0" :value="chatNumSpq">
|
||||
<span> </span>
|
||||
</el-badge>
|
||||
<el-badge class="item" v-if="menu.menuId==321&&chatNumXyhzc!=0" :value="chatNumXyhzc">
|
||||
<span> </span>
|
||||
</el-badge>
|
||||
</el-menu-item>
|
||||
</template>
|
||||
|
||||
|
@ -65,6 +74,8 @@ export default {
|
|||
chatNumFwz:0,
|
||||
chatNumLts:0,
|
||||
chatNumSpq:0,
|
||||
chatNumXxzx:0,
|
||||
chatNumXyhzc:0,
|
||||
}
|
||||
},
|
||||
props: {
|
||||
|
@ -100,7 +111,10 @@ export default {
|
|||
//检测菜单下是否有消息
|
||||
havaMsg(index){
|
||||
if(index == 311){
|
||||
return this.chatNumDrz != 0 || this.chatNumDts != 0 || this.chatNumJjqz != 0 || this.chatNumDsm != 0 || this.chatNumFwz != 0 || this.chatNumLts != 0 || this.chatNumSpq != 0
|
||||
return this.chatNumDrz != 0 || this.chatNumDts != 0 || this.chatNumJjqz != 0 || this.chatNumDsm != 0 || this.chatNumFwz != 0 || this.chatNumLts != 0 || this.chatNumSpq != 0 || this.chatNumXxzx != 0 || this.chatNumXyhzc != 0
|
||||
}
|
||||
if(index == 323){
|
||||
return this.chatNumXxzx != 0 || this.chatNumXyhzc != 0
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
@ -129,7 +143,12 @@ export default {
|
|||
if(this.$cookie.get('numberSpq')){
|
||||
this.chatNumSpq = this.$cookie.get('numberSpq')
|
||||
}
|
||||
|
||||
if(this.$cookie.get('numberXxzx')){
|
||||
this.chatNumXxzx = this.$cookie.get('numberXxzx')
|
||||
}
|
||||
if(this.$cookie.get('numberXyhzc')){
|
||||
this.chatNumXyhzc = this.$cookie.get('numberXyhzc')
|
||||
}
|
||||
}, 1000)
|
||||
// this.chatNum2 = setInterval(() => {
|
||||
// this.messageSelect2()
|
||||
|
|
|
@ -691,7 +691,6 @@ export default {
|
|||
materialName: this.projectName,
|
||||
}),
|
||||
}).then(({ data }) => {
|
||||
console.log("12332hhhh", data);
|
||||
if (data.code == 0) {
|
||||
this.tableDataLoading = false;
|
||||
let returnData = data.data;
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<template>
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="意见反馈" name="first">
|
||||
<div style="margin-right:2%;text-align:right;">
|
||||
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" @click="dataSelect">刷新
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list">
|
||||
<el-table-column prop="id" label="编号" width="80">
|
||||
</el-table-column>
|
||||
|
@ -10,6 +14,20 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="createAt" label="创建时间" width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="isSee" label="状态" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.isSee == 2" style="color: #67C23A;">已读</span>
|
||||
<span v-else style="color: #909399;">未读</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="180" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="primary" size="small" @click="changeState(scope.row, true)"
|
||||
v-if="scope.row.isSee != 2">标为已读</el-button>
|
||||
<el-button type="info" size="small" @click="changeState(scope.row, false)"
|
||||
v-if="scope.row.isSee == 2">标为未读</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center;margin-top: 10px;">
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
|
@ -19,6 +37,10 @@
|
|||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="注销账号" name="fourth">
|
||||
<div style="margin-right:2%;text-align:right;">
|
||||
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" @click="dataSelect">刷新
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list">
|
||||
<el-table-column prop="id" label="编号" width="80">
|
||||
</el-table-column>
|
||||
|
@ -146,244 +168,289 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
limit: 10,
|
||||
page: 1,
|
||||
state: 2,
|
||||
url: '',
|
||||
title: '',
|
||||
type: '',
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
limit: 10,
|
||||
page: 1,
|
||||
state: 2,
|
||||
url: '',
|
||||
title: '',
|
||||
type: '',
|
||||
id: '',
|
||||
types: [{
|
||||
value: 'word',
|
||||
label: '文字'
|
||||
},
|
||||
{
|
||||
value: 'url',
|
||||
label: '链接'
|
||||
}
|
||||
],
|
||||
form: {
|
||||
id: '',
|
||||
title: '',
|
||||
url: '',
|
||||
type: '',
|
||||
state: '',
|
||||
types: [{
|
||||
value: 'word',
|
||||
label: '文字'
|
||||
},
|
||||
{
|
||||
value: 'url',
|
||||
label: '链接'
|
||||
}
|
||||
],
|
||||
form: {
|
||||
id: '',
|
||||
title: '',
|
||||
url: '',
|
||||
type: '',
|
||||
state: '',
|
||||
types: [{
|
||||
value: 'word',
|
||||
label: '文字'
|
||||
},
|
||||
{
|
||||
value: 'url',
|
||||
label: '链接'
|
||||
}
|
||||
],
|
||||
value: 'word',
|
||||
label: '文字'
|
||||
},
|
||||
phone: '',
|
||||
content: '',
|
||||
flag: '',
|
||||
flags: [{
|
||||
value: 1,
|
||||
label: '单个用户'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '全部用户'
|
||||
}
|
||||
{
|
||||
value: 'url',
|
||||
label: '链接'
|
||||
}
|
||||
],
|
||||
formLabelWidth: '200px',
|
||||
activeName: 'first',
|
||||
tableDataLoading: false,
|
||||
dialogFormVisible1: false,
|
||||
dialogFormVisible2: false,
|
||||
dialogFormVisible: false,
|
||||
tableData: [],
|
||||
},
|
||||
phone: '',
|
||||
content: '',
|
||||
flag: '',
|
||||
flags: [{
|
||||
value: 1,
|
||||
label: '单个用户'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '全部用户'
|
||||
}
|
||||
],
|
||||
formLabelWidth: '200px',
|
||||
activeName: 'first',
|
||||
tableDataLoading: false,
|
||||
dialogFormVisible1: false,
|
||||
dialogFormVisible2: false,
|
||||
dialogFormVisible: false,
|
||||
tableData: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 获取消息中心未阅读数据量
|
||||
dataSelectXxzx() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/message/dataSelectXxzx'),
|
||||
method: 'get',
|
||||
}).then(({ data }) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberXxzx', data.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
//更改已读未读状态
|
||||
changeState(row, type) {
|
||||
let isSee = 1
|
||||
if (type) isSee = 2
|
||||
else isSee = 1
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('message/updateMessage'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
'id': row.id,
|
||||
'isSee': isSee
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect()
|
||||
this.dataSelectXxzx()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: data.msg,
|
||||
type: 'warning'
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
// 详情跳转
|
||||
updataDetails(row) {
|
||||
this.$router.push({
|
||||
path: '/userDetail',
|
||||
query: {
|
||||
userId: row.userId
|
||||
}
|
||||
});
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.limit = val;
|
||||
this.dataSelect()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.dataSelect()
|
||||
},
|
||||
handleClick(tab, event) {
|
||||
if (tab._props.label == '意见反馈') {
|
||||
this.page = 1
|
||||
this.limit = 10
|
||||
this.state = 2
|
||||
this.dataSelect()
|
||||
}
|
||||
if (tab._props.label == '注销账号') {
|
||||
this.page = 1
|
||||
this.limit = 5
|
||||
this.state = 3
|
||||
this.dataSelect()
|
||||
}
|
||||
if (tab._props.label == '消息推送') {
|
||||
this.page = 1
|
||||
this.limit = 5
|
||||
this.state = 8
|
||||
this.dataSelect()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 详情跳转
|
||||
updataDetails(row) {
|
||||
this.$router.push({
|
||||
path: '/userDetail',
|
||||
query: {
|
||||
userId: row.userId
|
||||
}
|
||||
// 消息推送
|
||||
magNotice() {
|
||||
this.dialogFormVisible2 = true
|
||||
},
|
||||
// 消息推送
|
||||
magNoticeTo() {
|
||||
if (this.flag == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请选择类型',
|
||||
type: 'warning'
|
||||
});
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.limit = val;
|
||||
this.dataSelect()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.dataSelect()
|
||||
},
|
||||
handleClick(tab, event) {
|
||||
if (tab._props.label == '意见反馈') {
|
||||
this.page = 1
|
||||
this.limit = 10
|
||||
this.state = 2
|
||||
this.dataSelect()
|
||||
}
|
||||
if (tab._props.label == '注销账号') {
|
||||
this.page = 1
|
||||
this.limit = 5
|
||||
this.state = 3
|
||||
this.dataSelect()
|
||||
}
|
||||
if (tab._props.label == '消息推送') {
|
||||
this.page = 1
|
||||
this.limit = 5
|
||||
this.state = 8
|
||||
this.dataSelect()
|
||||
}
|
||||
},
|
||||
// 消息推送
|
||||
magNotice() {
|
||||
this.dialogFormVisible2 = true
|
||||
},
|
||||
// 消息推送
|
||||
magNoticeTo() {
|
||||
if (this.flag == '') {
|
||||
return
|
||||
}
|
||||
if (this.title == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入标题',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.content == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入内容',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.flag == 1) {
|
||||
if (this.phone == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请选择类型',
|
||||
message: '请输入用户手机号',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.title == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入标题',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.content == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入内容',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.flag == 1) {
|
||||
if (this.phone == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入用户手机号',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/cash/sendMsg'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'title': this.title,
|
||||
'content': this.content,
|
||||
'phone': this.phone,
|
||||
'flag': this.flag
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.dialogFormVisible2 = false
|
||||
if (data.code == -100) {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.phone = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.phone = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
if (this.flag == 2) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/cash/sendMsg'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'title': this.title,
|
||||
'content': this.content,
|
||||
'flag': this.flag,
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.dialogFormVisible2 = false
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 获取数据列表
|
||||
dataSelect() {
|
||||
this.tableDataLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`message/page/${this.state}/${this.page}/${this.limit}`),
|
||||
url: this.$http.adornUrl('/cash/sendMsg'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({})
|
||||
params: this.$http.adornParams({
|
||||
'title': this.title,
|
||||
'content': this.content,
|
||||
'phone': this.phone,
|
||||
'flag': this.flag
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.tableDataLoading = false
|
||||
// for (var i in data.data.list) {
|
||||
// var a = data.data.list[i].content.toString()
|
||||
// var b = JSON.parse(a)
|
||||
// data.data.list[i].content = b.content
|
||||
// console.log('key', b.content)
|
||||
// }
|
||||
let returnData = data.data;
|
||||
this.tableData = returnData
|
||||
|
||||
this.dialogFormVisible2 = false
|
||||
if (data.code == -100) {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.phone = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.phone = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
if (this.flag == 2) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/cash/sendMsg'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'title': this.title,
|
||||
'content': this.content,
|
||||
'flag': this.flag,
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.dialogFormVisible2 = false
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.dataSelect()
|
||||
}
|
||||
};
|
||||
// 获取数据列表
|
||||
dataSelect() {
|
||||
this.tableDataLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`message/page/${this.state}/${this.page}/${this.limit}`),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.tableDataLoading = false
|
||||
// for (var i in data.data.list) {
|
||||
// var a = data.data.list[i].content.toString()
|
||||
// var b = JSON.parse(a)
|
||||
// data.data.list[i].content = b.content
|
||||
// console.log('key', b.content)
|
||||
// }
|
||||
let returnData = data.data;
|
||||
this.tableData = returnData
|
||||
|
||||
})
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.dataSelect()
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<style></style>
|
||||
|
|
|
@ -0,0 +1,312 @@
|
|||
<template>
|
||||
<div>
|
||||
<div style="margin-right:2%;text-align:right;">
|
||||
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" @click="dataSelect">刷新
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list">
|
||||
<el-table-column prop="id" label="编号" width="80">
|
||||
</el-table-column>
|
||||
<el-table-column prop="title" label="联系方式">
|
||||
</el-table-column>
|
||||
<el-table-column prop="content" label="内容">
|
||||
</el-table-column>
|
||||
<el-table-column prop="createAt" label="创建时间" width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="isSee" label="状态" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.isSee == 2" style="color: #67C23A;">已读</span>
|
||||
<span v-else style="color: #909399;">未读</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="180" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="primary" size="small" @click="changeState(scope.row, true)"
|
||||
v-if="scope.row.isSee != 2">标为已读</el-button>
|
||||
<el-button type="info" size="small" @click="changeState(scope.row, false)"
|
||||
v-if="scope.row.isSee == 2">标为未读</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center;margin-top: 10px;">
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper" :total="tableData.totalCount">
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
limit: 10,
|
||||
page: 1,
|
||||
state: 99,
|
||||
url: '',
|
||||
title: '',
|
||||
type: '',
|
||||
id: '',
|
||||
types: [{
|
||||
value: 'word',
|
||||
label: '文字'
|
||||
},
|
||||
{
|
||||
value: 'url',
|
||||
label: '链接'
|
||||
}
|
||||
],
|
||||
form: {
|
||||
id: '',
|
||||
title: '',
|
||||
url: '',
|
||||
type: '',
|
||||
state: '',
|
||||
types: [{
|
||||
value: 'word',
|
||||
label: '文字'
|
||||
},
|
||||
{
|
||||
value: 'url',
|
||||
label: '链接'
|
||||
}
|
||||
],
|
||||
},
|
||||
phone: '',
|
||||
content: '',
|
||||
flag: '',
|
||||
flags: [{
|
||||
value: 1,
|
||||
label: '单个用户'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '全部用户'
|
||||
}
|
||||
],
|
||||
formLabelWidth: '200px',
|
||||
activeName: 'first',
|
||||
tableDataLoading: false,
|
||||
dialogFormVisible1: false,
|
||||
dialogFormVisible2: false,
|
||||
dialogFormVisible: false,
|
||||
tableData: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 获取消息中心未阅读数据量
|
||||
dataSelectXyhzc() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/message/dataSelectXyhzc'),
|
||||
method: 'get',
|
||||
}).then(({ data }) => {
|
||||
if (data.data >= 0) {
|
||||
this.$cookie.set('numberXyhzc', data.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
//更改已读未读状态
|
||||
changeState(row, type) {
|
||||
let isSee = 1
|
||||
if (type) isSee = 2
|
||||
else isSee = 1
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('message/updateMessage'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
'id': row.id,
|
||||
'isSee': isSee
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect()
|
||||
this.dataSelectXyhzc()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: data.msg,
|
||||
type: 'warning'
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
// 详情跳转
|
||||
updataDetails(row) {
|
||||
this.$router.push({
|
||||
path: '/userDetail',
|
||||
query: {
|
||||
userId: row.userId
|
||||
}
|
||||
});
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.limit = val;
|
||||
this.dataSelect()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.dataSelect()
|
||||
},
|
||||
handleClick(tab, event) {
|
||||
this.page = 1
|
||||
this.limit = 10
|
||||
this.state = 99
|
||||
this.dataSelect()
|
||||
},
|
||||
// 消息推送
|
||||
magNotice() {
|
||||
this.dialogFormVisible2 = true
|
||||
},
|
||||
// 消息推送
|
||||
magNoticeTo() {
|
||||
if (this.flag == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请选择类型',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.title == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入标题',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.content == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入内容',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.flag == 1) {
|
||||
if (this.phone == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入用户手机号',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/cash/sendMsg'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'title': this.title,
|
||||
'content': this.content,
|
||||
'phone': this.phone,
|
||||
'flag': this.flag
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.dialogFormVisible2 = false
|
||||
if (data.code == -100) {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.phone = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.phone = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
if (this.flag == 2) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/cash/sendMsg'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'title': this.title,
|
||||
'content': this.content,
|
||||
'flag': this.flag,
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.dialogFormVisible2 = false
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.title = ''
|
||||
this.content = ''
|
||||
this.flag = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 获取数据列表
|
||||
dataSelect() {
|
||||
this.tableDataLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`message/page/${this.state}/${this.page}/${this.limit}`),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.tableDataLoading = false
|
||||
// for (var i in data.data.list) {
|
||||
// var a = data.data.list[i].content.toString()
|
||||
// var b = JSON.parse(a)
|
||||
// data.data.list[i].content = b.content
|
||||
// console.log('key', b.content)
|
||||
// }
|
||||
let returnData = data.data;
|
||||
this.tableData = returnData
|
||||
|
||||
})
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.dataSelect()
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style></style>
|
|
@ -540,6 +540,18 @@ const maxReconnectMaxCn = 100;
|
|||
let returnData = data.data;
|
||||
this.chatList = returnData.list;
|
||||
// this.clickItem(this.chatList[this.current], this.current);
|
||||
|
||||
//计算未回复消息数,更新菜单栏提示信息
|
||||
if(!!data.data && !!data.data.list){
|
||||
let count = null
|
||||
data.data.list.forEach(element => {
|
||||
if(element.contentCount > 0){
|
||||
if(!count)count = 0
|
||||
count += element.contentCount
|
||||
}
|
||||
});
|
||||
this.$cookie.set('numberLts', count)
|
||||
}
|
||||
});
|
||||
},
|
||||
// 验证只能上传音频
|
||||
|
|