Ver Fonte

Merge remote-tracking branch 'origin/master'

yys há 6 dias atrás
pai
commit
3567a4ad37

+ 7 - 0
src/api/his/company.js

@@ -111,3 +111,10 @@ export function exitMiniProgram(data) {
     data: data
   })
 }
+
+export function getGatewayCompanyList(companyId) {
+  return request({
+    url: '/easyCall/gateway/getGatewayCompanyList',
+    method: 'get'
+  })
+}

+ 9 - 0
src/api/system/config.js

@@ -89,3 +89,12 @@ export function updateIsTownOn(query) {
     params: query
   })
 }
+
+
+export function getGatewayList(query) {
+  return request({
+    url: '/easyCall/gateway/list',
+    method: 'get',
+    params: query
+  })
+}

+ 4 - 3
src/views/company/wxAccount/index.vue

@@ -19,7 +19,7 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="手机号" prop="wxNo">
+      <el-form-item label="手机号" prop="phone">
         <el-input
           :maxlength="11"
           v-model="queryParams.phone"
@@ -31,7 +31,7 @@
       </el-form-item>
       <el-form-item label="员工" prop="companyUserId">
         <el-select v-model="queryParams.companyUserId" clearable>
-          <el-option v-for="item in qwUserList" :label="item.qwUserName" :value="item.id" />
+          <el-option v-for="item in qwUserList" :label="item.nickName" :value="item.userId" />
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -178,7 +178,8 @@ export default {
         wxNickName: null,
         wxNo: null,
         companyUserId: null,
-        createUser: null
+        createUser: null,
+        phone: null,
       },
       // 表单参数
       form: {},

+ 11 - 11
src/views/course/userCourseCategory/index.vue

@@ -81,17 +81,17 @@
         >导入</el-button>
       </el-col>
 
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleFansExport"
-          v-hasPermi="['course:userCourseCategory:fansExport']"
-        >重粉导出</el-button>
-      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="handleFansExport"-->
+<!--          v-hasPermi="['course:userCourseCategory:fansExport']"-->
+<!--        >重粉导出</el-button>-->
+<!--      </el-col>-->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 

+ 1 - 1
src/views/crm/components/assignCompany.vue

@@ -94,7 +94,7 @@
             this.assignCount = 0;
             this.customerIds = [];
             //关闭弹窗
-            // this.$emit('close');
+            this.$emit('close');
           },
             changeVal(row) {
                 this.$forceUpdate();//解决点击计数器失效问题

+ 3 - 0
src/views/crm/customer/index.vue

@@ -598,6 +598,9 @@ export default {
       this.queryParams.endTime = null;
       this.dateRange = null;
       this.resetForm("queryForm");
+      this.sourceArr = [];      // 客户来源
+      this.tagIds = [];        // 客户标签
+      this.ctsTypeArr = [];    // 客户类型
       //this.$forceUpdate(); // 强制更新视图
       this.handleQuery();
     },

+ 2 - 0
src/views/crm/customerVisit/index.vue

@@ -275,6 +275,8 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm("queryForm");
+      this.dateRange = [];
+      console.log("重置成功" + this.dateRange);
       this.handleQuery();
     },
     // 多选框选中数据

+ 19 - 1
src/views/his/company/index.vue

@@ -477,6 +477,17 @@
         <el-form-item label="备注" prop="remark">
           <el-input v-model="form.remark" type="textarea" :rows="2" placeholder="请输入备注"/>
         </el-form-item>
+         <el-form-item label="可用外呼网关" prop="showGatewayIds">
+            <!-- <el-input v-model="" placeholder="请输入DeepSeekChat模型名称"></el-input> -->
+             <el-select v-model="form.showGatewayIds" multiple filterable placeholder="请选择系统可见外呼网关">
+              <el-option
+                v-for="item in gatewayList"
+                :key="item.id"
+                :label="item.gwDesc"
+                :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
       </el-form>
 
 
@@ -743,7 +754,8 @@ import {
   exportCompany,
   resetPwd,
   getDivConfig,
-  setDiv, exitMiniProgram
+  setDiv, exitMiniProgram,
+  getGatewayCompanyList
 } from '@/api/his/company'
 import { getFollowDoctorList } from '@/api/his/doctor'
 import { docList } from '@/api/his/doctor'
@@ -758,6 +770,7 @@ export default {
   name: 'Company',
   data() {
     return {
+      gatewayList:[],
       signProjectName:"",
       redSubmit: false,
       //分账参数
@@ -939,6 +952,11 @@ export default {
     }
   },
   created() {
+    
+    getGatewayCompanyList().then(res=>{
+        this.gatewayList = res.data;
+        console.log(this.gatewayList);
+    }).catch(res=>{});
     getSignProjectName()
     .then(res=>{
       this.signProjectName = res.signProjectName;

+ 153 - 1
src/views/system/config/config.vue

@@ -2,7 +2,68 @@
   <div class="app-container">
     <el-tabs v-model="activeName" @tab-click="handleClick">
 
+      <el-tab-pane label="CID配置" name="cId.config">
+        <el-form :model="form40" label-width="200px">
+          <el-form-item label="是否开启手机号配置" prop="enablePhoneConfig">
+            <el-switch v-model="form40.enablePhoneConfig"></el-switch>
+          </el-form-item>
+
+          <template v-if="form40.enablePhoneConfig">
+            <el-form-item label="生成条数" prop="generateCount">
+              <el-input-number v-model="form40.generateCount" :min="1" :step="1" :precision="0" placeholder="请输入生成条数"></el-input-number>
+            </el-form-item>
+
+            <el-form-item label="开始位置" prop="startIndex">
+              <el-input-number v-model="form40.startIndex" :min="1" :step="1" :precision="0" placeholder="例如: 1"></el-input-number>
+              <span class="tip-text">(从第几位开始生成)</span>
+            </el-form-item>
+
+            <el-form-item label="结束位置" prop="endIndex">
+              <el-input-number v-model="form40.endIndex" :min="1" :step="1" :precision="0" placeholder="例如: 11"></el-input-number>
+              <span class="tip-text">(到第几位结束)</span>
+            </el-form-item>
+          </template>
+
+          <el-form-item label="是否开手机号拨打次数限制" prop="enablePhoneLimitConfig">
+            <el-switch v-model="form40.enablePhoneLimitConfig"></el-switch>
+          </el-form-item>
+          <template v-if="form40.enablePhoneLimitConfig">
+            <el-form-item label="拨打次数限制" prop="startIndex">
+              <el-input-number v-model="form40.numberCalls" :min="1" :step="1" :precision="0" placeholder="例如: 1"></el-input-number>
+            </el-form-item>
+          </template>
+           <el-form-item label="DeepSeekChat模型并发数" prop="DeepSeekChatConcurrency">
+            <el-input v-model="form40.concurrency" placeholder="请输入DeepSeekChat模型并发数"></el-input>
+          </el-form-item>
+          <el-form-item label="DeepSeekChat服务地址" prop="DeepSeekChatServerAddress">
+            <el-input v-model="form40.serverAddress" placeholder="请输入DeepSeekChat服务地址"></el-input>
+          </el-form-item>
+          <el-form-item label="DeepSeekChat_apiKey" prop="DeepSeekChatApiKey">
+           <el-input v-model="form40.apiKey" placeholder="请输入DeepSeekChat_apiKey"></el-input>
+          </el-form-item>
+          <el-form-item label="DeepSeekChat模型名称" prop="DeepSeekChatModelName">
+            <el-input v-model="form40.modelName" placeholder="请输入DeepSeekChat模型名称"></el-input>
+          </el-form-item>
+          <el-form-item label="是否限制外呼网关" prop="enableGateWayLimit">
+            <el-switch v-model="form40.enableGateWayLimit"></el-switch>
+          </el-form-item>
+          <el-form-item label="系统可见外呼网关" prop="showGatewayIds" v-if="!!form40.enableGateWayLimit">
+            <!-- <el-input v-model="" placeholder="请输入DeepSeekChat模型名称"></el-input> -->
+             <el-select v-model="form40.showGatewayIds" multiple filterable placeholder="请选择系统可见外呼网关">
+              <el-option
+                v-for="item in gatewayList"
+                :key="item.id"
+                :label="item.gwDesc"
+                :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
 
+          <div class="footer">
+            <el-button type="primary" @click="submitForm40">提 交</el-button>
+          </div>
+        </el-form>
+      </el-tab-pane>
 
       <el-tab-pane label="个微配置" name="wx.config">
         <el-form :model="form30" label-width="200px">
@@ -3048,7 +3109,7 @@
 </template>
 
 <script>
-import { getConfigByKey, updateConfigByKey, clearCache, updateIsTownOn } from '@/api/system/config'
+import { getConfigByKey, updateConfigByKey, clearCache, updateIsTownOn ,getGatewayList } from '@/api/system/config'
 import { listStore } from '@/api/his/storeProduct'
 import { js } from 'js-beautify'
 import Material from '@/components/Material'
@@ -3073,6 +3134,7 @@ export default {
   },
   data() {
     return {
+      gatewayList:[],
       corpOptions:[],
       citys: [],
       images: [],
@@ -3232,6 +3294,15 @@ export default {
       form34:{},
       form35:{},
       form36:{},
+      
+      form40: {
+        enablePhoneConfig: false,
+        enablePhoneLimitConfig:false,
+        generateCount: 1,
+        startIndex: 1,
+        endIndex: 11,
+        numberCalls:1,
+      },
       storeProductScrmColumns:[],
       storeScrmColumns: [],
       photoArr: [],
@@ -3612,9 +3683,15 @@ export default {
         if(!!response.data){
           this.configId = response.data.configId
           this.configKey = response.data.configKey
+           if (key == 'cId.config') {
+            this.form40 = JSON.parse(response.data.configValue);
+          }
         }else{
           this.configId = null;
           this.configKey = key;
+          if (key == 'cId.config') {
+            this.form40 = { enablePhoneConfig: false, generateCount: 1 };
+          }
         }
         if (key == 'sys.oss.cloudStorage') {
           this.form1 = this.safeParseConfig(configValue, { ...this.form1 })
@@ -3815,6 +3892,13 @@ export default {
             this.form33 = {...this.form33, ...this.safeParseConfig(configValue, {})}
           }
         }
+        if(key == "cId.config" && !!this.form40.enableGateWayLimit){
+          getGatewayList().then(res=>{
+            this.gatewayList = res.data;
+            console.log(this.gatewayList);
+          }).catch(res=>{
+          })
+        }
       })
     },
     /** 提交按钮 */
@@ -4330,6 +4414,74 @@ export default {
       // 转换回数字并更新
       rule[field] = parseFloat(str) || 0;
     },
+    submitForm40() {
+      if (this.form40.enablePhoneConfig) {
+        if (!this.form40.generateCount || this.form40.generateCount < 1) {
+          this.msgError('生成条数不能为空且不能小于1');
+          return false;
+        }
+
+        // if (!this.form40.generateCount || this.form40.generateCount > 10) {
+        //   this.msgError('单个手机号生成条数不能大于10条');
+        //   return false;
+        // }
+
+        if (!this.form40.startIndex || this.form40.startIndex < 1 || this.form40.startIndex > 11) {
+          this.msgError('开始位置不能为空,且必须在1到11之间');
+          return false;
+        }
+
+        if (!this.form40.endIndex || this.form40.endIndex < 1 || this.form40.endIndex > 11) {
+          this.msgError('结束位置不能为空,且必须在1到11之间');
+          return false;
+        }
+
+        if (this.form40.startIndex > this.form40.endIndex) {
+          this.msgError('开始位置不能大于结束位置');
+          return false;
+        }
+
+        if (this.form40.endIndex < this.form40.startIndex) {
+          this.msgError('结束位置不能小于开始位置');
+          return false;
+        }
+        if (this.form40.startIndex === this.form40.endIndex) {
+          this.msgError('开始位置不能等于结束位置');
+          return false;
+        }
+
+        let num = this.form40.endIndex - this.form40.startIndex
+        if(num < 4){
+          this.msgError('开始和结束位置不能小于4位');
+          return false;
+        }
+      }
+
+      if(this.form40.enablePhoneLimitConfig){
+        if(this.form40.numberCalls == null || this.form40.numberCalls === 0){
+          this.msgError('限制次数不能为空或者大于0!');
+          return false;
+        }
+        if(this.form40.numberCalls > 100000){
+          this.msgError('限制次数不能超过10万次!');
+          return false;
+        }
+      }
+
+      this.saveConfig40();
+    },
+    saveConfig40() {
+      const param = {
+        configId: this.configId,
+        configKey: this.configKey,
+        configValue: JSON.stringify(this.form40)
+      };
+      updateConfigByKey(param).then(response => {
+        if (response.code === 200) {
+          this.msgSuccess('修改成功');
+        }
+      });
+    },
   }
 }
 </script>