Commit c2327988 by zhangmeng

修改样式,新增会员信息预览

parent 60aedd3b
No preview for this file type
<!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=/integral-mall/static/css/app.a38e4bbf9889d2cf2a9ea15932463f01.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/integral-mall/static/js/manifest.003beacb9c9ae622c7f2.js></script><script type=text/javascript src=/integral-mall/static/js/vendor.468b1a0927c2f59e9881.js></script><script type=text/javascript src=/integral-mall/static/js/app.74102e0f863bdad9a18b.js></script></body></html> <!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=/integral-mall/static/css/app.102f761e2a159950ae256038daa74d10.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/integral-mall/static/js/manifest.003beacb9c9ae622c7f2.js></script><script type=text/javascript src=/integral-mall/static/js/vendor.468b1a0927c2f59e9881.js></script><script type=text/javascript src=/integral-mall/static/js/app.1853cf779a6326ac584f.js></script></body></html>
\ No newline at end of file \ 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.
...@@ -125,9 +125,19 @@ ...@@ -125,9 +125,19 @@
background-color: #020b21; background-color: #020b21;
} }
.table__avatar--gift {
width: 44px;
height: 44px;
border-radius: 4px;
margin-right: 8px;
display: inline-block;
padding: 8px;
border: 1px solid #dcdfe6;
}
.table__avatar { .table__avatar {
width: 60px; width: 40px;
height: 60px; height: 40px;
border-radius: 4px; border-radius: 4px;
margin-right: 8px; margin-right: 8px;
display: inline-block; display: inline-block;
...@@ -239,4 +249,47 @@ ...@@ -239,4 +249,47 @@
.el-menu.el-menu--popup .el-menu-item.is-active label { .el-menu.el-menu--popup .el-menu-item.is-active label {
color: #fff; color: #fff;
}
.singelinfo {
display: flex;
justify-content: flex-start;
&-img {
flex: 0 0 100px;
}
&-content {
flex: 1;
}
&-wrap {
display: flex;
flex-direction: column;
}
&-item {
flex: 1;
line-height: 0;
}
&-jl {
display: flex;
align-items: center;
justify-content: center;
}
&-jlitem {
flex: 1;
text-align: center;
}
&-cost {
display: flex;
text-align: center;
}
&-costitem {
flex: 1;
}
}
.lheigt {
color: #303133;
margin: 5px 0;
span {
color: #606266;
}
} }
\ No newline at end of file
...@@ -74,4 +74,7 @@ export const createCategoryService = (params) => requests(PREFIX + 'create-gift- ...@@ -74,4 +74,7 @@ export const createCategoryService = (params) => requests(PREFIX + 'create-gift-
export const delCategoryService = (params) => requests(PREFIX + 'del-gift-category', params); export const delCategoryService = (params) => requests(PREFIX + 'del-gift-category', params);
// 获取卡券成本 // 获取卡券成本
export const getCashCostService = (params) => requests(PREFIX + 'get-integral-mall-CashCost', params); export const getCashCostService = (params) => requests(PREFIX + 'get-integral-mall-CashCost', params);
\ No newline at end of file
// 获取卡券成本
export const getMemberInfo = (params) => requests(PREFIX + 'get-member', params);
\ No newline at end of file
<template> <template>
<section class="sms-lib"> <section class="sms-lib">
<div :class="pbSize"> <div :class="pbSize">
<span class="pr10">选择卡券(共{{total}}条)</span> <span class="pr10">{{total}}</span>
<el-input :disabled="disabled" v-model="listParams.searchParam" class="w200" clearable placeholder="请输入卡券名称" @change="getCardList"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input> <el-input :disabled="disabled" v-model="listParams.searchParam" class="w200" clearable placeholder="请输入卡券名称" @change="getCardList"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<span class="fz12 gray pl20">领取限制 < 100的卡券不支持选择,系统已自动过滤</span> <span class="fz12 gray pl20">领取限制 < 100的卡券不支持选择,系统已自动过滤</span>
</div> </div>
......
<template>
<el-popover placement="top-start" width="400" height="180" trigger="hover" @show="getSingleInfo">
<div class="corsur-pointer" @click="linkDetail">
<div class="singelinfo">
<div class="singelinfo-img"><img width="100" height="100" :src="singleInfo.thirdImgUrl || defaultAvatar" alt=""></div>
<div class="singelinfo-content pl10 pr10">
<span class="lheigt">{{ singleInfo.memberName }}
<img :title="singleInfo.status == 0 ? '取消关注公众号' : singleInfo.status == 1 ? '已关注公众号' : '未关注公众号'" class="fr"
:src="singleInfo.status == 0 ? gzhiconcanclegray : singleInfo.status == 1 ? gzhicon : gzhicongray" />
<img :title="singleInfo.wxStatus == 0 ? '未使用小程序' : singleInfo.wxStatus == 1 ? '使用过小程序' : ''" class="channelicon fr mr6"
:src="singleInfo.wxStatus == 0 ? xcxicongray : singleInfo.wxStatus == 1 ? xcxicon : ''"/>
</span>
<p class="lheigt">
<span style="margin-right:5px;">{{ singleInfo.memberGender}}</span>
<span style="margin-right:5px;">{{ singleInfo.memberAge }}</span>
<span :title="singleInfo.cardNo">{{ singleInfo.cardNum | formatCardName }}</span></p>
<p class="lheigt"><span>{{ singleInfo.mainStoreName }}</span></p>
<div class="singelinfo-cost">
<div class="singelinfo-costitem"><p>{{ singleInfo.costFee || 0 }}</p><p>消费总额</p></div>
<div class="singelinfo-costitem"><p>{{ singleInfo.costTimes || 0 }}</p><p>消费次数</p></div>
<div class="singelinfo-costitem"><p>{{ singleInfo.lastCost || 0 }}</p><p>最近消费</p></div>
</div>
</div>
</div>
<div class="singelinfo-jl mb20 mt20">
<a class="singelinfo-jlitem">消费记录 ({{ singleInfo.numOfSale }})</a>
<a class="singelinfo-jlitem">营销记录 ({{ singleInfo.numOfmarket }})</a>
<a class="singelinfo-jlitem">卡券记录 ({{ singleInfo.couponCount }})</a>
</div>
</div>
<span slot="reference">
<a :href="'/member/#/wechatmemberDetail?memberId='+ row.memberId" target="_blank">
<img class="vertical-middle table__avatar" :src="row.photoUrl || defaultAvatar" width="60" height="60" alt="" srcset="">
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{row.memberName || '--'}}</p>
<p class="table-name--ellipsis fz13">{{row.cardNum || '--'}}</p>
</div>
</a>
</span>
</el-popover>
</template>
<script>
import {getMemberInfo} from '@/service/api/mallApi.js';
export default {
name:'member-info',
props:{
row:{
type:Object,
default(){
return {}
}
}
},
data() {
return {
singleInfo:{},
defaultAvatar:require('../../../assets/img/head_default.png'),
gzhiconcanclegray:require('../../../assets/img/status@gzhcanclegray.png'),
gzhicon:require('../../../assets/img/status@gzh.png'),
gzhicongray:require('../../../assets/img/status@gzhgray.png'),
xcxicongray:require('../../../assets/img/status@xcxgray.png'),
xcxicon:require('../../../assets/img/status@xcx.png'),
}
},
methods:{
getSingleInfo() {
getMemberInfo({memberId:this.row.memberId}).then(res => {
if (res.errorCode === 0) {
this.singleInfo = res.result;
}
console.log(res);
})
},
linkDetail() {
window.open(`/member/#/wechatmemberDetail?memberId=${this.row.memberId}`);
}
},
filters:{
formatCardName(val) {
if(val) {
if(val.length > 10) {
val = val.substr(0, 10) + '...';
}
}
return val;
},
}
}
</script>
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<el-table-column v-for="(v,i) in tableHeader" :align="v.align" :key="i" :prop="v.prop" :label="v.label"> <el-table-column v-for="(v,i) in tableHeader" :align="v.align" :key="i" :prop="v.prop" :label="v.label">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="v.formatter" v-html="v.formatter(scope.row)"></span> <span v-if="v.formatter" v-html="v.formatter(scope.row)"></span>
<component v-else-if="v.component" :is="v.component" :row="scope.row"></component>
<span v-else>{{scope.row[v.prop]}}</span> <span v-else>{{scope.row[v.prop]}}</span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -25,7 +26,11 @@ ...@@ -25,7 +26,11 @@
<script> <script>
import {getPageExchangeLogsList,exportExchangeListExcel} from '@/service/api/mallApi.js'; import {getPageExchangeLogsList,exportExchangeListExcel} from '@/service/api/mallApi.js';
import {formateDateTimeByType} from '@/utils/index.js'; import {formateDateTimeByType} from '@/utils/index.js';
import memberInfoCom from '../common/member-info';
export default { export default {
components:{
memberInfoCom
},
data() { data() {
let _vm = this; let _vm = this;
return { return {
...@@ -35,15 +40,7 @@ import {formateDateTimeByType} from '@/utils/index.js'; ...@@ -35,15 +40,7 @@ import {formateDateTimeByType} from '@/utils/index.js';
return formateDateTimeByType(row.createTime,'yyyy-MM-dd-HH-mm-ss'); return formateDateTimeByType(row.createTime,'yyyy-MM-dd-HH-mm-ss');
}}, }},
{label:'流水号',prop:'definedCode',minWidth:'100',align:'left'}, {label:'流水号',prop:'definedCode',minWidth:'100',align:'left'},
{label:'会员信息',prop:'issuingQuantity',minWidth:'170',align:'left',formatter(row){ {label:'会员信息',prop:'issuingQuantity',minWidth:'170',align:'left',component:'memberInfoCom'},
return `<a href="/member/#/wechatmemberDetail?memberId=${row.memberId}" target="_blank">
<img class="vertical-middle table__avatar" src="${row.photoUrl}" width="60" height="60" alt="" srcset="">
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">${row.memberName || '--'}</p>
<p class="table-name--ellipsis fz13">${row.cardNum || '--'}</p>
</div>
</a>`;
}},
{label:'消耗积分',prop:'unitCostIntegral',width:'80',align:'left'}, {label:'消耗积分',prop:'unitCostIntegral',width:'80',align:'left'},
{label:'领取状态',prop:'status',width:'100',align:'left',formatter(row){ {label:'领取状态',prop:'status',width:'100',align:'left',formatter(row){
let statusLabel ='--'; let statusLabel ='--';
......
...@@ -50,6 +50,7 @@ export default { ...@@ -50,6 +50,7 @@ export default {
} }
}, },
created() { created() {
this.$store.commit('mutations_breadcrumb', [{ name: '积分商城' }, { name: '优惠券', path: '/coupon' }, { name: this.isAdd ? '新增优惠券' : '编辑优惠券', path: '' }]);
this.getGradeList(); this.getGradeList();
// 解决响应式问题 // 解决响应式问题
if (!this.timeRangeList) { if (!this.timeRangeList) {
...@@ -239,7 +240,7 @@ export default { ...@@ -239,7 +240,7 @@ export default {
} }
}) })
if (flag) { if (flag) {
this.$tips({ message: '部分时段未填写完整' }); this.$tips({ type: 'warning', message: '部分时段未填写完整' });
return; return;
} }
// 如果数组为1的话也要传 #分割 // 如果数组为1的话也要传 #分割
......
<template> <template>
<el-form :model="form" ref="form" :rules="rules" label-width="120px">
<el-form class="dm-wrap" :model="form" ref="form" :rules="rules" label-width="120px"> <div class="dm-form__wrap">
<div class="border-radius2" style="padding:15px;margin-bottom:20px;"> <h3 class="dm-title__label">选择卡券</h3>
<card-temp ref="cardTemp" cardType="0,1" :disabled="isEdit || isInfo" pbSize="pb15" :activeId.sync="form.proReferId" @emitActiveObj="getCardActiveObjFun" :showPagination="false" :cardLimitType="3"></card-temp> <div style="margin-bottom:20px;">
<card-temp ref="cardTemp" cardType="0,1" :disabled="isEdit || isInfo" pbSize="pb15" :activeId.sync="form.proReferId" @emitActiveObj="getCardActiveObjFun" :showPagination="false" :cardLimitType="3"></card-temp>
</div>
</div>
<div class="dm-form__wrap">
<h3 class="dm-title__label">优惠券信息</h3>
<el-form-item prop="integralCost" label="积分费用">
<el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.integralCost" class="w300" :precision="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" :precision="2" :min="0"></el-input-number>
</el-form-item>
<el-form-item prop="limitTimes" label="次数限制">
<el-checkbox :disabled="isInfo" v-model="isLimitTimes"> 每个会员限制兑换
</el-checkbox>
<el-input-number controls-position="right" :disabled="isInfo" v-model="form.limitTimes" class="w100" :precision="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">
<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="展现门店" class="is-required">
<vue-gic-store-linkage :disabled="isInfo" :msg="sendChildData" ref="selectTree" @sendSelectGroupData="getSelectGroupData"></vue-gic-store-linkage>
</el-form-item>
</div> </div>
<el-form-item prop="integralCost" label="积分费用"> <div class="dm-form__wrap">
<el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.integralCost" class="w300" :precision="0" :min="0"></el-input-number> <h3 class="dm-title__label">兑换条件</h3>
</el-form-item> <el-form-item prop="exchangeDateType" label="兑换日期" class="is-required">
<el-form-item prop="cashCost" label="现金费用"> <el-radio-group v-model="form.exchangeDateType" style="line-height:inherit;">
<el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.cashCost" class="w300" :precision="2" :min="0"></el-input-number> <el-radio :label="1">全部日期</el-radio>
</el-form-item> <el-radio :label="2">固定日期</el-radio>
<el-form-item prop="limitTimes" label="次数限制"> <el-radio :label="3">每月</el-radio>
<el-checkbox :disabled="isInfo" v-model="isLimitTimes"> 每个会员限制兑换 <el-radio :label="4">每周</el-radio>
</el-checkbox> </el-radio-group>
<el-input-number controls-position="right" :disabled="isInfo" v-model="form.limitTimes" class="w100" :precision="0" :min="0"></el-input-number> <div class="pt10">
</el-form-item> <el-date-picker class="w300" v-model="form.exchangeFixDate" v-if="form.exchangeDateType === 2" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-form-item prop="memberGradeArr" label="适用会员"> <el-select class="w300" size="small" v-model="form.exchangeDateDayArr" v-if="form.exchangeDateType === 3" multiple placeholder="请选择">
<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="展现门店" 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="兑换日期" 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="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" :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-option v-for="item in monthOptions" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-radio></div> <el-select class="w300" size="small" v-model="form.exchangeDateWeekArr" v-if="form.exchangeDateType === 4" multiple placeholder="请选择">
<div class="mb10"><el-radio :label="4">每周
<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-option v-for="item in exchangeDateWeekOptions" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-radio></div> </div>
</el-radio-group> </el-form-item>
</el-form-item>
<el-form-item prop="exchangeTimeType" label="兑换时段" class="is-required"> <el-form-item prop="exchangeTimeType" label="兑换时段" class="is-required">
<el-radio-group v-model="form.exchangeTimeType"> <el-radio-group v-model="form.exchangeTimeType">
<div class="mb10"><el-radio :label="1">全部时段</el-radio></div> <el-radio :label="1">全部时段</el-radio>
<div class="mb10">
<el-radio :label="2" class="vertical-middle">部分时段</el-radio> <el-radio :label="2" class="vertical-middle">部分时段</el-radio>
<span class="gray fz13 vertical-top ml20">请使用24小时制输入时间,格式如11:00至14:30</span> </el-radio-group>
<div v-show="form.exchangeTimeType === 2" class="pt10">
<p v-for="(v,i) in timeRangeList" :key="i" class="pb10">
<el-time-picker :disabled="form.exchangeTimeType === 1" class="vertical-middle w300" 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 v-if="i" class="vertical-middle" type="text" @click="delTimeRange(i)">删除</el-button>
</p>
<span class="gray fz12 vertical-top">请使用24小时制输入时间,格式如11:00至14:30</span>
<p><el-button type="text" @click="addTimeRange">添加时间段</el-button></p>
</div> </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-form-item>
<el-button class="vertical-middle" type="text" @click="delTimeRange(i)">删除</el-button> <el-form-item prop="proShowStatus" label="显示状态">
</p> <el-radio-group v-model="form.proShowStatus">
<p><el-button type="text" @click="addTimeRange">添加时间段</el-button></p> <el-radio :label="1">上架状态就显示</el-radio>
</el-radio-group> <el-radio :label="2">兑换状态下显示</el-radio>
</el-form-item> </el-radio-group>
<el-form-item prop="proShowStatus" label="显示状态"> </el-form-item>
<el-radio-group v-model="form.proShowStatus"> <el-form-item prop="releaseType" label="发布时间">
<el-radio :label="1">上架状态就显示</el-radio> <el-radio-group v-model="form.releaseType">
<el-radio :label="2">兑换状态下显示</el-radio> <el-radio :label="1">立即发布</el-radio>
</el-radio-group> <el-radio :label="2">定时发布</el-radio>
</el-form-item> </el-radio-group>
<el-form-item prop="releaseType" label="发布时间"> <div class="pt10">
<el-radio-group v-model="form.releaseType"> <el-date-picker v-if="form.releaseType ===2" v-model="form.limitTimeBegin" type="datetime" placeholder="选择日期时间"></el-date-picker>
<el-radio :label="1">立即发布</el-radio> </div>
<el-radio :label="2">定时发布 </el-form-item>
<el-date-picker v-model="form.limitTimeBegin" type="datetime" placeholder="选择日期时间"></el-date-picker> </div>
</el-radio>
</el-radio-group>
</el-form-item>
<div class="btn-wrap_fixed" :class="{'on':asideShow}"> <div class="btn-wrap_fixed" :class="{'on':asideShow}">
<el-button type="primary" @click="submit('form')" v-if="!isInfo">{{isAdd?'确认新增':'确认编辑'}}</el-button> <el-button type="primary" @click="submit('form')" v-if="!isInfo">{{isAdd?'确认新增':'确认编辑'}}</el-button>
<el-button @click="$router.go(-1)">返 回</el-button> <el-button @click="$router.go(-1)">返 回</el-button>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<el-table-column label="商品" align="left" prop="timesStatus" min-width="140"> <el-table-column label="商品" align="left" prop="timesStatus" min-width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="ellipsis-100" > <div class="ellipsis-100" >
<img class="vertical-middle table__avatar" :src="filterAvatar(scope.row.cardType)" width="60" height="60" /> <img class="vertical-middle table__avatar--gift" :src="filterAvatar(scope.row.cardType)" width="40" height="40" />
<div class="inline-block vertical-middle"> <div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{scope.row.proTitle || '--'}}</p> <p class="table-name--ellipsis">{{scope.row.proTitle || '--'}}</p>
<p class="fz13 gray">{{scope.row.proSubTitle || '--'}}</p> <p class="fz13 gray">{{scope.row.proSubTitle || '--'}}</p>
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
</el-table-column> </el-table-column>
<el-table-column label="状态" align="left" prop="status" width="140px"> <el-table-column label="状态" align="left" prop="status" width="140px">
<template slot-scope="scope" > <template slot-scope="scope" >
<span v-html="renderStatus(scope.row)"></span> <span v-html="renderStatus(scope.row).html"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="显示状态" align="center" prop="proShowStatus" width="120"> <el-table-column label="显示状态" align="center" prop="proShowStatus" width="120">
...@@ -97,22 +97,26 @@ export default { ...@@ -97,22 +97,26 @@ export default {
var _virtual_stock = item.virtualStock ; var _virtual_stock = item.virtualStock ;
//兑换日期类型1:全部 2:固定日期 3:每月 4:每周 //兑换日期类型1:全部 2:固定日期 3:每月 4:每周
// 显示状态的优先级:已过期>无库存>定时发布>未在兑换时间 // 显示状态的优先级:已过期>无库存>定时发布>未在兑换时间
var _exchange_date_type = item.exchangeDateType ; var _exchange_date_type = item.exchangeDateType ;
var dhzt_show = '正常' ; var dhzt_show_html ='<span class="dm-status--primary">正常</span>'
var dhzt_show = '正常';
//判断是否在兑换日期内 - 未在兑换时间 //判断是否在兑换日期内 - 未在兑换时间
if(_exchange_date_type==2) { if(_exchange_date_type==2) {
if(!(new Date().getTime() >= item.exchangeFixDateBegin && new Date().getTime() <= (item.exchangeFixDateEnd + (1000*60*60*24) ))) { if(!(new Date().getTime() >= item.exchangeFixDateBegin && new Date().getTime() <= (item.exchangeFixDateEnd + (1000*60*60*24) ))) {
dhzt_show = "未在兑换时间" ; dhzt_show_html = '<span class="dm-status--warning">未在兑换时间</span>';
dhzt_show = '未在兑换时间';
} }
} }
if(_exchange_date_type==3) { if(_exchange_date_type==3) {
dhzt_show = "未在兑换时间" ; dhzt_show_html = '<span class="dm-status--warning">未在兑换时间</span>';
dhzt_show = '未在兑换时间';
var _exchange_date_day = item.exchangeDateDay ; var _exchange_date_day = item.exchangeDateDay ;
var day = new Date().getDate() ; var day = new Date().getDate() ;
var _arr = _exchange_date_day.split(",") ; var _arr = _exchange_date_day.split(",") ;
_arr.map(v => { _arr.map(v => {
if(day == parseInt(v)) { if(day == parseInt(v)) {
dhzt_show = "正常" ; dhzt_show_html = '<span class="dm-status--primary">正常</span>' ;
dhzt_show = '正常';
} }
}) })
} }
...@@ -124,19 +128,22 @@ export default { ...@@ -124,19 +128,22 @@ export default {
week =7 ; week =7 ;
} }
if(_exchange_date_week.indexOf(week) == -1) { if(_exchange_date_week.indexOf(week) == -1) {
dhzt_show = "未在兑换时间" ; dhzt_show_html = '<span class="dm-status--warning">未在兑换时间</span>';
dhzt_show = '未在兑换时间';
} }
} }
if(item.exchangeTimeType == 2 && item.exchangeTimeList && dhzt_show == '正常') { if(item.exchangeTimeType == 2 && item.exchangeTimeList && dhzt_show == '正常') {
dhzt_show = "未在兑换时间" ; dhzt_show_html = '<span class="dm-status--warning">未在兑换时间</span>';
dhzt_show = '未在兑换时间';
for(var k=0;k<item.exchangeTimeList.length;k++) { for(var k=0;k<item.exchangeTimeList.length;k++) {
var _o = item.exchangeTimeList[k] ; var _o = item.exchangeTimeList[k] ;
var start = _o.exchangeTimeBeginNumber ; var start = _o.exchangeTimeBeginNumber ;
var end = _o.exchangeTimeEndNumber ; var end = _o.exchangeTimeEndNumber ;
var _now = Date.now() ; var _now = Date.now() ;
if(_now >= start && _now <= end) { if(_now >= start && _now <= end) {
dhzt_show = "正常" ; dhzt_show_html = '<span class="dm-status--primary">正常</span>';
dhzt_show = '正常';
break ; break ;
} }
} }
...@@ -144,21 +151,27 @@ export default { ...@@ -144,21 +151,27 @@ export default {
//定时发布 //定时发布
if(_releaseType == 2 && item.status==2 && new Date().getTime() < _limit_time_begin) { if(_releaseType == 2 && item.status==2 && new Date().getTime() < _limit_time_begin) {
dhzt_show = "定时发布<br/>" + formateDateTimeByType(new Date(_limit_time_begin),"yyyy-MM-dd-hh-mm-ss") ; dhzt_show_html = `<span class="dm-status--success">定时发布<br/>${formateDateTimeByType(new Date(_limit_time_begin),"yyyy-MM-dd-hh-mm-ss")}</span>`;
dhzt_show = '定时发布';
} }
if(_virtual_stock<=0) { if(_virtual_stock<=0) {
dhzt_show_html = '<span class="dm-status--error">无库存</span>';
dhzt_show = "无库存" ; dhzt_show = "无库存" ;
} }
if(item.status==1) { if(item.status==1) {
dhzt_show_html = '<span class="dm-status--info">已下架</span>';
dhzt_show = "已下架" ; dhzt_show = "已下架" ;
} }
return dhzt_show; return {
text:dhzt_show,
html:dhzt_show_html
};
}, },
renderShowStatus(item) { renderShowStatus(item) {
//商品显示状态 1:上架状态就显示 2:兑换状态下显示 //商品显示状态 1:上架状态就显示 2:兑换状态下显示
var dhzt_show = this.renderStatus(item); var dhzt_show = this.renderStatus(item).text;
var pro_show_status = item.proShowStatus ; var pro_show_status = item.proShowStatus ;
var proShowStatus = "不显示" ; var proShowStatus = "不显示" ;
// var mall_show_status = "mall_show_no" ; // var mall_show_status = "mall_show_no" ;
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<el-table-column v-for="(v,i) in tableHeader" :align="v.align" :key="i" :prop="v.prop" :label="v.label"> <el-table-column v-for="(v,i) in tableHeader" :align="v.align" :key="i" :prop="v.prop" :label="v.label">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="v.formatter" v-html="v.formatter(scope.row)"></span> <span v-if="v.formatter" v-html="v.formatter(scope.row)"></span>
<component v-else-if="v.component" :is="v.component" :row="scope.row"></component>
<span v-else>{{scope.row[v.prop]}}</span> <span v-else>{{scope.row[v.prop]}}</span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -47,9 +48,12 @@ ...@@ -47,9 +48,12 @@
import {getPageExchangeLogsList,exportExchangeListExcel} from '@/service/api/mallApi.js'; import {getPageExchangeLogsList,exportExchangeListExcel} from '@/service/api/mallApi.js';
import {formateDateTimeByType} from '@/utils/index.js'; import {formateDateTimeByType} from '@/utils/index.js';
import express from '../common/express'; import express from '../common/express';
import memberInfoCom from '../common/member-info';
export default { export default {
components: { components: {
express express,
memberInfoCom
}, },
data() { data() {
let _vm = this; let _vm = this;
...@@ -61,16 +65,7 @@ import express from '../common/express'; ...@@ -61,16 +65,7 @@ import express from '../common/express';
return formateDateTimeByType(row.createTime,'yyyy-MM-dd-HH-mm-ss'); return formateDateTimeByType(row.createTime,'yyyy-MM-dd-HH-mm-ss');
}}, }},
{label:'流水号',prop:'definedCode',minWidth:'100',align:'left'}, {label:'流水号',prop:'definedCode',minWidth:'100',align:'left'},
{label:'会员信息',prop:'issuingQuantity',minWidth:'170',align:'left',formatter(row){ {label:'会员信息',prop:'issuingQuantity',minWidth:'170',align:'left',component:'memberInfoCom'},
const photoUrl = row.photoUrl.match(/^http(s)?/) ? row.photoUrl : _vm.defaultAvatar;
return `<a href="/member/#/wechatmemberDetail?memberId=${row.memberId}" target="_blank">
<img class="vertical-middle table__avatar" src="${photoUrl}" width="60" height="60" alt="" srcset="">
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">${row.memberName || '--'}</p>
<p class="table-name--ellipsis fz13">${row.cardNum || '--'}</p>
</div>
</a>`;
}},
{label:'消耗积分',prop:'unitCostIntegral',width:'80',align:'left'} {label:'消耗积分',prop:'unitCostIntegral',width:'80',align:'left'}
], ],
total:0, total:0,
......
...@@ -38,7 +38,7 @@ export default { ...@@ -38,7 +38,7 @@ export default {
}, },
rules: { rules: {
proName: { required: true, message: '请输入礼品名称', trigger: 'blur' }, proName: { required: true, message: '请输入礼品名称', trigger: 'blur' },
proCategoryId: { required: true, message: '请选择礼品分', trigger: 'blur' }, proCategoryId: { required: true, message: '请选择礼品分', trigger: 'blur' },
integralCost: { required: true, type: 'number', min: 0, message: '请输入积分费用', trigger: 'blur' }, integralCost: { required: true, type: 'number', min: 0, message: '请输入积分费用', trigger: 'blur' },
cashCost: { required: true, type: 'number', min: 0, message: '请输入现金费用', trigger: 'blur' }, cashCost: { required: true, type: 'number', min: 0, message: '请输入现金费用', trigger: 'blur' },
costValue: { required: true, type: 'number', min: 0, message: '请输入礼品成本', trigger: 'blur' }, costValue: { required: true, type: 'number', min: 0, message: '请输入礼品成本', trigger: 'blur' },
...@@ -76,6 +76,7 @@ export default { ...@@ -76,6 +76,7 @@ export default {
}, },
}, },
created() { created() {
this.$store.commit('mutations_breadcrumb', [{ name: '积分商城' }, { name: '礼品', path: '/coupon' }, { name: this.isAdd ? '新增礼品' : '编辑礼品', path: '' }]);
this.getGradeList(); this.getGradeList();
this.getCategoryList(); this.getCategoryList();
// 解决响应式问题 // 解决响应式问题
...@@ -97,9 +98,9 @@ export default { ...@@ -97,9 +98,9 @@ export default {
delCategoryService({ integralMallCategoryId: id }).then(res => { delCategoryService({ integralMallCategoryId: id }).then(res => {
if (res.errorCode === 0) { if (res.errorCode === 0) {
this.getCategoryList(); this.getCategoryList();
this.$tips({ type: 'success', message: '删除分成功' }); this.$tips({ type: 'success', message: '删除分成功' });
} else { } else {
this.$tips({ type: 'success', message: '删除分组失败' }); this.$tips({ type: 'error', message: '删除分类失败' });
} }
}); });
}, },
...@@ -112,11 +113,11 @@ export default { ...@@ -112,11 +113,11 @@ export default {
}, },
// 新建分类 // 新建分类
createCategory() { createCategory() {
this.$prompt('请输入分组名称', '新建分组', { this.$prompt('', '新建分类', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
inputPlaceholder: '请输入分名称', inputPlaceholder: '请输入分名称',
inputErrorMessage: '分名称不能为空', inputErrorMessage: '分名称不能为空',
inputValidator: function(value) { inputValidator: function(value) {
if (!value) { if (!value) {
return false; return false;
...@@ -131,10 +132,10 @@ export default { ...@@ -131,10 +132,10 @@ export default {
createCategoryService({ categoryName: value }).then(res => { createCategoryService({ categoryName: value }).then(res => {
if (res.errorCode === 0) { if (res.errorCode === 0) {
this.$tips({ type: 'success', message: '新建分成功' }); this.$tips({ type: 'success', message: '新建分成功' });
this.getCategoryList(); this.getCategoryList();
} else { } else {
this.$tips({ type: 'error', message: '新建分失败' }); this.$tips({ type: 'error', message: '新建分失败' });
} }
}) })
}).catch(err => { }).catch(err => {
...@@ -206,7 +207,7 @@ export default { ...@@ -206,7 +207,7 @@ export default {
}) })
} }
}, },
//门店分回执方法 //门店分回执方法
getSelectGroupData(val) { getSelectGroupData(val) {
console.log(val); console.log(val);
this.sendChildData.storeType = val.storeType || 0 this.sendChildData.storeType = val.storeType || 0
...@@ -286,7 +287,7 @@ export default { ...@@ -286,7 +287,7 @@ export default {
changeType: this.form.changeType, // 兑换方式 1:微信兑换 2:快递发货 3:在线发货 changeType: this.form.changeType, // 兑换方式 1:微信兑换 2:快递发货 3:在线发货
showStore: this.sendChildData.storeType, // 显示门店 0所有 1部分分 2部分门店 showStore: this.sendChildData.storeType, // 显示门店 0所有 1部分分 2部分门店
giftImageUrls: this.imageList.map(v => v.url).filter(v => v).join(','), // 礼品图片 giftImageUrls: this.imageList.map(v => v.url).filter(v => v).join(','), // 礼品图片
giftImageFiledCodes: this.imageList.map(v => v.code).filter(v => v).join(','), // 礼品图片编码 giftImageFiledCodes: this.imageList.map(v => v.code).filter(v => v).join(','), // 礼品图片编码
...@@ -335,7 +336,7 @@ export default { ...@@ -335,7 +336,7 @@ export default {
} }
}) })
if (flag) { if (flag) {
this.$tips({ message: '部分时段未填写完整' }); this.$tips({ type: 'warning', message: '部分时段未填写完整' });
return; return;
} }
// 如果数组为1的话也要传 #分割 // 如果数组为1的话也要传 #分割
...@@ -377,12 +378,12 @@ export default { ...@@ -377,12 +378,12 @@ export default {
} }
} }
// 门店分 // 门店分
if (this.sendChildData.storeType === 1) { if (this.sendChildData.storeType === 1) {
if (this.sendChildData.storeGroupIds) { if (this.sendChildData.storeGroupIds) {
params.storeGroupIds = this.sendChildData.storeGroupIds || ''; params.storeGroupIds = this.sendChildData.storeGroupIds || '';
} else { } else {
this.$tips({ type: 'warning', message: '门店分不能为空' }); this.$tips({ type: 'warning', message: '门店分不能为空' });
return; return;
} }
} else if (this.sendChildData.storeType === 2) { } else if (this.sendChildData.storeType === 2) {
......
<template> <template>
<el-form class="dm-wrap" :model="form" ref="form" :rules="rules" label-width="120px"> <el-form :model="form" ref="form" :rules="rules" label-width="120px">
<el-form-item prop="proName" label="礼品标题"> <div class="dm-form__wrap">
<dm-input controls-position="right" placeholder="请输入礼品标题" :disabled="isInfo" v-model="form.proName" class="w300" :maxlength="20"></dm-input> <h3 class="dm-title__label">礼品信息</h3>
</el-form-item> <el-form-item prop="proName" label="礼品标题">
<el-form-item label="礼品主图" class="is-required"> <dm-input controls-position="right" placeholder="请输入礼品标题" :disabled="isInfo" v-model="form.proName" class="w300" :maxlength="20"></dm-input>
<div class="member-upload-image"> </el-form-item>
<p class="gray fz13">规格750*750,大小≤1M</p> <el-form-item label="礼品主图" class="is-required">
<vue-gic-upload-image <div class="member-upload-image">
:projectName="projectName" <p class="gray fz13">规格750*750,大小≤1M</p>
:wxFlag="wxFlag" <vue-gic-upload-image
:actionUrl="actionUrl" :projectName="projectName"
:imageList="imageList" :wxFlag="wxFlag"
:limitW="limitW" :actionUrl="actionUrl"
:limitH="limitH" :imageList="imageList"
:imgSize="imgSize" :limitW="limitW"
:maxImageLength="maxlength" :limitH="limitH"
@uploadOnSuccess="uploadOnSuccess" :imgSize="imgSize"
@sortImg="sortImg" :maxImageLength="maxlength"
@deleteImage="deleteImage"> @uploadOnSuccess="uploadOnSuccess"
</vue-gic-upload-image> @sortImg="sortImg"
</div> @deleteImage="deleteImage">
<!-- <dm-upload-avatar :model.sync="form.giftImg" label="上传图片" tips="规格750*750,大小≤1M"></dm-upload-avatar> --> </vue-gic-upload-image>
</el-form-item> </div>
<el-form-item prop="proCategoryId" label="礼品分组"> <!-- <dm-upload-avatar :model.sync="form.giftImg" label="上传图片" tips="规格750*750,大小≤1M"></dm-upload-avatar> -->
<el-select v-model="form.proCategoryId" placeholder="请选择" class="w300"> </el-form-item>
<el-option v-for="(v,i) in categoryOptions" :key="i" :label="v.categoryName" :value="v.integralMallCategoryId"> <el-form-item prop="proCategoryId" label="礼品分类">
<span class="fl">{{v.categoryName}}</span> <el-select v-model="form.proCategoryId" placeholder="请选择" class="w300">
<el-button class="fr" type="text" @click.stop="deleteCategory(v.integralMallCategoryId)">x</el-button> <el-option v-for="(v,i) in categoryOptions" :key="i" :label="v.categoryName" :value="v.integralMallCategoryId">
</el-option> <span class="fl">{{v.categoryName}}</span>
</el-select> <el-button class="fr" type="text" @click.stop="deleteCategory(v.integralMallCategoryId)">x</el-button>
<el-button type="text" @click="createCategory">新建分组</el-button> </el-option>
</el-form-item> </el-select>
<el-form-item prop="integralCost" label="积分费用"> <el-button type="text" @click="createCategory">新建分类</el-button>
<el-input-number class="w300" controls-position="right" :disabled="isInfo || isEdit" v-model="form.integralCost" :precision="0" :step="1" :min="0" ></el-input-number> </el-form-item>
</el-form-item> <el-form-item prop="integralCost" label="积分费用">
<el-form-item prop="cashCost" label="现金费用"> <el-input-number class="w300" controls-position="right" :disabled="isInfo || isEdit" v-model="form.integralCost" :precision="0" :step="1" :min="0" ></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo || isEdit" v-model="form.cashCost" class="w300" :precision="2" :step="0.1" :min="0"></el-input-number> </el-form-item>
</el-form-item> <el-form-item prop="cashCost" label="现金费用">
<el-form-item prop="costValue" label="礼品成本"> <el-input-number controls-position="right" :disabled="isInfo || isEdit" v-model="form.cashCost" class="w300" :precision="2" :step="0.1" :min="0"></el-input-number>
<el-input-number controls-position="right" :disabled="isInfo || isEdit || form.changeType === 1" v-model="form.costValue" class="w300" :precision="2" :step="0.1" :min="0"></el-input-number> </el-form-item>
</el-form-item> <el-form-item prop="costValue" label="礼品成本">
<el-form-item prop="limitTimes" label="次数限制"> <el-input-number controls-position="right" :disabled="isInfo || isEdit || form.changeType === 1" v-model="form.costValue" class="w300" :precision="2" :step="0.1" :min="0"></el-input-number>
<el-checkbox :disabled="isInfo" v-model="isLimitTimes"> 每个会员限制兑换 </el-form-item>
</el-checkbox> <el-form-item prop="limitTimes" label="次数限制">
<el-input-number controls-position="right" :disabled="isInfo" v-model="form.limitTimes" class="w100" :precision="0" :min="0"></el-input-number> <el-checkbox :disabled="isInfo" v-model="isLimitTimes"> 每个会员限制兑换
</el-form-item> </el-checkbox>
<el-form-item prop="memberGradeArr" label="适用会员"> <el-input-number controls-position="right" :disabled="isInfo" v-model="form.limitTimes" class="w100" :precision="0" :min="0"></el-input-number>
<el-select v-model="form.memberGradeArr" multiple placeholder="请选择" class="w300"> </el-form-item>
<el-option v-for="item in memberGradeOptions" :key="item.gradeId" :label="item.gradeName" :value="item.gradeId"></el-option> <el-form-item prop="memberGradeArr" label="适用会员">
</el-select> <el-select v-model="form.memberGradeArr" multiple placeholder="请选择" class="w300">
</el-form-item> <el-option v-for="item in memberGradeOptions" :key="item.gradeId" :label="item.gradeName" :value="item.gradeId"></el-option>
<el-form-item label="展现门店" class="is-required"> </el-select>
<vue-gic-store-linkage :disabled="isInfo" :msg="sendChildData" ref="selectTree" @sendSelectGroupData="getSelectGroupData"></vue-gic-store-linkage> </el-form-item>
</el-form-item> <el-form-item label="展现门店" class="is-required">
<el-form-item prop="exchangeDateType" label="兑换日期" class="is-required"> <vue-gic-store-linkage :disabled="isInfo" :msg="sendChildData" ref="selectTree" @sendSelectGroupData="getSelectGroupData"></vue-gic-store-linkage>
<el-radio-group v-model="form.exchangeDateType" style="line-height:inherit;"> </el-form-item>
<div class="mb10"><el-radio :label="1">全部日期</el-radio></div> </div>
<div class="mb10"><el-radio :label="2">固定日期 <div class="dm-form__wrap">
<el-date-picker v-model="form.exchangeFixDate" :disabled="form.exchangeDateType !== 2" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker> <h3 class="dm-title__label">兑换条件</h3>
</el-radio></div> <el-form-item prop="exchangeDateType" label="兑换日期" class="is-required">
<div class="mb10"><el-radio :label="3">每月 <el-radio-group v-model="form.exchangeDateType" style="line-height:inherit;">
<el-select v-model="form.exchangeDateDayArr" :disabled="form.exchangeDateType !== 3" multiple filterable default-first-option placeholder="请选择"> <el-radio :label="1">全部日期</el-radio>
<el-radio :label="2">固定日期</el-radio>
<el-radio :label="3">每月</el-radio>
<el-radio :label="4">每周</el-radio>
</el-radio-group>
<div class="pt10">
<el-date-picker class="w300" v-model="form.exchangeFixDate" v-if="form.exchangeDateType === 2" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-select class="w300" size="small" v-model="form.exchangeDateDayArr" v-if="form.exchangeDateType === 3" multiple placeholder="请选择">
<el-option v-for="item in monthOptions" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in monthOptions" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-radio></div> <el-select class="w300" size="small" v-model="form.exchangeDateWeekArr" v-if="form.exchangeDateType === 4" multiple placeholder="请选择">
<div class="mb10"><el-radio :label="4">每周
<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-option v-for="item in exchangeDateWeekOptions" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-radio></div> </div>
</el-radio-group> </el-form-item>
</el-form-item>
<el-form-item prop="exchangeTimeType" label="兑换时段" class="is-required"> <el-form-item prop="exchangeTimeType" label="兑换时段" class="is-required">
<el-radio-group v-model="form.exchangeTimeType"> <el-radio-group v-model="form.exchangeTimeType">
<div class="mb10"><el-radio :label="1">全部时段</el-radio></div> <el-radio :label="1">全部时段</el-radio>
<div class="mb10">
<el-radio :label="2" class="vertical-middle">部分时段</el-radio> <el-radio :label="2" class="vertical-middle">部分时段</el-radio>
<span class="gray fz13 vertical-top ml20">请使用24小时制输入时间,格式如11:00至14:30</span> </el-radio-group>
<div v-show="form.exchangeTimeType === 2" class="pt10">
<p v-for="(v,i) in timeRangeList" :key="i" class="pb10">
<el-time-picker :disabled="form.exchangeTimeType === 1" class="vertical-middle w300" 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 v-if="i" class="vertical-middle" type="text" @click="delTimeRange(i)">删除</el-button>
</p>
<span class="gray fz12 vertical-top">请使用24小时制输入时间,格式如11:00至14:30</span>
<p><el-button type="text" @click="addTimeRange">添加时间段</el-button></p>
</div> </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-form-item>
<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>
<el-form-item prop="proShowStatus" label="显示状态" class="is-required"> <el-form-item prop="proShowStatus" label="显示状态" class="is-required">
<el-radio-group v-model="form.proShowStatus"> <el-radio-group v-model="form.proShowStatus">
<el-radio :label="1">上架状态就显示</el-radio> <el-radio :label="1">上架状态就显示</el-radio>
<el-radio :label="2">兑换状态下显示</el-radio> <el-radio :label="2">兑换状态下显示</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item prop="releaseType" label="发布时间" class="is-required"> <el-form-item prop="releaseType" label="发布时间">
<el-radio-group v-model="form.releaseType"> <el-radio-group v-model="form.releaseType">
<el-radio :label="1">立即发布</el-radio> <el-radio :label="1">立即发布</el-radio>
<el-radio :label="2">定时发布 <el-radio :label="2">定时发布</el-radio>
<el-date-picker v-model="form.limitTimeBegin" type="datetime" placeholder="选择日期时间"></el-date-picker> </el-radio-group>
</el-radio> <div class="pt10">
</el-radio-group> <el-date-picker v-if="form.releaseType ===2" v-model="form.limitTimeBegin" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
<el-form-item prop="changeType" label="兑换方式" class="is-required">
<el-radio-group v-model="form.changeType">
<div class="mb10">
<el-radio :label="2" :disabled="form.changeType === 1 && (isInfo || isEdit)">快递发货,库存
<el-input-number controls-position="right" v-show="form.changeType === 2" v-model="form.virtualStock" class="w150 vertical-middle" :precison="0" :min="0"></el-input-number>
</el-radio>
</div> </div>
<div class="mb10"> </el-form-item>
<el-radio :label="3" :disabled="form.changeType === 1 && (isInfo || isEdit)">在线发货,库存 <el-form-item prop="changeType" label="兑换方式" class="is-required">
<el-input-number controls-position="right" v-show="form.changeType === 3" v-model="form.virtualStock" class="w150 vertical-middle" :precison="0" :min="0"></el-input-number> <el-radio-group v-model="form.changeType">
</el-radio> <el-radio :label="2" :disabled="form.changeType === 1 && (isInfo || isEdit)">快递发货</el-radio>
<el-radio :label="3" :disabled="form.changeType === 1 && (isInfo || isEdit)">在线发货</el-radio>
<el-radio :disabled="form.changeType !== 1 && (isInfo || isEdit)" :label="1">微信兑换券</el-radio>
</el-radio-group>
<div class="pt10">
<span v-show="form.changeType !== 1">库存 <el-input-number controls-position="right" v-model="form.virtualStock" class="w250 vertical-middle" :precison="0" :min="0"></el-input-number></span>
<span v-show="form.changeType === 1" class="gray fz13">礼品成本金额以选择兑换券的成本金额为准</span>
</div> </div>
<div class="mb10"> </el-form-item>
<el-radio :disabled="form.changeType !== 1 && (isInfo || isEdit)" :label="1" class="vertical-middle">微信兑换券</el-radio> </div>
<span class="gray ml20 fz13 vertical-top">礼品成本金额以选择兑换券的成本金额为准</span> <div class="dm-form__wrap" v-show="!(form.changeType !== 1 || isInfo || isEdit)">
</div> <h3 class="dm-title__label">选择卡券</h3>
</el-radio-group> <div style="margin-bottom:20px;">
</el-form-item> <card-temp ref="cardTemp" pbSize="pb15" :activeId.sync="form.proReferId" @emitActiveObj="getCardActiveObjFun" :showPagination="false" :cardLimitType="3"></card-temp>
<div v-show="!(form.changeType !== 1 || isInfo || isEdit)" class="border-radius2" style="padding:15px;margin-bottom:20px;"> </div>
<card-temp ref="cardTemp" pbSize="pb15" :activeId.sync="form.proReferId" @emitActiveObj="getCardActiveObjFun" :showPagination="false" :cardLimitType="3"></card-temp>
</div> </div>
<div class="btn-wrap_fixed" :class="{'on':asideShow}"> <div class="btn-wrap_fixed" :class="{'on':asideShow}">
<el-button type="primary" @click="submit('form')" v-if="!isInfo">{{isAdd?'确认新增':'确认编辑'}}</el-button> <el-button type="primary" @click="submit('form')" v-if="!isInfo">{{isAdd?'确认新增':'确认编辑'}}</el-button>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<el-table-column label="礼品信息" align="left" prop="proName" min-width="140"> <el-table-column label="礼品信息" align="left" prop="proName" min-width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="ellipsis-100" > <div class="ellipsis-100" >
<img class="vertical-middle table__avatar" :src="scope.row.mainImageUrl || defaultAvatar" width="60" height="60" /> <img class="vertical-middle table__avatar--gift" :src="scope.row.mainImageUrl || defaultAvatar" width="60" height="60" />
<div class="inline-block vertical-middle"> <div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{scope.row.proName || '--'}}</p> <p class="table-name--ellipsis">{{scope.row.proName || '--'}}</p>
<p class="fz13 gray">{{scope.row.giftCategoryName || '--'}}</p> <p class="fz13 gray">{{scope.row.giftCategoryName || '--'}}</p>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
</el-table-column> </el-table-column>
<el-table-column label="兑换状态" align="left" prop="status" width="140px"> <el-table-column label="兑换状态" align="left" prop="status" width="140px">
<template slot-scope="scope" > <template slot-scope="scope" >
<span v-html="renderStatus(scope.row)"></span> <span v-html="renderStatus(scope.row).html"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="显示状态" align="center" prop="proShowStatus" width="120"> <el-table-column label="显示状态" align="center" prop="proShowStatus" width="120">
...@@ -145,22 +145,26 @@ export default { ...@@ -145,22 +145,26 @@ export default {
var _virtual_stock = item.virtualStock ; var _virtual_stock = item.virtualStock ;
//兑换日期类型1:全部 2:固定日期 3:每月 4:每周 //兑换日期类型1:全部 2:固定日期 3:每月 4:每周
// 显示状态的优先级:已过期>无库存>定时发布>未在兑换时间 // 显示状态的优先级:已过期>无库存>定时发布>未在兑换时间
var _exchange_date_type = item.exchangeDateType ; var _exchange_date_type = item.exchangeDateType ;
var dhzt_show = '正常' ; var dhzt_show_html ='<span class="dm-status--primary">正常</span>'
var dhzt_show = '正常';
//判断是否在兑换日期内 - 未在兑换时间 //判断是否在兑换日期内 - 未在兑换时间
if(_exchange_date_type==2) { if(_exchange_date_type==2) {
if(!(new Date().getTime() >= item.exchangeFixDateBegin && new Date().getTime() <= (item.exchangeFixDateEnd + (1000*60*60*24) ))) { if(!(new Date().getTime() >= item.exchangeFixDateBegin && new Date().getTime() <= (item.exchangeFixDateEnd + (1000*60*60*24) ))) {
dhzt_show = "未在兑换时间" ; dhzt_show_html = '<span class="dm-status--warning">未在兑换时间</span>';
dhzt_show = '未在兑换时间';
} }
} }
if(_exchange_date_type==3) { if(_exchange_date_type==3) {
dhzt_show = "未在兑换时间" ; dhzt_show_html = '<span class="dm-status--warning">未在兑换时间</span>';
dhzt_show = '未在兑换时间';
var _exchange_date_day = item.exchangeDateDay ; var _exchange_date_day = item.exchangeDateDay ;
var day = new Date().getDate() ; var day = new Date().getDate() ;
var _arr = _exchange_date_day.split(",") ; var _arr = _exchange_date_day.split(",") ;
_arr.map(v => { _arr.map(v => {
if(day == parseInt(v)) { if(day == parseInt(v)) {
dhzt_show = "正常" ; dhzt_show_html = '<span class="dm-status--primary">正常</span>' ;
dhzt_show = '正常';
} }
}) })
} }
...@@ -172,19 +176,22 @@ export default { ...@@ -172,19 +176,22 @@ export default {
week =7 ; week =7 ;
} }
if(_exchange_date_week.indexOf(week) == -1) { if(_exchange_date_week.indexOf(week) == -1) {
dhzt_show = "未在兑换时间" ; dhzt_show_html = '<span class="dm-status--warning">未在兑换时间</span>';
dhzt_show = '未在兑换时间';
} }
} }
if(item.exchangeTimeType == 2 && item.exchangeTimeList && dhzt_show == '正常') { if(item.exchangeTimeType == 2 && item.exchangeTimeList && dhzt_show == '正常') {
dhzt_show = "未在兑换时间" ; dhzt_show_html = '<span class="dm-status--warning">未在兑换时间</span>';
dhzt_show = '未在兑换时间';
for(var k=0;k<item.exchangeTimeList.length;k++) { for(var k=0;k<item.exchangeTimeList.length;k++) {
var _o = item.exchangeTimeList[k] ; var _o = item.exchangeTimeList[k] ;
var start = _o.exchangeTimeBeginNumber ; var start = _o.exchangeTimeBeginNumber ;
var end = _o.exchangeTimeEndNumber ; var end = _o.exchangeTimeEndNumber ;
var _now = Date.now() ; var _now = Date.now() ;
if(_now >= start && _now <= end) { if(_now >= start && _now <= end) {
dhzt_show = "正常" ; dhzt_show_html = '<span class="dm-status--primary">正常</span>';
dhzt_show = '正常';
break ; break ;
} }
} }
...@@ -192,21 +199,27 @@ export default { ...@@ -192,21 +199,27 @@ export default {
//定时发布 //定时发布
if(_releaseType == 2 && item.status==2 && new Date().getTime() < _limit_time_begin) { if(_releaseType == 2 && item.status==2 && new Date().getTime() < _limit_time_begin) {
dhzt_show = "定时发布<br/>" + formateDateTimeByType(new Date(_limit_time_begin),"yyyy-MM-dd-hh-mm-ss") ; dhzt_show_html = `<span class="dm-status--success">定时发布<br/>${formateDateTimeByType(new Date(_limit_time_begin),"yyyy-MM-dd-hh-mm-ss")}</span>`;
dhzt_show = '定时发布';
} }
if(_virtual_stock<=0) { if(_virtual_stock<=0) {
dhzt_show_html = '<span class="dm-status--error">无库存</span>';
dhzt_show = "无库存" ; dhzt_show = "无库存" ;
} }
if(item.status==1) { if(item.status==1) {
dhzt_show_html = '<span class="dm-status--info">已下架</span>';
dhzt_show = "已下架" ; dhzt_show = "已下架" ;
} }
return dhzt_show; return {
text:dhzt_show,
html:dhzt_show_html
};
}, },
renderShowStatus(item) { renderShowStatus(item) {
//商品显示状态 1:上架状态就显示 2:兑换状态下显示 //商品显示状态 1:上架状态就显示 2:兑换状态下显示
var dhzt_show = this.renderStatus(item); var dhzt_show = this.renderStatus(item).text;
var pro_show_status = item.proShowStatus ; var pro_show_status = item.proShowStatus ;
var proShowStatus = "不显示" ; var proShowStatus = "不显示" ;
if(item.status==2) { if(item.status==2) {
......
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