Commit b6cc33e0 by Kyle_Li

增加微盟渠道

parent 380cac48
...@@ -23,5 +23,6 @@ ...@@ -23,5 +23,6 @@
<script src="//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js"></script> <script src="//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/input.2.0.00.js"></script> <script src="//web-1251519181.file.myqcloud.com/components/input.2.0.00.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/export.1.0.1.js"></script> <script src="//web-1251519181.file.myqcloud.com/components/export.1.0.1.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/store-new.2.0.46.js"></script>
</body> </body>
</html> </html>
...@@ -13,43 +13,77 @@ ...@@ -13,43 +13,77 @@
<el-form-item label="适用条件" class="padding-0"> <el-form-item label="适用条件" class="padding-0">
<div class="title-tip">该设置只对微信商城中的积分抵现起作用。</div> <div class="title-tip">该设置只对微信商城中的积分抵现起作用。</div>
</el-form-item> </el-form-item>
<div class="form-child margin-20 "> <template v-for="(item, index) in ruleForm.gradeStrategyChannelList">
<el-form-item label="选择商户"> <template v-if="item.channelType == 1">
<el-select v-model="ruleForm.cliqueEnterpriseIds" placeholder="请选择" multiple> <el-form-item label="适用微信商城" prop="" :key="index">
<el-option v-for="item in mechantOption" :key="item.enterpriseId" :label="item.brandName" :value="item.enterpriseId"> </el-option> <el-switch v-model="item.status"> </el-switch>
</el-select> </el-form-item>
</el-form-item> <div class="form-child margin-20" v-if="item.status" :key="index">
<el-form-item label="适用商品" class="padding-0"> <el-form-item label="选择商户">
<div> <el-select v-model="item.cliqueEnterpriseIdArr" placeholder="请选择" multiple size="small">
<el-select class="fl" style="margin-right: 10px;" v-model="ruleForm.strategyRelationType" placeholder="请选择" @change="changeGood($event)"> <el-option v-for="item in mechantOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
<el-option v-for="item in applyGoods" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select>
</el-select> </el-form-item>
<!-- 商品品牌 --> <el-form-item label="适用商品" class="padding-0">
<el-select class="fl" @change="selectGoodsStore" v-if="ruleForm.strategyRelationType == 2" v-model="value5" multiple placeholder="请选择"> <el-select class="fl" style="margin-right: 10px;" v-model="item.channelRelationProType" placeholder="请选择">
<el-option v-for="item in goodsTreeOptions" :key="item.brandId" :label="item.brandName" :value="item.brandId"> </el-option> <el-option v-for="item in applyGoods" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select> </el-select>
<!-- 商品品类 --> <!-- 二级 -->
<div class="fl goods-cate" v-if="ruleForm.strategyRelationType == 3"> <!-- 商品品牌 -->
<goodsCate ref="selectGoodsCate" :selectCateType="selectCateTypeWx" :selectCateData="selectCateDataWx" @getCateIds="getCateIds"></goodsCate> <el-select size="small" class="fl" @change="selectGoodsStoreWx" v-if="item.channelRelationProType == 2" v-model="valueWx" multiple placeholder="请选择">
</div> <el-option v-for="item in goodsTreeOptionsWx" :key="item.brandId" :label="item.brandName" :value="item.brandId"> </el-option>
<el-button style="width:217px" class="fl" v-if="ruleForm.strategyRelationType == 4" @click.stop.prevent="showGoodsDialog('wx')">已选{{ goodsListWx.length }}件商品</el-button> </el-select>
<!-- 商品品类 -->
<div v-if="item.channelRelationProType == 3" class="fl goods-cate">
<goodsCate ref="selectGoodsCate" :selectCateType="selectCateTypeWx" :selectCateData="selectCateDataWx" @getCateIds="getCateIds"></goodsCate>
</div>
<el-button style="width:202px" class="fl" v-if="item.channelRelationProType == 4" @click="showGoodsDialog('wx')">已选{{ goodsListWx.length }}件商品</el-button>
</el-form-item>
<el-form-item label="折扣控制" prop="region">
<div class="radio-cell">
<el-radio v-model="item.integralUseDiscountControl" label="1">所有折扣商品都适用</el-radio>
</div>
<div class="radio-cell margin-20">
<el-radio v-model="item.integralUseDiscountControl" label="2">折扣</el-radio>
<el-input-number v-model="item.integralUseDiscountControlLower" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label></label>
<el-input-number v-model="item.integralUseDiscountControlUpper" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label>折商品都适用</label>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00,最低折扣不能大于最高折扣</span>
</div>
</el-form-item>
</div> </div>
</el-form-item> </template>
<!-- 微盟渠道-->
<el-form-item label="折扣控制" prop="region"> <template v-if="item.channelType == 9">
<div class="radio-cell"> <el-form-item label="微盟渠道" prop="" :key="index">
<el-radio v-model="ruleForm.discountControl" label="1">所有折扣商品都适用</el-radio> <el-switch v-model="item.status"> </el-switch>
</div> </el-form-item>
<div class="radio-cell margin-20"> <div class="form-child margin-20" v-if="item.status == true" :key="index">
<el-radio v-model="ruleForm.discountControl" label="2">折扣</el-radio> <el-form-item label="选择店铺">
<el-input-number v-model="ruleForm.discountControlLower" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number> <vue-gic-store-new :scenesVal="scencs" :options="options" :isAdd="isAdd" :uuid.sync="wmuuid" ref="wmstoreGroup"></vue-gic-store-new>
<label></label> </el-form-item>
<el-input-number v-model="ruleForm.discountControlUpper" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number> <el-form-item label="微盟商品" class="padding-0">
<label>折商品都适用</label> <el-select v-model="item.channelRelationProType" placeholder="请选择">
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00,最低折扣不能大于最高折扣</span> <el-option v-for="item in wMGoodOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="折扣控制" prop="region" class="input-margin-b">
<div class="radio-cell">
<el-radio v-model="item.integralUseDiscountControl" label="1">所有折扣商品都适用</el-radio>
</div>
<div class="radio-cell margin-20">
<el-radio v-model="item.integralUseDiscountControl" label="2">折扣</el-radio>
<el-input-number v-model="item.integralUseDiscountControlLower" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label></label>
<el-input-number v-model="item.integralUseDiscountControlUpper" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label>折商品都适用</label>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00,最低折扣不能大于最高折扣</span>
</div>
</el-form-item>
</div> </div>
</el-form-item> </template>
</div> </template>
<el-form-item label="折扣" prop="" class="margin-20"> <el-form-item label="折扣" prop="" class="margin-20">
<el-input @focus="inputFocus('discountRate')" @change="formatInputChange($event)" v-model="ruleForm.discountRate"></el-input> <el-input @focus="inputFocus('discountRate')" @change="formatInputChange($event)" v-model="ruleForm.discountRate"></el-input>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00</span> <span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00</span>
...@@ -82,7 +116,7 @@ import goodsCate from 'components/memberShip/goodsCate'; ...@@ -82,7 +116,7 @@ import goodsCate from 'components/memberShip/goodsCate';
import strLength from '@/common/js/strlen'; import strLength from '@/common/js/strlen';
import showMsg from '@/common/js/showmsg'; import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
import { getRequest, postRequest } from '@/api/api'; import { getRequest, postRequest, postJson } from '@/api/api';
import { log } from '@/utils/index.js'; import { log } from '@/utils/index.js';
export default { export default {
...@@ -144,6 +178,30 @@ export default { ...@@ -144,6 +178,30 @@ export default {
value: '4' value: '4'
} }
], ],
// 微盟渠道
wMShopOption: [
{
label: '所有店铺', // 就是所有门店
value: '1'
}
],
wMGoodOption: [
{
label: '所有商品',
value: '1'
}
],
// 商品品牌
goodsTreeOptionsWx: [],
valueWx: [],
goodsTreeOptionsLine: [],
valueLine: [],
// 门店 新
uuid: '', // 新增传空,编辑必传,
options: [0, 1, 2, 3, 4, 5], // 0 全部 1 门店类型 2门店标签 3 门店区域 4 门店分组 5 部分门店
isAdd: true,
scencs: 'integral',
wmuuid: '', // 微盟
ruleForm: { ruleForm: {
// 积分获取规则 // 积分获取规则
gradeStrategyId: '', //策略id gradeStrategyId: '', //策略id
...@@ -158,7 +216,32 @@ export default { ...@@ -158,7 +216,32 @@ export default {
gradeStrategyGoodsRelationIds: [], // 策略关联商品信息id gradeStrategyGoodsRelationIds: [], // 策略关联商品信息id
cliqueEnterpriseIds: [], // 策略关联商户信息 cliqueEnterpriseIds: [], // 策略关联商户信息
relationCount: '0', relationCount: '0',
enterpriseMS: null enterpriseMS: null,
perpetualFlag: 1,
gradeStrategyChannelList: [
{
gradeStrategyChannelId: '', //id
channelType: '1', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
status: true, //渠道配置是否启用 1启用 0停用
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
channelRelationProType: '1', // 策略关联商品类型 1所有商品 2商品品牌 3商品类目 4部分商品
integralUseDiscountControl: '1', // 折扣控制 1所有折扣商品适用 2折扣范围
integralUseDiscountControlUpper: '0.0',
integralUseDiscountControlLower: '0.0',
strategyGoodsRelationIdArr: [], // 商品
},
{
gradeStrategyChannelId: '', //id
channelType: '9', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
status: true, //渠道配置是否启用 1启用 0停用
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
channelRelationProType: '1', // 策略关联商品类型 1所有商品 2商品品牌 3商品类目 4部分商品
integralUseDiscountControl: '1', // 折扣控制 1所有折扣商品适用 2折扣范围
integralUseDiscountControlUpper: '0.0',
integralUseDiscountControlLower: '0.0',
strategyGoodsRelationIdArr: [], // 商品
}
]
}, },
// 商品品类 // 商品品类
...@@ -211,6 +294,59 @@ export default { ...@@ -211,6 +294,59 @@ export default {
this.$router.push('/addGroupGrade'); this.$router.push('/addGroupGrade');
} }
}, },
async checkListValue(data) {
let obj = {
flag: true,
text: ''
};
if (!!data.gradeStrategyChannelList.length) {
for (let i = 0; i < data.gradeStrategyChannelList.length; i++) {
if (!!data.gradeStrategyChannelList[i].status) {
if (!!data.gradeStrategyChannelList[i].status && data.gradeStrategyChannelList[i].integralUseDiscountControl == 2) {
if (!data.gradeStrategyChannelList[i].integralUseDiscountControlUpper || !data.gradeStrategyChannelList[i].integralUseDiscountControlLower) {
obj.flag = false;
obj.text = '请填写折扣';
}
if (parseInt(data.gradeStrategyChannelList[i].integralUseDiscountControlUpper) > 10 || parseInt(data.gradeStrategyChannelList[i].integralUseDiscountControlLower) > 10 || Number(data.gradeStrategyChannelList[i].integralUseDiscountControlUpper) <= Number(data.gradeStrategyChannelList[i].integralUseDiscountControlLower)) {
obj.flag = false;
obj.text = '折扣格式有误';
}
}
if (data.gradeStrategyChannelList[i].channelType == 1 && !data.gradeStrategyChannelList[i].cliqueEnterpriseIdArr.length) {
obj.flag = false;
obj.text = '请选择商户';
}
if (data.gradeStrategyChannelList[i].channelType == 3) {
const storeGroupDom = this.$refs.storeGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.storeGroup[0].isStoreSave();
} else {
flag = await this.$refs.storeGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
if (data.gradeStrategyChannelList[i].channelType == 9) {
const storeGroupDom = this.$refs.wmstoreGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.wmstoreGroup[0].isStoreSave();
} else {
flag = await this.$refs.wmstoreGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
}
}
}
return obj;
},
// 获取商户列表 // 获取商户列表
getCliqueInfo() { getCliqueInfo() {
let that = this; let that = this;
...@@ -226,7 +362,7 @@ export default { ...@@ -226,7 +362,7 @@ export default {
}); });
that.mechantOption = data; that.mechantOption = data;
// 默认选择商户 // 默认选择商户
that.ruleForm.channelList[0].enterpriseRelationIdArr = [data[0].enterpriseId]; // that.ruleForm.gradeStrategyChannelList[0].cliqueEnterpriseIdArr = [data[0].enterpriseId];
return; return;
} }
errMsg.errorMsg(resData); errMsg.errorMsg(resData);
...@@ -235,6 +371,40 @@ export default { ...@@ -235,6 +371,40 @@ export default {
// log(error); // log(error);
}); });
}, },
// 获取商品品牌 1
getGoodsBrand() {
let that = this;
let para = {};
getRequest('/api-mall/list-enterprise-brand', para)
.then(res => {
// log(res.data.result)
let resData = res.data;
if (resData.errorCode == 0) {
let data = resData.result;
that.goodsTreeOptionsWx = data;
that.goodsTreeOptionsLine = data;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
// 选择商品品牌 微信商城
selectGoodsStoreWx(val) {
this.valueWx = val;
this.ruleForm.gradeStrategyChannelList.forEach((item, index) => {
if (item.channelType == '1') {
this.ruleForm.gradeStrategyChannelList[index].strategyGoodsRelationIdArr = [];
val.forEach(ele => {
this.ruleForm.gradeStrategyChannelList[index].strategyGoodsRelationIdArr.push(ele);
});
}
});
},
// 保存 // 保存
submitForm(formName) { submitForm(formName) {
let that = this; let that = this;
...@@ -245,34 +415,34 @@ export default { ...@@ -245,34 +415,34 @@ export default {
showMsg.showmsg('请填写策略名称', 'error'); showMsg.showmsg('请填写策略名称', 'error');
return; return;
} }
if (data.strategyRelationType == 2 && that.value5.length < 1) { // if (data.strategyRelationType == 2 && that.value5.length < 1) {
showMsg.showmsg('请选择商品品牌', 'error'); // showMsg.showmsg('请选择商品品牌', 'error');
return; // return;
} // }
if (data.strategyRelationType == 3 && that.cateDataWx.length < 1) { // if (data.strategyRelationType == 3 && that.cateDataWx.length < 1) {
showMsg.showmsg('请选择商品品类', 'error'); // showMsg.showmsg('请选择商品品类', 'error');
return; // return;
} // }
if (data.strategyRelationType == 4 && that.goodsListWx.length < 1) { // if (data.strategyRelationType == 4 && that.goodsListWx.length < 1) {
showMsg.showmsg('请选择单件商品', 'error'); // showMsg.showmsg('请选择单件商品', 'error');
return; // return;
} // }
if (!data.cliqueEnterpriseIds.length) { // if (!data.cliqueEnterpriseIds.length) {
showMsg.showmsg('请选择商户', 'error'); // showMsg.showmsg('请选择商户', 'error');
return; // return;
} // }
// 扣控制中的折扣率判断 // 扣控制中的折扣率判断
if (data.discountControl == 2) { // if (data.discountControl == 2) {
let flagA = Number(data.discountControlUpper) <= Number(data.discountControlLower); // let flagA = Number(data.discountControlUpper) <= Number(data.discountControlLower);
if (!data.discountControlUpper || !data.discountControlLower) { // if (!data.discountControlUpper || !data.discountControlLower) {
that.$message.error('折扣控制中的折扣不能为空'); // that.$message.error('折扣控制中的折扣不能为空');
return; // return;
} // }
if (flagA) { // if (flagA) {
that.$message.error('折扣控制中的折扣格式有误'); // that.$message.error('折扣控制中的折扣格式有误');
return; // return;
} // }
} // }
if (data.discountRate == '') { if (data.discountRate == '') {
showMsg.showmsg('请填写折扣', 'error'); showMsg.showmsg('请填写折扣', 'error');
return; return;
...@@ -280,11 +450,53 @@ export default { ...@@ -280,11 +450,53 @@ export default {
showMsg.showmsg('折扣不能为0哦', 'error'); showMsg.showmsg('折扣不能为0哦', 'error');
return; return;
} }
data.discountControlUpper = data.discountControlUpper || '0'; that.checkListValue(data).then(res => {
data.discountControlLower = data.discountControlLower || '0'; if (!res.flag) {
data.cliqueEnterpriseIds = data.cliqueEnterpriseIds.join(','); showMsg.showmsg(res.text, 'error');
data.gradeStrategyGoodsRelationIds = data.gradeStrategyGoodsRelationIds.join(','); return;
that.saveInfo(data); } else {
// 设置开启状态 1-->true
data.gradeStrategyChannelList.forEach(function(ele, index) {
ele.status = ele.status == true ? 1 : 0;
if (ele.channelType == 1) {
ele.strategyGoodsRelationIdArr = ele.goodsRelationIdArr;
delete ele.goodsRelationIdArr;
}
if (ele.channelType == '9') {
ele.storeControlId = that.wmuuid;
}
});
let saveBool = true;
data.gradeStrategyChannelList.forEach(item => {
if (item.channelType == 1 && item.status == 1) {
// 微信商城
// 适用商品
if (item.channelRelationProType == 2 && this.valueWx.length < 1) {
// 商品品牌
showMsg.showmsg('请选择商品品牌', 'error');
return (saveBool = false);
}
if (item.channelRelationProType == 3 && this.cateDataWx.length < 1) {
// 商品品类
showMsg.showmsg('请选择商品品类', 'error');
return (saveBool = false);
}
if (item.channelRelationProType == 4 && this.goodsListWx.length < 1) {
// 单件商品
showMsg.showmsg('请选择单件商品', 'error');
return (saveBool = false);
}
}
});
data.discountControlUpper = data.discountControlUpper || '0';
data.discountControlLower = data.discountControlLower || '0';
data.cliqueEnterpriseIds = data.cliqueEnterpriseIds && data.cliqueEnterpriseIds.length && data.cliqueEnterpriseIds.join(',');
data.gradeStrategyGoodsRelationIds = data.gradeStrategyGoodsRelationIds && data.gradeStrategyGoodsRelationIds.length && data.gradeStrategyGoodsRelationIds.join(',');
if (saveBool) {
that.saveInfo(data);
}
}
})
} else { } else {
log('error submit!!'); log('error submit!!');
return false; return false;
...@@ -295,7 +507,7 @@ export default { ...@@ -295,7 +507,7 @@ export default {
saveInfo(form) { saveInfo(form) {
let that = this; let that = this;
let para = form; let para = form;
postRequest('/api-admin/save-member-grade-strategy', para) postJson('/api-admin/save-member-grade-strategy', para)
.then(res => { .then(res => {
// log(res.data.result) // log(res.data.result)
let resData = res.data; let resData = res.data;
...@@ -361,28 +573,6 @@ export default { ...@@ -361,28 +573,6 @@ export default {
changeRoute(route) { changeRoute(route) {
this.$router.push(route); this.$router.push(route);
}, },
// 获取商品品牌 1
getGoodsBrand() {
let that = this;
let para = {};
getRequest('/api-mall/list-enterprise-brand', para)
.then(res => {
// log(res.data.result)
let resData = res.data;
if (resData.errorCode == 0) {
let data = resData.result;
that.goodsTreeOptions = data;
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
// 选择商品品牌 // 选择商品品牌
selectGoodsStore(val) { selectGoodsStore(val) {
this.value5 = val; this.value5 = val;
...@@ -418,21 +608,45 @@ export default { ...@@ -418,21 +608,45 @@ export default {
// 商品品类 // 商品品类
getCateIds(val) { getCateIds(val) {
// 获取数据
// log(val);
if (val.selectCateType == 'wx') { if (val.selectCateType == 'wx') {
this.ruleForm.gradeStrategyGoodsRelationIds = []; this.ruleForm.gradeStrategyChannelList.forEach((item, index) => {
this.cateDataWx = []; if (item.channelType == '1') {
val.cateIdsList.forEach(ele => { this.ruleForm.gradeStrategyChannelList[index].strategyGoodsRelationIdArr = [];
this.ruleForm.gradeStrategyGoodsRelationIds.push(ele); val.cateIdsList.forEach(ele => {
this.cateDataWx.push(ele); this.ruleForm.gradeStrategyChannelList[index].strategyGoodsRelationIdArr.push(ele);
this.cateDataWx.push(ele);
});
}
});
} else if (val.selectCateType == 'line') {
this.ruleForm.gradeStrategyChannelList.forEach((item, index) => {
if (item.channelType == '3') {
this.ruleForm.gradeStrategyChannelList[index].strategyGoodsRelationIdArr = [];
val.cateIdsList.forEach(ele => {
this.ruleForm.gradeStrategyChannelList[index].strategyGoodsRelationIdArr.push(ele);
this.cateDataLine.push(ele);
});
}
}); });
} }
}, },
selectGoodsCateHide() { selectGoodsCateHide() {
// 调用子组件 商品品类组件的函数 // 调用子组件 商品品类组件的函数
if (this.ruleForm.strategyRelationType == 3) { if (this.ruleForm.gradeStrategyChannelList.length > 0) {
this.$refs.selectGoodsCate.hideDragClick(); this.ruleForm.gradeStrategyChannelList.forEach((item, index) => {
if (item.channelType == '1' && item.channelRelationProType == 3) {
// 微信商城
if (this.$refs.selectGoodsCate instanceof Array) {
this.$refs.selectGoodsCate[0].hideDragClick();
} else {
this.$refs.selectGoodsCate.hideDragClick();
}
}
});
} }
} },
}, },
components: { components: {
......
...@@ -24,7 +24,10 @@ ...@@ -24,7 +24,10 @@
<!-- 只获取微信的 --> <!-- 只获取微信的 -->
<template v-for="(item, index) in ruleForm.channelList"> <template v-for="(item, index) in ruleForm.channelList">
<template v-if="item.channelType == 1"> <template v-if="item.channelType == 1">
<div class="form-child margin-20" :key="index"> <el-form-item label="适用微信商城" prop="" :key="index">
<el-switch v-model="item.openStatus"> </el-switch>
</el-form-item>
<div class="form-child margin-20" v-if="item.openStatus" :key="index">
<el-form-item label="选择商户"> <el-form-item label="选择商户">
<el-select v-model="item.enterpriseRelationIdArr" placeholder="请选择" multiple size="small"> <el-select v-model="item.enterpriseRelationIdArr" placeholder="请选择" multiple size="small">
<el-option v-for="item in mechantOption" :key="item.value" :label="item.label" :value="item.value"> </el-option> <el-option v-for="item in mechantOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
...@@ -60,6 +63,35 @@ ...@@ -60,6 +63,35 @@
</el-form-item> </el-form-item>
</div> </div>
</template> </template>
<!-- 微盟渠道-->
<template v-if="item.channelType == 9">
<el-form-item label="微盟渠道" prop="" :key="index">
<el-switch v-model="item.openStatus"> </el-switch>
</el-form-item>
<div class="form-child margin-20" v-if="item.openStatus == true" :key="index">
<el-form-item label="选择店铺">
<vue-gic-store-new :scenesVal="scencs" :options="options" :isAdd="isAdd" :uuid.sync="wmuuid" ref="wmstoreGroup"></vue-gic-store-new>
</el-form-item>
<el-form-item label="微盟商品" class="padding-0">
<el-select v-model="item.channelRelationProType" placeholder="请选择">
<el-option v-for="item in wMGoodOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="折扣控制" prop="region" class="input-margin-b">
<div class="radio-cell">
<el-radio v-model="item.integralUseDiscountControl" label="1">所有折扣商品都适用</el-radio>
</div>
<div class="radio-cell margin-20">
<el-radio v-model="item.integralUseDiscountControl" label="2">折扣</el-radio>
<el-input-number v-model="item.integralUseDiscountControlLower" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label></label>
<el-input-number v-model="item.integralUseDiscountControlUpper" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label>折商品都适用</label>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00,最低折扣不能大于最高折扣</span>
</div>
</el-form-item>
</div>
</template>
</template> </template>
<el-form-item label="抵现规则" prop="" class="margin-20"> <el-form-item label="抵现规则" prop="" class="margin-20">
...@@ -183,6 +215,25 @@ export default { ...@@ -183,6 +215,25 @@ export default {
// value: '4', // value: '4',
// }, // },
], ],
// 微盟渠道
wMShopOption: [
{
label: '所有店铺', // 就是所有门店
value: '1'
}
],
wMGoodOption: [
{
label: '所有商品',
value: '1'
}
],
// 门店 新
uuid: '', // 新增传空,编辑必传,
options: [0, 1, 2, 3, 4, 5], // 0 全部 1 门店类型 2门店标签 3 门店区域 4 门店分组 5 部分门店
isAdd: true,
scencs: 'integral',
wmuuid: '', // 微盟
ruleForm: { ruleForm: {
// 积分获取规则 // 积分获取规则
integralStrategyId: '', //策略id integralStrategyId: '', //策略id
...@@ -198,13 +249,32 @@ export default { ...@@ -198,13 +249,32 @@ export default {
integralGetEffectiveDays: 1, // 获取积分有效天 integralGetEffectiveDays: 1, // 获取积分有效天
integralUseStatus: '0', // 积分抵现开启 1是0否 integralUseStatus: '0', // 积分抵现开启 1是0否
integralUse: { fee: '', integral: '' }, // 积分抵现 {fee:5,integral:5} integralUse: { fee: '', integral: '' }, // 积分抵现 {fee:5,integral:5}
perpetualFlag: 1,
channelList: [ channelList: [
{ {
integralStrategyChannelId: '', //id integralStrategyChannelId: '', //id
enterpriseId: '', enterpriseId: '',
integralStrategyId: '', //策略id integralStrategyId: '', //策略id
channelType: '1', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫 channelType: '1', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
openStatus: 1, //渠道配置是否启用 1启用 0停用 openStatus: true, //渠道配置是否启用 1启用 0停用
channelRelationEnterpriseType: '1', // 策略关联企业 1所有企业 2部分企业
channelRelationStoreType: '1', //策略关联门店类型 1所有门店 2门店分组 3部分门店
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
channelRelationProType: '1', // 策略关联商品类型 1所有商品 2商品品牌 3商品类目 4部分商品
integralUseDiscountControl: '1', // 折扣控制 1所有折扣商品适用 2折扣范围
integralUseDiscountControlUpper: '0.0',
integralUseDiscountControlLower: '0.0',
useProportionalRestriction: '0.0', // 抵现比例限制
strategyGoodsRelationIdArr: [], // 商品
storeRelationIdArr: [], //门店
enterpriseRelationIdArr: [] //商户
},
{
integralStrategyChannelId: '', //id
enterpriseId: '',
integralStrategyId: '', //策略id
channelType: '9', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
openStatus: true, //渠道配置是否启用 1启用 0停用
channelRelationEnterpriseType: '1', // 策略关联企业 1所有企业 2部分企业 channelRelationEnterpriseType: '1', // 策略关联企业 1所有企业 2部分企业
channelRelationStoreType: '1', //策略关联门店类型 1所有门店 2门店分组 3部分门店 channelRelationStoreType: '1', //策略关联门店类型 1所有门店 2门店分组 3部分门店
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管) channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
...@@ -275,6 +345,59 @@ export default { ...@@ -275,6 +345,59 @@ export default {
goBack() { goBack() {
this.$router.go(-1); this.$router.go(-1);
}, },
async checkListValue(data) {
let obj = {
flag: true,
text: ''
};
if (!!data.channelList.length) {
for (let i = 0; i < data.channelList.length; i++) {
if (!!data.channelList[i].openStatus) {
if (!!data.channelList[i].openStatus && data.channelList[i].integralUseDiscountControl == 2) {
if (!data.channelList[i].integralUseDiscountControlUpper || !data.channelList[i].integralUseDiscountControlLower) {
obj.flag = false;
obj.text = '请填写折扣';
}
if (parseInt(data.channelList[i].integralUseDiscountControlUpper) > 10 || parseInt(data.channelList[i].integralUseDiscountControlLower) > 10 || Number(data.channelList[i].integralUseDiscountControlUpper) <= Number(data.channelList[i].integralUseDiscountControlLower)) {
obj.flag = false;
obj.text = '折扣格式有误';
}
}
if (data.channelList[i].channelType == 1 && !data.channelList[i].enterpriseRelationIdArr.length) {
obj.flag = false;
obj.text = '请选择商户';
}
if (data.channelList[i].channelType == 3) {
const storeGroupDom = this.$refs.storeGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.storeGroup[0].isStoreSave();
} else {
flag = await this.$refs.storeGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
if (data.channelList[i].channelType == 9) {
const storeGroupDom = this.$refs.wmstoreGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.wmstoreGroup[0].isStoreSave();
} else {
flag = await this.$refs.wmstoreGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
}
}
}
return obj;
},
// 保存 // 保存
submitForm(formName) { submitForm(formName) {
let that = this; let that = this;
...@@ -287,22 +410,22 @@ export default { ...@@ -287,22 +410,22 @@ export default {
showMsg.showmsg('请填写策略名称', 'error'); showMsg.showmsg('请填写策略名称', 'error');
return; return;
} }
if (!data.channelList[0].enterpriseRelationIdArr.length) { // if (!data.channelList[0].enterpriseRelationIdArr.length) {
showMsg.showmsg('请选择商户', 'error'); // showMsg.showmsg('请选择商户', 'error');
return; // return;
} // }
if (data.channelList[0].integralUseDiscountControl == 2) { // if (data.channelList[0].integralUseDiscountControl == 2) {
let flagA = Number(data.channelList[0].integralUseDiscountControlLower) >= Number(data.channelList[0].integralUseDiscountControlUpper); // let flagA = Number(data.channelList[0].integralUseDiscountControlLower) >= Number(data.channelList[0].integralUseDiscountControlUpper);
if (!data.channelList[0].integralUseDiscountControlLower || !data.channelList[0].integralUseDiscountControlUpper) { // if (!data.channelList[0].integralUseDiscountControlLower || !data.channelList[0].integralUseDiscountControlUpper) {
that.$message.error('折扣控制中的折扣不能为空'); // that.$message.error('折扣控制中的折扣不能为空');
return; // return;
} // }
if (flagA) { // if (flagA) {
that.$message.error('折扣控制中的折扣格式有误'); // that.$message.error('折扣控制中的折扣格式有误');
return; // return;
} // }
} // }
let flag = !data.integralUse.fee || String(data.integralUse.integral) == ''; let flag = !data.integralUse.fee || String(data.integralUse.integral) == '';
if (data.integralUseStatus == 1 && flag) { if (data.integralUseStatus == 1 && flag) {
that.$message.error('请填写抵现规则'); that.$message.error('请填写抵现规则');
...@@ -319,56 +442,83 @@ export default { ...@@ -319,56 +442,83 @@ export default {
} }
} }
if (!data.channelList[0].useProportionalRestriction) { // if (!data.channelList[0].useProportionalRestriction) {
showMsg.showmsg('请填写比例限制', 'error'); // showMsg.showmsg('请填写比例限制', 'error');
return; // return;
} else { // } else {
if (data.channelList[0].useProportionalRestriction > 100) { // if (data.channelList[0].useProportionalRestriction > 100) {
showMsg.showmsg('比例限制不能大于100', 'error'); // showMsg.showmsg('比例限制不能大于100', 'error');
// return;
// }
// }
that.checkListValue(data).then(res => {
if (!res.flag) {
showMsg.showmsg(res.text, 'error');
return; return;
} } else {
} // 设置开启状态 1-->true
let saveBool = true; data.channelList.forEach(function(ele, index) {
data.channelList.forEach(item => { ele.openStatus = ele.openStatus == true ? 1 : 0;
if (item.channelType == 1) { if (ele.channelType == 1) {
// 微信商城 ele.strategyGoodsRelationIdArr = ele.goodsRelationIdArr;
// 适用商品 delete ele.goodsRelationIdArr;
if (item.channelRelationProType == 2 && this.valueWx.length < 1) { }
// 商品品牌 if (!ele.enterpriseRelationIdArr || !ele.enterpriseRelationIdArr.length) {
showMsg.showmsg('请选择商品品牌', 'error'); ele.enterpriseRelationIdArr = [];
return (saveBool = false); }
} if (!ele.storeRelationIdArr || !ele.storeRelationIdArr.length) {
if (item.channelRelationProType == 3 && this.cateDataWx.length < 1) { ele.storeRelationIdArr = [];
// 商品品类 }
showMsg.showmsg('请选择商品品类', 'error'); if (!ele.strategyGoodsRelationIdArr || !ele.strategyGoodsRelationIdArr.length) {
return (saveBool = false); ele.strategyGoodsRelationIdArr = [];
}
if (ele.channelType == '9') {
ele.storeControlId = that.wmuuid;
}
});
let saveBool = true;
data.channelList.forEach(item => {
if (item.channelType == 1 && item.openStatus == 1) {
// 微信商城
// 适用商品
if (item.channelRelationProType == 2 && this.valueWx.length < 1) {
// 商品品牌
showMsg.showmsg('请选择商品品牌', 'error');
return (saveBool = false);
}
if (item.channelRelationProType == 3 && this.cateDataWx.length < 1) {
// 商品品类
showMsg.showmsg('请选择商品品类', 'error');
return (saveBool = false);
}
if (item.channelRelationProType == 4 && this.goodsListWx.length < 1) {
// 单件商品
showMsg.showmsg('请选择单件商品', 'error');
return (saveBool = false);
}
}
});
// 自定义人群
if (data.useCrowd == 2 && this.selectCount < 1) {
showMsg.showmsg('请选择人群定向', 'error');
return;
} }
if (item.channelRelationProType == 4 && this.goodsListWx.length < 1) { delete data.selectorParamsId;
// 单件商品 // 规则需要乘以 10 去掉---20180906
showMsg.showmsg('请选择单件商品', 'error'); // data.integralUse.fee = data.integralUse.fee;
return (saveBool = false); // data.integralUse.integral = data.integralUse.integral;
data.integralUse = JSON.stringify(data.integralUse);
// if (data.channelList) {
// data.channelList.forEach(function(ele, index) {
// ele.openStatus = 1;
// });
// }
if (saveBool) {
that.saveForm(data);
} }
} }
}); })
// 自定义人群
if (data.useCrowd == 2 && this.selectCount < 1) {
showMsg.showmsg('请选择人群定向', 'error');
return;
}
delete data.selectorParamsId;
// 规则需要乘以 10 去掉---20180906
// data.integralUse.fee = data.integralUse.fee;
// data.integralUse.integral = data.integralUse.integral;
data.integralUse = JSON.stringify(data.integralUse);
if (data.channelList) {
data.channelList.forEach(function(ele, index) {
ele.openStatus = 1;
});
}
if (saveBool) {
that.saveForm(data);
}
} else { } else {
log('error submit!!'); log('error submit!!');
return false; return false;
...@@ -794,6 +944,7 @@ export default { ...@@ -794,6 +944,7 @@ export default {
width: 100%; width: 100%;
padding: 15px 20px 10px 0px; padding: 15px 20px 10px 0px;
background: #f5f6f9; background: #f5f6f9;
margin: 22px 0;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
......
...@@ -90,9 +90,7 @@ ...@@ -90,9 +90,7 @@
</el-form-item> </el-form-item>
<div class="form-child margin-20" v-if="item.openStatus == true" :key="index"> <div class="form-child margin-20" v-if="item.openStatus == true" :key="index">
<el-form-item label="选择店铺"> <el-form-item label="选择店铺">
<el-select v-model="item.channelRelationStoreType" placeholder="请选择"> <vue-gic-store-new :scenesVal="scencs" :options="options" :isAdd="isAdd" :uuid.sync="wmuuid" ref="wmstoreGroup"></vue-gic-store-new>
<el-option v-for="item in wMShopOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="微盟商品" class="padding-0"> <el-form-item label="微盟商品" class="padding-0">
<el-select v-model="item.channelRelationProType" placeholder="请选择"> <el-select v-model="item.channelRelationProType" placeholder="请选择">
...@@ -353,6 +351,7 @@ export default { ...@@ -353,6 +351,7 @@ export default {
integralGetEffectiveDays: 1, // 获取积分有效天 integralGetEffectiveDays: 1, // 获取积分有效天
integralUseStatus: '0', // 积分抵现开启 1是0否 integralUseStatus: '0', // 积分抵现开启 1是0否
integralUse: null, // 积分抵现 {fee:5,integral:5} integralUse: null, // 积分抵现 {fee:5,integral:5}
perpetualFlag: 1,
channelList: [ channelList: [
{ {
integralStrategyChannelId: '', //id integralStrategyChannelId: '', //id
...@@ -448,6 +447,7 @@ export default { ...@@ -448,6 +447,7 @@ export default {
options: [0, 1, 2, 3, 4, 5], // 0 全部 1 门店类型 2门店标签 3 门店区域 4 门店分组 5 部分门店 options: [0, 1, 2, 3, 4, 5], // 0 全部 1 门店类型 2门店标签 3 门店区域 4 门店分组 5 部分门店
isAdd: true, isAdd: true,
scencs: 'integral', scencs: 'integral',
wmuuid: '', // 微盟
/* 人群筛选器 */ /* 人群筛选器 */
dialogVisiblePeople: false, dialogVisiblePeople: false,
...@@ -523,6 +523,19 @@ export default { ...@@ -523,6 +523,19 @@ export default {
obj.text = '请选择门店'; obj.text = '请选择门店';
} }
} }
if (data.channelList[i].channelType == 9) {
const storeGroupDom = this.$refs.wmstoreGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.wmstoreGroup[0].isStoreSave();
} else {
flag = await this.$refs.wmstoreGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
} }
} }
} }
...@@ -595,6 +608,9 @@ export default { ...@@ -595,6 +608,9 @@ export default {
ele.channelStoreType = '-1'; ele.channelStoreType = '-1';
ele.storeControlId = that.uuid; ele.storeControlId = that.uuid;
} }
if (ele.channelType == '9') {
ele.storeControlId = that.wmuuid;
}
}); });
data.integralGet.fee = parseInt(data.integralGet.fee * 10); data.integralGet.fee = parseInt(data.integralGet.fee * 10);
data.integralGet.integral = parseInt(data.integralGet.integral * 10); data.integralGet.integral = parseInt(data.integralGet.integral * 10);
...@@ -1092,6 +1108,7 @@ export default { ...@@ -1092,6 +1108,7 @@ export default {
.form-child { .form-child {
padding: 15px 20px 10px 0px; padding: 15px 20px 10px 0px;
background: #f5f6f9; background: #f5f6f9;
margin: 22px 0;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
......
...@@ -13,44 +13,77 @@ ...@@ -13,44 +13,77 @@
<el-form-item label="适用条件" class="padding-0"> <el-form-item label="适用条件" class="padding-0">
<div class="title-tip">该设置只对微信商城中的积分抵现起作用。</div> <div class="title-tip">该设置只对微信商城中的积分抵现起作用。</div>
</el-form-item> </el-form-item>
<div class="form-child margin-20"> <template v-for="(item, index) in ruleForm.gradeStrategyChannelList">
<el-form-item label="选择商户"> <template v-if="item.channelType == 1">
<el-select v-model="ruleForm.cliqueEnterpriseIds" placeholder="请选择" multiple> <el-form-item label="适用微信商城" prop="" :key="index">
<el-option v-for="item in mechantOption" :key="item.enterpriseId" :label="item.brandName" :value="item.enterpriseId"> </el-option> <el-switch v-model="item.status"> </el-switch>
</el-select> </el-form-item>
</el-form-item> <div class="form-child margin-20" v-if="item.status" :key="index">
<el-form-item label="适用商品" class="padding-0"> <el-form-item label="选择商户">
<div> <el-select v-model="item.cliqueEnterpriseIdArr" placeholder="请选择" multiple size="small">
<el-select class="fl" style="margin-right: 10px;" v-model="ruleForm.strategyRelationType" placeholder="请选择" @change="changeGood($event)"> <el-option v-for="item in mechantOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
<el-option v-for="item in applyGoods" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select>
</el-select> </el-form-item>
<!-- 商品品牌 --> <el-form-item label="适用商品" class="padding-0">
<el-select class="fl" @change="selectGoodsStore" v-if="ruleForm.strategyRelationType == 2" v-model="value5" multiple placeholder="请选择"> <el-select class="fl" style="margin-right: 10px;" v-model="item.channelRelationProType" placeholder="请选择">
<el-option v-for="item in goodsTreeOptions" :key="item.brandId" :label="item.brandName" :value="item.brandId"> </el-option> <el-option v-for="item in applyGoods" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select> </el-select>
<!-- 商品品类 --> <!-- 二级 -->
<div class="fl goods-cate" v-if="ruleForm.strategyRelationType == 3"> <!-- 商品品牌 -->
<goodsCate ref="selectGoodsCate" :selectCateType="selectCateTypeWx" :selectCateData="selectCateDataWx" @getCateIds="getCateIds"></goodsCate> <el-select size="small" class="fl" @change="selectGoodsStoreWx" v-if="item.channelRelationProType == 2" v-model="valueWx" multiple placeholder="请选择">
</div> <el-option v-for="item in goodsTreeOptionsWx" :key="item.brandId" :label="item.brandName" :value="item.brandId"> </el-option>
<el-button style="width:217px" class="fl" v-if="ruleForm.strategyRelationType == 4" @click.stop.prevent="showGoodsDialog('wx')">已选{{ goodsListWx.length }}件商品</el-button> </el-select>
<!-- 商品品类 -->
<div v-if="item.channelRelationProType == 3" class="fl goods-cate">
<goodsCate ref="selectGoodsCate" :selectCateType="selectCateTypeWx" :selectCateData="selectCateDataWx" @getCateIds="getCateIds"></goodsCate>
</div>
<el-button style="width:202px" class="fl" v-if="item.channelRelationProType == 4" @click="showGoodsDialog('wx')">已选{{ goodsListWx.length }}件商品</el-button>
</el-form-item>
<el-form-item label="折扣控制" prop="region">
<div class="radio-cell">
<el-radio v-model="item.integralUseDiscountControl" label="1">所有折扣商品都适用</el-radio>
</div>
<div class="radio-cell margin-20">
<el-radio v-model="item.integralUseDiscountControl" label="2">折扣</el-radio>
<el-input-number v-model="item.integralUseDiscountControlLower" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label></label>
<el-input-number v-model="item.integralUseDiscountControlUpper" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label>折商品都适用</label>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00,最低折扣不能大于最高折扣</span>
</div>
</el-form-item>
</div> </div>
</el-form-item> </template>
<el-form-item label="折扣控制" prop="region"> <!-- 微盟渠道-->
<div class="radio-cell"> <template v-if="item.channelType == 9">
<el-radio v-model="ruleForm.discountControl" label="1">所有折扣商品都适用</el-radio> <el-form-item label="微盟渠道" prop="" :key="index">
<el-switch v-model="item.status"> </el-switch>
</el-form-item>
<div class="form-child margin-20" v-if="item.status == true" :key="index">
<el-form-item label="选择店铺">
<vue-gic-store-new :scenesVal="scencs" :options="options" :isAdd="isAdd" :uuid.sync="wmuuid" ref="wmstoreGroup"></vue-gic-store-new>
</el-form-item>
<el-form-item label="微盟商品" class="padding-0">
<el-select v-model="item.channelRelationProType" placeholder="请选择">
<el-option v-for="item in wMGoodOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="折扣控制" prop="region" class="input-margin-b">
<div class="radio-cell">
<el-radio v-model="item.integralUseDiscountControl" label="1">所有折扣商品都适用</el-radio>
</div>
<div class="radio-cell margin-20">
<el-radio v-model="item.integralUseDiscountControl" label="2">折扣</el-radio>
<el-input-number v-model="item.integralUseDiscountControlLower" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label></label>
<el-input-number v-model="item.integralUseDiscountControlUpper" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label>折商品都适用</label>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00,最低折扣不能大于最高折扣</span>
</div>
</el-form-item>
</div> </div>
<div class="radio-cell margin-20"> </template>
<el-radio v-model="ruleForm.discountControl" label="2">折扣</el-radio> </template>
<!-- <el-input @change="formatInputChange($event)" v-model="ruleForm.discountControlLower"></el-input> -->
<el-input-number v-model="ruleForm.discountControlLower" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label></label>
<!-- <el-input @change="formatInputChange($event)" v-model="ruleForm.discountControlUpper"></el-input> -->
<el-input-number v-model="ruleForm.discountControlUpper" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label>折商品都适用</label>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00,最低折扣不能大于最高折扣</span>
</div>
</el-form-item>
</div>
<el-form-item label="折扣" prop="discountRate" class="margin-20"> <el-form-item label="折扣" prop="discountRate" class="margin-20">
<el-input @focus="inputFocus('discountRate')" @change="formatInputChange($event)" v-model="ruleForm.discountRate"></el-input> <el-input @focus="inputFocus('discountRate')" @change="formatInputChange($event)" v-model="ruleForm.discountRate"></el-input>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00</span> <span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00</span>
...@@ -82,7 +115,7 @@ import goodsCate from 'components/memberShip/goodsCate'; ...@@ -82,7 +115,7 @@ import goodsCate from 'components/memberShip/goodsCate';
import strLength from '@/common/js/strlen'; import strLength from '@/common/js/strlen';
import showMsg from '@/common/js/showmsg'; import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
import { getRequest, postRequest } from '@/api/api'; import { getRequest, postRequest, postJson } from '@/api/api';
import { log } from '@/utils/index.js'; import { log } from '@/utils/index.js';
export default { export default {
name: 'editGroupCate', name: 'editGroupCate',
...@@ -158,6 +191,30 @@ export default { ...@@ -158,6 +191,30 @@ export default {
value: '4' value: '4'
} }
], ],
// 微盟渠道
wMShopOption: [
{
label: '所有店铺', // 就是所有门店
value: '1'
}
],
wMGoodOption: [
{
label: '所有商品',
value: '1'
}
],
// 商品品牌
goodsTreeOptionsWx: [],
valueWx: [],
goodsTreeOptionsLine: [],
valueLine: [],
// 门店 新
uuid: '', // 新增传空,编辑必传,
options: [0, 1, 2, 3, 4, 5], // 0 全部 1 门店类型 2门店标签 3 门店区域 4 门店分组 5 部分门店
isAdd: true,
scencs: 'integral',
wmuuid: '', // 微盟
ruleForm: { ruleForm: {
// 积分获取规则 // 积分获取规则
gradeStrategyId: '', //策略id gradeStrategyId: '', //策略id
...@@ -173,7 +230,34 @@ export default { ...@@ -173,7 +230,34 @@ export default {
cliqueEnterpriseIds: [], // 策略关联商户信息 cliqueEnterpriseIds: [], // 策略关联商户信息
relationCount: 0, relationCount: 0,
enterpriseMS: null, enterpriseMS: null,
goodsCategoryList: [] goodsCategoryList: [],
perpetualFlag: 1,
gradeStrategyChannelList: [
{
gradeStrategyChannelId: '', //id
channelType: '1', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
status: true, //渠道配置是否启用 1启用 0停用
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
channelRelationProType: '1', // 策略关联商品类型 1所有商品 2商品品牌 3商品类目 4部分商品
integralUseDiscountControl: '1', // 折扣控制 1所有折扣商品适用 2折扣范围
integralUseDiscountControlUpper: '0.0',
integralUseDiscountControlLower: '0.0',
strategyGoodsRelationIdArr: [], // 商品
cliqueEnterpriseIdArr: [],
},
{
gradeStrategyChannelId: '', //id
channelType: '9', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
status: true, //渠道配置是否启用 1启用 0停用
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
channelRelationProType: '1', // 策略关联商品类型 1所有商品 2商品品牌 3商品类目 4部分商品
integralUseDiscountControl: '1', // 折扣控制 1所有折扣商品适用 2折扣范围
integralUseDiscountControlUpper: '0.0',
integralUseDiscountControlLower: '0.0',
strategyGoodsRelationIdArr: [], // 商品
cliqueEnterpriseIdArr: [],
}
]
}, },
// 商品品类 // 商品品类
...@@ -211,6 +295,93 @@ export default { ...@@ -211,6 +295,93 @@ export default {
goBack() { goBack() {
this.$router.go(-1); this.$router.go(-1);
}, },
async checkListValue(data) {
let obj = {
flag: true,
text: ''
};
if (!!data.gradeStrategyChannelList.length) {
for (let i = 0; i < data.gradeStrategyChannelList.length; i++) {
if (!!data.gradeStrategyChannelList[i].status) {
if (!!data.gradeStrategyChannelList[i].status && data.gradeStrategyChannelList[i].integralUseDiscountControl == 2) {
if (!data.gradeStrategyChannelList[i].integralUseDiscountControlUpper || !data.gradeStrategyChannelList[i].integralUseDiscountControlLower) {
obj.flag = false;
obj.text = '请填写折扣';
}
if (parseInt(data.gradeStrategyChannelList[i].integralUseDiscountControlUpper) > 10 || parseInt(data.gradeStrategyChannelList[i].integralUseDiscountControlLower) > 10 || Number(data.gradeStrategyChannelList[i].integralUseDiscountControlUpper) <= Number(data.gradeStrategyChannelList[i].integralUseDiscountControlLower)) {
obj.flag = false;
obj.text = '折扣格式有误';
}
}
if (data.gradeStrategyChannelList[i].channelType == 1 && !data.gradeStrategyChannelList[i].cliqueEnterpriseIdArr.length) {
obj.flag = false;
obj.text = '请选择商户';
}
if (data.gradeStrategyChannelList[i].channelType == 3) {
const storeGroupDom = this.$refs.storeGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.storeGroup[0].isStoreSave();
} else {
flag = await this.$refs.storeGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
if (data.gradeStrategyChannelList[i].channelType == 9) {
const storeGroupDom = this.$refs.wmstoreGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.wmstoreGroup[0].isStoreSave();
} else {
flag = await this.$refs.wmstoreGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
}
}
}
return obj;
},
// 获取商品品牌 1
getGoodsBrand() {
let that = this;
let para = {};
getRequest('/api-mall/list-enterprise-brand', para)
.then(res => {
// log(res.data.result)
let resData = res.data;
if (resData.errorCode == 0) {
let data = resData.result;
that.goodsTreeOptionsWx = data;
that.goodsTreeOptionsLine = data;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
// 选择商品品牌 微信商城
selectGoodsStoreWx(val) {
this.valueWx = val;
this.ruleForm.gradeStrategyChannelList.forEach((item, index) => {
if (item.channelType == '1') {
this.ruleForm.gradeStrategyChannelList[index].strategyGoodsRelationIdArr = [];
val.forEach(ele => {
this.ruleForm.gradeStrategyChannelList[index].strategyGoodsRelationIdArr.push(ele);
});
}
});
},
// 保存 // 保存
submitForm(formName) { submitForm(formName) {
let that = this; let that = this;
...@@ -221,22 +392,22 @@ export default { ...@@ -221,22 +392,22 @@ export default {
showMsg.showmsg('请填写策略名称', 'error'); showMsg.showmsg('请填写策略名称', 'error');
return; return;
} }
if (data.strategyRelationType == 2 && that.value5.length < 1) { // if (data.strategyRelationType == 2 && that.value5.length < 1) {
showMsg.showmsg('请选择商品品牌', 'error'); // showMsg.showmsg('请选择商品品牌', 'error');
return; // return;
} // }
if (data.strategyRelationType == 3 && that.cateDataWx.length < 1) { // if (data.strategyRelationType == 3 && that.cateDataWx.length < 1) {
showMsg.showmsg('请选择商品品类', 'error'); // showMsg.showmsg('请选择商品品类', 'error');
return; // return;
} // }
if (data.strategyRelationType == 4 && that.goodsListWx.length < 1) { // if (data.strategyRelationType == 4 && that.goodsListWx.length < 1) {
showMsg.showmsg('请选择单件商品', 'error'); // showMsg.showmsg('请选择单件商品', 'error');
return; // return;
} // }
if (!data.cliqueEnterpriseIds.length) { // if (!data.cliqueEnterpriseIds.length) {
showMsg.showmsg('请选择商户', 'error'); // showMsg.showmsg('请选择商户', 'error');
return; // return;
} // }
// if (data.discountControl == 2&&(!data.discountControlLower||!data.discountControlUpper)) { // if (data.discountControl == 2&&(!data.discountControlLower||!data.discountControlUpper)) {
// showMsg.showmsg('请选择折扣控制中的折扣率','error') // showMsg.showmsg('请选择折扣控制中的折扣率','error')
...@@ -245,17 +416,17 @@ export default { ...@@ -245,17 +416,17 @@ export default {
// 扣控制中的折扣率判断 // 扣控制中的折扣率判断
if (data.discountControl == 2) { // if (data.discountControl == 2) {
let flagA = Number(data.discountControlUpper) <= Number(data.discountControlLower); // let flagA = Number(data.discountControlUpper) <= Number(data.discountControlLower);
if (!data.discountControlUpper || !data.discountControlLower) { // if (!data.discountControlUpper || !data.discountControlLower) {
that.$message.error('折扣控制中的折扣率不能为空'); // that.$message.error('折扣控制中的折扣率不能为空');
return; // return;
} // }
if (flagA) { // if (flagA) {
that.$message.error('折扣控制中的折扣率格式有误'); // that.$message.error('折扣控制中的折扣率格式有误');
return; // return;
} // }
} // }
if (data.discountRate == '') { if (data.discountRate == '') {
showMsg.showmsg('请填写折扣率', 'error'); showMsg.showmsg('请填写折扣率', 'error');
return; return;
...@@ -263,11 +434,53 @@ export default { ...@@ -263,11 +434,53 @@ export default {
showMsg.showmsg('折扣率不能为0哦', 'error'); showMsg.showmsg('折扣率不能为0哦', 'error');
return; return;
} }
data.discountControlUpper = data.discountControlUpper || '0'; that.checkListValue(data).then(res => {
data.discountControlLower = data.discountControlLower || '0'; if (!res.flag) {
data.cliqueEnterpriseIds = data.cliqueEnterpriseIds.join(','); showMsg.showmsg(res.text, 'error');
data.gradeStrategyGoodsRelationIds = data.gradeStrategyGoodsRelationIds.join(','); return;
that.saveInfo(data); } else {
// 设置开启状态 1-->true
data.gradeStrategyChannelList.forEach(function(ele, index) {
ele.status = ele.status == true ? 1 : 0;
if (ele.channelType == 1) {
ele.strategyGoodsRelationIdArr = ele.goodsRelationIdArr;
delete ele.goodsRelationIdArr;
}
if (ele.channelType == '9') {
ele.storeControlId = that.wmuuid;
}
});
let saveBool = true;
data.gradeStrategyChannelList.forEach(item => {
if (item.channelType == 1 && item.status == 1) {
// 微信商城
// 适用商品
if (item.channelRelationProType == 2 && this.valueWx.length < 1) {
// 商品品牌
showMsg.showmsg('请选择商品品牌', 'error');
return (saveBool = false);
}
if (item.channelRelationProType == 3 && this.cateDataWx.length < 1) {
// 商品品类
showMsg.showmsg('请选择商品品类', 'error');
return (saveBool = false);
}
if (item.channelRelationProType == 4 && this.goodsListWx.length < 1) {
// 单件商品
showMsg.showmsg('请选择单件商品', 'error');
return (saveBool = false);
}
}
});
data.discountControlUpper = data.discountControlUpper || '0';
data.discountControlLower = data.discountControlLower || '0';
data.cliqueEnterpriseIds = data.cliqueEnterpriseIds && data.cliqueEnterpriseIds.length && data.cliqueEnterpriseIds.join(',');
data.gradeStrategyGoodsRelationIds = data.gradeStrategyGoodsRelationIds && data.gradeStrategyGoodsRelationIds.length && data.gradeStrategyGoodsRelationIds.join(',');
if (saveBool) {
that.saveInfo(data);
}
}
})
} else { } else {
log('error submit!!'); log('error submit!!');
return false; return false;
...@@ -279,7 +492,7 @@ export default { ...@@ -279,7 +492,7 @@ export default {
saveInfo(form) { saveInfo(form) {
let that = this; let that = this;
let para = form; let para = form;
postRequest('/api-admin/save-member-grade-strategy', para) postJson('/api-admin/save-member-grade-strategy', para)
.then(res => { .then(res => {
let resData = res.data; let resData = res.data;
if (resData.errorCode == 0) { if (resData.errorCode == 0) {
...@@ -416,27 +629,36 @@ export default { ...@@ -416,27 +629,36 @@ export default {
} else { } else {
data.cliqueEnterpriseIds = []; data.cliqueEnterpriseIds = [];
} }
if (!!data.gradeStrategyGoodsRelationIds) { if (data.gradeStrategyChannelList) {
data.gradeStrategyGoodsRelationIds = that.bouncer(data.gradeStrategyGoodsRelationIds.split(',')); data.gradeStrategyChannelList.forEach(item => {
// 所有商品 if (item.channelType == '1') {
if (data.strategyRelationType == 1) { // 微信商城
data.gradeStrategyGoodsRelationIds = []; if (item.channelRelationProType == 3) {
} // 商品品类
// 商品品牌 if (item.goodsCategoryList) {
if (data.strategyRelationType == 2) { item.goodsCategoryList.forEach(item => {
that.value5 = data.gradeStrategyGoodsRelationIds; that.selectCateDataWx.push(item);
} });
// 商品品类 }
if (data.strategyRelationType == 3) { }
that.selectCateDataWx = data.goodsCategoryList; if (item.channelRelationProType == 4) {
that.cateDataWx = data.gradeStrategyGoodsRelationIds; // 单件商品
} if (item.strategyGoodsRelationIdArr) {
// 单件商品 item.strategyGoodsRelationIdArr.forEach(item => {
if (data.strategyRelationType == 4) { that.goodsListWx.push(item);
that.goodsListWx = data.gradeStrategyGoodsRelationIds; });
} }
} else { }
data.gradeStrategyGoodsRelationIds = []; if (item.channelRelationProType == 2) {
// 商品品牌
if (item.strategyGoodsRelationIdArr) {
item.strategyGoodsRelationIdArr.forEach(item => {
that.valueWx.push(item);
});
}
}
}
});
} }
data.discountRate = String(data.discountRate); data.discountRate = String(data.discountRate);
data.calculationMethod = String(data.calculationMethod); data.calculationMethod = String(data.calculationMethod);
...@@ -444,7 +666,7 @@ export default { ...@@ -444,7 +666,7 @@ export default {
data.discountControlUpper = String(data.discountControlUpper); data.discountControlUpper = String(data.discountControlUpper);
data.discountControlLower = String(data.discountControlLower); data.discountControlLower = String(data.discountControlLower);
data.strategyRelationType = String(data.strategyRelationType); data.strategyRelationType = String(data.strategyRelationType);
that.ruleForm = data; that.ruleForm = that.formatData(data);
that.ruleForm.goodsCategoryList = []; that.ruleForm.goodsCategoryList = [];
// 字数控制 // 字数控制
that.cateNameLength = strLength.getZhLen(that.ruleForm.strategyName); that.cateNameLength = strLength.getZhLen(that.ruleForm.strategyName);
...@@ -464,6 +686,41 @@ export default { ...@@ -464,6 +686,41 @@ export default {
}); });
}, },
formatData(item) {
item.gradeStrategyChannelList.forEach((ele, index) => {
ele.status = ele.status == 0 ? false : true;
ele.channelType = String(ele.channelType);
ele.channelStoreType = String(ele.channelStoreType);
ele.channelRelationProType = String(ele.channelRelationProType);
ele.integralUseDiscountControl = String(ele.integralUseDiscountControl);
ele.integralUseDiscountControlUpper = String(ele.integralUseDiscountControlUpper);
ele.integralUseDiscountControlLower = String(ele.integralUseDiscountControlLower);
if (!ele.strategyGoodsRelationIdArr || !ele.strategyGoodsRelationIdArr.length) {
ele.strategyGoodsRelationIdArr = [];
}
if (!ele.cliqueEnterpriseIdArr || !ele.cliqueEnterpriseIdArr.length) {
ele.cliqueEnterpriseIdArr = [];
}
if (ele.channelType == 9) {
this.wmuuid = ele.storeControlId;
this.isAdd = false;
}
});
let bool = item.gradeStrategyChannelList.some(item => item.channelType == 9);
!bool && item.gradeStrategyChannelList.push({
gradeStrategyChannelId: '', //id
channelType: '9', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
status: true, //渠道配置是否启用 1启用 0停用
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
channelRelationProType: '1', // 策略关联商品类型 1所有商品 2商品品牌 3商品类目 4部分商品
integralUseDiscountControl: '1', // 折扣控制 1所有折扣商品适用 2折扣范围
integralUseDiscountControlUpper: '0.0',
integralUseDiscountControlLower: '0.0',
strategyGoodsRelationIdArr: [], // 商品
cliqueEnterpriseIdArr: [] //商户
})
return item;
},
changeGood(e) { changeGood(e) {
// 切换适用商品 // 切换适用商品
if (this.ruleForm.strategyRelationType == '1') { if (this.ruleForm.strategyRelationType == '1') {
...@@ -471,31 +728,6 @@ export default { ...@@ -471,31 +728,6 @@ export default {
} }
}, },
// 获取商品品牌 1
getGoodsBrand() {
let that = this;
let para = {};
getRequest('/api-mall/list-enterprise-brand', para)
.then(res => {
// log(res.data.result)
let resData = res.data;
if (resData.errorCode == 0) {
let data = resData.result;
that.goodsTreeOptions = data;
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
// log(error);
that.$message.error({
duration: 1000,
message: error.message
});
});
},
// 选择商品品牌 // 选择商品品牌
selectGoodsStore(val) { selectGoodsStore(val) {
this.value5 = val; this.value5 = val;
...@@ -545,10 +777,19 @@ export default { ...@@ -545,10 +777,19 @@ export default {
}, },
selectGoodsCateHide() { selectGoodsCateHide() {
// 调用子组件 商品品类组件的函数 // 调用子组件 商品品类组件的函数
if (this.ruleForm.strategyRelationType == 3) { if (this.ruleForm.gradeStrategyChannelList.length > 0) {
this.$refs.selectGoodsCate.hideDragClick(); this.ruleForm.gradeStrategyChannelList.forEach((item, index) => {
if (item.channelType == '1' && item.channelRelationProType == 3) {
// 微信商城
if (this.$refs.selectGoodsCate instanceof Array) {
this.$refs.selectGoodsCate[0].hideDragClick();
} else {
this.$refs.selectGoodsCate.hideDragClick();
}
}
});
} }
} },
}, },
components: { components: {
topNav, topNav,
......
...@@ -26,7 +26,10 @@ ...@@ -26,7 +26,10 @@
<!-- 只获取微信的 --> <!-- 只获取微信的 -->
<template v-for="(item, index) in ruleForm.channelList"> <template v-for="(item, index) in ruleForm.channelList">
<template v-if="item.channelType == 1"> <template v-if="item.channelType == 1">
<div class="form-child margin-20" :key="index"> <el-form-item label="适用微信商城" prop="" :key="index">
<el-switch v-model="item.openStatus" active-text="启用" inactive-text="停用"> </el-switch>
</el-form-item>
<div class="form-child margin-20" v-if="item.openStatus" :key="index">
<el-form-item label="选择商户"> <el-form-item label="选择商户">
<el-select v-model="item.enterpriseRelationIdArr" placeholder="请选择" multiple size="small"> <el-select v-model="item.enterpriseRelationIdArr" placeholder="请选择" multiple size="small">
<el-option v-for="item in mechantOption" :key="item.value" :label="item.label" :value="item.value"> </el-option> <el-option v-for="item in mechantOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
...@@ -69,6 +72,35 @@ ...@@ -69,6 +72,35 @@
</el-form-item> </el-form-item>
</div> </div>
</template> </template>
<!-- 微盟渠道-->
<template v-if="item.channelType == 9">
<el-form-item label="微盟渠道" prop="" :key="index">
<el-switch v-model="item.openStatus"> </el-switch>
</el-form-item>
<div class="form-child margin-20" v-if="item.openStatus" :key="index">
<el-form-item label="选择店铺">
<vue-gic-store-new :scenesVal="scencs" :options="options" :isAdd="isAdd" :uuid.sync="wmuuid" ref="wmstoreGroup"></vue-gic-store-new>
</el-form-item>
<el-form-item label="微盟商品" class="padding-0">
<el-select v-model="item.channelRelationProType" placeholder="请选择">
<el-option v-for="item in wMGoodOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="折扣控制" prop="region" class="input-margin-b">
<div class="radio-cell">
<el-radio v-model="item.integralUseDiscountControl" label="1">所有折扣商品都适用</el-radio>
</div>
<div class="radio-cell margin-20">
<el-radio v-model="item.integralUseDiscountControl" label="2">折扣</el-radio>
<el-input-number v-model="item.integralUseDiscountControlLower" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label></label>
<el-input-number v-model="item.integralUseDiscountControlUpper" :precision="2" :controls="false" :max="10.0" :min="0.01"></el-input-number>
<label>折商品都适用</label>
<span style="font-size: 13px;color: #828282;line-height: 1;padding-left: 10px;">注意:折扣范围0.01-10.00,最低折扣不能大于最高折扣</span>
</div>
</el-form-item>
</div>
</template>
</template> </template>
<el-form-item label="抵现规则" prop="" class="margin-20"> <el-form-item label="抵现规则" prop="" class="margin-20">
...@@ -196,6 +228,25 @@ export default { ...@@ -196,6 +228,25 @@ export default {
// value: '4', // value: '4',
// }, // },
], ],
// 微盟渠道
wMShopOption: [
{
label: '所有店铺', // 就是所有门店
value: '1'
}
],
wMGoodOption: [
{
label: '所有商品',
value: '1'
}
],
// 门店 新
uuid: '', // 新增传空,编辑必传,
options: [0, 1, 2, 3, 4, 5], // 0 全部 1 门店类型 2门店标签 3 门店区域 4 门店分组 5 部分门店
isAdd: true,
scencs: 'integral',
wmuuid: '', // 微盟
ruleForm: { ruleForm: {
// 积分获取规则 // 积分获取规则
integralStrategyId: 'ff80808163a7a09b0163b01171e202db', //策略id integralStrategyId: 'ff80808163a7a09b0163b01171e202db', //策略id
...@@ -212,13 +263,14 @@ export default { ...@@ -212,13 +263,14 @@ export default {
integralGetEffectiveDays: 1, // 获取积分有效天 integralGetEffectiveDays: 1, // 获取积分有效天
integralUseStatus: '0', // 积分抵现开启 1是0否 integralUseStatus: '0', // 积分抵现开启 1是0否
integralUse: { fee: '', integral: '' }, // 积分抵现 {fee:5,integral:5} integralUse: { fee: '', integral: '' }, // 积分抵现 {fee:5,integral:5}
perpetualFlag: 1,
channelList: [ channelList: [
{ {
integralStrategyChannelId: 'ff808081649321d20164a1fafbdd01df', //id integralStrategyChannelId: 'ff808081649321d20164a1fafbdd01df', //id
enterpriseId: 'ff8080815dacd3a2015dacd3ef5c0000', enterpriseId: 'ff8080815dacd3a2015dacd3ef5c0000',
integralStrategyId: 'ff80808163a7a09b0163b01171e202db', //策略id integralStrategyId: 'ff80808163a7a09b0163b01171e202db', //策略id
channelType: '1', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫 channelType: '1', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
openStatus: 1, //渠道配置是否启用 1启用 0停用 openStatus: true, //渠道配置是否启用 1启用 0停用
channelRelationEnterpriseType: '1', // 策略关联企业 1所有企业 2部分企业 channelRelationEnterpriseType: '1', // 策略关联企业 1所有企业 2部分企业
channelRelationStoreType: '1', //策略关联门店类型 1所有门店 2门店分组 3部分门店 channelRelationStoreType: '1', //策略关联门店类型 1所有门店 2门店分组 3部分门店
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管) channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
...@@ -300,6 +352,46 @@ export default { ...@@ -300,6 +352,46 @@ export default {
goBack() { goBack() {
this.$router.go(-1); this.$router.go(-1);
}, },
async checkListValue(data) {
let obj = {
flag: true,
text: ''
};
if (!!data.channelList.length) {
for (let i = 0; i < data.channelList.length; i++) {
if (!!data.channelList[i].openStatus) {
if (data.channelList[i].integralUseDiscountControl == 2) {
if (!data.channelList[i].integralUseDiscountControlUpper || !data.channelList[i].integralUseDiscountControlLower) {
obj.flag = false;
obj.text = '请填写折扣';
}
if (parseInt(data.channelList[i].integralUseDiscountControlUpper) > 10 || parseInt(data.channelList[i].integralUseDiscountControlLower) > 10 || Number(data.channelList[i].integralUseDiscountControlUpper) <= Number(data.channelList[i].integralUseDiscountControlLower)) {
obj.flag = false;
obj.text = '折扣格式有误';
}
}
if (data.channelList[i].channelType == 1 && !data.channelList[i].enterpriseRelationIdArr.length) {
obj.flag = false;
obj.text = '请选择商户';
}
if (data.channelList[i].channelType == 9) {
const storeGroupDom = this.$refs.wmstoreGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.wmstoreGroup[0].isStoreSave();
} else {
flag = await this.$refs.wmstoreGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
}
}
}
return obj;
},
// 保存 // 保存
submitForm(formName) { submitForm(formName) {
let that = this; let that = this;
...@@ -313,21 +405,21 @@ export default { ...@@ -313,21 +405,21 @@ export default {
showMsg.showmsg('请填写策略名称', 'error'); showMsg.showmsg('请填写策略名称', 'error');
return; return;
} }
if (!data.channelList[0].enterpriseRelationIdArr.length) { // if (!data.channelList[0].enterpriseRelationIdArr.length) {
showMsg.showmsg('请选择商户', 'error'); // showMsg.showmsg('请选择商户', 'error');
return; // return;
} // }
if (data.channelList[0].integralUseDiscountControl == 2) { // if (data.channelList[0].integralUseDiscountControl == 2) {
let flagA = Number(data.channelList[0].integralUseDiscountControlLower) >= Number(data.channelList[0].integralUseDiscountControlUpper); // let flagA = Number(data.channelList[0].integralUseDiscountControlLower) >= Number(data.channelList[0].integralUseDiscountControlUpper);
if (!data.channelList[0].integralUseDiscountControlLower || !data.channelList[0].integralUseDiscountControlUpper) { // if (!data.channelList[0].integralUseDiscountControlLower || !data.channelList[0].integralUseDiscountControlUpper) {
that.$message.error('折扣控制中的折扣不能为空'); // that.$message.error('折扣控制中的折扣不能为空');
return; // return;
} // }
if (flagA) { // if (flagA) {
that.$message.error('折扣控制中的折扣格式有误'); // that.$message.error('折扣控制中的折扣格式有误');
return; // return;
} // }
} // }
let flag = !data.integralUse.fee || String(data.integralUse.integral) == ''; let flag = !data.integralUse.fee || String(data.integralUse.integral) == '';
if (data.integralUseStatus == 1 && flag) { if (data.integralUseStatus == 1 && flag) {
that.$message.error('请填写抵现规则'); that.$message.error('请填写抵现规则');
...@@ -344,59 +436,86 @@ export default { ...@@ -344,59 +436,86 @@ export default {
} }
} }
if (!data.channelList[0].useProportionalRestriction) { // if (!data.channelList[0].useProportionalRestriction) {
showMsg.showmsg('请填写比例限制', 'error'); // showMsg.showmsg('请填写比例限制', 'error');
return; // return;
} else { // } else {
if (data.channelList[0].useProportionalRestriction > 100) { // if (data.channelList[0].useProportionalRestriction > 100) {
showMsg.showmsg('比例限制不能大于100', 'error'); // showMsg.showmsg('比例限制不能大于100', 'error');
// return;
// }
// }
that.checkListValue(data).then(res => {
if (!res.flag) {
showMsg.showmsg(res.text, 'error');
return; return;
} } else {
} // 设置开启状态 1-->true
data.channelList.forEach(function(ele, index) {
let saveBool = true; ele.openStatus = ele.openStatus == true ? 1 : 0;
data.channelList.forEach(item => { if (ele.channelType == 1) {
if (item.channelType == 1) { ele.strategyGoodsRelationIdArr = ele.goodsRelationIdArr;
// 微信商城 delete ele.goodsRelationIdArr;
// 适用商品 }
if (item.channelRelationProType == 2 && this.valueWx.length < 1) { if (!ele.enterpriseRelationIdArr || !ele.enterpriseRelationIdArr.length) {
// 商品品牌 ele.enterpriseRelationIdArr = [];
showMsg.showmsg('请选择商品品牌', 'error'); }
return (saveBool = false); if (!ele.storeRelationIdArr || !ele.storeRelationIdArr.length) {
} ele.storeRelationIdArr = [];
if (item.channelRelationProType == 3 && this.cateDataWx.length < 1) { }
// 商品品类 if (!ele.strategyGoodsRelationIdArr || !ele.strategyGoodsRelationIdArr.length) {
showMsg.showmsg('请选择商品品类', 'error'); ele.strategyGoodsRelationIdArr = [];
return (saveBool = false); }
} if (ele.channelType == '9') {
if (item.channelRelationProType == 4 && this.goodsListWx.length < 1) { ele.storeControlId = that.wmuuid;
// 单件商品 }
showMsg.showmsg('请选择单件商品', 'error'); });
return (saveBool = false); let saveBool = true;
data.channelList.forEach(item => {
if (item.channelType == 1 && item.openStatus == 1) {
// 微信商城
// 适用商品
if (item.channelRelationProType == 2 && this.valueWx.length < 1) {
// 商品品牌
showMsg.showmsg('请选择商品品牌', 'error');
return (saveBool = false);
}
if (item.channelRelationProType == 3 && this.cateDataWx.length < 1) {
// 商品品类
showMsg.showmsg('请选择商品品类', 'error');
return (saveBool = false);
}
if (item.channelRelationProType == 4 && this.goodsListWx.length < 1) {
// 单件商品
showMsg.showmsg('请选择单件商品', 'error');
return (saveBool = false);
}
}
});
// 自定义人群
if (data.useCrowd == 2 && this.selectCount < 1) {
showMsg.showmsg('请选择人群定向', 'error');
return;
} }
}
});
// 自定义人群
if (data.useCrowd == 2 && this.selectCount < 1) {
showMsg.showmsg('请选择人群定向', 'error');
return;
}
delete data.selectorParamsId; delete data.selectorParamsId;
// 规则需要乘以 10 去掉---20180906 // 规则需要乘以 10 去掉---20180906
// data.integralUse.fee = data.integralUse.fee; // data.integralUse.fee = data.integralUse.fee;
// data.integralUse.integral = data.integralUse.integral; // data.integralUse.integral = data.integralUse.integral;
data.integralUse = JSON.stringify(data.integralUse); data.integralUse = JSON.stringify(data.integralUse);
if (data.channelList) { // if (data.channelList) {
data.channelList.forEach(function(ele, index) { // data.channelList.forEach(function(ele, index) {
ele.openStatus = 1; // ele.openStatus = 1;
}); // });
} // }
if (saveBool) { data.perpetualFlag = 1;
that.saveForm(data); if (saveBool) {
} that.saveForm(data);
}
}
})
} else { } else {
log('error submit!!'); log('error submit!!');
return false; return false;
...@@ -596,7 +715,8 @@ export default { ...@@ -596,7 +715,8 @@ export default {
item.integralUseStatus = String(item.integralUseStatus); item.integralUseStatus = String(item.integralUseStatus);
item.useCrowd = String(item.useCrowd); item.useCrowd = String(item.useCrowd);
item.integralGet = JSON.parse(item.integralGet); item.integralGet = JSON.parse(item.integralGet);
item.channelList.forEach(function(ele, index) { item.channelList.forEach((ele, index) => {
ele.openStatus = ele.openStatus == 0 ? false : true;
ele.channelType = String(ele.channelType); ele.channelType = String(ele.channelType);
ele.channelRelationStoreType = String(ele.channelRelationStoreType); ele.channelRelationStoreType = String(ele.channelRelationStoreType);
ele.channelStoreType = String(ele.channelStoreType); ele.channelStoreType = String(ele.channelStoreType);
...@@ -614,7 +734,30 @@ export default { ...@@ -614,7 +734,30 @@ export default {
if (!ele.enterpriseRelationIdArr || !ele.enterpriseRelationIdArr.length) { if (!ele.enterpriseRelationIdArr || !ele.enterpriseRelationIdArr.length) {
ele.enterpriseRelationIdArr = []; ele.enterpriseRelationIdArr = [];
} }
if (ele.channelType == 9) {
this.wmuuid = ele.storeControlId;
this.isAdd = false;
}
}); });
let bool = item.channelList.some(item => item.channelType == 9);
!bool && item.channelList.push({
integralStrategyChannelId: '', //id
enterpriseId: '',
integralStrategyId: '', //策略id
channelType: '9', //渠道类型 1微信 3:线下 5淘宝 6京东 7唯品会 8天猫
openStatus: true, //渠道配置是否启用 1启用 0停用
channelRelationEnterpriseType: '1', // 策略关联企业 1所有企业 2部分企业
channelRelationStoreType: '1', //策略关联门店类型 1所有门店 2门店分组 3部分门店
channelStoreType: '-1', // 策略选择门店类型 (-1:所有 0:自营 1:联营 2:加盟,3代销4托管)
channelRelationProType: '1', // 策略关联商品类型 1所有商品 2商品品牌 3商品类目 4部分商品
integralUseDiscountControl: '1', // 折扣控制 1所有折扣商品适用 2折扣范围
integralUseDiscountControlUpper: '0.0',
integralUseDiscountControlLower: '0.0',
useProportionalRestriction: '0.0', // 抵现比例限制
strategyGoodsRelationIdArr: [], // 商品
storeRelationIdArr: [], //门店
enterpriseRelationIdArr: [] //商户
})
return item; return item;
}, },
......
...@@ -146,9 +146,7 @@ ...@@ -146,9 +146,7 @@
</el-form-item> </el-form-item>
<div class="form-child margin-20" v-if="item.openStatus == true" :key="index"> <div class="form-child margin-20" v-if="item.openStatus == true" :key="index">
<el-form-item label="选择店铺"> <el-form-item label="选择店铺">
<el-select v-model="item.channelRelationStoreType" placeholder="请选择"> <vue-gic-store-new :scenesVal="scencs" :options="options" :isAdd="isAdd" :uuid.sync="wmuuid" ref="wmstoreGroup"></vue-gic-store-new>
<el-option v-for="item in wMShopOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="微盟商品" class="padding-0"> <el-form-item label="微盟商品" class="padding-0">
<el-select v-model="item.channelRelationProType" placeholder="请选择"> <el-select v-model="item.channelRelationProType" placeholder="请选择">
...@@ -407,6 +405,7 @@ export default { ...@@ -407,6 +405,7 @@ export default {
integralGetEffectiveDays: 1, // 获取积分有效天 integralGetEffectiveDays: 1, // 获取积分有效天
integralUseStatus: 0, // 积分抵现开启 1是0否 integralUseStatus: 0, // 积分抵现开启 1是0否
integralUse: null, // 积分抵现 {fee:5,integral:5} integralUse: null, // 积分抵现 {fee:5,integral:5}
perpetualFlag: 1,
channelList: [] channelList: []
}, },
cateOptions: [ cateOptions: [
...@@ -437,6 +436,7 @@ export default { ...@@ -437,6 +436,7 @@ export default {
options: [0, 1, 2, 3, 4, 5], // 0 全部 1 门店类型 2门店标签 3 门店区域 4 门店分组 5 部分门店 options: [0, 1, 2, 3, 4, 5], // 0 全部 1 门店类型 2门店标签 3 门店区域 4 门店分组 5 部分门店
isAdd: true, isAdd: true,
scencs: 'integral', scencs: 'integral',
wmuuid: '', // 微盟
// 太平鸟标识 // 太平鸟标识
tpnEditBool: false, tpnEditBool: false,
tpnEnterpriseId: 'ff808081671d3ceb01672adebf4e6149' tpnEnterpriseId: 'ff808081671d3ceb01672adebf4e6149'
...@@ -515,6 +515,19 @@ export default { ...@@ -515,6 +515,19 @@ export default {
obj.text = '请选择门店'; obj.text = '请选择门店';
} }
} }
if (data.channelList[i].channelType == 9) {
const storeGroupDom = this.$refs.wmstoreGroup;
let flag = null;
if (storeGroupDom instanceof Array) {
flag = await this.$refs.wmstoreGroup[0].isStoreSave();
} else {
flag = await this.$refs.wmstoreGroup.isStoreSave();
}
if (!flag) {
obj.flag = false;
obj.text = '请选择门店';
}
}
} }
} }
} }
...@@ -585,6 +598,9 @@ export default { ...@@ -585,6 +598,9 @@ export default {
ele.channelStoreType = '-1'; ele.channelStoreType = '-1';
ele.storeControlId = that.uuid; ele.storeControlId = that.uuid;
} }
if (ele.channelType == '9') {
ele.storeControlId = that.wmuuid;
}
}); });
data.integralGet.fee = parseInt(data.integralGet.fee * 10); data.integralGet.fee = parseInt(data.integralGet.fee * 10);
data.integralGet.integral = parseInt(data.integralGet.integral * 10); data.integralGet.integral = parseInt(data.integralGet.integral * 10);
...@@ -929,6 +945,10 @@ export default { ...@@ -929,6 +945,10 @@ export default {
this.uuid = ele.storeControlId; this.uuid = ele.storeControlId;
this.isAdd = false; this.isAdd = false;
} }
if (ele.channelType == 9) {
this.wmuuid = ele.storeControlId;
this.isAdd = false;
}
// 判断是否有微盟 // 判断是否有微盟
channelType.push(ele.channelType); channelType.push(ele.channelType);
}); });
...@@ -1229,6 +1249,7 @@ export default { ...@@ -1229,6 +1249,7 @@ export default {
.form-child { .form-child {
padding: 15px 20px 10px 0px; padding: 15px 20px 10px 0px;
background: #f5f6f9; background: #f5f6f9;
margin: 22px 0;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
......
...@@ -101,14 +101,14 @@ ...@@ -101,14 +101,14 @@
<el-table-column prop="" label="适用商品"> <el-table-column prop="" label="适用商品">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-for="(item, index) in scope.row.channelList" :key="index"> <span v-for="(item, index) in scope.row.channelList" :key="index">
{{ item.channelRelationProType == 1 && item.integralUseDiscountControl == 1 ? '所有商品' : '自定义配置' }} <span v-if="item.channelType == 1">{{item.channelRelationProType == 1&&item.integralUseDiscountControl==1? "所有商品" : "自定义配置" }}</span>
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="折扣控制"> <el-table-column prop="" label="折扣控制">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-for="(item, index) in scope.row.channelList" :key="index"> <span v-for="(item, index) in scope.row.channelList" :key="index">
{{ item.integralUseDiscountControl == 1 ? '不限制' : item.integralUseDiscountControlLower + ':' + item.integralUseDiscountControlUpper }} <span v-if="item.channelType == 1">{{item.integralUseDiscountControl==1? "不限制" : (item.integralUseDiscountControlLower+':'+item.integralUseDiscountControlUpper) }}</span>
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="" label="比例限制"> <el-table-column prop="" label="比例限制">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-for="(item, index) in scope.row.channelList" :key="index"> {{ item.useProportionalRestriction }}% </span> <span v-for="(item, index) in scope.row.channelList" :key="index"><span v-if="item.channelType == 1">{{item.useProportionalRestriction}}%</span></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
......
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