Commit 32d4c322 by zhangmeng

add:口令福利找你马策略修改人群筛选器

parent 2010135a
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/app.22090479921d5e2c461159eedb70c2c0.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.5c7988569b32f1972e5a.js></script><script type=text/javascript src=/marketing/static/js/app.dc74bb90a82a2cc6eb5b.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/app.7e266d5b2a47788a791aff7808dc040d.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.0d0cf2dff971ab70b0c0.js></script><script type=text/javascript src=/marketing/static/js/app.301e0f511379e1486d31.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -386,9 +386,9 @@
}
},
"@gic-test/vue-gic-people": {
"version": "1.8.8",
"resolved": "http://www.gicdev.com:7001/@gic-test/vue-gic-people/download/@gic-test/vue-gic-people-1.8.8.tgz",
"integrity": "sha1-U1dP+vvo4ZG5cHYIrMnTHCWgO1k=",
"version": "1.8.81",
"resolved": "http://www.gicdev.com:7001/@gic-test/vue-gic-people/download/@gic-test/vue-gic-people-1.8.81.tgz",
"integrity": "sha1-v9I+J0gelOb7OFVTjH+ZBUFbKqM=",
"requires": {
"@gic-test/vue-gic-datepicker": "^1.3.8",
"@gic-test/vue-gic-people": "^1.7.0",
......
......@@ -5,7 +5,7 @@ import store from './store';
import { axios } from './service/api/index';
import directives from './directives';
import ElementUI from 'element-ui';
import vueGicHeader from '@gic-test/vue-gic-header';
import vueGicHeader from '../components/dm-header.js';
import vueGicFooter from '@gic-test/vue-gic-footer';
import vueGicAsideMenu from '@/components/aside-menu';
import vueGicCard from '@gic-test/vue-gic-card';
......
......@@ -231,3 +231,30 @@ export const sleep = (delay) => {
continue;
}
}
export const findAnyComponent = (context, componentName, root = null) => {
if (!root) {
root = context.$root;
}
console.log(root);
const childrens = root.$children;
let children = null;
if (childrens.length) {
for (const child of childrens) {
const name = child.$options.name;
if (name === componentName) {
children = child;
break;
} else {
children = findAnyComponent(context, componentName, child);
console.log(children);
if (children) {
break;
}
}
}
}
return children;
}
......@@ -29,7 +29,7 @@
<el-radio :disabled="isInfo" v-model="form.memberType" :label="2">会员分组</el-radio>
</div>
<div v-show="!form.memberType">
<vue-gic-people :projectName="projectName" :isAdd="isAdd" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<vue-gic-people :projectName="projectName" :isAdd="isAdd" :triggerReset="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<div class="gic-people--button" v-show="toggleTag">
<el-button size="small" type="primary" @click="getData">确 定</el-button>
<el-button size="small" @click="cancelFilter">取 消</el-button>
......
......@@ -116,7 +116,7 @@
<el-radio :label="1">会员分组</el-radio>
</el-radio-group>
<div class="mb20" v-if="form.memberType === 0">
<vue-gic-people :projectName="projectName" :isAdd="isAdd" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<vue-gic-people :projectName="projectName" :isAdd="isAdd" :triggerReset="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<div class="gic-people--button" v-show="toggleTag">
<el-button size="small" type="primary" @click="getData">确 定</el-button>
<el-button size="small" @click="cancelFilter">取 消</el-button>
......
......@@ -8,7 +8,7 @@
<el-input v-model="form.prizeStock" placeholder="请输入礼品数量"></el-input>
</el-form-item> -->
<el-form-item label="礼品图片">
<dm-upload-avatar class="inline-block" :model.sync="form.prizeImage" width="85" label="礼品图片" tips=""></dm-upload-avatar>
<dm-upload-avatar class="inline-block" :model.sync="form.prizeImage" width="85" height="85" label="礼品图片" tips=""></dm-upload-avatar>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......
......@@ -84,7 +84,7 @@
<!-- </el-radio-group> -->
</el-form-item>
<el-form-item label="选择会员" v-show="form.memberType === 1">
<vue-gic-people :projectName="projectName" :isAdd="isAdd" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<vue-gic-people :projectName="projectName" :isAdd="isAdd" :triggerReset="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<div class="gic-people--button" v-show="toggleTag">
<el-button size="small" type="primary" @click="getData">确 定</el-button>
<el-button size="small" @click="cancelFilter">取 消</el-button>
......@@ -355,14 +355,11 @@ export default {
this.form.memberType = attendCondition.memberType || 0;
if (this.form.memberType) {
this.useId = res.result.searchId || '';
console.log(this.useId);
}
// debugger
// console.log(this.form )
this.form.gameActivityAttendConditionId = attendCondition.gameActivityAttendConditionId;
this.form.tipTitle = attendCondition.tipTitle;
this.form.searchParams = attendCondition.searchParams;
this.form.hasSearchData = attendCondition.searchParams;
this.hasSearchData = attendCondition.searchParams;
this.getSaveData = attendCondition.searchJson || '';
this.form.tipsImg = { imgUrl: attendCondition.tipImageUrl, code: attendCondition.tipImageFieldCode };
}
......
......@@ -158,7 +158,7 @@ export default {
addStrategy(val) {
this.dialogStrategy = {};
this.strategyShow = true;
this.gamePrizeStrategyId = val;
this.gamePrizeStrategyId = '';
},
editStrategy(val) {
this.strategyShow = true;
......
<template>
<el-dialog title="首次获奖策略管理" :visible.sync="show" width="40%" :before-close="close" v-loading="loading">
<el-dialog title="首次获奖策略管理" :visible.sync="show" width="1000px" :before-close="close" v-loading="loading">
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-form-item label="策略名称" prop="strategyName">
<el-form-item label="策略名称" prop="strategyName" class="w400">
<el-input v-model="form.strategyName"></el-input>
</el-form-item>
<el-form-item label="会员等级">
<el-select v-model="form.gradeLevel" multiple placeholder="请选择">
<el-option v-for="v in gradeList" :key="v.gradeId" :label="v.gradeName" :value="v.gradeId" :disabled="!v.isShow"></el-option>
</el-select>
</el-form-item>
<el-form-item label="最近消费">
<el-date-picker :pickerOptions="pickerOptions" v-model="form.lastCostTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item label="消费总额"> <el-input-number controls-position="right" class="w150" :min="0" size="medium" v-model="form.costAllBegin"></el-input-number><el-input-number controls-position="right" class="w150" :min="parseInt(form.costAllBegin)" size="medium" v-model="form.costAllEnd"></el-input-number></el-form-item>
<el-form-item label="消费次数"> <el-input-number controls-position="right" class="w150" :min="0" size="medium" v-model="form.costTimesBegin"></el-input-number><el-input-number controls-position="right" class="w150" :min="parseInt(form.costTimesBegin)" size="medium" v-model="form.costTimesEnd"></el-input-number></el-form-item>
<el-form-item label="客单价"> <el-input-number controls-position="right" class="w150" :min="0" size="medium" v-model="form.avgCostBegin"></el-input-number><el-input-number controls-position="right" class="w150" :min="parseInt(form.avgCostBegin)" size="medium" v-model="form.avgCostEnd"></el-input-number></el-form-item>
<el-form-item label="连带率"> <el-input-number controls-position="right" class="w150" :min="0" size="medium" v-model="form.avgNumberBegin"></el-input-number><el-input-number controls-position="right" class="w150" :min="parseInt(form.avgNumberBegin)" size="medium" v-model="form.avgNumberEnd"></el-input-number></el-form-item>
<el-form-item label="奖券设置">
<el-form-item label="奖券设置" class="w200">
<el-button type="primary" @click="showCard">{{ cardObj.cardName || '选择卡券' }}</el-button>
</el-form-item>
<vue-gic-people v-if="peopleFilterReRender" :projectName="projectName" :isAdd="false" :triggerReset="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<div class="gic-people--button" v-show="toggleTag">
<el-button size="small" type="primary" @click="getData">确 定</el-button>
<el-button size="small" @click="cancelFilter">取 消</el-button>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="close">关 闭</el-button>
......@@ -28,7 +21,8 @@
</template>
<script>
import { znmStrategy, znmStrategySave } from '@/service/api/gameApi.js';
import { formateDateTimeByType, resetParams } from '@/utils/index.js';
import { findAnyComponent,formateDateTimeByType, resetParams } from '@/utils/index.js';
export default {
props: {
show: {
......@@ -53,7 +47,7 @@ export default {
watch: {
show(val) {
if (val) {
this.znmStrategy();
this.znmStrategy();
}
}
},
......@@ -62,16 +56,6 @@ export default {
loading: false,
form: {
strategyName: '',
gradeLevel: [],
avgNumberBegin: null,
avgNumberEnd: null,
avgCostBegin: null,
avgCostEnd: null,
costTimesBegin: null,
costTimesEnd: null,
costAllBegin: null,
costAllEnd: null,
lastCostTime: ['', ''],
prizeReferId: '',
cardStatus: -1
},
......@@ -84,7 +68,15 @@ export default {
return time.getTime() > Date.now();
}
},
showCardDialog: false
showCardDialog: false,
// 人群筛选器可传参数
projectName: '', // 当前项目名
sceneValue: 'member', // 场景值
useId: '', // 模板id
hasSearchData: '', // 当前页回显的数据(接口返回)
toggleTag: true, // 控制按钮显示的参数,仅供参考,可自行修改
getSaveData: '',
peopleFilterReRender:false
};
},
methods: {
......@@ -92,8 +84,12 @@ export default {
this.loading = true;
let res = await znmStrategy({ gamePrizeStrategyId: this.dataId || '' });
this.loading = false;
console.log(res);
this.gradeList = res.result.gradeList;
this.useId = res.result.searchId;
this.peopleFilterReRender = false;
this.$nextTick(_ => {
this.peopleFilterReRender = true;
});
const strategy = res.result.strategy;
if (res.result.strategy) {
this.form.strategyName = strategy.strategyName;
......@@ -109,23 +105,13 @@ export default {
this.form.status = strategy.status;
this.cardObj.cardName = strategy.proTitle;
this.cardObj.coupCardId = strategy.prizeReferId;
if (res.result.strategy.crowdFilter) {
const obj = JSON.parse(res.result.strategy.crowdFilter);
this.form.gradeLevel = obj.gradeLevel.split(',').filter(v => v != '');
this.form.cardStatus = obj.cardStatus;
this.form.avgNumberBegin = parseInt(obj.avgNumberBegin);
this.form.avgNumberEnd = parseInt(obj.avgNumberEnd);
this.form.avgCostBegin = parseInt(obj.avgCostBegin);
this.form.avgCostEnd = parseInt(obj.avgCostEnd);
this.form.costTimesBegin = parseInt(obj.costTimesBegin);
this.form.costTimesEnd = parseInt(obj.costTimesEnd);
this.form.costAllBegin = parseInt(obj.costAllBegin);
this.form.costAllEnd = parseInt(obj.costAllEnd);
this.form.lastCostTime = [obj.lastCostTimeBeginStr, obj.lastCostTimeEndStr];
console.log(this.form);
}
this.form.crowdFilter = strategy.crowdFilter;
this.hasSearchData = strategy.crowdFilter;
} else {
resetParams(this.form);
this.hasSearchData = '';
this.cardObj.cardName = '';
this.cardObj.coupCardId = '';
}
},
close() {
......@@ -133,13 +119,11 @@ export default {
},
// 显示卡券弹窗
showCard(type) {
// this.showCardDialog = true;
this.$emit('get-data', 'dialogStrategy');
},
// 子组件触发方法
selectCard(val) {
// 模拟检查数据
console.log(val);
this.cardObj = val;
this.showCardDialog = false;
},
......@@ -160,28 +144,10 @@ export default {
prizeCount: 0,
prizeIntegral: 0,
strategyType: '2',
status: 1
status: 1,
crowdFilter: this.form.crowdFilter,
searchJson: this.getSaveData
};
let _data = {
gradeLevel: this.form.gradeLevel.join(','),
cardStatus: this.form.cardStatus,
//连带率
avgNumberBegin: this.form.avgNumberBegin,
avgNumberEnd: this.form.avgNumberEnd,
//客单价
avgCostBegin: this.form.avgCostBegin,
avgCostEnd: this.form.avgCostEnd,
//消费次数
costTimesBegin: this.form.costTimesBegin,
costTimesEnd: this.form.costTimesEnd,
//消费总额
costAllBegin: this.form.costAllBegin,
costAllEnd: this.form.costAllEnd,
//最近消费
lastCostTimeBeginStr: formateDateTimeByType(this.form.lastCostTime[0], 'yyyy-MM-dd'),
lastCostTimeEndStr: formateDateTimeByType(this.form.lastCostTime[1], 'yyyy-MM-dd')
};
data.crowdFilter = JSON.stringify(_data);
znmStrategySave(data).then(res => {
this.$tips({ type: 'success', message: '操作成功' });
this.$emit('update:show', false);
......@@ -192,7 +158,41 @@ export default {
return false;
}
});
}
},
/** ----------人群筛选器的方法----------- */
//获取指定会员
getData() {
this.$refs.peopleFilter.confirmSet();
},
// 子组件触发父组件事件,返回过滤条件数据
findFilter(value) {
console.log(value);
this.form.crowdFilter = value;
},
// 取消
cancelFilter() {
this.$refs.peopleFilter.cancelSet();
},
// 获取需要回显的数据, 供保存时候使用
getBackData(val) {
this.getSaveData = val;
},
// 显示编辑,保存按钮隐藏,确认按钮显示 (子组件会调用)
editShow() {
this.toggleTag = true;
this.saveTag = false;
},
// 显示保存按钮,隐藏确认按钮显示 (子组件会调用)
editHide() {
this.toggleTag = false;
this.saveTag = true;
},
// 隐藏保存按钮和确认按钮 (子组件会调用)
hideBtn() {
// alert(1)
this.toggleTag = false;
this.saveTag = false;
},
}
};
</script>
......@@ -23,7 +23,7 @@
<el-radio v-model="info.memberType" :label="2">会员分组</el-radio>
</div>
<div v-show="info.memberType === 0">
<vue-gic-people :projectName="projectName" :isAdd="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<vue-gic-people :projectName="projectName" :isAdd="true" :triggerReset="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<div class="gic-people--button" v-show="toggleTag">
<el-button size="small" type="primary" @click="getData">确 定</el-button>
<el-button size="small" @click="cancelFilter">取 消</el-button>
......
......@@ -29,7 +29,7 @@
<el-radio v-model="info.memberType" :disabled="isInfo" :label="2">会员分组</el-radio>
</div>
<div v-show="info.memberType === 0">
<vue-gic-people :projectName="projectName" :isAdd="isAdd" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<vue-gic-people :projectName="projectName" :isAdd="isAdd" :triggerReset="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<div class="gic-people--button" v-show="toggleTag">
<el-button size="small" type="primary" @click="getData">确 定</el-button>
<el-button size="small" @click="cancelFilter">取 消</el-button>
......
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