cidConfig.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="form40" label-width="200px" v-loading="loading">
  4. <el-form-item label="是否开启手机号配置" prop="enablePhoneConfig">
  5. <el-switch v-model="form40.enablePhoneConfig"></el-switch>
  6. </el-form-item>
  7. <template v-if="form40.enablePhoneConfig">
  8. <el-form-item label="生成条数" prop="generateCount">
  9. <el-input-number v-model="form40.generateCount" :min="1" :step="1" :precision="0" placeholder="请输入生成条数"></el-input-number>
  10. </el-form-item>
  11. <el-form-item label="开始位置" prop="startIndex">
  12. <el-input-number v-model="form40.startIndex" :min="1" :step="1" :precision="0" placeholder="例如: 1"></el-input-number>
  13. <span class="tip-text">(从第几位开始生成)</span>
  14. </el-form-item>
  15. <el-form-item label="结束位置" prop="endIndex">
  16. <el-input-number v-model="form40.endIndex" :min="1" :step="1" :precision="0" placeholder="例如: 11"></el-input-number>
  17. <span class="tip-text">(到第几位结束)</span>
  18. </el-form-item>
  19. </template>
  20. <el-form-item label="是否开手机号拨打次数限制" prop="enablePhoneLimitConfig">
  21. <el-switch v-model="form40.enablePhoneLimitConfig"></el-switch>
  22. </el-form-item>
  23. <template v-if="form40.enablePhoneLimitConfig">
  24. <el-form-item label="拨打次数限制" prop="startIndex">
  25. <el-input-number v-model="form40.numberCalls" :min="1" :step="1" :precision="0" placeholder="例如: 1"></el-input-number>
  26. </el-form-item>
  27. </template>
  28. <el-form-item label="DeepSeekChat模型并发数" prop="DeepSeekChatConcurrency">
  29. <el-input v-model="form40.concurrency" placeholder="请输入DeepSeekChat模型并发数"></el-input>
  30. </el-form-item>
  31. <el-form-item label="DeepSeekChat服务地址" prop="DeepSeekChatServerAddress">
  32. <el-input v-model="form40.serverAddress" placeholder="请输入DeepSeekChat服务地址"></el-input>
  33. </el-form-item>
  34. <el-form-item label="DeepSeekChat_apiKey" prop="DeepSeekChatApiKey">
  35. <el-input v-model="form40.apiKey" placeholder="请输入DeepSeekChat_apiKey"></el-input>
  36. </el-form-item>
  37. <el-form-item label="DeepSeekChat模型名称" prop="DeepSeekChatModelName">
  38. <el-input v-model="form40.modelName" placeholder="请输入DeepSeekChat模型名称"></el-input>
  39. </el-form-item>
  40. <el-form-item label="是否限制外呼网关" prop="enableGateWayLimit">
  41. <el-switch v-model="form40.enableGateWayLimit"></el-switch>
  42. </el-form-item>
  43. <el-form-item label="系统可见外呼网关" prop="showGatewayIds" v-if="!!form40.enableGateWayLimit">
  44. <!-- <el-input v-model="" placeholder="请输入DeepSeekChat模型名称"></el-input> -->
  45. <el-select v-model="form40.showGatewayIds" multiple filterable placeholder="请选择系统可见外呼网关">
  46. <el-option
  47. v-for="item in gatewayList"
  48. :key="item.id"
  49. :label="item.gwDesc"
  50. :value="item.id">
  51. </el-option>
  52. </el-select>
  53. </el-form-item>
  54. <div style="display: flex; justify-content: flex-end;">
  55. <el-button type="primary" :disabled="saveLoading" :loading="saveLoading" @click="submitForm40">提 交</el-button>
  56. </div>
  57. </el-form>
  58. </div>
  59. </template>
  60. <script>
  61. import { getConfigByKey, updateConfigByKey, getGatewayList } from '@/api/system/config'
  62. export default {
  63. name: "cidConfig",
  64. data() {
  65. return {
  66. loading: true,
  67. gatewayList: [],
  68. form40: {
  69. enablePhoneConfig: false,
  70. enablePhoneLimitConfig:false,
  71. generateCount: 1,
  72. startIndex: 1,
  73. endIndex: 11,
  74. numberCalls:1,
  75. serverAddress: null,
  76. modelName: null,
  77. enableGateWayLimit: false,
  78. showGatewayIds: null,
  79. },
  80. saveLoading: false,
  81. }
  82. },
  83. created() {
  84. this.getConfigByKey("cid.config");
  85. this.initGateway();
  86. },
  87. methods: {
  88. getConfigByKey(key){
  89. getConfigByKey(key).then(response => {
  90. this.configId = response.data.configId;
  91. this.configKey = response.data.configKey;
  92. this.form40 = JSON.parse(response.data.configValue);
  93. this.loading = false
  94. });
  95. },
  96. initGateway() {
  97. getGatewayList().then(response => {
  98. this.gatewayList = response.data;
  99. })
  100. },
  101. submitForm40(){
  102. this.saveLoading = true
  103. if (this.form40.enablePhoneConfig) {
  104. if (!this.form40.generateCount || this.form40.generateCount < 1) {
  105. this.msgError('生成条数不能为空且不能小于1');
  106. return false;
  107. }
  108. // if (!this.form40.generateCount || this.form40.generateCount > 10) {
  109. // this.msgError('单个手机号生成条数不能大于10条');
  110. // return false;
  111. // }
  112. if (!this.form40.startIndex || this.form40.startIndex < 1 || this.form40.startIndex > 11) {
  113. this.msgError('开始位置不能为空,且必须在1到11之间');
  114. return false;
  115. }
  116. if (!this.form40.endIndex || this.form40.endIndex < 1 || this.form40.endIndex > 11) {
  117. this.msgError('结束位置不能为空,且必须在1到11之间');
  118. return false;
  119. }
  120. if (this.form40.startIndex > this.form40.endIndex) {
  121. this.msgError('开始位置不能大于结束位置');
  122. return false;
  123. }
  124. if (this.form40.endIndex < this.form40.startIndex) {
  125. this.msgError('结束位置不能小于开始位置');
  126. return false;
  127. }
  128. if (this.form40.startIndex === this.form40.endIndex) {
  129. this.msgError('开始位置不能等于结束位置');
  130. return false;
  131. }
  132. let num = this.form40.endIndex - this.form40.startIndex
  133. if(num < 4){
  134. this.msgError('开始和结束位置不能小于4位');
  135. return false;
  136. }
  137. }
  138. if(this.form40.enablePhoneLimitConfig){
  139. if(this.form40.numberCalls == null || this.form40.numberCalls === 0){
  140. this.msgError('限制次数不能为空或者大于0!');
  141. return false;
  142. }
  143. if(this.form40.numberCalls > 100000){
  144. this.msgError('限制次数不能超过10万次!');
  145. return false;
  146. }
  147. }
  148. const param={configId:this.configId,configValue:JSON.stringify(this.form40)}
  149. updateConfigByKey(param).then(response => {
  150. const {code} = response
  151. if (code === 200) {
  152. this.msgSuccess("修改成功");
  153. }
  154. this.saveLoading = false
  155. });
  156. },
  157. }
  158. }
  159. </script>
  160. <style scoped>
  161. </style>