|
@@ -4,7 +4,7 @@
|
|
|
* @Author: zzx
|
|
|
* @Date: 2024-11-09 16:08:16
|
|
|
* @LastEditors: zzx tigerzouzx@foxmail.com
|
|
|
- * @LastEditTime: 2024-11-19 16:08:16
|
|
|
+ * @LastEditTime: 2025-01-08 12:00:00
|
|
|
-->
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
@@ -35,47 +35,71 @@
|
|
|
<el-card class="operate-container" shadow="hover">
|
|
|
<i class="el-icon-tickets"></i>
|
|
|
<span>数据列表</span>
|
|
|
- <!-- <el-button size="mini" class="btn-add" @click="handleAdd()" style="margin-left: 20px">添加</el-button> -->
|
|
|
+ <el-button size="mini" class="btn-add" @click="handleAdd()" style="margin-left: 20px">添加</el-button>
|
|
|
</el-card>
|
|
|
<div class="table-container">
|
|
|
<el-table ref="adminTable" :data="list" style="width: 100%" v-loading="listLoading" border>
|
|
|
- <el-table-column label="渠道编号" width="100" align="center" prop="appId"></el-table-column>
|
|
|
+ <el-table-column label="渠道编号(key)" align="center" prop="appId"></el-table-column>
|
|
|
+ <el-table-column label="app_id" align="center" prop="authCode"></el-table-column>
|
|
|
<el-table-column label="渠道名称" align="center" prop="ecName"></el-table-column>
|
|
|
- <el-table-column label="联系人" align="center">
|
|
|
+ <el-table-column label="合作模式" align="center" prop="serviceMoneyType">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.contactName||'--' }}
|
|
|
+ <span v-if="scope.row.serviceMoneyType == 1">{{ '统一服务费' || '--' }}</span>
|
|
|
+ <span v-if="scope.row.serviceMoneyType == 2">{{ '服务费抽成' || '--' }}</span>
|
|
|
+ <span v-if="scope.row.serviceMoneyType == 3">{{ '分时段服务费' || '--' }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="手机号" align="center">
|
|
|
+ <el-table-column label="抽成比例" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.commissionServiceMoney || "--" }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="分时段服务费(元/度)" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.contactPhone||'--' }}
|
|
|
+ <div style="color: rgb(245,108,108);">峰:{{ scope.row.timeServiceMoney &&
|
|
|
+ scope.row.timeServiceMoney['1'] || '--' }}</div>
|
|
|
+ <div style="color: rgb(230, 162, 10);">平:{{ scope.row.timeServiceMoney &&
|
|
|
+ scope.row.timeServiceMoney['2'] || '--' }}</div>
|
|
|
+ <div style="color: rgb(103, 194, 58);">谷:{{ scope.row.timeServiceMoney &&
|
|
|
+ scope.row.timeServiceMoney['3'] || '--' }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="渠道服务费/元" width="160" align="center" prop="serviceMoney"></el-table-column>
|
|
|
+ <el-table-column label="统一服务费(元/度)" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.serviceMoney || "--" }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column label="联系人" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.contactName || "--" }}
|
|
|
+ </template>
|
|
|
+ </el-table-column> -->
|
|
|
+ <!-- <el-table-column label="手机号" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.contactPhone || "--" }}
|
|
|
+ </template>
|
|
|
+ </el-table-column> -->
|
|
|
+ <!-- <el-table-column label="渠道服务费/元" width="160" align="center" prop="serviceMoney"></el-table-column> -->
|
|
|
<el-table-column label="使用状态" width="160" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-tag type='success' v-if="scope.row.status === 1">正常</el-tag>
|
|
|
+ <el-tag type="success" v-if="scope.row.status === 1">启用</el-tag>
|
|
|
<el-tag type="danger" v-else>禁用</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="创建人" width="140" align="center">
|
|
|
+ <!-- <el-table-column label="创建人" width="140" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.createBy||'--' }}
|
|
|
+ {{ scope.row.createBy || "--" }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="创建时间" width="140" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.createTime||'--' }}
|
|
|
+ {{ scope.row.createTime || "--" }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="更新人" width="140" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.updateBy||'--' }}
|
|
|
+ {{ scope.row.updateBy || "--" }}
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
+ </el-table-column> -->
|
|
|
<el-table-column label="更新时间" width="140" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.updateTime||'--' }}
|
|
|
+ {{ scope.row.updateTime || "--" }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" width="180" align="center">
|
|
@@ -94,23 +118,60 @@
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
<el-dialog :title="isEdit ? '编辑' : '添加'" :visible.sync="dialogVisible" width="40%">
|
|
|
- <el-form :model="admin" ref="adminForm" label-width="150px" size="small">
|
|
|
- <el-form-item label="渠道编号:">
|
|
|
+ <el-form :model="admin" ref="adminForm" label-width="150px" size="small" :rules="rules">
|
|
|
+ <el-form-item label="渠道编号(key):">
|
|
|
<el-input disabled v-model="admin.appId" style="width: 250px"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="渠道名称:">
|
|
|
+ <el-form-item label="app_id:">
|
|
|
+ <el-input disabled v-model="admin.authCode" style="width: 250px"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="渠道名称:" prop="ecName">
|
|
|
<el-input v-model="admin.ecName" style="width: 250px"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="联系人:">
|
|
|
+ <el-form-item label="联系人:" prop="contactName">
|
|
|
<el-input v-model="admin.contactName" style="width: 250px"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="手机号:">
|
|
|
+ <el-form-item label="手机号:" prop="contactPhone">
|
|
|
<el-input v-model="admin.contactPhone" type="number" style="width: 250px"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="渠道服务费:">
|
|
|
- <el-input v-model="admin.serviceMoney" type="text" :rows="5" style="width: 250px"></el-input>
|
|
|
+ <el-form-item label="合作模式:" prop="serviceMoneyType">
|
|
|
+ <el-radio-group v-model="admin.serviceMoneyType" @input="changeCooperation">
|
|
|
+ <el-radio :label="1">统一服务费</el-radio>
|
|
|
+ <el-radio :label="2">服务费抽成</el-radio>
|
|
|
+ <el-radio :label="3">分时段服务费</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label=" 渠道服务费(元/度):" prop="serviceMoney" v-if="admin.serviceMoneyType == 1">
|
|
|
+ <el-input v-model="admin.serviceMoney" type="number" style="width: 250px"></el-input>
|
|
|
<div>当前平台服务费为0.1元/度</div>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label=" 抽成比例:" prop="commissionServiceMoney" v-if="admin.serviceMoneyType == 2">
|
|
|
+ <el-input v-model="admin.commissionServiceMoney" type="number" style="width: 250px"></el-input> %
|
|
|
+ </el-form-item>
|
|
|
+ <div class="serviceMoney-box" v-if="admin.serviceMoneyType == 3">
|
|
|
+ <el-form-item label="峰" prop="peakServiceMoney">
|
|
|
+ <div class="serviceMoney-item">
|
|
|
+ <el-input v-model="admin.peakServiceMoney" @input="changeServiceMoney" type="number" style="width:100px"></el-input>
|
|
|
+ <div class="serviceMoney-item-unit">元/度</div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="平" prop="flatServiceMoney">
|
|
|
+ <div class="serviceMoney-item">
|
|
|
+ <el-input v-model="admin.flatServiceMoney" type="number" style="width:100px"></el-input>
|
|
|
+ <div class="serviceMoney-item-unit">元/度</div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="谷" prop="valleyServiceMoney">
|
|
|
+ <div class="serviceMoney-item">
|
|
|
+ <el-input v-model="admin.valleyServiceMoney" type="number" style="width:100px"></el-input>
|
|
|
+ <div class="serviceMoney-item-unit">元/度</div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="使用状态:">
|
|
|
+ <el-switch v-model="switchStatus" @change="changeSwitch">
|
|
|
+ </el-switch>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="dialogVisible = false" size="small">取 消</el-button>
|
|
@@ -120,31 +181,36 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import {
|
|
|
- createAdmin,
|
|
|
-} from "@/api/login";
|
|
|
-import { channelList, editList } from "@/api/channel";
|
|
|
+import { channelList, editList, createChannel } from "@/api/channel";
|
|
|
import { formatDate } from "@/utils/date";
|
|
|
-
|
|
|
+import { isEmpty } from "@/utils/common";
|
|
|
const defaultListQuery = {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
ecName: null,
|
|
|
- startTime: '',
|
|
|
- endTime: ''
|
|
|
+ startTime: "",
|
|
|
+ endTime: "",
|
|
|
};
|
|
|
const defaultAdmin = {
|
|
|
appId: null,
|
|
|
+ authCode: null,
|
|
|
ecName: null,
|
|
|
contactName: null,
|
|
|
contactPhone: null,
|
|
|
+ serviceMoneyType: null,
|
|
|
+ status: null,
|
|
|
serviceMoney: null,
|
|
|
+ thirdPartyId: null,
|
|
|
+ commissionServiceMoney: null, //抽成比例
|
|
|
+ peakServiceMoney: null, //峰
|
|
|
+ flatServiceMoney: null, //平
|
|
|
+ valleyServiceMoney: null, //谷
|
|
|
};
|
|
|
export default {
|
|
|
name: "info",
|
|
|
data() {
|
|
|
return {
|
|
|
- date: '',
|
|
|
+ date: "",
|
|
|
listQuery: Object.assign({}, defaultListQuery),
|
|
|
list: null,
|
|
|
total: null,
|
|
@@ -156,6 +222,20 @@ export default {
|
|
|
allocRoleIds: [],
|
|
|
allRoleList: [],
|
|
|
allocAdminId: null,
|
|
|
+ switchStatus: true,
|
|
|
+ rules: {
|
|
|
+ ecName: [{ required: true, message: "请输入渠道名称", trigger: "blur" }],
|
|
|
+ contactName: [{ required: true, message: "请输入联系人", trigger: "blur" }],
|
|
|
+ contactPhone: [{ required: true, message: "请输入联系电话", trigger: "blur" },
|
|
|
+ { pattern: /^1[3-9]\d{9}$/, message: '请输入正确手机号', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ serviceMoneyType: [{ required: true, message: "请选择服务费类型", trigger: "blur" }],
|
|
|
+ serviceMoney: [{ required: true, message: "请输入服务费", trigger: "blur" }],
|
|
|
+ commissionServiceMoney: [{ required: true, message: "请输入抽成比例", trigger: "blur" }],
|
|
|
+ peakServiceMoney: [{ required: true, message: "请输入峰值服务费", trigger: "blur" }],
|
|
|
+ flatServiceMoney: [{ required: true, message: "请输入平峰服务费", trigger: "blur" }],
|
|
|
+ valleyServiceMoney: [{ required: true, message: "请输入谷值服务费", trigger: "blur" }],
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
@@ -182,6 +262,25 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 是否禁用
|
|
|
+ changeSwitch(val) {
|
|
|
+ if (val == true) {
|
|
|
+ this.admin.status = 1
|
|
|
+ } else {
|
|
|
+ this.admin.status = 2
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 合作方式
|
|
|
+ changeCooperation(val) {
|
|
|
+ this.admin.serviceMoneyType = val
|
|
|
+ this.admin.serviceMoney = ''
|
|
|
+ this.admin.commissionServiceMoney = ''
|
|
|
+ this.admin.peakServiceMoney = ''
|
|
|
+ this.admin.flatServiceMoney = ''
|
|
|
+ this.admin.valleyServiceMoney = ''
|
|
|
+ },
|
|
|
+
|
|
|
// 重置搜索框
|
|
|
handleResetSearch() {
|
|
|
this.date = "";
|
|
@@ -211,6 +310,7 @@ export default {
|
|
|
handleAdd() {
|
|
|
this.dialogVisible = true;
|
|
|
this.isEdit = false;
|
|
|
+ this.switchStatus = true;
|
|
|
this.admin = Object.assign({}, defaultAdmin);
|
|
|
},
|
|
|
|
|
@@ -218,48 +318,67 @@ export default {
|
|
|
handleUpdate(index, row) {
|
|
|
this.dialogVisible = true;
|
|
|
this.isEdit = true;
|
|
|
- this.admin = Object.assign({}, row);
|
|
|
+ if (row.status == 1) {
|
|
|
+ this.switchStatus = true;
|
|
|
+ } else {
|
|
|
+ this.switchStatus = false;
|
|
|
+ }
|
|
|
+ let timeServiceMoneyObj = {}
|
|
|
+ if (isEmpty(row.timeServiceMoney||{}) == false) {
|
|
|
+ timeServiceMoneyObj = {
|
|
|
+ peakServiceMoney: row.timeServiceMoney[1],
|
|
|
+ flatServiceMoney: row.timeServiceMoney[2],
|
|
|
+ valleyServiceMoney: row.timeServiceMoney[3]
|
|
|
+ }
|
|
|
+ this.admin = {
|
|
|
+ ...this.admin,
|
|
|
+ ...row,
|
|
|
+ ...timeServiceMoneyObj
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ this.admin = {
|
|
|
+ ...this.admin,
|
|
|
+ ...row
|
|
|
+ };
|
|
|
+ }
|
|
|
+ this.admin.thirdPartyId = row.id
|
|
|
},
|
|
|
|
|
|
// 编辑或增加确定回调
|
|
|
handleDialogConfirm() {
|
|
|
- this.$confirm("是否要确认?", "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
- }).then(() => {
|
|
|
- let editData = {
|
|
|
- appId:this.admin.appId,
|
|
|
- contactName:this.admin.contactName,
|
|
|
- contactPhone:this.admin.contactPhone,
|
|
|
- ecName:this.admin.ecName,
|
|
|
- id: this.admin.id,
|
|
|
- serviceMoney: this.admin.serviceMoney
|
|
|
- }
|
|
|
- if (this.isEdit) {
|
|
|
- editList({...editData}).then((response) => {
|
|
|
- if( response.code == 200){
|
|
|
- this.$message({
|
|
|
- message: "修改成功!",
|
|
|
- type: "success",
|
|
|
- });
|
|
|
- this.dialogVisible = false;
|
|
|
- this.getList();
|
|
|
- }
|
|
|
- });
|
|
|
- } else {
|
|
|
- createAdmin(this.admin).then((response) => {
|
|
|
- if( response.code == 200){
|
|
|
- this.$message({
|
|
|
- message: "添加成功!",
|
|
|
- type: "success",
|
|
|
- });
|
|
|
- this.dialogVisible = false;
|
|
|
- this.getList();
|
|
|
+ this.$refs.adminForm.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ this.$confirm("是否要确认?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }).then(() => {
|
|
|
+ if (this.isEdit) {
|
|
|
+ editList(this.admin).then((response) => {
|
|
|
+ if (response.code == 200) {
|
|
|
+ this.$message({
|
|
|
+ message: "修改成功!",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ createChannel(this.admin).then((response) => {
|
|
|
+ if (response.code == 200) {
|
|
|
+ this.$message({
|
|
|
+ message: "添加成功!",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- });
|
|
|
+ })
|
|
|
},
|
|
|
|
|
|
// 获取列表
|
|
@@ -267,6 +386,9 @@ export default {
|
|
|
this.listLoading = true;
|
|
|
channelList(this.listQuery).then((response) => {
|
|
|
this.listLoading = false;
|
|
|
+ response.data.list.map(item => {
|
|
|
+ item.timeServiceMoney = JSON.parse(item.timeServiceMoney);
|
|
|
+ })
|
|
|
this.list = response.data.list;
|
|
|
this.total = response.data.total;
|
|
|
});
|
|
@@ -274,4 +396,13 @@ export default {
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
-<style></style>
|
|
|
+<style>
|
|
|
+.serviceMoney-item {
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
+
|
|
|
+.serviceMoney-item-unit {
|
|
|
+ width: 50px;
|
|
|
+ margin-left: 5px;
|
|
|
+}
|
|
|
+</style>
|