Sfoglia il codice sorgente

feat: 权限修改

sunxiao 2 mesi fa
parent
commit
3bae7fcae1

+ 3 - 1
.env.development

@@ -4,10 +4,12 @@ VITE_APP_TITLE = 佳木斯智能语音客服
 # 开发环境配置
 VITE_APP_ENV = 'development'
 
-# 管理系统/开发环境
+# 管理系统/开发环境 
 VITE_APP_BASE_API =  https://pbx.fuxicarbon.com/voiceServe/
 
 VITE_AUDIO_BASE_URL = https://pbx.fuxicarbon.com/
 
+VITE_HS_CTI_BASE_URL = pbx.fuxicarbon.com
+
 # VITE_APP_BASE_API =  http://192.168.40.21:8001/
 

+ 2 - 0
.env.production

@@ -10,5 +10,7 @@ VITE_APP_BASE_API = '/voiceServe/'
 
 VITE_AUDIO_BASE_URL = https://pbx.fuxicarbon.com/
 
+VITE_HS_CTI_BASE_URL = pbx.fuxicarbon.com
+
 # 是否在打包时开启压缩,支持 gzip 和 brotli
 VITE_BUILD_COMPRESS = gzip

+ 2 - 1
index.html

@@ -12,8 +12,9 @@
   <script src="./public/SIP.min.js" type="text/javascript"></script> -->
   <script type="text/javascript" src="https://static.fuxicarbon.com/hs-cti/socket.io.min.js"></script>
   <script type="text/javascript" src="https://static.fuxicarbon.com/hs-cti/SIP.min.js"></script>
+  <script type="text/javascript" src="https://static.fuxicarbon.com/hs-cti/hs-cti.es6.umd.prod.js"></script>
   <!-- <script src="http://static.fuxicarbon.com/hs-cti/hs-cti.es6.umd.prod.js" type="text/javascript"></script> -->
-   <script type="text/javascript" src="/hs-cti.es6.umd.prod.js"></script>
+   <!-- <script type="text/javascript" src="/hs-cti.es6.umd.prod.js"></script> -->
   <link rel="icon" href="/favicon.ico">
   <title>佳木斯智能语音客服</title>
   <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->

File diff suppressed because it is too large
+ 0 - 12
public/hs-cti.es6.umd.prod.js


+ 14 - 7
src/store/modules/voice.js

@@ -4,6 +4,8 @@ import { ElMessage } from 'element-plus'
 import usePermissionStore from './permission';
 import useUserStore from './user';
 
+const VITE_HS_CTI_BASE_URL = import.meta.env.VITE_HS_CTI_BASE_URL;
+
 const useVoiceStore = defineStore('voice', () => {
 
   const usePermission = usePermissionStore();
@@ -44,7 +46,8 @@ const useVoiceStore = defineStore('voice', () => {
     if ( userStore.roles.includes('admin') ) {
       return false;
     }
-    return usePermission.routes.findIndex(({ name }) => name === 'Console') !== -1
+    return userStore.roles.includes('zuoxi');
+    // return usePermission.routes.findIndex(({ name }) => name === 'Console') !== -1
   });
 
   // 重置
@@ -164,12 +167,12 @@ const useVoiceStore = defineStore('voice', () => {
   const listenScoketEvent = (CTIEvent) => {
     HS_CTI.on(CTIEvent.OnAgentWorkReport, async ({ workStatus, description, callId, phone }) => {
 
-      console.log( "-----------------------" );
-      console.log( "-----------------------" );
-      console.log( "workStatus", workStatus );
-      console.log( "phone", phone );
-      console.log( "-----------------------" );
-      console.log( "-----------------------" );
+      // console.log( "-----------------------" );
+      // console.log( "-----------------------" );
+      // console.log( "workStatus", workStatus );
+      // console.log( "phone", phone );
+      // console.log( "-----------------------" );
+      // console.log( "-----------------------" );
 
       // 销毁实例调用签出接口成功后 - 坐席签出
       if ( workStatus === -1 ) {
@@ -255,8 +258,12 @@ const useVoiceStore = defineStore('voice', () => {
       loggerLevel: LoggerLevels.debug,
       // 环境变量
       env: import.meta.env.VITE_APP_ENV,
+      // 新增域名
+      domainName: VITE_HS_CTI_BASE_URL
     })
 
+    // HS_CTI.domainName = VITE_HS_CTI_BASE_URL
+
     HS_CTI.init();
 
     listenScoketEvent(CTIEvent);

+ 2 - 2
src/views/login.vue

@@ -69,8 +69,8 @@ const router = useRouter();
 const { proxy } = getCurrentInstance();
 
 const loginForm = ref({
-  username: "admin",
-  password: "admin123",
+  username: "",
+  password: "",
   rememberMe: false,
   code: "",
   uuid: ""

+ 3 - 3
src/views/system/role/index.vue

@@ -115,13 +115,13 @@
          </el-table-column>
          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
             <template #default="scope">
-              <el-tooltip content="修改" placement="top" v-if="scope.row.roleId !== 1">
+              <el-tooltip content="修改" placement="top" v-if="scope.row.roleId !== 1 && scope.row.roleId !== 106">
                 <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:role:edit']"></el-button>
               </el-tooltip>
-              <el-tooltip content="删除" placement="top" v-if="scope.row.roleId !== 1">
+              <el-tooltip content="删除" placement="top" v-if="scope.row.roleId !== 1 && scope.row.roleId !== 106">
                 <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:role:remove']"></el-button>
               </el-tooltip>
-              <el-tooltip content="数据权限" placement="top" v-if="scope.row.roleId !== 1">
+              <el-tooltip content="数据权限" placement="top" v-if="scope.row.roleId !== 1 && scope.row.roleId !== 106">
                 <el-button link type="primary" icon="CircleCheck" @click="handleDataScope(scope.row)" v-hasPermi="['system:role:edit']"></el-button>
               </el-tooltip>
               <el-tooltip content="分配用户" placement="top" v-if="scope.row.roleId !== 1">

+ 11 - 11
src/views/system/user/index.vue

@@ -29,10 +29,10 @@
          <!--用户数据-->
          <el-col :span="20" :xs="24">
             <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-               <el-form-item label="用户名称" prop="userName">
+               <el-form-item label="登录名" prop="userName">
                   <el-input
                      v-model="queryParams.userName"
-                     placeholder="请输入用户名称"
+                     placeholder="请输入登录名"
                      clearable
                      style="width: 240px"
                      @keyup.enter="handleQuery"
@@ -132,8 +132,8 @@
             <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
                <el-table-column type="selection" width="50" align="center" />
                <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
-               <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-               <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+               <el-table-column label="登录名" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
+               <el-table-column label="用户姓名" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
                <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
                <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
                <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
@@ -183,8 +183,8 @@
          <el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
             <el-row>
                <el-col :span="12">
-                  <el-form-item label="用户昵称" prop="nickName">
-                     <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
+                  <el-form-item label="用户姓名" prop="nickName">
+                     <el-input v-model="form.nickName" placeholder="请输入用户姓名" maxlength="30" />
                   </el-form-item>
                </el-col>
                <el-col :span="12">
@@ -214,8 +214,8 @@
             </el-row>
             <el-row>
                <el-col :span="12">
-                  <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
-                     <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
+                  <el-form-item v-if="form.userId == undefined" label="登录名" prop="userName">
+                     <el-input v-model="form.userName" placeholder="请输入登录名" maxlength="30" />
                   </el-form-item>
                </el-col>
                <el-col :span="12">
@@ -370,7 +370,7 @@ const upload = reactive({
 // 列显隐信息
 const columns = ref([
   { key: 0, label: `用户编号`, visible: true },
-  { key: 1, label: `用户名称`, visible: true },
+  { key: 1, label: `登录名`, visible: true },
   { key: 2, label: `用户昵称`, visible: true },
   { key: 3, label: `部门`, visible: true },
   { key: 4, label: `手机号码`, visible: true },
@@ -389,8 +389,8 @@ const data = reactive({
     deptId: undefined
   },
   rules: {
-    userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
-    nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
+    userName: [{ required: true, message: "登录名能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
+    nickName: [{ required: true, message: "用户姓名不能为空", trigger: "blur" }],
     password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }, { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }],
     email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
     phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]

+ 4 - 2
src/views/voice/services/index.vue

@@ -391,14 +391,15 @@ onMounted(() => {
               </el-col>
             </el-row>
           </div>
-  
-          <div class="add-btn-card">
+          
+          <div class="add-btn-card space-x-[10px]">
             <div class="btn space-x-[5px]" @click="housingDialogVisible = true">
               <el-icon>
                 <CirclePlus />
               </el-icon>
               <span>新增小区</span>
             </div>
+            <span class="text-[#999]">添加或删除完成后 10 分钟后生效</span>
           </div>
         </div>
 
@@ -754,6 +755,7 @@ onMounted(() => {
 
   .add-btn-card {
     display: flex;
+    align-items: center;
     justify-content: flex-start;
     margin: 20px 0;
 

Some files were not shown because too many files changed in this diff