Commit 60a6aaf9 by zhangmeng

积分商城

parent e2d16c68
<!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.73d0471a877b1ee863133a4a5583d0fb.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.ccb4bd422cd76a080cba.js></script><script type=text/javascript src=/marketing/static/js/app.c2c17d0d14347c864ddb.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.73d0471a877b1ee863133a4a5583d0fb.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.ccb4bd422cd76a080cba.js></script><script type=text/javascript src=/marketing/static/js/app.6190db77c97d5e1d157d.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.
......@@ -92,15 +92,15 @@ function handlerErr(code,message = '请求错误') {
*/
const requests = (url, data = {},contentTypeIsJSON = false, isSilence = false, method = 'POST') => {
let _opts = { method, url }
let _data = Object.assign({requestProject:'gic-web'},data)
const _query = {}
let _timer = null
if (method.toLocaleUpperCase() === 'POST') {
if (contentTypeIsJSON) {
_opts.data = _data;
_opts.data = data;
_opts.headers = {'Content-Type': 'application/json'};
_opts.url += '?requestProject=marketing';
} else {
_opts.data = qs.stringify(_data)
_opts.data = qs.stringify(Object.assign({requestProject:'gic-web'},data))
}
} else {
_opts.params = _query
......
<template>
<el-form class="dm-wrap" :model="form" ref="form" :rules="rules" label-width="120px">
<div class="border-radius2" style="padding:15px;margin-bottom:20px;">
<cardTemp pbSize="pb15" :activeId.sync="form.cardId" @emitActiveObj="getCardActiveObjFun" :showPagination="false" :cardLimitType="3"></cardTemp>
<div class="border-radius2" style="padding:15px;margin-bottom:20px;">
<cardTemp pbSize="pb15" :activeId.sync="form.proReferId" @emitActiveObj="getCardActiveObjFun" :showPagination="false" :cardLimitType="3"></cardTemp>
</div>
<el-form-item prop="integralCost" label="积分费用">
<el-input-number controls-position="right" :disabled="editDisabled || infoDisabled" v-model="form.integralCost" class="w300" :precison="0" :min="0"></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo" v-model="form.integralCost" class="w300" :precison="0" :min="0"></el-input-number>
</el-form-item>
<el-form-item prop="cashCost" label="现金费用">
<el-input-number controls-position="right" :disabled="editDisabled || infoDisabled" v-model="form.cashCost" class="w300" :precison="0" :min="0"></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo" v-model="form.cashCost" class="w300" :precison="2" :min="0"></el-input-number>
</el-form-item>
<el-form-item prop="limitTimes" label="次数显示">
<el-checkbox :disabled="editDisabled || infoDisabled" v-model="isLimitTimes"> 每个会员限制兑换
<el-checkbox :disabled="isInfo" v-model="isLimitTimes"> 每个会员限制兑换
</el-checkbox>
<el-input-number controls-position="right" :disabled="editDisabled || infoDisabled || !isLimitTimes" v-model="form.limitTimes" class="w100" :precison="0" :min="0"></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo || !isLimitTimes" v-model="form.limitTimes" class="w100" :precison="0" :min="0"></el-input-number>
</el-form-item>
<el-form-item prop="memberGrade" label="适用会员">
<el-select v-model="form.memberGrade" multiple placeholder="请选择" class="w300">
<el-form-item prop="memberGradeArr" label="适用会员">
<el-select v-model="form.memberGradeArr" multiple placeholder="请选择" class="w300">
<el-option v-for="item in memberGradeOptions" :key="item.gradeId" :label="item.gradeName" :value="item.gradeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="展现门店">
<vue-gic-store-linkage :disabled="infoDisabled" :msg="sendChildData" ref="selectTree" @sendSelectGroupData="getSelectGroupData"></vue-gic-store-linkage>
<el-form-item label="展现门店" class="is-required">
<vue-gic-store-linkage :disabled="isInfo" :msg="sendChildData" ref="selectTree" @sendSelectGroupData="getSelectGroupData"></vue-gic-store-linkage>
</el-form-item>
<el-form-item prop="exchangeDateType" label="兑换日期">
<el-form-item prop="exchangeDateType" label="兑换日期" class="is-required">
<el-radio-group v-model="form.exchangeDateType" style="line-height:inherit;">
<div class="mb10"><el-radio :label="1">全部日期</el-radio></div>
<div class="mb10"><el-radio :label="2">固定日期
<el-date-picker v-model="form.exchangeFixDate" :disabled="editDisabled || infoDisabled" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-date-picker v-model="form.exchangeFixDate" :disabled="form.exchangeDateType !== 2" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-radio></div>
<div class="mb10"><el-radio :label="3">每月
<el-select v-model="form.exchangeDateDayArr" multiple filterable default-first-option placeholder="请选择">
<el-select v-model="form.exchangeDateDayArr" :disabled="form.exchangeDateType !== 3" multiple filterable default-first-option placeholder="请选择">
<el-option v-for="item in monthOptions" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-radio></div>
<div class="mb10"><el-radio :label="4">每周
<el-select v-model="form.exchangeDateWeek" multiple placeholder="请选择">
<el-select v-model="form.exchangeDateWeekArr" :disabled="form.exchangeDateType !== 4" multiple placeholder="请选择">
<el-option v-for="item in exchangeDateWeekOptions" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-radio></div>
</el-radio-group>
</el-form-item>
<el-form-item prop="exchangeTimeType" label="兑换时段">
<el-form-item prop="exchangeTimeType" label="兑换时段" class="is-required">
<el-radio-group v-model="form.exchangeTimeType">
<el-radio :label="1">全部日期</el-radio>
<el-radio :label="2">部分时段 <el-time-picker is-range v-model="timeRange" value-format="HH-mm" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围"></el-time-picker>
</el-radio>
<div class="mb10"><el-radio :label="1">全部时段</el-radio></div>
<div class="mb10">
<el-radio :label="2" class="vertical-middle">部分时段</el-radio>
<span class="gray fz13 vertical-top ml20">请使用24小时制输入时间,格式如11:00至14:30</span>
</div>
<p v-for="(v,i) in timeRangeList" :key="i" class="pb10">
<el-time-picker :disabled="form.exchangeTimeType === 1" class="vertical-middle w250" is-range v-model="v.timeRange" value-format="HH:mm" format="HH:mm" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围"></el-time-picker>
<el-button class="vertical-middle" type="text" @click="delTimeRange(i)">删除</el-button>
</p>
<p><el-button type="text" @click="addTimeRange">添加时间段</el-button></p>
</el-radio-group>
</el-form-item>
......@@ -63,9 +71,8 @@
</el-radio>
</el-radio-group>
</el-form-item>
<div class="btn-wrap_fixed" :class="{'on':asideShow}">
<el-button type="primary" @click="submit('form')" v-if="!infoDisabled">确认新增</el-button>
<el-button type="primary" @click="submit('form')" v-if="!isInfo">{{isAdd?'确认新增':'确认编辑'}}</el-button>
<el-button @click="$router.go(-1)">返 回</el-button>
</div>
</el-form>
......
......@@ -50,7 +50,7 @@
</el-table-column>
<el-table-column label="操作" align="left" width="140px">
<template slot-scope="scope">
<el-button type="text">编辑</el-button>
<el-button type="text" @click="$router.push('/mall/coupon/info/'+scope.row.integralMallProId)">编辑</el-button>
<dm-confirm @confirm="delData(scope.row)" tips="是否删除该优惠券?">
<el-button type="text">删除</el-button>
</dm-confirm>
......@@ -110,7 +110,7 @@ export default {
v.allExchangeNumberFlag = false;
this.tableList.push(v);
})
this.total = res.result.totalCount;
this.total = res.result.total;
this.loading = false;
},
// 删除
......
......@@ -10,6 +10,7 @@ export default {
data() {
return {
form:{
integralMallProId:'',
proReferId:'',
proName:'', // String 商品名字,优惠券就是所选券的名字。 (必填)
giftImg:{ // (必填)
......@@ -85,13 +86,14 @@ export default {
let res = await getIntegralMallProInfo({integralMallProId:this.$route.params.id});
if (res.errorCode === 0) {
const result = res.result;
this.form.integralMallProId = result.integralMallProId || '';
this.form.proReferId = result.proReferId || '';
this.form.proName = result.proName || '';
this.form.giftImg = {
imgUrl: result.giftImageUrls || '',
code: result.giftImageFiledCodes || '',
};
this.form.proCategoryId = result.proCategoryId;
this.form.proCategoryId = result.proCategoryId || '';
this.form.integralCost = result.integralCost || 0;
this.form.cashCost = result.cashCost || 0;
this.form.costValue = result.costValue || 0;
......@@ -111,19 +113,40 @@ export default {
// result.showStore = 2;
this.sendChildData.storeType = result.showStore || 0;
if (result.showStore === 1) {
this.sendChildData.storeGroupIds = result.storeGroupIds || '';
} else if (result.showStore === 2) {
let list = [];
if (result.storeInfo.length) {
result.storeInfo.map(v => {
list.push(v);
})
}
this.sendChildData.storeIds = list;
}
}
console.log(this.sendChildData)
console.log(res);
if (this.form.exchangeTimeType === 2 && result.timeZones) {
let list = result.timeZones.split('#').filter(v => v);
list.map((v,i)=> {
let arr = v.split('-');
this.$set(this.timeRangeList,i,{timeRange:[arr[0],arr[1]]})
});
}
}
},
//门店分组回执方法
getSelectGroupData(val) {
console.log(val);
this.sendChildData.storeType = val.storeType || 0
this.sendChildData.storeGroupIds = val.storeGroupIds || ''
this.sendChildData.storeIds = val.storeIds || []
......@@ -167,7 +190,8 @@ export default {
},
// 获取卡券组件回调的对象
getCardActiveObjFun(val) {
this.form.weChatVirtualStock = val.couponStock;
this.form.weChatVirtualStock = val.couponStock || 0;
this.form.proReferId = val.coupCardId || '';
console.log(val)
},
addTimeRange() {
......@@ -179,17 +203,22 @@ export default {
},
submit() {
if (this.cashCost - this.costValue < 0) {
this.$tips({type:'warning',message:'礼品成本要大于等于现金费用'});
return;
}
console.log(this.timeRangeList)
let params = {
integralMallProId:this.form.integralMallProId || '',
proType:2, // 商品类型 1 优惠券,2礼品,3实物
proName:this.form.proName, // 商品名字,优惠券就是所选券的名字。
proReferId:this.isAdd?'':this.form.proReferId, // 关联的卡券或者礼品
proCategoryId:this.form.proCategoryId, //礼品的分类
proShowStatus:this.form.proShowStatus, // 商品显示状态 1:上架状态就显示 2:兑换状态下显示
integralCost:this.form.integralCost,// 积分费用
cashCost:this.form.cashCost, // 现金费用,两位小数
costValue:this.form.costValue,
limitTimes:this.form.limitTimes,// 次数限制
memberGrade:this.form.memberGradeArr.length?this.form.memberGradeArr.join(','):'', // 适用会员,多个,逗号拼接。
exchangeDateType:this.form.exchangeDateType, // 兑换日期1:全部 2:固定日期 3:每月 4:每周
......@@ -246,13 +275,13 @@ export default {
// 门店分组 todo
if (this.sendChildData.storeType === 1) {
if (this.sendChildData.storeGroupIds) {
params.groupIdList = JSON.stringify(this.sendChildData.storeGroupIds.split(','));
params.storeGroupIds = this.sendChildData.storeGroupIds || '';
}
} else if (this.sendChildData.storeType === 2){
if (this.sendChildData.storeIds) {
params.storeIdList = JSON.stringify(this.sendChildData.storeIds.map(v => v.storeId));
params.storeIds = this.sendChildData.storeIds.map(v => v.storeId).join(',');
} else {
params.storeIdList = JSON.stringify([]);
params.storeIds ='';
}
}
......@@ -264,6 +293,7 @@ export default {
console.log(params)
createIntegralProService(params).then(res => {
this.$router.push('/mall/gift');
console.log(res);
})
}
......
<template>
<el-form class="dm-wrap" :model="form" ref="form" :rules="rules" label-width="120px">
<el-form-item prop="proName" label="礼品标题">
<el-input controls-position="right" placeholder="请输入礼品标题" :disabled="isEdit || isInfo" v-model="form.proName" class="w300"></el-input>
<el-input controls-position="right" placeholder="请输入礼品标题" :disabled="isInfo" v-model="form.proName" class="w300"></el-input>
</el-form-item>
<el-form-item label="礼品主图" class="is-required">
<dm-upload-avatar :model.sync="form.giftImg" label="上传图片" tips="规格750*750,大小≤1M"></dm-upload-avatar>
......@@ -14,18 +14,18 @@
</el-form-item>
<el-form-item prop="integralCost" label="积分费用">
<el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.integralCost" class="w300" :precison="0" :min="0"></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo" v-model="form.integralCost" class="w300" :precison="0" :min="0"></el-input-number>
</el-form-item>
<el-form-item prop="cashCost" label="现金费用">
<el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.cashCost" class="w300" :precison="2" :min="0"></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo" v-model="form.cashCost" class="w300" :precison="2" :min="0"></el-input-number>
</el-form-item>
<el-form-item prop="costValue" label="礼品成本">
<el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.costValue" class="w300" :precison="2" :min="0"></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo" v-model="form.costValue" class="w300" :precison="2" :min="form.cashCost"></el-input-number>
</el-form-item>
<el-form-item prop="limitTimes" label="次数显示">
<el-checkbox :disabled="isEdit || isInfo" v-model="isLimitTimes"> 每个会员限制兑换
<el-checkbox :disabled="isInfo" v-model="isLimitTimes"> 每个会员限制兑换
</el-checkbox>
<el-input-number controls-position="right" :disabled="isEdit || isInfo || !isLimitTimes" v-model="form.limitTimes" class="w100" :precison="0" :min="0"></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo || !isLimitTimes" v-model="form.limitTimes" class="w100" :precison="0" :min="0"></el-input-number>
</el-form-item>
<el-form-item prop="memberGradeArr" label="适用会员">
<el-select v-model="form.memberGradeArr" multiple placeholder="请选择" class="w300">
......@@ -102,10 +102,10 @@
</el-radio-group>
</el-form-item>
<div v-show="form.changeType === 1" class="border-radius2" style="padding:15px;margin-bottom:20px;">
<cardTemp pbSize="pb15" :activeId.sync="form.cardId" @emitActiveObj="getCardActiveObjFun" :showPagination="false" :cardLimitType="3"></cardTemp>
<cardTemp pbSize="pb15" :activeId.sync="form.proReferId" @emitActiveObj="getCardActiveObjFun" :showPagination="false" :cardLimitType="3"></cardTemp>
</div>
<div class="btn-wrap_fixed" :class="{'on':asideShow}">
<el-button type="primary" @click="submit('form')" v-if="!isInfo">确认新增</el-button>
<el-button type="primary" @click="submit('form')" v-if="!isInfo">{{isAdd?'确认新增':'确认编辑'}}</el-button>
<el-button @click="$router.go(-1)">返 回</el-button>
</div>
</el-form>
......
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