|
@@ -184,7 +184,7 @@
|
|
|
:zRadiocolumns="item.customOptionList"
|
|
:zRadiocolumns="item.customOptionList"
|
|
|
@zSelectVal="zSelectVal"></z-radio>
|
|
@zSelectVal="zSelectVal"></z-radio>
|
|
|
</div>
|
|
</div>
|
|
|
- <div v-if="item.answerType == 'jxs'" class="formLabel z-cell">
|
|
|
|
|
|
|
+ <div v-if="item.answerType == 'jxs' || item.answerType == 'md'" class="formLabel z-cell">
|
|
|
<van-cell>
|
|
<van-cell>
|
|
|
<template #title>
|
|
<template #title>
|
|
|
<span v-if="item.isMust == 0" class="van-f-red">*</span>
|
|
<span v-if="item.isMust == 0" class="van-f-red">*</span>
|
|
@@ -193,20 +193,33 @@
|
|
|
</template>
|
|
</template>
|
|
|
</van-cell>
|
|
</van-cell>
|
|
|
<div class="jxsBox">
|
|
<div class="jxsBox">
|
|
|
- <div class="jxsContent">
|
|
|
|
|
- <div class="item" v-for="(val, index) in item.chainList">
|
|
|
|
|
|
|
+ <div class="jxsContent" v-if="item.answerType == 'jxs'">
|
|
|
|
|
+ <div class="item" v-for="(val, index) in item.chainList" :key="index">
|
|
|
<el-popover
|
|
<el-popover
|
|
|
placement="bottom"
|
|
placement="bottom"
|
|
|
trigger="click"
|
|
trigger="click"
|
|
|
:content="val.chainName + '(' + val.chainCode + ')'">
|
|
:content="val.chainName + '(' + val.chainCode + ')'">
|
|
|
<template slot="reference">
|
|
<template slot="reference">
|
|
|
<div class="selectItem">{{ val.chainName }} ({{ val.chainCode }})</div>
|
|
<div class="selectItem">{{ val.chainName }} ({{ val.chainCode }})</div>
|
|
|
- <van-icon name="clear" size="16" @click="closeJXS(item, index)" />
|
|
|
|
|
|
|
+ <van-icon name="clear" size="16" @click="closeJXSorMD(item, index)" />
|
|
|
</template>
|
|
</template>
|
|
|
</el-popover>
|
|
</el-popover>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="addJXS"><van-icon name="add-o" size="24" @click="addJXS(item.chainList,item.maxValue)" /></div>
|
|
|
|
|
|
|
+ <div class="jxsContent" v-if="item.answerType == 'md'">
|
|
|
|
|
+ <div class="item" v-for="(val, index) in item.storeList" :key="index">
|
|
|
|
|
+ <el-popover
|
|
|
|
|
+ placement="bottom"
|
|
|
|
|
+ trigger="click"
|
|
|
|
|
+ :content="val.storeName + '(' + val.storeCode + ')'">
|
|
|
|
|
+ <template slot="reference">
|
|
|
|
|
+ <div class="selectItem">{{ val.storeName }} ({{ val.storeCode }})</div>
|
|
|
|
|
+ <van-icon name="clear" size="16" @click="closeJXSorMD(item, index)" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-popover>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="addJXS"><van-icon name="add-o" size="24" @click="addJXS(item)" /></div>
|
|
|
<div class="tips">{{ item.remark }}</div>
|
|
<div class="tips">{{ item.remark }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -304,6 +317,35 @@
|
|
|
@confirm="onConfirmChainsList"
|
|
@confirm="onConfirmChainsList"
|
|
|
@cancel="moreTypeShow = false" />
|
|
@cancel="moreTypeShow = false" />
|
|
|
</van-popup>
|
|
</van-popup>
|
|
|
|
|
+ <!-- 经销商 -->
|
|
|
|
|
+ <van-popup v-model="storeTypeShow" position="bottom">
|
|
|
|
|
+ <van-row style="background-color: #f5f5f5">
|
|
|
|
|
+ <van-col span="20">
|
|
|
|
|
+ <van-field
|
|
|
|
|
+ left-icon="search"
|
|
|
|
|
+ style="margin-top: 2px; border-radius: 6px; overflow: hidden"
|
|
|
|
|
+ v-model="agentValue"
|
|
|
|
|
+ label=""
|
|
|
|
|
+ placeholder="请输入关键词"
|
|
|
|
|
+ clearable />
|
|
|
|
|
+ </van-col>
|
|
|
|
|
+ <van-col
|
|
|
|
|
+ span="4"
|
|
|
|
|
+ style="text-align: center; line-height: 48px"
|
|
|
|
|
+ @click="getStoresList(agentValue)">
|
|
|
|
|
+ <div style="background-color: #0057ba; color: #fff">搜索</div>
|
|
|
|
|
+ </van-col>
|
|
|
|
|
+ </van-row>
|
|
|
|
|
+ <div class="tips">
|
|
|
|
|
+ <div><van-icon name="warning-o" />默认显示前100条,请输入关键词查询</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <van-picker
|
|
|
|
|
+ show-toolbar
|
|
|
|
|
+ :columns="storesData"
|
|
|
|
|
+ value-key="storeName"
|
|
|
|
|
+ @confirm="onConfirmStoresList"
|
|
|
|
|
+ @cancel="storeTypeShow = false" />
|
|
|
|
|
+ </van-popup>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -316,6 +358,7 @@ import {
|
|
|
getSummaryMobileDeptInfo,
|
|
getSummaryMobileDeptInfo,
|
|
|
getDeptsByUser,
|
|
getDeptsByUser,
|
|
|
chainsList,
|
|
chainsList,
|
|
|
|
|
+ storesList,
|
|
|
temporarilyCustomAnswer,
|
|
temporarilyCustomAnswer,
|
|
|
} from '@/api/index';
|
|
} from '@/api/index';
|
|
|
import zRadio from '@/components/zRadio2';
|
|
import zRadio from '@/components/zRadio2';
|
|
@@ -383,8 +426,11 @@ export default {
|
|
|
index: '',
|
|
index: '',
|
|
|
activaFlag: true,
|
|
activaFlag: true,
|
|
|
moreTypeShow: false,
|
|
moreTypeShow: false,
|
|
|
|
|
+ storeTypeShow: false,
|
|
|
|
|
+ storeType: null,
|
|
|
agentValue: '',
|
|
agentValue: '',
|
|
|
chainsData: [],
|
|
chainsData: [],
|
|
|
|
|
+ storesData: [],
|
|
|
chainName: '',
|
|
chainName: '',
|
|
|
chainCode: '',
|
|
chainCode: '',
|
|
|
jxsList: [],
|
|
jxsList: [],
|
|
@@ -978,20 +1024,37 @@ export default {
|
|
|
this.EndTimeShow = false;
|
|
this.EndTimeShow = false;
|
|
|
},
|
|
},
|
|
|
// 添加经销商
|
|
// 添加经销商
|
|
|
- addJXS(chainList,maxValue) {
|
|
|
|
|
- let dataList = chainList ? chainList : [];
|
|
|
|
|
- const isExceedLimit = dataList.length >= maxValue;
|
|
|
|
|
- if (maxValue !== null && isExceedLimit) {
|
|
|
|
|
|
|
+ addJXS(val) {
|
|
|
|
|
+ let answerType = val.answerType;
|
|
|
|
|
+ let dataList = [];
|
|
|
|
|
+ if(answerType == 'jxs'){
|
|
|
|
|
+ dataList = val.chainList ? val.chainList : [];
|
|
|
|
|
+ }else if(answerType == 'md'){
|
|
|
|
|
+ dataList = val.storeList ? val.storeList : [];
|
|
|
|
|
+ }
|
|
|
|
|
+ const isExceedLimit = dataList.length >= val.maxValue;
|
|
|
|
|
+ if (val.maxValue !== null && isExceedLimit) {
|
|
|
this.$toast('选择经销商超过最大限制!');
|
|
this.$toast('选择经销商超过最大限制!');
|
|
|
} else {
|
|
} else {
|
|
|
this.agentValue = '';
|
|
this.agentValue = '';
|
|
|
- this.moreTypeShow = true;
|
|
|
|
|
- this.getChainsList();
|
|
|
|
|
|
|
+ if(answerType == 'jxs'){
|
|
|
|
|
+ this.moreTypeShow = true;
|
|
|
|
|
+ this.getChainsList();
|
|
|
|
|
+ }else if(answerType == 'md'){
|
|
|
|
|
+ this.storeTypeShow = true;
|
|
|
|
|
+ this.storeType = val.storeType;
|
|
|
|
|
+ this.getStoresList();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- // 删除经销商
|
|
|
|
|
- closeJXS(item, index) {
|
|
|
|
|
- item.chainList.splice(index, 1);
|
|
|
|
|
|
|
+ // 删除经销商或者门店
|
|
|
|
|
+ closeJXSorMD(item, index) {
|
|
|
|
|
+ if(item.answerType == 'jxs'){
|
|
|
|
|
+ item.chainList.splice(index, 1);
|
|
|
|
|
+ }else if(item.answerType == 'md'){
|
|
|
|
|
+ item.storeList.splice(index, 1);
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
getChainsList(value = '') {
|
|
getChainsList(value = '') {
|
|
|
this.chainsData = [];
|
|
this.chainsData = [];
|
|
@@ -1011,6 +1074,25 @@ export default {
|
|
|
this.chainsData = [];
|
|
this.chainsData = [];
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
+ getStoresList(value = '') {
|
|
|
|
|
+ this.storesData = [];
|
|
|
|
|
+ storesList({
|
|
|
|
|
+ storeCategoryList: this.storeType ? this.storeType.split(",") : [], // 门店类型数组
|
|
|
|
|
+ storeName: value, // 门店名称或者编号搜索,模糊搜索
|
|
|
|
|
+ pageNum: 1, // int 页码
|
|
|
|
|
+ PageSize: 100 // 每页数
|
|
|
|
|
+ })
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ if (res.code == 200 && res.rows) {
|
|
|
|
|
+ this.storesData = res.rows;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.storesData = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ this.storesData = [];
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
onConfirmChainsList(value) {
|
|
onConfirmChainsList(value) {
|
|
|
if (value && value.chainName != undefined) {
|
|
if (value && value.chainName != undefined) {
|
|
|
let JXSSataList = this.collectionItemList.find((item) => item.answerType == 'jxs');
|
|
let JXSSataList = this.collectionItemList.find((item) => item.answerType == 'jxs');
|
|
@@ -1029,6 +1111,24 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ onConfirmStoresList(value) {
|
|
|
|
|
+ if (value && value.storeName != undefined) {
|
|
|
|
|
+ let MDSataList = this.collectionItemList.find((item) => item.answerType == 'md');
|
|
|
|
|
+ if (!MDSataList.storeList) {
|
|
|
|
|
+ MDSataList.storeList = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ let isFlag = MDSataList.storeList.find((val) => val.storeCode == value.storeCode);
|
|
|
|
|
+ if (!isFlag) {
|
|
|
|
|
+ MDSataList.storeList.push({
|
|
|
|
|
+ storeName: value.storeName,
|
|
|
|
|
+ storeCode: value.storeCode,
|
|
|
|
|
+ });
|
|
|
|
|
+ this.storeTypeShow = false;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.$toast('当前门店已添加,不能重复添加!');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|