Commit a7d0356c by crushh

Merge branch 'feature/act-code' into dev

parents a17b78e0 b77603cf
<template> <template>
<el-popover placement="bottom" v-model="departmentVisible"> <el-popover placement="bottom" v-model="departmentVisible">
<dm-simple-transfer :value="selected" :canSelectAll="canSelectAll" :filterMethod="filterMethod" :props="props" :max="max" :data="data" :bodyH="62" :item-size="66" :titles="['选择门店', '已选门店']" filterable filter-placeholder="请输入门店名称/code" @change="change"> <dm-simple-transfer :value="selected" v-loading="loading" :canSelectAll="canSelectAll" :left-panel="leftPanel" @leftLoadMore="onLeftLoadMore" :props="props" :max="max" :data="data" :bodyH="62" :item-size="66" :titles="['选择门店', '已选门店']" filterable filter-placeholder="请输入门店名称/code" @change="change">
<div slot-scope="{ option }"> <div slot-scope="{ option }">
<el-tooltip :content="option.storeName" :disabled="option.storeName.length < 10"> <el-tooltip :content="option.storeName" :disabled="option.storeName.length < 10">
<p class="storeName">{{ option.storeName }}</p> <p class="storeName">{{ option.storeName }}</p>
...@@ -37,6 +37,14 @@ export default { ...@@ -37,6 +37,14 @@ export default {
canSelectAll: { canSelectAll: {
type: Boolean, type: Boolean,
default: false default: false
},
leftPanel: {
type: Object,
default: () => {}
},
loading: {
type: Boolean,
default: false
} }
}, },
data() { data() {
...@@ -51,11 +59,10 @@ export default { ...@@ -51,11 +59,10 @@ export default {
}, },
methods: { methods: {
change(val) { change(val) {
console.log(val);
this.$emit('change', val); this.$emit('change', val);
}, },
filterMethod(val, item) { onLeftLoadMore(query) {
return item.storeName.toLowerCase().indexOf(val.toLowerCase()) > -1 || item.storeCode.toLowerCase().indexOf(val.toLowerCase()) > -1; this.$emit('leftLoadMore', query);
} }
} }
}; };
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<div class="level3-2" v-if="form.customRuleJson.open"> <div class="level3-2" v-if="form.customRuleJson.open">
<div class="level3-2-content" v-if="form.customRuleJson.store_type == 1"> <div class="level3-2-content" v-if="form.customRuleJson.store_type == 1">
<el-form-item label="选择门店" label-width="92px" prop="storeList"> <el-form-item label="选择门店" label-width="92px" prop="storeList">
<selectShop @change="handleTransferChange" :data="storeData" :max="20" :selected="form.storeList" :canSelectAll="false" /> <selectShop @change="handleTransferChange" :loading="storeLoading" :left-panel="leftPanel" @leftLoadMore="onLeftLoadMore" :data="storeData" :max="20" :selected="form.storeList" :canSelectAll="false" />
</el-form-item> </el-form-item>
<el-checkbox v-model="form.customRuleJson.store.dz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.dz, form.customRuleJson.store.dy) && form.customRuleJson.store.dz">店长</el-checkbox> <el-checkbox v-model="form.customRuleJson.store.dz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.dz, form.customRuleJson.store.dy) && form.customRuleJson.store.dz">店长</el-checkbox>
<el-checkbox v-model="form.customRuleJson.store.dy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.dz, form.customRuleJson.store.dy) && form.customRuleJson.store.dy">导购</el-checkbox> <el-checkbox v-model="form.customRuleJson.store.dy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.dz, form.customRuleJson.store.dy) && form.customRuleJson.store.dy">导购</el-checkbox>
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
</div> </div>
<p class="content-tips m-b-10">客户拒绝授权当前定位信息,可在下方指定的门店范围中(最多20家)自主选择要添加的门店好友</p> <p class="content-tips m-b-10">客户拒绝授权当前定位信息,可在下方指定的门店范围中(最多20家)自主选择要添加的门店好友</p>
<el-form-item label="选择门店" label-width="92px" prop="storeList"> <el-form-item label="选择门店" label-width="92px" prop="storeList">
<selectShop @change="handleTransferChange" :data="storeData" :max="20" :selected="form.storeList" :canSelectAll="false" /> <selectShop @change="handleTransferChange" :left-panel="leftPanel" @leftLoadMore="onLeftLoadMore" :data="storeData" :max="20" :selected="form.storeList" :canSelectAll="false" />
</el-form-item> </el-form-item>
<el-checkbox v-model="form.customRuleJson.store.ndz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.ndz, form.customRuleJson.store.ndy) && form.customRuleJson.store.ndz">店长</el-checkbox> <el-checkbox v-model="form.customRuleJson.store.ndz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.ndz, form.customRuleJson.store.ndy) && form.customRuleJson.store.ndz">店长</el-checkbox>
<el-checkbox v-model="form.customRuleJson.store.ndy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.ndz, form.customRuleJson.store.ndy) && form.customRuleJson.store.ndy">导购</el-checkbox> <el-checkbox v-model="form.customRuleJson.store.ndy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.ndz, form.customRuleJson.store.ndy) && form.customRuleJson.store.ndy">导购</el-checkbox>
...@@ -164,6 +164,14 @@ export default { ...@@ -164,6 +164,14 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
leftPanel: {
pageNum: 1,
totalPage: 1,
isMultiplePage: true,
loading: false,
filterMethod: this.filterMethod
},
search: '',
welcomeType: 1, welcomeType: 1,
landingLoading: false, landingLoading: false,
loading: false, loading: false,
...@@ -178,12 +186,11 @@ export default { ...@@ -178,12 +186,11 @@ export default {
storeList: { required: true, validator: validateStoreList } storeList: { required: true, validator: validateStoreList }
}, },
storeData: [], storeData: [],
storeLoading: false,
form: { form: {
linkType: 1, linkType: 1,
memberLabelName: '', memberLabelName: '',
memberLabelId: '', memberLabelId: '',
// memberLabelName: '测试标签值名称重复- 温州青童时代店',
// memberLabelId: 'edd3901afd1e418d93fdc3b50bb24784',
storeList: [], storeList: [],
name: '', name: '',
pageId: '', pageId: '',
...@@ -222,9 +229,7 @@ export default { ...@@ -222,9 +229,7 @@ export default {
} }
}, },
wxEnterpriseId: sessionStorage.getItem('userInfos') ? JSON.parse(sessionStorage.getItem('userInfos')).wxEnterpriseId : '', wxEnterpriseId: sessionStorage.getItem('userInfos') ? JSON.parse(sessionStorage.getItem('userInfos')).wxEnterpriseId : '',
btnLoading: false, btnLoading: false
storePageNum: 0,
totalCount: 1
}; };
}, },
components: { components: {
...@@ -250,25 +255,42 @@ export default { ...@@ -250,25 +255,42 @@ export default {
this.getStoreList(); this.getStoreList();
} }
}, },
methods: { methods: {
toInput: _debounce(function(e, value) { toInput: _debounce(function(e, value) {
this.getList(); this.getList();
}, 500), }, 500),
onLeftLoadMore() {
if (this.leftPanel.pageNum < this.leftPanel.totalPage) {
this.leftPanel.pageNum++;
this.leftPanel.loading = true;
this.getStoreList();
}
},
filterMethod(search) {
this.storeLoading = true;
this.search = search;
this.leftPanel.pageNum = 1;
this.leftPanel.loading = true;
this.storeData = [];
this.getStoreList();
},
getStoreList() { getStoreList() {
storeListApi({ pageSize: 999999 }) storeListApi({ pageNum: this.leftPanel.pageNum, pageSize: 20, storeSearchParams: this.search })
.then(res => { .then(res => {
const { result, totalCount } = res.data.result; const { result, totalPage } = res.data.result;
this.totalCount = totalCount; this.leftPanel.totalPage = totalPage;
if (Array.isArray(result) && Array.isArray(this.form.storeList)) { if (Array.isArray(result) && Array.isArray(this.form.storeList)) {
this.storeData = result.map(el => { this.storeData = this.storeData.concat(
el.checked = this.form.storeList.some(item => item.storeId == el.storeId); result.map(el => {
return el; el.checked = this.form.storeList.some(item => item.storeId == el.storeId);
}); return el;
})
);
} }
}) })
.finally(_ => { .finally(_ => {
this.busy = false; this.leftPanel.loading = false;
this.storeLoading = false;
}); });
}, },
getDetail() { getDetail() {
...@@ -308,19 +330,17 @@ export default { ...@@ -308,19 +330,17 @@ export default {
this.form.memberLabelId = ''; this.form.memberLabelId = '';
}, },
handleTransferChange(val) { handleTransferChange(val) {
console.log(val);
this.form.storeList = val; this.form.storeList = val;
this.$refs.form.validateField('storeList'); // this.$refs.form.validateField('storeList');
// if (val && !val.length) {
// this.storeData = this.storeData.splice(0);
// }
}, },
getList() { getList() {
this.landingLoading = true; this.landingLoading = true;
guidePageList(this.landingPage) guidePageList(this.landingPage)
.then(res => { .then(res => {
const { result, totalCount } = res.data.result; const { result, search } = res.data.result;
if (result) { if (result) {
this.total = totalCount; this.total = search;
this.landingData = result; this.landingData = result;
} }
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment