Commit 1df43de9 by caoyanzhi

update: 新建活码

parent bb71c406
<template>
<div>
<setActCode ref="setActCodePage" @sumbit="onSubmit" :actCodeData="form">
<setActCode ref="setActCodePage" :actCodeData="form" @sumbit="onSubmit">
<template #typeCode>
<el-form-item label="活码类型" :rules="[{ required: true, message: '请选择活码类型', trigger: 'blur' }]">
<el-radio-group v-model="form.hmType" @change="changeEvent" :disabled="$route.query.hmId">
<el-radio-group v-model="form.hmType" @change="form.name = ''" :disabled="!!form.hmId">
<el-radio :label="1">单人活码</el-radio>
<el-radio :label="2">多人活码</el-radio>
</el-radio-group>
......@@ -15,10 +15,10 @@
</el-form-item>
</template>
<template #member>
<el-form-item label="关联导购" prop="clerkIdList" :rules="[{ required: true, message: '请选择使用成员', trigger: 'blur' }]">
<el-form-item label="关联导购" prop="clerkList" :rules="[{ required: true, message: '请选择使用成员', trigger: 'blur' }]">
<p class="tabs" v-if="form.hmType == 1">单人活码仅可选择一名成员</p>
<p class="tabs" v-if="form.hmType == 2">若选择多名成员,则随机分配企微员工</p>
<select-clerk :is-simple="form.hmType == 1" :multiple="multiple" :data="data" @change="onChange" :disabled="clerkDisabled"></select-clerk>
<select-clerk :is-simple="form.hmType == 1" :multiple="form.hmType == 2" :data="form.clerkList" @change="onChange" :disabled="form.hmType == 1 && !!form.hmId"></select-clerk>
</el-form-item>
</template>
</setActCode>
......@@ -34,102 +34,69 @@ export default {
return {
loading: false,
form: {
hmId: '',
hmGroupId: '',
passFlag: 1,
welcomeId: '',
hmType: 1,
name: '',
clerkIdList: [],
memberLabelId: '',
memberLabelName: '',
memberLabelStatus: -1,
clerkList: [],
welcomeType: 1,
hmUserNum: null //多人活码人数
},
multiple: false,
data: [],
dataArr: [],
clerkDisabled: false
}
};
},
created() {
if (this.$route.query.hmId) {
this.form.hmId = this.$route.query.hmId;
this.getActCodeInfo();
}
},
methods: {
changeEvent(e) {
this.data = [];
this.dataArr = [];
if (e == 2) {
this.multiple = 1;
this.clerkDisabled = false;
} else if (e == 1) {
this.multiple = false;
}
},
onChange(data) {
this.data = data;
this.form.hmUserNum = data.length;
this.form.clerkIdList = data.map(item => {
return item.clerkId;
});
this.dataArr = data.map(item => {
return item.clerkName;
});
this.form.clerkList = data;
if (this.form.name == '') {
this.form.name = this.dataArr.toString();
this.form.name = data
.map(el => el.clerkName)
.toString()
.slice(0, 20);
}
this.$nextTick(() => {
this.$refs.setActCodePage.getForm().validateField(['name', 'clerkIdList']);
this.$refs.setActCodePage.getForm().validateField(['name', 'clerkList']);
});
},
async getActCodeInfo() {
const that = this;
that.loading = true;
if (this.$route.query.hmId) {
await getRequest('/haoban-manage3-web/hm/qrcode/detail', { hmId: this.$route.query.hmId }).then(res => {
getActCodeInfo() {
this.loading = true;
getRequest('/haoban-manage3-web/hm/qrcode/detail', { hmId: this.form.hmId })
.then(res => {
this.form = res.data.result;
if (this.form.welcomeId) {
this.form.welcomeType = 1;
} else {
this.form.welcomeType = 2;
}
this.form.passFlag = this.form.passFlag == 1 ? true : false;
this.form.clerkIdList = this.form.clerkList.map(i => i.clerkId);
this.form.hmUserNum = this.form.clerkIdList.length;
this.data = res.data.result.clerkList;
if (this.form.hmType == 1) {
this.clerkDisabled = true;
this.multiple = false;
} else if (this.form.hmType == 2) {
this.multiple = true;
this.clerkDisabled = false;
}
that.loading = false;
});
}
this.form.hmUserNum = this.form.clerkList.length;
})
.finally(() => (this.loading = false));
},
async onSubmit(event) {
onSubmit(event) {
let obj = {
...event,
...this.form
};
obj.passFlag = obj.passFlag ? 1 : 0;
if (this.$route.query.hmId) {
obj = {
...obj,
hmId: this.$route.query.hmId
};
obj.clerkIdList = obj.clerkList.map(el => el.clerkId);
if (this.form.hmId) {
// 编辑
await postJsonRequest('/haoban-manage3-web/hm/qrcode/update', obj).then(res => {
postJsonRequest('/haoban-manage3-web/hm/qrcode/update', obj).then(res => {
if (res.data.code == 0) {
setTimeout(() => {
this.$router.go(-1);
this.$refs.setActCodePage.btnLoading = false;
this.$refs.setActCodePage.saveLoading = false;
this.form = {
hmType: 1,
name: '',
clerkIdList: [],
hmUserNum: null //多人活码人数
};
}, 1000);
} else {
this.$refs.setActCodePage.btnLoading = false;
......@@ -139,19 +106,13 @@ export default {
});
} else {
// 新增
await postJsonRequest('/haoban-manage3-web/hm/qrcode/add', obj).then(res => {
postJsonRequest('/haoban-manage3-web/hm/qrcode/add', obj).then(res => {
if (res.data.code == 0) {
setTimeout(() => {
this.$route.meta.refresh = true;
this.$refs.setActCodePage.btnLoading = false;
this.$refs.setActCodePage.saveLoading = false;
this.$router.go(-1);
this.form = {
hmType: 1,
name: '',
clerkIdList: [],
hmUserNum: null //多人活码人数
};
}, 1000);
} else {
this.$refs.setActCodePage.btnLoading = false;
......
......@@ -6,19 +6,22 @@
<slot name="typeCode"></slot>
<slot name="codeName"></slot>
<el-form-item label="活码分组" prop="hmGroupId" class="code-group">
<el-select class="w340" v-model="form.hmGroupId" v-loadmore="onLoadmore" clearable filterable :filter-method="remoteMethod" @change="$refs.form.validateField('hmGroupId')">
<el-select class="w340" v-model="form.hmGroupId" v-loadmore="onLoadmore" clearable filterable :filter-method="remoteMethod" @visible-change="visibleChange" @change="$refs.form.validateField('hmGroupId')">
<el-option v-for="item in groupList" :key="item.groupId" :label="item.groupName" :value="item.groupId"></el-option>
</el-select>
</el-form-item>
<slot name="member"></slot>
<el-form-item label="自动通过好友">
<el-switch v-model="form.passFlag" class="mr15"></el-switch>
<el-switch v-model="form.passFlag" :active-value="1" :inactive-value="0" class="mr15"></el-switch>
<span class="tabs">开启后,客户添加该企业微信时,无需好友验证,将会自动添加成功</span>
</el-form-item>
<el-form-item label="活码标签" prop="memberLabelId" class="memberTag-form-item">
<el-button v-if="!form.memberLabelId || !form.memberLabelName" plain class="ylbtn" @click="tagsDialogVisible = true"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加标签</el-button>
<el-tooltip :disabled="form.memberLabelStatus != 0" content="已删除" placement="top" v-else>
<el-tag closable @close="handleTagCloseTag" :type="isEdit && form.memberLabelStatus == 0 ? 'warning' : ''">{{ form.memberLabelName }}</el-tag>
<el-button v-if="!form.memberLabelId" plain class="ylbtn" @click="tagsDialogVisible = true">
<i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>
添加标签
</el-button>
<el-tooltip :disabled="form.hmId && form.memberLabelStatus != 0" content="已删除" placement="top" v-else>
<el-tag closable @close="handleTagCloseTag" :type="form.hmId && form.memberLabelStatus == 0 ? 'warning' : ''">{{ form.memberLabelName }}</el-tag>
</el-tooltip>
<dm-memberTag-group isHb :visiable.sync="tagsDialogVisible" projectName="haobao-3" @save="saveTagPop"></dm-memberTag-group>
</el-form-item>
......@@ -27,7 +30,7 @@
</el-form>
</div>
<div class="saveBtn">
<el-button type="primary" @click="save" :loading="btnLoading">保存</el-button>
<el-button type="primary" @click="save" :loading="saveLoading">保存</el-button>
</div>
</div>
</template>
......@@ -59,21 +62,20 @@ export default {
},
data() {
return {
btnLoading: false,
saveLoading: false,
form: {
// hmType: 1, //1单人 2多人
// name: '', // 名称
hmGroupId: '', //活码分组id
passFlag: true, // 1自动通过 0否
memberLabelId: '', //会员活动标签id
memberLabelName: '',
welcomeId: '', // 欢迎语id
// hmGroupId: '', //活码分组id
// passFlag: true, // 1自动通过 0否
// memberLabelId: '', //会员活动标签id
// memberLabelName: '',
// welcomeId: '', // 欢迎语id
// clerkIdList: '', // 选择导购id
// storeId: '' //门店id
// hmUserNum: null //多人活码人数
memberLabelStatus: -1,
welcomeType: 1
// memberLabelStatus: -1,
// welcomeType: 1
},
rules: {
hmGroupId: [{ required: true, message: '请选择活码分组', trigger: 'blur' }]
......@@ -100,6 +102,7 @@ export default {
handleTagCloseTag() {
this.form.memberLabelName = '';
this.form.memberLabelId = '';
this.form.memberLabelStatus = 0;
},
saveTagPop(data) {
const { tagItemId, tagItemName } = data;
......@@ -111,17 +114,15 @@ export default {
this.pageParam.pageNum++;
this.searchGroup();
},
async searchGroup() {
searchGroup() {
if (this.pageParam.pageNum == 1) {
this.groupList = [];
}
await getRequest('/haoban-manage3-web/hm/group/list', this.pageParam).then(res => {
getRequest('/haoban-manage3-web/hm/group/list', this.pageParam).then(res => {
if (res.data.code == 0) {
const { result, pages } = res.data.result || {};
this.total = pages || 1;
if (this.pageParam.groupName != '') {
this.groupList = result;
} else if (Array.isArray(result)) {
if (Array.isArray(result)) {
this.groupList = this.groupList.concat(result);
}
}
......@@ -129,14 +130,10 @@ export default {
},
// 远程搜索
remoteMethod(query) {
if (query !== '') {
this.pageParam.groupName = query;
this.pageParam.pageNum = 1;
this.groupList = [];
this.searchGroup();
} else {
this.groupList = [];
}
this.pageParam.groupName = query;
this.pageParam.pageNum = 1;
this.groupList = [];
this.searchGroup();
},
visibleChange(e) {
if (!e) {
......@@ -166,7 +163,7 @@ export default {
});
return;
}
if (this.welcomeType == 2) {
if (this.form.welcomeType == 2) {
this.form.welcomeId = '';
}
this.$refs.form.validate(async valid => {
......@@ -175,7 +172,6 @@ export default {
}
if (valid) {
// this.form.passFlag = this.form.passFlag ? 1 : 0;
this.btnLoading = true;
this.saveLoading = true;
delete this.form.welcomeType;
this.$emit('sumbit', this.form);
......@@ -186,13 +182,14 @@ export default {
watch: {
actCodeData: {
deep: true,
immediate: true,
handler: function(val) {
this.form = val;
if (val) {
this.form = val;
// this.form.hmGroupId = val.hmGroupId;
// this.form.passFlag = val.passFlag == 1 ? true : false;
this.form.memberLabelId = val.memberLabelId ? val.memberLabelId : '';
this.form.memberLabelName = val.memberLabelName ? val.memberLabelName : '';
// this.form.memberLabelId = val.memberLabelId ? val.memberLabelId : '';
// this.form.memberLabelName = val.memberLabelName ? val.memberLabelName : '';
// this.welcomeType = this.form.welcomeType;
// this.form.welcomeId = val.welcomeId;
// if (this.form.welcomeId) {
......
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