From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1
---
src/views/modules/sys-config/customer-service-sys-config.vue | 241 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 241 insertions(+), 0 deletions(-)
diff --git a/src/views/modules/sys-config/customer-service-sys-config.vue b/src/views/modules/sys-config/customer-service-sys-config.vue
new file mode 100644
index 0000000..035409d
--- /dev/null
+++ b/src/views/modules/sys-config/customer-service-sys-config.vue
@@ -0,0 +1,241 @@
+<template>
+ <div class="mod-customer-service-sys-config">
+ <avue-crud ref="crud"
+ :page.sync="page"
+ :data="dataList"
+ :option="tableOption"
+ @search-change="searchChange"
+ @selection-change="selectionChange"
+ :cell-class-name="addClasscolor"
+ @on-load="getDataList">
+ <template slot="menuLeft">
+ <el-button type="primary"
+ icon="el-icon-plus"
+ size="small"
+ v-if="isAuth('sys:config:customer-service-sys-config:operate')"
+ @click.stop="addOrUpdateHandle()">新增客服</el-button>
+ </template>
+ <template slot="userndhSearch">
+ <el-input
+ v-model="userName"
+ placeholder="用户名"
+ clearable
+ ></el-input>
+ </template>
+ <template slot-scope="scope"
+ slot="menu">
+ <el-select
+ v-if="isAuth('sys:config:customer-service-sys-config:operate')"
+ v-model="scope.row.select" class="celectSpeac" clearable placeholder="操作" @change="changeSelet(scope.row.select,scope.row,scope.row.googleAuthBind,scope.row.userId)">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </template>
+ </avue-crud>
+ <!-- 弹窗, 新增 / 修改 -->
+ <add-or-update v-if="addOrUpdateVisible"
+ ref="addOrUpdate"
+ @refreshDataList="getDataList"></add-or-update>
+ <add-other-update v-if="addOtherUpdateVisible"
+ ref="addOtherUpdate"
+ @refreshDataList="getDataList"></add-other-update>
+ <!-- 谷歌验证 -->
+ <add-or-gogle v-if="UpdateGogle"
+ ref="UpdateGogle"
+ @refreshDataList="getDataList"></add-or-gogle>
+ </div>
+</template>
+
+<script>
+import { tableOption } from '@/crud/sys/customer-service'
+import AddOrUpdate from './customer-service-add-or-update'
+import AddOtherUpdate from './customer-service-mix-or-update'
+import AddOrGogle from './customer-googleAuthCode'
+export default {
+ data () {
+ return {
+ dataList: [],
+ dataListLoading: false,
+ UpdateGogle:false,
+ userName:'',
+ dataListSelections: [],
+ addOrUpdateVisible: false,
+ addOtherUpdateVisible:false,
+ tableOption: tableOption,
+ options: [
+ {
+ value: "1",
+ label: "修改",
+ },
+ {
+ value: "2",
+ label: "修改密码",
+ },
+ {
+ value: "3",
+ label: "修改资金密码",
+ },
+ {
+ value: "4",
+ label: "强制下线",
+ },
+ {
+ value: "5",
+ label: "谷歌验证器",
+ },
+ ],
+ page: {
+ total: 0, // 总页数
+ currentPage: 1, // 当前页数
+ pageSize: 10 // 每页显示多少条
+ },
+ dataForm: {
+ userName: ''
+ },
+ }
+ },
+ components: {
+ AddOrUpdate,
+ AddOtherUpdate,
+ AddOrGogle
+ },
+ methods: {
+ // 获取数据列表
+ getDataList (page, params, done) {
+ this.dataListLoading = true
+ this.$http({
+ url: this.$http.adornUrl('/customer/list'),
+ method: 'post',
+ data: this.$http.adornData(
+ Object.assign(
+ {
+ userName:this.userName,
+ current: page == null ? this.page.currentPage : page.currentPage,
+ size: page == null ? this.page.pageSize : page.pageSize,
+ },
+ params
+ )
+ ),
+ }).then(({ data }) => {
+ this.dataList = data.data.records
+ this.page.total = data.data.total
+ this.dataListLoading = false
+ if (done) {
+ done()
+ }
+ })
+ },
+ addClasscolor({ column, row }) {//表单样式
+ if (
+ (column.property === "onlineState" && row.onlineState*1 == 1) ||
+ (column.property === "googleAuthBind" && row.googleAuthBind*1 == 1)
+ ) {
+ return "green";
+ } else {
+ return "";
+ }
+ },
+ // 条件查询
+ searchChange (params, done) {
+ this.page.currentPage = 1;
+ this.getDataList(this.page, params, done)
+ },
+ // 多选变化
+ selectionChange (val) {
+ this.dataListSelections = val
+ },
+ // 新增 / 修改
+ addOrUpdateHandle (row) {
+ this.addOrUpdateVisible = true
+ this.$nextTick(() => {
+ this.$refs.addOrUpdate.init(row)
+ })
+ },
+ changeSelet(val,row,googleAuthBind,id){
+ if(val){
+ let m = this.options[val-1].label //弹窗标题
+ if(val==2 || val == 3 || val == 4){ // 1修改 2修改密码 3修改资金密码 4强制下线 5谷歌验证器
+ this.addOtherUpdateVisible = true;
+ this.$nextTick(() => {
+ this.$refs.addOtherUpdate.init(val,row,m);
+ });
+ }else if(val==1){
+ this.addOrUpdateVisible = true
+ this.$nextTick(() => {
+ this.$refs.addOrUpdate.init(row)
+ })
+ } else if( val == 5){
+ this.updategoogleAuthCode(googleAuthBind,id,row)
+ }
+ }
+ row.select = "";
+ },
+ // 谷歌验证
+ addOrUpdateGogle(googleAuthBind,id,data){
+ this.UpdateGogle = true
+ this.$nextTick(() => {
+ this.$refs.UpdateGogle.init(googleAuthBind,id,data)
+ })
+ },
+ // 谷歌验证码绑定
+ updategoogleAuthCode (googleAuthBind,id,data) {
+ if(googleAuthBind){
+ this.$confirm('谷歌验证器已绑定', '谷歌验证器', { //系统管理用户是否已绑定
+ distinguishCancelAndClose: true,
+ confirmButtonText: '确定',
+ cancelButtonText: '解绑',
+ type: 'success'
+ }).then(() => {
+ }).catch(action => {
+ if(action === 'cancel'){
+ console.log(id)
+ this.addOrUpdateGogle(googleAuthBind,id,data)
+ }
+ });
+ }else{
+ this.addOrUpdateGogle(googleAuthBind,id,data)
+ }
+ },
+ // 删除
+ deleteHandle (id) {
+ var ids = id ? [id] : this.dataListSelections.map(item => {
+ return item.roleId
+ })
+ this.$confirm(`确定进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(() => {
+ this.$http({
+ url: this.$http.adornUrl('/sys/role'),
+ method: 'delete',
+ data: this.$http.adornData(ids, false)
+ }).then(({ data }) => {
+ this.$message({
+ message: '操作成功',
+ type: 'success',
+ duration: 1500,
+ onClose: () => {
+ this.getDataList()
+ }
+ })
+ })
+ }).catch(() => { })
+ }
+ }
+}
+</script>
+<style lang="scss" scoped>
+ /* 以下是下拉框操作按钮样式 */
+ ::v-deep .celectSpeac .el-input__inner{
+ background: #1C4EFA !important;
+ }
+ ::v-deep .celectSpeac .el-input__inner::placeholder{
+ color: #fff;
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3