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/main-navbar-customerCentor.vue | 282 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 282 insertions(+), 0 deletions(-)
diff --git a/src/views/main-navbar-customerCentor.vue b/src/views/main-navbar-customerCentor.vue
new file mode 100644
index 0000000..5407943
--- /dev/null
+++ b/src/views/main-navbar-customerCentor.vue
@@ -0,0 +1,282 @@
+<template>
+ <el-dialog
+ title="客服个人中心页面"
+ :visible.sync="visible"
+ width="600px"
+ :append-to-body="true">
+ <el-form :model="dataForm" ref="dataForm" label-width="100px">
+ <el-form-item label="用户名">
+ <span>{{ userName }}</span>
+ </el-form-item>
+ <el-form-item label="当前在线状态" prop="online">
+ <el-input v-model="dataForm.online" disabled></el-input>
+ </el-form-item>
+ <el-form-item label="最后上线时间" prop="last_online_time">
+ <el-input v-model="dataForm.last_online_time" disabled></el-input>
+ </el-form-item>
+ <el-form-item label="最后下线时间" prop="last_offline_time">
+ <el-input v-model="dataForm.last_offline_time" disabled></el-input>
+ </el-form-item>
+ <el-form-item label="再次访问自动回复">
+ <el-input v-model="dataForm.auto_answer"></el-input>
+ </el-form-item>
+
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="visible = false">关闭</el-button>
+ <el-button type="primary" @click="personalOpen()">{{dataForm.online_state==1 ? "下线" : "上线"}}</el-button>
+ <el-button type="primary" @click="personalUpdateAutoAnswer1()">保存</el-button>
+ </span>
+
+ <!-- 确认弹窗-start -->
+ <el-dialog
+ title="验证资金密码"
+ :visible.sync="dialogFormVisible"
+ :append-to-body="true"
+ >
+ <el-form
+ :model="dataForm2"
+ ref="dataForm2"
+ @keyup.enter.native="personalUpdateAutoAnswer()"
+ label-width="80px"
+ >
+ <el-form-item
+ label="登录人资金密码"
+ :label-width="formLabelWidth"
+ prop="loginSafeword"
+ >
+ <el-input
+ v-model="dataForm2.loginSafeword"
+ type="password"
+ placeholder="登录人资金密码"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="dialogFormVisible = false">取 消</el-button>
+ <el-button type="primary" @click="personalUpdateAutoAnswer()">确 定</el-button>
+ </div>
+ </el-dialog>
+ <!-- 确认弹窗-end -->
+
+ </el-dialog>
+</template>
+
+<script>
+ import { clearLoginInfo } from '@/utils'
+ import { Debounce } from '@/utils/debounce'
+ import { encrypt } from '@/utils/crypto'
+ export default {
+ data () {
+ var validateConfirmPassword = (rule, value, callback) => {
+ if (this.dataForm.newPassword !== value) {
+ callback(new Error('确认密码与新密码不一致'))
+ } else {
+ callback()
+ }
+ }
+ return {
+ visible: false,
+ dataForm: {
+ password: '',
+ newPassword: '',
+ confirmPassword: ''
+ },
+ dialogFormVisible:false,
+ dataForm2:{},
+ formLabelWidth: "120px",
+ }
+ },
+ computed: {
+ userName: {
+ get () { return this.$store.state.user.name }
+ },
+ mainTabs: {
+ get () { return this.$store.state.common.mainTabs },
+ set (val) { this.$store.commit('common/updateMainTabs', val) }
+ }
+ },
+ methods: {
+ // 初始化
+ init () {
+
+ this.personalCustomer();
+
+ this.visible = true
+ this.$nextTick(() => {
+ this.$refs['dataForm'].resetFields()
+ })
+ },
+ // 表单提交
+ dataFormSubmit: Debounce(function () {
+ this.$refs['dataForm'].validate((valid) => {
+ if (valid) {
+ this.$http({
+ url: this.$http.adornUrl('/changeLoginPassword'),
+ method: 'post',
+ data: this.$http.adornData({
+ 'oldPassword': encrypt(this.dataForm.password),
+ 'newPassword': encrypt(this.dataForm.newPassword)
+ })
+ }).then(({data}) => {
+ if(data.code == 0){
+ this.$message({
+ message: '操作成功',
+ type: 'success',
+ duration: 1500,
+ onClose: () => {
+ this.visible = false
+ this.$nextTick(() => {
+ // this.mainTabs = []
+ // clearLoginInfo()
+ // this.$router.replace({ name: 'login' })
+ })
+ }
+ })
+ }else{
+ this.$message({
+ message:data.msg,
+ type: 'error',
+ duration: 1500,
+ onClose: () => {
+
+ }
+ })
+ }
+
+ })
+ }
+ })
+ }),
+ personalCustomer() {
+ this.$http({
+ url: this.$http.adornUrl("/normal/adminPersonalCustomerAction!personalCustomer.action"),
+ method: "get",
+ data: this.$http.adornData({}),
+ }).then(({ data }) => {
+ if(data.code == 0){
+ let kefuInfo = {}
+ this.dataForm = data.data;
+ if(this.dataForm.online_state == 1){
+ this.dataForm.online = "上线"
+ kefuInfo.isOnline = true;
+ }else{
+ this.dataForm.online = "下线"
+ kefuInfo.isOnline = false;
+ }
+
+ this.$bus.$emit("updateKefuInfo",kefuInfo);
+ }else{
+ this.$message(data.msg);
+ }
+
+ });
+ },
+ personalOpen(){
+ // this.dialogFormVisible = true;
+ if(this.dataForm.online_state == 1){
+ this.personalOffline();
+ }else{
+ this.personalOnline();
+ }
+ },
+ personalOnline() {
+ this.$http({
+ url: this.$http.adornUrl("/normal/adminPersonalCustomerAction!personalOnline.action"),
+ method: "get",
+ data: this.$http.adornData({}),
+ }).then(({ data }) => {
+ if(data.code == 0){
+ this.personalCustomer();
+ }else{
+ this.$message(data.msg);
+ }
+
+ });
+ },
+ personalOffline() {
+ this.open("下线后将不会收到消息,如有新消息,用户将分配给其他在线客服","是否下线",
+ ()=>{
+ //
+ this.$http({
+ url: this.$http.adornUrl("/normal/adminPersonalCustomerAction!personalOffline.action"),
+ method: "get",
+ data: this.$http.adornData({}),
+ }).then(({ data }) => {
+ if(data.code == 0){
+ this.personalCustomer();
+ }else{
+ this.$message(data.msg);
+ }
+
+ });
+ //
+ },()=>{});
+
+ },
+ open(message,title,yes,cancel) {
+ this.$confirm(message, title, {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ center: true
+ }).then(() => {
+ if(yes){yes()}
+ // this.$message({
+ // type: 'success',
+ // message: '删除成功!'
+ // });
+ }).catch(() => {
+ if(cancel){cancel()}
+ // this.$message({
+ // type: 'info',
+ // message: '已取消删除'
+ // });
+ });
+ },
+ personalUpdateAutoAnswer1(){
+ this.dialogFormVisible = true;
+ },
+ personalUpdateAutoAnswer() {
+ if(!this.dataForm2.loginSafeword){
+ this.$message({
+ message: "资金密码不能为空",
+ type: 'error',
+ duration: 1500,
+ onClose: () => {
+ // this.visible = false
+ // this.$emit('refreshDataList')
+ }
+ })
+ return
+ }
+ this.$http({
+ url: this.$http.adornUrl("/normal/adminPersonalCustomerAction!personalUpdateAutoAnswer.action"),
+ method: "get",
+ params: this.$http.adornParams({
+ auto_answer:this.dataForm.auto_answer,
+ login_safeword:encrypt(this.dataForm2.loginSafeword)
+ }),
+ }).then(({ data }) => {
+ if(data.code == 0){
+ this.dialogFormVisible = false;
+ }else{
+ // this.$message(data.msg);
+ this.$message({
+ message: data.msg == "AES解密错误" ? "资金密码不正确" : data.msg,
+ type: 'error',
+ duration: 1500,
+ onClose: () => {
+ // this.visible = false
+ // this.$emit('refreshDataList')
+ }
+ })
+ }
+
+ });
+ },
+ }
+ }
+</script>
+
--
Gitblit v1.9.3