Commit c9b4290a by chenxin

fix:build ewash 账单功能

parent 99849d82
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=/marketing/static/css/iconfont.css><link rel=stylesheet type=text/css href=/marketing/static/css/common.css><script type=text/javascript>!function(e,t,n,g,i){e[i]=e[i]||function(){(e[i].q=e[i].q||[]).push(arguments)},n=t.createElement("script"),tag=t.getElementsByTagName("script")[0],n.async=1,n.src=('https:'==document.location.protocol?'https://':'http://')+g,tag.parentNode.insertBefore(n,tag)}(window,document,"script","assets.giocdn.com/2.1/gio.js","gio");
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=/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 rel=stylesheet href=https://unpkg.com/element-ui/lib/theme-chalk/index.css><script type=text/javascript>!function(e,t,n,g,i){e[i]=e[i]||function(){(e[i].q=e[i].q||[]).push(arguments)},n=t.createElement("script"),tag=t.getElementsByTagName("script")[0],n.async=1,n.src=('https:'==document.location.protocol?'https://':'http://')+g,tag.parentNode.insertBefore(n,tag)}(window,document,"script","assets.giocdn.com/2.1/gio.js","gio");
gio('init','8be12240a3749eab', {});
//custom page code begin here
//custom page code end here
gio('send');</script><link href=/marketing/static/css/main.19fe41ab2b725aea4a35c72d545daf5e.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.30.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.31.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.91.js></script><script type=text/javascript src=/marketing/static/js/manifest.7bfa0d0dd776fc5702c5.js></script><script type=text/javascript src=/marketing/static/js/vendor.4cb744d5df3ad4bdbad7.js></script><script type=text/javascript src=/marketing/static/js/main.0d07b5df99782e7c5191.js></script></body></html>
\ No newline at end of file
gio('send');</script><link href=/marketing/static/css/main.19504f0684391881dcd6ffac423608fc.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=https://unpkg.com/element-ui/lib/index.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.30.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.31.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.91.js></script><script type=text/javascript src=/marketing/static/js/manifest.e982e1c36948a14c81c2.js></script><script type=text/javascript src=/marketing/static/js/vendor.4cb744d5df3ad4bdbad7.js></script><script type=text/javascript src=/marketing/static/js/main.4029a5ea242b5cf3720d.js></script></body></html>
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,c,a){for(var i,u,d,f=0,s=[];f<n.length;f++)u=n[f],t[u]&&s.push(t[u][0]),t[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(r&&r(n,c,a);s.length;)s.shift()();if(a)for(f=0;f<a.length;f++)d=o(o.s=a[f]);return d};var n={},t={12:0};function o(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var n=new Promise(function(n,o){r=t[e]=[n,o]});r[2]=n;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+({0:"game",1:"card",2:"wechat",3:"evaluation",4:"message",5:"ewash",6:"ecm",7:"recharge",8:"msg",9:"calllog"}[e]||e)+"."+{0:"939ef154a34f1a744ce0",1:"026dac0bcd8969a615d4",2:"74cec9b4e7b2d7c30c85",3:"050296879188ef53023e",4:"9a09a2ca69a10dd4b1cb",5:"8b8778aa01b41ba43016",6:"1eea4e6e08cc95d8322d",7:"6235075e2c47716c5050",8:"5d9bccc98221e443f872",9:"101d05cb830d169de2d6"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=u,c.appendChild(a),n},o.m=e,o.c=n,o.d=function(e,r,n){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,o,a){for(var i,u,f,d=0,s=[];d<n.length;d++)u=n[d],t[u]&&s.push(t[u][0]),t[u]=0;for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i]);for(r&&r(n,o,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)f=c(c.s=a[d]);return f};var n={},t={12:0};function c(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,c),t.l=!0,t.exports}c.e=function(e){var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var n=new Promise(function(n,c){r=t[e]=[n,c]});r[2]=n;var o=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,c.nc&&a.setAttribute("nonce",c.nc),a.src=c.p+"static/js/"+({0:"game",1:"card",2:"wechat",3:"ewash",4:"evaluation",5:"message",6:"ecm",7:"recharge",8:"msg",9:"calllog"}[e]||e)+"."+{0:"939ef154a34f1a744ce0",1:"e34fbb233db6fd4dbd94",2:"74cec9b4e7b2d7c30c85",3:"d7a97011facc0748c0c0",4:"a639d4b91d56334ec9ea",5:"8b5a84b02f4c6a9c3090",6:"1eea4e6e08cc95d8322d",7:"6235075e2c47716c5050",8:"5d9bccc98221e443f872",9:"101d05cb830d169de2d6"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=u,o.appendChild(a),n},c.m=e,c.c=n,c.d=function(e,r,n){c.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},c.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(r,"a",r),r},c.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},c.p="/marketing/",c.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -7,6 +7,7 @@
<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 rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- element 皮肤 -->
<!-- <link rel="stylesheet" type="text/css" href="http://web-1251519181.file.myqcloud.com/lib/elementUI/theme.1.0.1/index.css"> -->
<!-- GrowingIO Analytics code version 2.1 -->
......@@ -27,7 +28,8 @@
<script src="//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js"></script>
<script src="//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js"></script>
<script src="//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js"></script>
<script src="//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<!-- <script src="//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js"></script> -->
<!-- 组件引用cdn -->
<script src="//web-1251519181.file.myqcloud.com/components/header.2.0.30.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js"></script>
......
......@@ -45,7 +45,6 @@ a:hover {
position: relative;
margin: 0 auto;
}
.pt5{
padding-top: 5px!important;
}
......
......@@ -41,7 +41,17 @@ export default {
path: 'statements',
name: 'e袋洗对账单',
component: () => import(/* webpackChunkName: "ewash" */ '../../views/ewash/statements.vue'),
meta: {}
meta: {
path: '/ewash/list'
}
},
{
path: 'statements/detail/:id',
name: 'e袋洗对账单详情',
component: () => import(/* webpackChunkName: "ewash" */ '../../views/ewash/statements-detail.vue'),
meta: {
path: '/ewash/list'
}
}
]
};
import { requests } from './index';
const PREFIX = 'api-marketing/';
import config from '@/config';
export const url = config.api + PREFIX;
//e袋洗 -- 列表/新增/删除 复用card的,些许参数不一样
// e袋洗 -- 对账列表
export const edxOrderList = params => requests(PREFIX + 'edx-order-list', params);
// 导出卡券
export const exportEdxOrderCsv = config.api + PREFIX + 'edx-order-csv';
......@@ -42,7 +42,10 @@
</el-table-column>
<el-table-column width="120" align="left" prop="receiveTime" label="卡券类型">
<template slot-scope="scope">
{{ scope.row.cardType === 0 ? '抵金券' : scope.row.cardType === 1 ? '折扣券' : '兑换券' }}
<template v-if="scope.row.gicCouponType === 1">
e袋洗
</template>
<template v-else>{{ scope.row.cardType === 0 ? '抵金券' : scope.row.cardType === 1 ? '折扣券' : '兑换券' }}</template>
</template>
</el-table-column>
<el-table-column min-width="100" align="left" prop="receiveTime" label="卡券名称">
......
......@@ -4,8 +4,9 @@
import dmUploadImg from '@/components/upload/img';
import imgTextDrag from '@/views/card/partials/imgtext-drag';
import { formatDateTimeByType } from '@/utils/index.js';
import goodCategory from './partials/ewash-good-category.vue';
// import xxSysp_mix from '@/mixins/selector.js'; // 商品选择器方法
import { cardGetShelfs, getCardDetail, saveUpdateCard, getCategoryList, getPropertyList, getPropertyValueList } from '@/service/api/cardApi.js';
import { getCardDetail, saveUpdateCard, getCategoryList, getPropertyList, getPropertyValueList } from '@/service/api/cardApi.js';
import dmGoodsInput from '@/components/goods-input/index.vue';
const initForm = {
gicCouponType: 1, // (0微信券 1edaixi 页面固定传1)
......@@ -59,12 +60,16 @@ export default {
uuid: '',
loading: false,
submitLoading: false,
cardShelfsLoading: false, //卡券展架loading
// cardShelfsLoading: false, //卡券展架loading
form: JSON.parse(JSON.stringify(initForm)),
sale_limit: JSON.parse(JSON.stringify(sale_limit)),
goods: JSON.parse(JSON.stringify(goods)),
only: false,
// cardLimitRadio: 0,
// e袋洗适用类目
ableCategory: {
visible: false
},
cardLimitRadio: 1,
rules: {
// cardApplyChannel: { required: true, type: 'array', message: '请选择卡券渠道', trigger: 'change' },
cardName: { required: true, message: '请输入卡券名称', trigger: 'blur' },
......@@ -79,7 +84,7 @@ export default {
},
startDayOptions: [],
// cardApplyChannelOptions: [],
// imgTextList: [],
imgTextList: [],
cardShelfsList: [],
sendChildData: {
storeType: 0,
......@@ -161,7 +166,8 @@ export default {
components: {
'dm-upload-img': dmUploadImg,
'img-text-drag': imgTextDrag,
'dm-goods-input': dmGoodsInput
'dm-goods-input': dmGoodsInput,
'good-category': goodCategory
},
computed: {
asideShow() {
......@@ -185,18 +191,18 @@ export default {
// }
},
//卡券营销--卡券库--新建/修改卡券--放入卡券展架--所有展架集合
cardGetShelfs() {
this.cardShelfsLoading = true;
cardGetShelfs({ cardGetShelfs: '' }).then(res => {
let list = res.result;
list.map(v => {
v.key = v.shelfId;
v.label = v.shelfName;
});
this.cardShelfsList = list;
this.cardShelfsLoading = false;
});
},
// cardGetShelfs() {
// this.cardShelfsLoading = true;
// cardGetShelfs({ cardGetShelfs: '' }).then(res => {
// let list = res.result;
// list.map(v => {
// v.key = v.shelfId;
// v.label = v.shelfName;
// });
// this.cardShelfsList = list;
// this.cardShelfsLoading = false;
// });
// },
//卡券展架方法
// filterMethod(query, item) {
// return item.label.indexOf(query) > -1;
......@@ -234,6 +240,11 @@ export default {
const card = res.result.card;
this.storeMode = card.storeMode === 0 ? 0 : 1;
// this.form.cardApplyChannel = card.cardApplyChannel ? card.cardApplyChannel.split(',') : [];
// ****卡券多的字段******
this.form.gicCouponType = card.gicCouponType;
this.form.giftCouponDiscountType = card.giftCouponDiscountType;
this.form.giftCouponValue = card.giftCouponValue;
// ****卡券多的字段******
this.form.auditingStatus = card.auditingStatus || '';
this.form.coupCardId = this.isCopy ? '' : card.coupCardId;
this.form.cardType = card.cardType;
......@@ -316,29 +327,29 @@ export default {
// }
this.form.cardLimit = card.cardLimit;
// if (this.form.cardLimit === 1) {
// this.cardLimitRadio = 1;
// } else if (this.form.cardLimit === 100) {
// this.cardLimitRadio = 100;
// } else {
// this.cardLimitRadio = 0;
// }
if (this.form.cardLimit === 1) {
this.cardLimitRadio = 1;
} else if (this.form.cardLimit === 100) {
this.cardLimitRadio = 100;
} else {
this.cardLimitRadio = 0;
}
this.form.useCustomCode = card.useCustomCode;
// if (this.isCopy && this.form.useCustomCode === 1) {
// this.form.customCodeBegin = '';
// this.form.customCodeEnd = '';
// this.form.customCodePrefix = '';
// this.form.customCodeSuffix = '';
// this.form.useCodePrefix = 0;
// this.form.useCodeSuffix = 0;
// } else {
this.form.customCodeBegin = card.customCodeBegin;
this.form.customCodeEnd = card.customCodeEnd;
this.form.customCodePrefix = card.customCodePrefix;
this.form.customCodeSuffix = card.customCodeSuffix;
this.form.useCodePrefix = card.useCodePrefix || 0;
this.form.useCodeSuffix = card.useCodeSuffix || 0;
// }
if (this.isCopy && this.form.useCustomCode === 1) {
this.form.customCodeBegin = '';
this.form.customCodeEnd = '';
this.form.customCodePrefix = '';
this.form.customCodeSuffix = '';
this.form.useCodePrefix = 0;
this.form.useCodeSuffix = 0;
} else {
this.form.customCodeBegin = card.customCodeBegin;
this.form.customCodeEnd = card.customCodeEnd;
this.form.customCodePrefix = card.customCodePrefix;
this.form.customCodeSuffix = card.customCodeSuffix;
this.form.useCodePrefix = card.useCodePrefix || 0;
this.form.useCodeSuffix = card.useCodeSuffix || 0;
}
this.form.cardCodeCount = card.cardCodeCount;
this.form.cardEffectiveMode = card.cardEffectiveMode;
this.form.dateTime = [card.beginDate || '', card.endDate || ''];
......@@ -356,22 +367,22 @@ export default {
// imgUrl: card.qcloudImageUrl || '',
// code: card.imageFieldCode || ''
// };
// this.imgTextList = [];
// if (card.teletexts.length > 0) {
// card.teletexts.map(v => {
// this.imgTextList.push({
// imgUrl: v.imageUrl,
// imgCode: v.imageFieldCode,
// text: v.teletextContent,
// cardTeletextId: v.cardTeletextId,
// flag: true,
// maskShow: false,
// copyImgUrl: '',
// copyText: '',
// copyImgCode: ''
// });
// });
// }
this.imgTextList = [];
if (card.teletexts.length > 0) {
card.teletexts.map(v => {
this.imgTextList.push({
imgUrl: v.imageUrl,
imgCode: v.imageFieldCode,
text: v.teletextContent,
cardTeletextId: v.cardTeletextId,
flag: true,
maskShow: false,
copyImgUrl: '',
copyText: '',
copyImgCode: ''
});
});
}
// this.form.shelfIds = card.shelfIds || [];
// this.form.verificationType = card.verificationType || 0;
}
......@@ -541,13 +552,13 @@ export default {
// }
//卡券限制
// if (this.cardLimitRadio === 1) {
// card.cardLimit = 1;
// } else if (this.cardLimitRadio === 100) {
// card.cardLimit = 100;
// } else {
card.cardLimit = this.form.cardLimit;
// }
if (this.cardLimitRadio === 1) {
card.cardLimit = 1;
} else if (this.cardLimitRadio === 100) {
card.cardLimit = 100;
} else {
card.cardLimit = this.form.cardLimit;
}
card.useCustomCode = this.form.useCustomCode;
// card.costValue = this.form.costValue || 0;
......@@ -587,20 +598,20 @@ export default {
// card.imageFieldCode = this.form.image.code;
//图文提交
// let teletextList = [];
// if (this.imgTextList.length > 0) {
// this.imgTextList.map((v, i) => {
// teletextList.push({
// imageUrl: v.imgUrl,
// imageFieldCode: v.imgCode,
// teletextContent: v.text,
// cardTeletextId: v.cardTeletextId,
// sort: i
// });
// });
// }
let teletextList = [];
if (this.imgTextList.length > 0) {
this.imgTextList.map((v, i) => {
teletextList.push({
imageUrl: v.imgUrl,
imageFieldCode: v.imgCode,
teletextContent: v.text,
cardTeletextId: v.cardTeletextId,
sort: i
});
});
}
// card.teletexts = teletextList;
card.teletexts = teletextList;
// if (card.cardType === 2) {
// card.verificationType = this.form.verificationType || 0;
// }
......@@ -878,7 +889,7 @@ export default {
// ------微盟适用商品结束-------
},
mounted() {
this.cardGetShelfs();
// this.cardGetShelfs();
this.getCardDetail();
this.getCategoryList(); // 获取适用商品第一层数据
if (this.isAdd) {
......
<template>
<div>
<div v-loading="loading">
<el-form class="dm-wrap" :model="form" ref="form" :rules="rules" label-width="120px">
<p class="mb20 fz18">基本信息</p>
<el-form-item label="卡券类型">
......@@ -45,6 +45,7 @@
<el-form-item prop="" label="使用条件">
<div class="mb10">
<el-checkbox :disabled="isEdit || isInfo" v-model="goods.flag">适用类目(e袋洗类目)</el-checkbox>
<!-- <el-button type="primary" @click="ableCategory.visible = true" size="mini">编辑</el-button> -->
</div>
<div class="mb10">
<el-checkbox :disabled="isEdit || isInfo" v-model="goods.flag">适用门店</el-checkbox>
......@@ -149,7 +150,7 @@
</el-form-item>
<el-form-item label="优惠内容" prop="giftCouponValue">
<el-input-number controls-position="right" class="w150" :disabled="isEdit || isInfo" v-model="form.giftCouponValue" :precision="0" :min="0"></el-input-number> {{ form.giftCouponDiscountType === 1 ? '件' : '元' }}
<el-input-number controls-position="right" class="w150" :disabled="isEdit || isInfo" v-model="form.giftCouponValue" :precision="0" :min="0"></el-input-number> {{ form.giftCouponDiscountType === 1 ? '元' : '件' }}
<span class="fz13 gray">* 温馨提醒:单笔订单满50元免邮,50元以下需由己方承担10元运费</span>
</el-form-item>
......@@ -225,14 +226,22 @@
<dm-input class="w400" v-model="form.coverDescript" :disabled="isEdit || isInfo" :maxlength="12"></dm-input>
</el-form-item> -->
<p class="mb20 fz18 pt20 mt30">领取和使用规则</p>
<el-form-item prop="cardCodeCount" label="领券次数">
<el-input-number controls-position="right" :min="0" class="w150" v-model="form.cardLimit" :disabled="isEdit || isInfo"></el-input-number>
张/人
<el-form-item prop="cardLimit" label="领券次数">
<el-radio-group v-model="cardLimitRadio" :disabled="isEdit || isInfo">
<el-radio :label="1">1张/人</el-radio>
<el-radio :label="100">100张/人</el-radio>
<el-radio :label="0"> <el-input-number controls-position="right" :min="0" class="w150" v-model="form.cardLimit" :disabled="isEdit || isInfo"></el-input-number> 张/人 <span class="fz13 gray">每个用户领券上限,默认为1</span> </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="useDescript" label="使用说明">
<dm-input class="w400" type="textarea" :rows="4" v-model="form.useDescript" :maxlength="500" :disabled="isInfo"></dm-input>
</el-form-item>
<el-form-item prop="teletexts" label="(选填)图文介绍">
<p class="fz13 gray">图片建议尺寸:900px*500px,大小不超过2M,格式限制JPG;至少上传1组图文,最多输入5000字</p>
<img-text-drag :list.sync="imgTextList" :disabled="form.auditingStatus === 1"></img-text-drag>
</el-form-item>
<!-- <el-form-item prop="teletexts" label="(选填)图文介绍">
<p class="fz13 gray">图片建议尺寸:900px*500px,大小不超过2M,格式限制JPG;至少上传1组图文,最多输入5000字</p>
<img-text-drag :list.sync="imgTextList" :disabled="form.auditingStatus === 1"></img-text-drag>
......@@ -260,6 +269,13 @@
<el-button v-if="isAdd || isCopy" type="primary" @click="xxSyspConfirm">确定</el-button>
</div>
</el-dialog> -->
<el-dialog title="适用类目" :visible.sync="ableCategory.visible" width="800px">
<good-category />
<div slot="footer" class="dialog-footer">
<el-button @click="ableCategory.visible = false">{{ isEdit ? '关闭' : '取消' }}</el-button>
<el-button v-if="isAdd || isCopy" type="primary" @click="ableCategory">确定</el-button>
</div>
</el-dialog>
</div>
</template>
......
<template>
<section class="dm-wrap">
<store-child />
<div class="game-ptyx-header pb10 clearfix">
<span class="pr10">卡券共{{ total }}</span>
<el-button-group class="vertical-middle pr4">
......@@ -35,6 +36,7 @@ import { cardPageList, deleteCard } from '@/service/api/cardApi.js';
import adjustStock from '@/views/card/partials/adjust-Stock';
import cardItem from './partials/card-item';
import tableMethods from '@/mixins/tableMethods.js';
import storeChild from './partials/store-child';
export default {
name: 'card-list',
mixins: [tableMethods],
......@@ -61,7 +63,8 @@ export default {
},
components: {
'adjust-stock': adjustStock,
'card-item': cardItem
'card-item': cardItem,
storeChild
},
created() {
window.scrollTo(0, 0);
......
<template>
<div class="ewash-good">
<el-cascader-panel class="cascader" v-model="value" :options="options" :props="props" @change="handleChange"></el-cascader-panel>
</div>
</template>
<script>
// const options = ['a', 'b', 'c'].map(f1 => {
// return {
// value: f1,
// label: f1,
// children: [1, 2, 3].map(v => {
// return {
// value: f1 + v,
// label: f1 + v,
// children: [1, 2, 3, 4].map(f3 => {
// return {
// value: f1 + v + f3,
// label: f1 + v + f3
// };
// })
// };
// })
// };
// });
export default {
data() {
return {
options: [
{
value: 'zhinan',
label: '指南',
children: [
{
value: 'shejiyuanze',
label: '设计原则',
children: [
{
value: 'yizhi',
label: '一致'
},
{
value: 'fankui',
label: '反馈'
},
{
value: 'xiaolv',
label: '效率'
},
{
value: 'kekong',
label: '可控'
}
]
},
{
value: 'daohang',
label: '导航',
children: [
{
value: 'cexiangdaohang',
label: '侧向导航'
},
{
value: 'dingbudaohang',
label: '顶部导航'
}
]
}
]
},
{
value: 'zujian',
label: '组件',
children: [
{
value: 'basic',
label: 'Basic',
children: [
{
value: 'layout',
label: 'Layout 布局'
},
{
value: 'color',
label: 'Color 色彩'
},
{
value: 'typography',
label: 'Typography 字体'
},
{
value: 'icon',
label: 'Icon 图标'
},
{
value: 'button',
label: 'Button 按钮'
}
]
},
{
value: 'form',
label: 'Form',
children: [
{
value: 'radio',
label: 'Radio 单选框'
},
{
value: 'checkbox',
label: 'Checkbox 多选框'
},
{
value: 'input',
label: 'Input 输入框'
},
{
value: 'input-number',
label: 'InputNumber 计数器'
},
{
value: 'select',
label: 'Select 选择器'
},
{
value: 'cascader',
label: 'Cascader 级联选择器'
},
{
value: 'switch',
label: 'Switch 开关'
},
{
value: 'slider',
label: 'Slider 滑块'
},
{
value: 'time-picker',
label: 'TimePicker 时间选择器'
},
{
value: 'date-picker',
label: 'DatePicker 日期选择器'
},
{
value: 'datetime-picker',
label: 'DateTimePicker 日期时间选择器'
},
{
value: 'upload',
label: 'Upload 上传'
},
{
value: 'rate',
label: 'Rate 评分'
},
{
value: 'form',
label: 'Form 表单'
}
]
},
{
value: 'data',
label: 'Data',
children: [
{
value: 'table',
label: 'Table 表格'
},
{
value: 'tag',
label: 'Tag 标签'
},
{
value: 'progress',
label: 'Progress 进度条'
},
{
value: 'tree',
label: 'Tree 树形控件'
},
{
value: 'pagination',
label: 'Pagination 分页'
},
{
value: 'badge',
label: 'Badge 标记'
}
]
},
{
value: 'notice',
label: 'Notice',
children: [
{
value: 'alert',
label: 'Alert 警告'
},
{
value: 'loading',
label: 'Loading 加载'
},
{
value: 'message',
label: 'Message 消息提示'
},
{
value: 'message-box',
label: 'MessageBox 弹框'
},
{
value: 'notification',
label: 'Notification 通知'
}
]
},
{
value: 'navigation',
label: 'Navigation',
children: [
{
value: 'menu',
label: 'NavMenu 导航菜单'
},
{
value: 'tabs',
label: 'Tabs 标签页'
},
{
value: 'breadcrumb',
label: 'Breadcrumb 面包屑'
},
{
value: 'dropdown',
label: 'Dropdown 下拉菜单'
},
{
value: 'steps',
label: 'Steps 步骤条'
}
]
},
{
value: 'others',
label: 'Others',
children: [
{
value: 'dialog',
label: 'Dialog 对话框'
},
{
value: 'tooltip',
label: 'Tooltip 文字提示'
},
{
value: 'popover',
label: 'Popover 弹出框'
},
{
value: 'card',
label: 'Card 卡片'
},
{
value: 'carousel',
label: 'Carousel 走马灯'
},
{
value: 'collapse',
label: 'Collapse 折叠面板'
}
]
}
]
},
{
value: 'ziyuan',
label: '资源',
children: [
{
value: 'axure',
label: 'Axure Components'
},
{
value: 'sketch',
label: 'Sketch Templates'
},
{
value: 'jiaohu',
label: '组件交互文档'
}
]
}
]
};
}
};
// export default {
// data() {
// return {
// value: [],
// props: {
// expandTrigger: 'hover',
// multiple: true
// },
// options: [...options]
// };
// },
// methods: {
// handleChange(value) {
// console.log(value);
// }
// }
// };
</script>
<style lang="scss" scoped>
.ewash-good {
/deep/ .cascader {
width: 100%;
margin: 0 auto;
}
}
</style>
<template>
<div class="el-transfer">
<!-- 左侧 -->
<div class="el-transfer-panel">
<div class="el-transfer-panel__header">
<label class="el-checkbox">
门店列表
<span class="fr mr10">{{ leftSelect.length }}/{{ leftList.length }}</span>
</label>
</div>
<div class="el-transfer-panel__body">
<div class="el-transfer-panel__list">
<el-checkbox-group v-model="leftSelect">
<el-checkbox class="el-transfer-panel__item" v-for="item in leftList.filter( v => { return !v.select; })" :label="item.key" :key="item.key">
{{ item.key }}
</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
<!-- 中间按钮区域 -->
<div class="inline-block">
<el-button class="mb10" type="primary" size="mini" icon="el-icon-arrow-right" :disabled="!leftSelect.length" @click="saveToRight">转入</el-button>
<br />
<el-button icon="el-icon-close" size="mini" :disabled="!rightSelect.length" @click="deleteRightItems(false)">移除</el-button>
</div>
<!-- 右侧 -->
<div class="el-transfer-panel">
<div class="el-transfer-panel__header">
<label class="el-checkbox">
已选({{ rightList.length }}个门店)
<span class="fr mr10">{{ rightSelect.length }}/{{ rightList.length }}</span>
</label>
</div>
<div class="el-transfer-panel__body">
<div class="el-transfer-panel__list">
<el-checkbox-group v-model="rightSelect">
<el-checkbox class="el-transfer-panel__item" v-for="item in rightList" :label="item.key" :key="item.key">{{ item.key }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'ewash-store-child',
data() {
return {
leftList: [
{
select: false,
key: 1
},
{
select: false,
key: 3
},
{
select: false,
key: 4
},
{
select: false,
key: 5
}
],
leftSelect: [],
rightList: [],
rightSelect: []
};
},
methods: {
// 移至右侧
saveToRight() {
// 右侧push左侧数据
this.rightList = this.rightList.concat(this.leftSelect);
// 左侧只保留未被选择的
this.leftList = this.leftList.map(v => {
v.select = this.leftSelect.includes(v.key);
return v;
});
// 重置左侧已选
this.leftSelect = [];
},
// 移除右侧
deleteRightItems() {
// 移除右侧
this.rightList = this.rightList.filter(v => {
return !this.rightSelect.includes(v.key);
});
// 左侧数据去除disable
this.leftSelect = this.leftList.map(v => {
// 被选择且右侧选中移除
if (v.select && this.rightSelect.includes(v.key)) {
v.select = false;
}
return v;
});
// 清除右侧数据
this.rightSelect = [];
}
}
};
</script>
<template>
<div v-loading="loading">
<el-row>
<el-col :gutter="10" :span="18">
<!-- 预约单信息 -->
<section class="dm-form__wrap statement-edit__info">
<h3 class="dm-title__label">预约单信息</h3>
<el-row :gutter="20">
<el-col :span="12">
<span class="primary-font-color">达摩订单号:</span><span class="regular-font-color">{{ info.templateName || '--' }}</span>
</el-col>
<el-col :span="12">
<span class="primary-font-color">卡券核销码:</span><span class="regular-font-color">{{ info.templateName || '--' }}</span>
</el-col>
<el-col :span="12">
<span class="primary-font-color">预约时间:</span><span class="regular-font-color">{{ info.templateName || '--' }}</span>
</el-col>
<el-col :span="12">
<span class="primary-font-color">会员手机号:</span><span class="regular-font-color">{{ info.templateName }}</span>
</el-col>
<el-col :span="12">
<span class="primary-font-color">会员姓名:</span><span class="regular-font-color">{{ info.templateName }}</span>
</el-col>
<el-col :span="24">
<span class="primary-font-color">订单备注:</span><span class="regular-font-color">{{ info.templateName }}</span>
</el-col>
<el-col :span="24">
<span class="primary-font-color">门店名称:</span><span class="regular-font-color">{{ info.templateName }}</span>
</el-col>
<el-col :span="24">
<span class="primary-font-color">门店地址:</span><span class="regular-font-color">{{ info.templateName }}</span>
</el-col>
</el-row>
<el-table :data="info.ywTable" style="width: 100%" class="mt20">
<el-table-column prop="date" label="名称" minWidth="180"></el-table-column>
<el-table-column prop="name" label="数量" minWidth="180"></el-table-column>
<el-table-column prop="address" label="单价" minWidth="180"></el-table-column>
</el-table>
<p class="text-right mt10">服务总价<span class="fz16 ml5">¥ 38.00</span></p>
<p class="text-right mt10">卡券支付<span class="fz22 ml5 warning-color">¥ 38.00</span></p>
</section>
<!-- e袋洗订单信息 -->
<section class="dm-form__wrap statement-edit__info">
<h3 class="dm-title__label">e袋洗订单信息</h3>
<el-row :gutter="20">
<el-col :span="12">
<span class="primary-font-color">e袋洗单号:</span><span class="regular-font-color">{{ info.templateName || '--' }}</span>
</el-col>
<el-col :span="12">
<span class="primary-font-color">支付流水号:</span><span class="regular-font-color">{{ info.templateName || '--' }}</span>
</el-col>
<el-col :span="12">
<span class="primary-font-color">取件时间:</span><span class="regular-font-color">{{ info.templateName || '--' }}</span>
</el-col>
<el-col :span="24">
<span class="primary-font-color">订单备注:</span><span class="regular-font-color">{{ info.templateName }}</span>
</el-col>
</el-row>
<el-table :data="info.ywTable" style="width: 100%" class="mt20">
<el-table-column prop="date" label="名称" minWidth="180"></el-table-column>
<el-table-column prop="name" label="数量" minWidth="180"></el-table-column>
<el-table-column prop="address" label="单价" minWidth="180"></el-table-column>
</el-table>
<p class="text-right mt10">服务总价<span class="fz16 ml5">¥ 38.00</span></p>
<p class="text-right mt10">订单总价<span class="gray ml5">(含运费10.0元)</span><span class="fz22 ml5 warning-color">¥ 38.00</span></p>
</section>
</el-col>
<el-col :span="6">
<section class="dm-form__wrap statement-edit__info ml5">
<h3 class="dm-title__label"><i class="el-icon-s-order primary-color mr5"></i>订单状态</h3>
<el-timeline>
<el-timeline-item v-for="(order, index) in orderStatus" :key="index" :icon="order.icon" :type="order.type" :color="order.color" :size="order.size" :timestamp="order.timestamp">
{{ order.content }}
</el-timeline-item>
</el-timeline>
</section>
<section class="dm-form__wrap statement-edit__info ml5">
<h3 class="dm-title__label"><i class="el-icon-tickets success-color mr5"></i>订单跟踪</h3>
<el-timeline>
<el-timeline-item v-for="(order, index) in orderList" :key="index" :icon="order.icon" :type="order.type" :color="order.color" :size="order.size">
{{ order.content }}
</el-timeline-item>
</el-timeline>
</section>
<section class="dm-form__wrap statement-edit__info ml5">
<h3 class="dm-title__label"><i class="el-icon-location danger-color mr5"></i>物流跟踪</h3>
<el-timeline>
<el-timeline-item v-for="(logistic, index) in logistics" :key="index" :icon="logistic.icon" :type="logistic.type" :color="logistic.color" :size="logistic.size" :timestamp="logistic.timestamp">
{{ logistic.content }}
</el-timeline-item>
</el-timeline>
</section>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
name: 'ewash-statement-detail',
data() {
return {
info: {
templateName: 'templateNametemplateNametemplateNametemplateName',
ywTable: []
},
orderStatus: [
{
content: '待揽收'
},
{
content: '待送洗'
},
{
content: '清洗中',
type: 'primary',
size: 'large'
},
{
content: '待取件'
},
{
content: '已签收'
}
],
orderList: [
{
content: '门店签收,请至门店取衣',
timestamp: '2018-04-12 20:46'
},
{
content: '洗衣工厂已清洗完成',
timestamp: '2018-04-03 20:46'
},
{
content: '送往清洗中',
timestamp: '2018-04-03 20:46'
},
{
content: '门店已揽收',
timestamp: '2018-04-03 20:46',
type: 'success',
size: 'large'
}
],
logistics: [
{
content: '收件小哥已出发',
timestamp: '2018-04-12 20:46'
},
{
content: '取货完成',
timestamp: '2018-04-03 20:46'
},
{
content: '赶往总部',
timestamp: '2018-04-03 20:46'
},
{
content: '等待送回',
timestamp: '2018-04-03 20:46',
type: 'danger',
size: 'large'
}
]
};
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '/ewash/list' }, { name: 'e袋洗对账单', path: '/ewash/statements' }, { name: '对账单详情', path: '' }]);
}
};
</script>
<style lang="scss" scoped>
.statement-edit {
&__info {
/deep/ .el-col {
padding: 10px 0;
}
padding: 20px 0;
// border-bottom:1px solid #DCDFE6;
}
}
/deep/ {
.el-table__empty-text:before {
margin: 0 auto;
display: none;
}
.el-table__empty-text {
margin: 20px auto;
}
.el-table__empty-block {
min-height: 30px;
}
.dm-form__wrap {
margin: 0 auto;
}
}
</style>
<template>
<div>对账账单</div>
<section class="dm-wrap">
<div class="clearfix pb22">
<el-input v-model="listParams.orderNumber" class="w250" placeholder="请输入业务单号进行搜索" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-date-picker class="w300" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker>
<el-button class="fr" type="primary" @click="exportExcel">导出明细</el-button>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading">
<el-table-column v-for="(v, i) in tableHeader" :show-overflow-tooltip="v.tooltip" :width="v.width" :min-width="v.minWidth" :align="v.align" :key="i" :prop="v.prop" :label="v.label" :formatter="v.formatter" :fixed="v.fixed">
<template slot-scope="scope">
<span v-if="v.formatter" v-html="v.formatter(scope.row)"></span>
<span v-else>{{ scope.row[v.prop] }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="left" width="100px" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="$router.push('/ewash/statements/detail/' + scope.row.orderId)">查看详情</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
<vue-gic-export-excel :dialogVisible.sync="dialogVisible" :dataArr="tableList" :type="2" :excelUrl="excelUrl" :params="params" :projectName="projectName"></vue-gic-export-excel>
</section>
</template>
<script>
import { edxOrderList, exportEdxOrderCsv } from '@/service/api/ewashApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import tableMethods from '@/mixins/tableMethods.js';
export default {
name: 'ewash-statements',
mixins: [tableMethods],
data() {
return {
dialogVisible: false,
excelUrl: '',
params: {},
tableList: [],
tableHeader: [
{ label: '业务单号', prop: 'orderNumber', minWidth: '140', tooltip: true, align: 'left' },
{ label: 'e袋洗单号', prop: 'edaixiOrderNumber', minWidth: '140', tooltip: true, align: 'left' },
{ label: '卡券类型', prop: 'couponTypeName', minWidth: '120', align: 'left' },
{ label: '卡券名称', prop: 'couponName', minWidth: '120', align: 'left' },
{ label: '卡券核销码', prop: 'couponNo', minWidth: '140', tooltip: true, align: 'left' },
{
label: 'E卡扣款时间',
prop: 'edaixiPayTime',
minWidth: '100',
align: 'left',
sortable: 'custom',
formatter: function(row) {
return `<p class="cell-time">
${formatDateTimeByType(row.edaixiPayTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.edaixiPayTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{
label: 'e袋洗扣款',
prop: 'edaixiPayAmount',
minWidth: '100',
tooltip: false,
align: 'left',
formatter: row => {
const value = row.edaixiPayAmount;
if (!value) return '0.00';
if (isNaN(value)) return value;
return value.toFixed(2);
}
}
],
listParams: {
orderNumber: '',
startTime: '',
endTime: '',
currentPage: 1,
pageSize: 20
},
dateTime: ['', ''],
total: 0
};
},
mounted() {
this.getTableList();
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: 'e袋洗对账单', path: '' }]);
},
methods: {
formatDateTimeByType,
exportExcel() {
this.dialogVisible = true;
this.excelUrl = exportEdxOrderCsv;
this.params = {
orderNumber: this.listParams.orderNumber,
startTime: this.listParams.startTime,
endTime: this.listParams.endTime,
requestProject: 'marketing'
};
},
// 获取列表
async getTableList() {
try {
this.loading = true;
if (this.dateTime) {
this.listParams.startTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.startTime = this.listParams.endTime = '';
}
let res = await edxOrderList(this.listParams);
if (res.errorCode === 0 && res.result) {
this.tableList = res.result.result || [];
this.total = res.result.totalCount;
} else {
this.tableList = [];
this.total = 0;
}
this.loading = false;
} catch (err) {
this.loading = false;
}
}
}
};
</script>
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