Commit 1b176d1d by crushh

update: dist

parent d0635c52
......@@ -22,13 +22,13 @@
<div class="left">
<el-tabs v-model="activeName">
<el-tab-pane label="我的客户分组" name="0" v-if="!onlyFixedType">
<dm-table ref="table0" name="0" :creatorId="creatorId" :effectiveStatus="effectiveStatus" :readonly="readonly" :key="visiable" :realTimeType="realTimeType" :activeName="activeName" :selected="selectedArray" @handleSelectionChange="handleSelectionChange" @deleteRow="deleteRow" />
<dm-table ref="table0" name="0" :creatorId="creatorId" :effectiveStatus="effectiveStatus" :key="visiable" :realTimeType="realTimeType" :activeName="activeName" :selected="selectedArray" @handleSelectionChange="handleSelectionChange" @deleteRow="deleteRow" />
</el-tab-pane>
<el-tab-pane label="固化分组" name="1">
<dm-table ref="table1" name="1" :creatorId="creatorId" :effectiveStatus="effectiveStatus" :readonly="readonly" :key="visiable" :realTimeType="realTimeType" :activeName="activeName" :selected="selectedArray" @handleSelectionChange="handleSelectionChange" @deleteRow="deleteRow" />
<dm-table ref="table1" name="1" :creatorId="creatorId" :effectiveStatus="effectiveStatus" :key="visiable" :realTimeType="realTimeType" :activeName="activeName" :selected="selectedArray" @handleSelectionChange="handleSelectionChange" @deleteRow="deleteRow" />
</el-tab-pane>
<el-tab-pane label="金字塔会员分层" name="2" v-if="!onlyFixedType">
<dm-table ref="table2" name="2" :creatorId="creatorId" :effectiveStatus="effectiveStatus" :readonly="readonly" :key="visiable" :realTimeType="realTimeType" :activeName="activeName" :selected="selectedArray" @handleSelectionChange="handleSelectionChange" @deleteRow="deleteRow" />
<dm-table ref="table2" name="2" :creatorId="creatorId" :effectiveStatus="effectiveStatus" :key="visiable" :realTimeType="realTimeType" :activeName="activeName" :selected="selectedArray" @handleSelectionChange="handleSelectionChange" @deleteRow="deleteRow" />
</el-tab-pane>
</el-tabs>
</div>
......@@ -44,7 +44,7 @@
<el-tag size="mini" type="warning" v-else>非实时</el-tag>
<span class="groupName"> {{ item.groupName }}</span>
</div>
<i v-if="!readonly" class="el-icon-close" @click="deleteRow(item)"></i>
<i class="el-icon-close" @click="deleteRow(item)"></i>
</div>
</li>
</ul>
......@@ -66,18 +66,12 @@ export default {
props: {
selectedIds: {
type: String,
default() {
return [];
}
default: ''
},
visiable: {
type: Boolean,
default: false
},
height: {
type: Number,
default: 543
},
projectName: {
type: String,
default: 'memberTag'
......@@ -85,10 +79,7 @@ export default {
creatorId: {
type: String,
default: ''
},
effectiveStatus: {
type: [String, Number],
default: 1
// require: true
},
maxLimit: {
type: Number,
......@@ -99,11 +90,6 @@ export default {
type: Boolean,
default: false
},
readonly: {
// 只读
type: Boolean,
default: false
},
realTimeType: {
// 实时与非实时分组的可选
// 0:可选非实时分组 1:可选实时分组
......
客户分组
# 业务props
| 参数 | 说明 | 类型 | 默认值 | 是否必传 |
| - | - | - | - | - |
| selectedIds | 所选择的分组id | String | '' | 否 |
| visiable | 是否展示筛选器弹窗 | Boolean | false | 否 |
| projectName | 项目名称 | String | 'memberTag' | 否 |
| creatorId |创建人id | String | '' | 是 |
| maxLimit | 最大可选择分组个数 | Number | 5 | 否 |
| onlyFixedType | 仅展示固化分组 | Boolean | false | 否 |
| onlyRead | 是否只读 | Boolean | false | 否 |
| realTimeType | 实时与非实时分组的可选 [0:可选非实时分组 1:可选实时分组 ]| Array | [] | 否 |
```
```
# 更新日志:
v 1.0.0 新增筛选器 by黄冷
\ No newline at end of file
......@@ -62,18 +62,9 @@ export default {
type: String,
default: ''
},
effectiveStatus: {
type: [String, Number],
default: 1
},
maxLimit: {
type: Number
},
readonly: {
// 只读
type: Boolean,
default: false
},
name: {
type: String,
default: '0'
......@@ -133,7 +124,7 @@ export default {
},
methods: {
selectable(row) {
return !this.readonly && this.realTimeType.includes(row.isRealTime);
return this.realTimeType.includes(row.isRealTime);
},
addGroup() {
window.open('http://gicdev.demogic.com/member-tag/#/memberGroupEdit?refresh', '_blank');
......@@ -168,23 +159,23 @@ export default {
this.loading = true;
this.tableData = [];
this.totalCount = 0;
let url = `${this.baseUrl}/gic-member-tag-web/member-tag-group/findList.json?requestProject=${this.projectName}&fixedType=${this.fixedType}&creatorId=${this.creatorId}&pageSize=${this.pageSize}&pageNum=${this.currentPage}&groupName=${this.dataSearch}&effectiveStatus=${this.effectiveStatus}`;
let url = `${this.baseUrl}/gic-member-tag-web/member-tag-group/findList.json?requestProject=${this.projectName}&fixedType=${this.fixedType}&creatorId=${this.creatorId}&pageSize=${this.pageSize}&pageNum=${this.currentPage}&groupName=${this.dataSearch}&effectiveStatus=1`;
if (this.activeName == '2') {
url = `${this.baseUrl}/gic-member-tag-web/memberTagGrade/gradeGroupListNew?requestProject=${this.projectName}&pageSize=${this.pageSize}&pageNum=${this.currentPage}&groupName=${this.dataSearch}`;
url = `${this.baseUrl}/gic-member-tag-web/memberTagGrade/gradeGroupListV2?requestProject=${this.projectName}&pageSize=${this.pageSize}&pageNum=${this.currentPage}&groupName=${this.dataSearch}`;
}
this.axios
.get(url)
.then(res => {
if (res.data.errorCode == 1) {
if (this.activeName == '2') {
this.tableData = res.data.result.result.map(item => item.itemList);
console.log(this.tableData);
this.tableData = this.tableData.flat();
console.log(this.tableData);
} else {
// if (this.activeName == '2') {
// this.tableData = res.data.result.result.map(item => item.itemList);
// console.log(this.tableData);
// this.tableData = this.tableData.flat();
// console.log(this.tableData);
// } else {
// this.tableData = res.data.result.result;
// }
this.tableData = res.data.result.result;
}
this.totalCount = res.data.result.totalCount;
return;
}
......
......@@ -65,10 +65,9 @@ const transform = (data, scenes) => {
const obj = { list: [], type: 'and' };
let filterFrontShow = [];
data.forEach(item => {
if (item.value) {
if (!item.value) return;
obj.list.push({ type: 'or', list: [getParamsData(item)] });
filterFrontShow.push(item);
}
});
result.filterJson = JSON.stringify(obj);
result.filterFrontShow = JSON.stringify(filterFrontShow);
......
<template>
<ruleFilter :visiable.sync="ruleVisible" @save="handleRuleFilterSave" :memberCrowdWidgetId="memberCrowdWidgetId" />
</template>
<script>
export default {
methods: {
/**id:筛选器id,data:保存筛选器时提交的参数 data.filterJson 后端需要的查询条件 data.filterFrontShow 前端回显的数据 */
handleRuleFilterSave(id, data) {
this.memberCrowdWidgetId = id;
console.log(id, data);
}
}
};
</script>
规则筛选器
筛选条件:会员等级,金字塔会员分层,会员服务门店,会员类型
# 业务props
| 参数 | 说明 | 类型 | 默认值 | 是否必传 |
| - | - | - | - | - |
| visiable | 是否展示筛选器弹窗 | Boolean | false | 否 |
| memberCrowdWidgetId | 筛选器id | String | '' | 否 |
| hideId | get-screening-init-data返回的esScreeningWidgetChainId, 传入则隐藏该节点 | Array | '' | 否 |
| onlyRead | 是否只读 | Boolean | false | 否 |
| requestProject | 弹窗可见与否 | Boolean | false | 否 |
```
```
# 更新日志:
v 1.0.0 新增规则筛选器 by黄冷
\ No newline at end of file
......@@ -35,7 +35,7 @@
</div>
</div>
<div v-if="item.templateCode == 'com020' && templateCode == 'com020'" class="leftContent">
<dm-store-selector @saving="val => (saving = val)" v-if="item.templateCode == 'com020' && storeSelectorKey" ref="storeSelector" scenes="auth" scenesVal="marketing" @store-change="val => storeChange(val, item.esScreeningWidgetChainId)" :uuid.sync="item.value"></dm-store-selector>
<dm-store-selector @saving="val => (saving = val)" v-if="item.templateCode == 'com020' && storeSelectorKey" ref="storeSelector" scenes="edaixi" scenesVal="marketing" @store-change="val => storeChange(val, item.esScreeningWidgetChainId)" :uuid.sync="item.value"></dm-store-selector>
</div>
</div>
<div v-else>
......@@ -140,7 +140,6 @@ export default {
computed: {
selectData() {
const data = this.handleEchoData(this.conditionTypeList);
console.log(data);
return data;
}
},
......
......@@ -48,7 +48,7 @@
<el-input-number v-model="form.consume_days0" @change="handleChangeNum(form.consume_days_flag0)" controls-position="right" :max="730" :min="30" :precision="0" size="small" style="margin:0 10px;" />
</div>
<div class="consumeLine">
<el-checkbox v-model="form.consume_times_flag0" :true-label="1" :false-label="0" :disabled="disabledCheck" @change="handleLastconsume">最近消费次数</el-checkbox>
<el-checkbox v-model="form.consume_times_flag0" :true-label="1" :false-label="0" :disabled="disabledCheck" @change="handleLastconsume">有效消费次数</el-checkbox>
<el-input-number v-model="form.consume_times0" @change="handleChangeNum(form.consume_times_flag0)" controls-position="right" :max="100" :min="1" :precision="0" size="small" style="margin:0 10px;" />
</div>
<div class="consumeLine">
......@@ -65,7 +65,7 @@
<el-input-number v-model="form.consume_days1" @change="handleChangeNum(form.consume_days_flag1)" controls-position="right" :max="730" :precision="0" :min="30" size="small" style="margin:0 10px;" />
</div>
<div class="consumeLine">
<el-checkbox v-model="form.consume_times_flag1" @change="getMemberCount" :true-label="1" :false-label="0">最近消费次数</el-checkbox>
<el-checkbox v-model="form.consume_times_flag1" @change="getMemberCount" :true-label="1" :false-label="0">有效消费次数</el-checkbox>
<el-input-number v-model="form.consume_times1" @change="handleChangeNum(form.consume_times_flag1)" controls-position="right" :max="100" :precision="0" :min="1" size="small" style="margin:0 10px;" />
</div>
<div class="consumeLine">
......@@ -724,9 +724,11 @@ export default {
};
}
sceneJson = JSON.stringify(sceneJson);
this.form.planMemberCount = '';
if (memberType == 0) {
filterJson = this.memberCrowdWidgetId;
} else if (memberType == 1) {
if (!this.selectedGroupIds) return;
filterJson = this.selectedGroupIds;
}
const data = {
......@@ -736,6 +738,7 @@ export default {
beginDate: formatDateTimeByType(startDate, 'yyyy-MM-dd'),
filterJson
};
const { result } = await getMemberCount(data);
this.form.planMemberCount = result == -1 ? 0 : 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