|
|
@@ -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; /* 水平方向从左到右排列(默认值,可显式写出) */
|