Browse Source

cid手机相关配置2

yjwang 3 days ago
parent
commit
a18dd5ae80
1 changed files with 128 additions and 106 deletions
  1. 128 106
      src/views/system/config/config.vue

+ 128 - 106
src/views/system/config/config.vue

@@ -23,6 +23,15 @@
             </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>
+
           <div class="footer">
             <el-button type="primary" @click="submitForm40">提 交</el-button>
           </div>
@@ -486,13 +495,13 @@
             </el-switch>
           </el-form-item>
           <el-form-item label="API_URL" v-if="form7.isIdVerification == 1" prop="API_URL">
-              <el-input   v-model="form7.API_URL"  label="请输入API_URL"></el-input>
+            <el-input   v-model="form7.API_URL"  label="请输入API_URL"></el-input>
           </el-form-item>
           <el-form-item label="HASHCODE" v-if="form7.isIdVerification == 1" prop="HASHCODE">
-              <el-input   v-model="form7.HASHCODE"  label="请输入HASHCODE"></el-input>
+            <el-input   v-model="form7.HASHCODE"  label="请输入HASHCODE"></el-input>
           </el-form-item>
           <el-form-item label="SECRET_KEY" v-if="form7.isIdVerification == 1" prop="SECRET_KEY">
-              <el-input   v-model="form7.SECRET_KEY"  label="请输入SECRET_KEY"></el-input>
+            <el-input   v-model="form7.SECRET_KEY"  label="请输入SECRET_KEY"></el-input>
           </el-form-item>
           <el-form-item label="检查库存" prop="checkStock">
             <el-radio-group v-model="form7.checkStock">
@@ -941,14 +950,14 @@
           <el-form-item label="快递鸟地址url" prop="kdnAddressUrl">
             <el-input v-model="form13.kdnAddressUrl" label="请输入kdnAddressUrl"></el-input>
           </el-form-item>
-      <el-form-item label="最低定金金额" prop="shares">
-              <el-input-number v-model="form13.retainer" :min="100"   label="最低定金金额"></el-input-number>
-      </el-form-item>
-      <el-form-item   label="比率" prop="rate">
-          <el-input   v-model="form13.rate"  label="请输入比率">
-            <template slot="append">%</template>
-          </el-input>
-      </el-form-item>
+          <el-form-item label="最低定金金额" prop="shares">
+            <el-input-number v-model="form13.retainer" :min="100"   label="最低定金金额"></el-input-number>
+          </el-form-item>
+          <el-form-item   label="比率" prop="rate">
+            <el-input   v-model="form13.rate"  label="请输入比率">
+              <template slot="append">%</template>
+            </el-input>
+          </el-form-item>
           <el-form-item label="是否开启erp">
             <el-switch
               v-model="form13.erpOpen"
@@ -1543,13 +1552,13 @@
             </el-switch>
           </el-form-item>
 
-           <el-form-item label="是否开启IM" prop="isOpenIM">
-             <el-switch
-               v-model="form18.isOpenIM"
-               active-color="#13ce66"
-               inactive-color="#ff4949">
-             </el-switch>
-           </el-form-item>
+          <el-form-item label="是否开启IM" prop="isOpenIM">
+            <el-switch
+              v-model="form18.isOpenIM"
+              active-color="#13ce66"
+              inactive-color="#ff4949">
+            </el-switch>
+          </el-form-item>
           <el-form-item label="是否开启企微二维码" prop="showQwCode">
             <el-switch
               v-model="form18.showQwCode"
@@ -1557,7 +1566,7 @@
               inactive-color="#ff4949">
             </el-switch>
           </el-form-item>
-           <el-form-item label="侧边栏是否仅展示当天课程" prop="showQwCode">
+          <el-form-item label="侧边栏是否仅展示当天课程" prop="showQwCode">
             <el-switch
               v-model="form18.sidebarOnlyShowTodayCourse"
               active-color="#13ce66"
@@ -1745,10 +1754,10 @@
           <el-form-item label="apiV3密钥" prop="apiV3Key">
             <el-input v-model="form19.apiV3Key" label="请输入apiV3Key"></el-input>
           </el-form-item>
-           <el-form-item   label="公钥ID" prop="publicKeyId">
+          <el-form-item   label="公钥ID" prop="publicKeyId">
             <el-input v-model="form19.publicKeyId" label="请输入公钥ID"></el-input>
           </el-form-item>
-           <el-form-item   label="公钥证书" prop="publicKeyPath">
+          <el-form-item   label="公钥证书" prop="publicKeyPath">
             <el-input v-model="form19.publicKeyPath" label="请输入publicKeyPath"></el-input>
           </el-form-item>
           <el-form-item label="key路径" prop="privateKeyPath">
@@ -2476,21 +2485,21 @@
             </el-select>
           </el-form-item>
           <el-form-item label="店铺修改不重新审核字段" prop="storeColumns" v-if="form27.isAudit">
-          <el-select v-model="form27.storeColumns"
-                     filterable
-                     multiple
-                     clearable
-                     placeholder="请选择字段"
-                     size="small"
-                     style="width: 500px">
-            <el-option
-              v-for="column in storeScrmColumns"
-              :key="column.colName"
-              :label="column.colComment"
-              :value="column.colName"
-            >
-            </el-option>
-          </el-select>
+            <el-select v-model="form27.storeColumns"
+                       filterable
+                       multiple
+                       clearable
+                       placeholder="请选择字段"
+                       size="small"
+                       style="width: 500px">
+              <el-option
+                v-for="column in storeScrmColumns"
+                :key="column.colName"
+                :label="column.colComment"
+                :value="column.colName"
+              >
+              </el-option>
+            </el-select>
           </el-form-item>
           <el-form-item label="是否药品商城" prop="isMedicalMall">
             <el-switch
@@ -2567,46 +2576,46 @@
               inactive-color="#ff4949">
             </el-switch>
           </el-form-item>
-        <div v-if="!!form29.enableRandomRedpacket" style=" display: flex;
+          <div v-if="!!form29.enableRandomRedpacket" style=" display: flex;
                   flex-direction: column;
                   margin-bottom: 50px;">
 
-             <div v-for="(rule, index) in form29.rules" :key="index" class="form-row">
+            <div v-for="(rule, index) in form29.rules" :key="index" class="form-row">
 
-           <el-form-item
-            label="金额区间"
-            :prop="`rules.${index}.minAmount`"
-            :rules="[
+              <el-form-item
+                label="金额区间"
+                :prop="`rules.${index}.minAmount`"
+                :rules="[
               { required: true, message: '请输入最小金额', trigger: 'blur' },
               { validator: validateMinAmount, trigger: 'blur', index: index }
             ]"
-            class="form-item-amount"
-          >
-            <el-input
-              v-model.number="rule.minAmount"
-              type="number"
-              :min="0.01"
-              :precision="2"
-              :step="0.01"
-              placeholder="最小金额"
-              size="small"
-              class="amount-input"
-              @input="handleAmountInput(rule, 'minAmount')"
-            ></el-input>
-            <span class="separator">-</span>
-            <el-input
-              v-model.number="rule.maxAmount"
-              type="number"
-              :min="rule.minAmount || 0.01"
-              :precision="2"
-              :step="0.01"
-              placeholder="最大金额"
-              size="small"
-              class="amount-input"
-              @input="handleAmountInput(rule, 'maxAmount')"
-            ></el-input>
-            <span class="suffix">元</span>
-          </el-form-item>
+                class="form-item-amount"
+              >
+                <el-input
+                  v-model.number="rule.minAmount"
+                  type="number"
+                  :min="0.01"
+                  :precision="2"
+                  :step="0.01"
+                  placeholder="最小金额"
+                  size="small"
+                  class="amount-input"
+                  @input="handleAmountInput(rule, 'minAmount')"
+                ></el-input>
+                <span class="separator">-</span>
+                <el-input
+                  v-model.number="rule.maxAmount"
+                  type="number"
+                  :min="rule.minAmount || 0.01"
+                  :precision="2"
+                  :step="0.01"
+                  placeholder="最大金额"
+                  size="small"
+                  class="amount-input"
+                  @input="handleAmountInput(rule, 'maxAmount')"
+                ></el-input>
+                <span class="suffix">元</span>
+              </el-form-item>
 
               <el-form-item
                 label="随机权重"
@@ -2650,7 +2659,7 @@
                 </el-button>
               </div>
             </div>
-        </div>
+          </div>
 
           <div class="footer" style="margin-top:20px">
             <el-button type="primary" @click="submitForm29">提 交</el-button>
@@ -2931,7 +2940,7 @@ export default {
       form29:{
         //是否开启拼手气红包
         enableRandomRedpacket:false,
-         rules: [
+        rules: [
           {
             minAmount: 0.01,
             maxAmount: 0.01,
@@ -2947,9 +2956,11 @@ export default {
       form35:{},
       form40: {
         enablePhoneConfig: false,
+        enablePhoneLimitConfig:false,
         generateCount: 1,
         startIndex: 1,
-        endIndex: 11
+        endIndex: 11,
+        numberCalls:1,
       },
       storeProductScrmColumns:[],
       storeScrmColumns: [],
@@ -3058,7 +3069,7 @@ export default {
     appImages: function(val) {
       this.form25.images = val.join(',')
     },
-     // 深度监听 rules 数组的变化,以更新总权重
+    // 深度监听 rules 数组的变化,以更新总权重
     "form29.rules": {
       handler(val) {
         this.calculateTotalWeight();
@@ -3344,18 +3355,18 @@ export default {
     getConfigByKey(key) {
       getConfigByKey(key).then(response => {
         if(!!response.data){
-        this.configId = response.data.configId
-        this.configKey = response.data.configKey
+          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;
+          this.configId = null;
+          this.configKey = key;
           if (key == 'cId.config') {
             this.form40 = { enablePhoneConfig: false, generateCount: 1 };
           }
-          }
+        }
         if (key == 'sys.oss.cloudStorage') {
           this.form1 = JSON.parse(response.data.configValue)
         }
@@ -3492,16 +3503,16 @@ export default {
         }
         if (key == 'randomRedpacket:config') {
           if(!!response.data){
-          this.configId = response.data.configId
-          this.configKey = response.data.configKey
-          this.form29 = {...this.form29, ...JSON.parse(response.data.configValue)}
+            this.configId = response.data.configId
+            this.configKey = response.data.configKey
+            this.form29 = {...this.form29, ...JSON.parse(response.data.configValue)}
           }
         }
         if (key == 'wx.config') {
           if(!!response.data){
-          this.configId = response.data.configId
-          this.configKey = response.data.configKey
-          this.form30 = {...this.form30, ...JSON.parse(response.data.configValue)}
+            this.configId = response.data.configId
+            this.configKey = response.data.configKey
+            this.form30 = {...this.form30, ...JSON.parse(response.data.configValue)}
           }
         }
 
@@ -3516,10 +3527,10 @@ export default {
           this.form35 =JSON.parse(response.data.configValue);
         }
         if(key == 'vc.config'){
-           if(!!response.data){
-          this.configId = response.data.configId
-          this.configKey = response.data.configKey
-          this.form31 = {...this.form31, ...JSON.parse(response.data.configValue)}
+          if(!!response.data){
+            this.configId = response.data.configId
+            this.configKey = response.data.configKey
+            this.form31 = {...this.form31, ...JSON.parse(response.data.configValue)}
           }
         }
         if(key == 'living.config'){
@@ -3588,21 +3599,21 @@ export default {
       if (this.form7.payPostage  == null){
         this.form7.payPostage = 0;
       }
-    if(this.form7.isIdVerification != 1){
-      this.form7.API_URL = null;
-      this.form7.HASHCODE = null;
-      this.form7.SECRET_KEY = null;
-    } else{
-      // 校验这三个参数是否为空
-      if (
-        !this.form7.API_URL ||
-        !this.form7.HASHCODE ||
-        !this.form7.SECRET_KEY
-      ) {
-        this.msgError("API_URL、HASHCODE 和 SECRET_KEY 为必填项");
-        return; // 阻止提交
+      if(this.form7.isIdVerification != 1){
+        this.form7.API_URL = null;
+        this.form7.HASHCODE = null;
+        this.form7.SECRET_KEY = null;
+      } else{
+        // 校验这三个参数是否为空
+        if (
+          !this.form7.API_URL ||
+          !this.form7.HASHCODE ||
+          !this.form7.SECRET_KEY
+        ) {
+          this.msgError("API_URL、HASHCODE 和 SECRET_KEY 为必填项");
+          return; // 阻止提交
+        }
       }
-    }
       var param = { configId: this.configId, configValue: JSON.stringify(this.form7) }
       updateConfigByKey(param).then(response => {
         if (response.code === 200) {
@@ -3899,6 +3910,17 @@ export default {
         }
       }
 
+      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();
     },
 
@@ -3999,7 +4021,7 @@ export default {
     },
     submitForm29(){
       console.log("开始校验")
-       this.$refs['form29'].validate(valid => {
+      this.$refs['form29'].validate(valid => {
         if (valid) {
           var param = { configId: this.configId, configKey: this.configKey, configValue: JSON.stringify(this.form29) }
           console.log(param)
@@ -4012,7 +4034,7 @@ export default {
         }
       })
     },
-     calculateTotalWeight() {
+    calculateTotalWeight() {
       this.totalWeight = this.form29.rules.reduce((sum, rule) => {
         return sum + (rule.weight || 0);
       }, 0);
@@ -4069,7 +4091,7 @@ export default {
         });
       });
     },
-     // 实时过滤金额输入,只允许两位小数
+    // 实时过滤金额输入,只允许两位小数
     handleAmountInput(rule, field) {
       let value = rule[field];
       if (value === null || value === undefined) return;
@@ -4129,7 +4151,7 @@ export default {
   /* align-items: center;
   padding: 10px;
   border-bottom: 1px solid #ebeef5; */
-   display: flex;
+  display: flex;
   /* 关键改动:添加以下两行 */
   align-items: center;    /* 垂直居中对齐 */
   justify-content: flex-start; /* 水平方向从左到右排列(默认值,可显式写出) */