Commit 5780fb08 by crushh

Merge branch 'feature/act-code' into dev

parents dd121199 272432c3
<template>
<el-popover placement="bottom" style="min-width: 357px" v-model="departmentVisible">
<dm-simple-transfer v-model="selected" :props="props" :data="data" :item-size="66" :titles="['选择门店', '已选门店']" filterable filter-placeholder="请输入门店名称/code" @change="change">
<el-popover placement="bottom" v-model="departmentVisible">
<dm-simple-transfer v-model="selected" :busy="busy" :canSelectAll="canSelectAll" :props="props" :max="max" :data="data" :bodyH="62" :item-size="66" :titles="['选择门店', '已选门店']" filterable filter-placeholder="请输入门店名称/code" @change="change" @loadMore="loadMore">
<div slot-scope="{ option }">
<p>{{ option.storeName }}</p>
<p style="font-size: 12px;line-height: 18px">{{ option.storeCode }}</p>
<p v-show="option.isOver == 1" class="isOver">所有导购今日添加已到上限</p>
<p style="font-size: 12px;line-height: 14px">{{ option.storeCode }}</p>
<p v-if="option.isOver == 1" class="isOver">所有导购今日添加已到上限</p>
</div>
</dm-simple-transfer>
<div class="show-select-num cursor-pointer w-250" slot="reference">
......@@ -26,6 +26,18 @@ export default {
data: {
type: Array,
default: () => []
},
max: {
type: Number,
default: 999999
},
busy: {
type: Boolean,
default: false
},
canSelectAll: {
type: Boolean,
default: false
}
},
data() {
......@@ -34,7 +46,7 @@ export default {
props: {
key: 'storeId',
label: 'storeName',
isOver: 'isOver'
disabledProp: 'disabled'
}
};
},
......@@ -43,15 +55,21 @@ export default {
console.log(val);
this.$emit('change', val);
},
renderContent(h, { isOver, storeCode, storeId, storeName }) {
console.log(isOver, storeCode, storeId, storeName);
return h('p', [h('p', storeName), h('p', isOver)]);
loadMore(side) {
if (side == 'left') {
// this.$emit('update:busy', true);
console.log('loadMore');
this.$emit('loadMore');
}
}
}
};
</script>
<style lang="scss" scoped>
<style lang="less" scoped>
/deep/.dm-transfer-panel .transfer-panel-body {
height: calc(100% - 58px);
}
.show-select-num {
position: relative;
display: inline-block;
......@@ -78,6 +96,7 @@ export default {
}
}
}
.isOver {
font-size: 12px;
color: #fa8c16;
......
......@@ -72,7 +72,7 @@
<div class="level3-2" v-if="form.customRuleJson.open">
<div class="level3-2-content" v-if="form.customRuleJson.store_type == 1">
<el-form-item label="选择门店" label-width="92px" prop="storeList">
<selectShop @change="handleTransferChange" :data="storeData" :selected="form.storeList" />
<selectShop @change="handleTransferChange" :data="storeData" :max="20" :selected="form.storeList" :canSelectAll="false" />
</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.dy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.dz, form.customRuleJson.store.dy) && form.customRuleJson.store.dy">导购</el-checkbox>
......@@ -85,7 +85,7 @@
</div>
<p class="content-tips m-b-10">客户拒绝授权当前定位信息,可在下方指定的门店范围中(最多20家)自主选择要添加的门店好友</p>
<el-form-item label="选择门店" label-width="92px" prop="storeList">
<selectShop @change="handleTransferChange" :data="storeData" :selected="form.storeList" />
<selectShop @change="handleTransferChange" :data="storeData" :max="20" :selected="form.storeList" :canSelectAll="false" />
</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.ndy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.store.ndz, form.customRuleJson.store.ndy) && form.customRuleJson.store.ndy">导购</el-checkbox>
......@@ -220,7 +220,11 @@ export default {
}
},
wxEnterpriseId: sessionStorage.getItem('userInfos') ? JSON.parse(sessionStorage.getItem('userInfos')).wxEnterpriseId : '',
btnLoading: false
btnLoading: false,
storePageNum: 0,
totalCount: 1,
busy: false,
busy2: false
};
},
components: {
......@@ -242,9 +246,8 @@ export default {
});
if (this.isEdit) {
this.getDetail();
} else {
this.getStoreList();
}
this.getStoreList();
},
methods: {
......@@ -252,16 +255,22 @@ export default {
this.getList();
}, 500),
getStoreList() {
storeListApi({ pageSize: 99999 }).then(res => {
const { result } = res.data.result;
this.storeData = result || [];
if (this.form.storeList && this.form.storeList.length) {
this.storeData.map(el => {
el.checked = this.form.storeList.some(item => item.storeId == el.storeId);
return el;
});
}
});
storeListApi({ pageSize: 999999 })
.then(res => {
const { result, totalCount } = res.data.result;
this.storeData = this.storeData.concat(result || []);
this.totalCount = totalCount;
this.busy = false;
// if (this.form.storeList && this.form.storeList.length) {
// this.storeData.map(el => {
// el.checked = this.form.storeList.some(item => item.storeId == el.storeId);
// return el;
// });
// }
})
.finally(_ => {
this.busy = false;
});
},
getDetail() {
this.loading = true;
......@@ -270,16 +279,15 @@ export default {
const { result } = res.data;
if (result) {
const { link, page } = result;
link.customRuleJson = JSON.parse(link.customRuleJson);
link.storeRuleJson = JSON.parse(link.storeRuleJson);
link.storeList = link.storeList ? link.storeList : [];
this.form = link;
this.form.storeList.map(item => (item.checked = true));
if (!this.form.welcomeId) {
this.welcomeType = 2;
}
this.landingForm = page;
this.getStoreList();
}
})
.finally(_ => {
......@@ -301,11 +309,16 @@ export default {
this.form.memberLabelId = '';
},
handleTransferChange(val) {
console.log(val);
this.form.storeList = val;
this.$refs.form.validateField('storeList');
},
// loadMore() {
// if (this.storeData.length < this.totalCount) {
// this.busy = false;
// this.storePageNum++;
// this.getStoreList();
// }
// },
getList() {
this.landingLoading = true;
guidePageList(this.landingPage)
......@@ -313,7 +326,6 @@ export default {
const { result, totalCount } = res.data.result;
if (result) {
this.total = totalCount;
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