Commit b7c6e416 by zhangmeng

docs:加了一些注释

parent a44d796d
......@@ -28,7 +28,7 @@ module.exports = {
],
// allow async-await
'generator-star-spacing': 'off',
'no-console': process.env.NODE_ENV === 'production' ? 2 : 0,
'no-console': 0,
'no-alert': process.env.NODE_ENV === 'production' ? 2 : 0, //禁止使用alert confirm prompt
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
// --------------------静态检测-----------------------------
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<!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/main.dab2952454dc4742e476d242448b0300.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.07.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.01.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.00.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.15.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.02.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 type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.15e47b251ca9f81106a4.js></script><script type=text/javascript src=/marketing/static/js/main.91b99d7f8d8cf4bd2ce2.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/main.d03563e9478456e92ff7e590f71edca5.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.07.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.01.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.00.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.15.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.02.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 type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.15e47b251ca9f81106a4.js></script><script type=text/javascript src=/marketing/static/js/main.65f9180c778361a67583.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.
import vueGicAsideMenu from './component.vue'; // 导入组件
const vueGicAside = {
install(Vue, options) {
Vue.component(vueGicAsideMenu.name, vueGicAsideMenu); // vueGicAsideMenu.name 组件的name属性
// 类似通过 this.$xxx 方式调用插件的 其实只是挂载到原型上而已
// Vue.prototype.$xxx // 最终可以在任何地方通过 this.$xxx 调用
// 虽然没有明确规定用$开头 但是大家都默认遵守这个规定
}
};
if (typeof window !== 'undefined' && window.Vue) {
window.Vue.use(vueGicAside);
}
export default vueGicAside;
// export {
// vueGicAsideMenu
// }
......@@ -2,7 +2,7 @@
<div class="layout-container" :style="{ height: bodyHeight + 'px' }">
<vue-gic-header class="user-header-pop" style="z-index: 1999;" :projectName="projectName" :collapseFlag="collapseFlag" @collapseTag="collapseTagHandler" @toRouterView="toRouterView"></vue-gic-header>
<div class="layout">
<vue-gic-aside-menu class="layout-left" v-if="asideShow" :projectName="projectName" :leftModulesName="leftModulesName" :collapseFlag.sync="collapseFlag"></vue-gic-aside-menu>
<aside-menu class="layout-left" v-if="asideShow" :projectName="projectName" :leftModulesName="leftModulesName" :collapseFlag.sync="collapseFlag"></aside-menu>
<div class="layout-right" :class="[{ asideShow: asideShow }, { collapseFlag: asideShow && collapseFlag }]">
<div class="layout-title">
<el-breadcrumb class="dm-breadcrumb" separator="/">
......@@ -25,7 +25,11 @@
</div>
</template>
<script>
import asideMenu from '../aside-menu';
export default {
components: {
asideMenu
},
data() {
return {
collapseFlag: false,
......
......@@ -23,7 +23,7 @@
<el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column>
<el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false">
<template slot-scope="scope">
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formateDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formateDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formatDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formatDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div>
</template>
</el-table-column>
......@@ -45,7 +45,7 @@
<script>
import { getCardList } from '@/service/api/commonApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
props: {
activeId: {
......@@ -90,7 +90,7 @@ export default {
},
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
listParams: {
searchParam: '',
currentPage: 1,
......
......@@ -54,7 +54,7 @@
<script>
import { loadImgTextList, deleteImageText } from '@/service/api/wechatApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import syncImgtext from './syncImgtext';
export default {
props: {
......@@ -112,8 +112,8 @@ export default {
this.textImgList = res.result.result || [];
this.total = res.result.totalCount;
this.textImgList.map(v => {
v.createTimeStr = formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm');
v.updateTimeStr = formateDateTimeByType(v.updateTime, 'yyyy-MM-dd-HH-mm');
v.createTimeStr = formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm');
v.updateTimeStr = formatDateTimeByType(v.updateTime, 'yyyy-MM-dd-HH-mm');
if (this.activeId === v.imageTextWechatId) {
this.selectedData = v;
}
......
......@@ -59,8 +59,8 @@ export default {
},
submit() {
this.popoverShow = false;
console.log(this.newModel);
this.$emit('commit-store', this.newModel);
this.$store.commit('mutations_setStoreObj', this.newModel);
},
close() {
this.popoverShow = false;
......
......@@ -3,7 +3,7 @@
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import config from '@/config';
let baseUrl = window.location.protocol + '//' + window.location.host || '';
// if (config.api === '') {
......@@ -180,7 +180,7 @@ export default {
if (cardticket.cardEffectiveMode) {
html += `<p style="font-size: 12px; color:white;">领取后${cardticket.startDay} - ${cardticket.startDay + cardticket.limitDay}天</p>`;
} else {
html += `<p style="font-size: 12px; color:white;">${formateDateTimeByType(cardticket.beginDate, 'yyyy-MM-dd')}${formateDateTimeByType(cardticket.endDate, 'yyyy-MM-dd')}</p>`;
html += `<p style="font-size: 12px; color:white;">${formatDateTimeByType(cardticket.beginDate, 'yyyy-MM-dd')}${formatDateTimeByType(cardticket.endDate, 'yyyy-MM-dd')}</p>`;
}
html += '</div>';
......
......@@ -4,9 +4,7 @@ import router from './router';
import store from './store';
import { axios } from './service/api/index';
import directives from './directives';
import vueGicAsideMenu from '@/components/aside-menu';
Vue.config.productionTip = false;
Vue.use(vueGicAsideMenu);
Vue.prototype.axios = axios;
Vue.prototype.axios.withCredentials = true;
Object.keys(directives).map(item => Vue.directive(item, directives[item]));
......
import Vue from 'vue';
export default {
methods: {
nonnegative(val) {
if (val < 0) {
val = 0;
this.$tips({ type: 'warning', message: '不能为负值' });
}
}
}
};
......@@ -58,7 +58,7 @@ export default {
name: '大转盘查看',
component: dzpForm,
meta: {
type: 'detail',
type: 'info',
path: '/game/dzp'
}
},
......@@ -101,7 +101,7 @@ export default {
name: '刮刮卡详情',
component: ggkForm,
meta: {
type: 'detail',
type: 'info',
path: '/game/ggk'
}
},
......
// 短信营销
import message from '../../views/message';
import addRecord from '../../views/message/addRecord';
import form from '../../views/message/form';
import record from '../../views/message/record';
import temp from '../../views/message/temp';
import addTemp from '../../views/message/addTemp';
......@@ -50,7 +50,7 @@ export default {
{
path: 'record/add',
name: '新建群发',
component: addRecord,
component: form,
meta: {
path: '/message/record'
}
......
import test from '@/test';
import staticCom from '@/test/example/static-com';
import marketingEvent from '@/test/example/marketing-event';
import storeNew from '@/test/example/store-new';
import card from '@/test/example/card';
import linkTools from '@/test/example/link-tools';
import dmTable from '@/test/example/dm-table';
import wxText from '@/test/example/wx-text';
export default {
path: '/test',
name: '测试组件',
component: test,
redirect: '/test/marketingEvent',
children: [
{
path: 'staticcom',
name: '静态组件',
component: staticCom
},
{
path: 'storeNew',
name: '门店组件',
component: storeNew
},
{
path: 'marketingEvent',
name: '营销事件组件',
component: marketingEvent
},
{
path: 'card',
name: '卡券弹窗组件',
component: card
},
{
path: 'linktools',
name: '链接小工具',
component: linkTools
},
{
path: 'table',
name: '表格封装',
component: dmTable
},
{
path: 'wxtext',
name: '微信文本编辑器',
component: wxText
}
]
};
......@@ -4,8 +4,6 @@ import page403 from '@/views/error/403';
import page404 from '@/views/error/404';
import page500 from '@/views/error/500';
// import test from './modules/test';
//微信营销
import wechat from './modules/wechat';
//游戏营销
......@@ -55,5 +53,4 @@ export default [
name: '未知领域',
component: page404
}
// test
];
......@@ -59,10 +59,6 @@ const mutations = {
}
}
},
mutations_setStoreObj(state, val) {
state.storeObj = val;
},
aside_handler(state, val) {
state.asideShow = val;
},
......
......@@ -31,7 +31,7 @@ export const fillZero = num => {
* @param {*时间} date
* @param {*转换的格式} type
*/
export const formateDateTimeByType = (date, type = 'yyyy-MM-dd-HH-mm-ss') => {
export const formatDateTimeByType = (date, type = 'yyyy-MM-dd-HH-mm-ss') => {
if (!date) {
return '';
}
......
<template>
<section class="dm-wrap">
<div class="pb22 clearfix">
<el-date-picker v-model="dateTime" :picker-options="pickerOptions" class="w250" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="callLogList"></el-date-picker>
<el-select class="dm-select" clearable="" v-model="listParams.callStatus" placeholder="选择通话状态" @change="callLogList">
<el-date-picker v-model="dateTime" :picker-options="pickerOptions" class="w250" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="getTableList"></el-date-picker>
<el-select class="dm-select" clearable="" v-model="listParams.callStatus" placeholder="选择通话状态" @change="getTableList">
<el-option v-for="(v, i) in callStatusOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-select class="dm-select" clearable v-model="listParams.telTaskType" placeholder="选择类型" @change="callLogList">
<el-select class="dm-select" clearable v-model="listParams.telTaskType" placeholder="选择类型" @change="getTableList">
<el-option v-for="(v, i) in telTaskTypeOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-input v-model="listParams.phoneNumber" class="w200" placeholder="输入号码查询" clearable @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-input v-model="listParams.phoneNumber" class="w200" placeholder="输入号码查询" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading">
<el-table-column align="left" width="160" prop="callBeginTime" label="呼叫时间">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss') }}
{{ formatDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column align="left" min-width="150" prop="clerkName" label="主叫">
......@@ -60,15 +60,16 @@
</template>
<script>
import { callLogList } from '@/service/api/calllogApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import tableMethods from '@/mixins/tableMethods.js';
import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js';
export default {
name: 'call-log',
mixins: [filterAvatar],
mixins: [filterAvatar, tableMethods],
data() {
const _vm = this;
const that = this;
return {
formateDateTimeByType,
formatDateTimeByType,
defaultAvatar: require('../../assets/img/head_default.png'),
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
callStatusOption: [{ value: '', label: '全部' }, { value: 1, label: '未接通' }, { value: 2, label: '接通' }],
......@@ -80,9 +81,9 @@ export default {
pickerOptions: {
onPick({ maxDate, minDate }) {
if (new Date(maxDate).getTime() - new Date(minDate).getTime() > 90 * 24 * 60 * 60 * 1000) {
_vm.$tips({ type: 'warning', message: '时间范围不能大于90天' });
_vm.$nextTick(_ => {
_vm.dateTime = ['', ''];
that.$tips({ type: 'warning', message: '时间范围不能大于90天' });
that.$nextTick(_ => {
that.dateTime = ['', ''];
});
}
},
......@@ -95,27 +96,14 @@ export default {
created() {
this.$store.commit('aside_handler', false);
this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '' }]);
this.callLogList();
this.getTableList();
},
methods: {
/**表格方法 */
search() {
this.listParams.currentPage = 1;
this.callLogList();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.callLogList();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.callLogList();
},
//列表请求
async callLogList() {
async getTableList() {
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
......
......@@ -26,7 +26,7 @@
</template>
<script>
import { cardChannelAnalysis, cardTrendEchart } from '@/service/api/cardApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import VeLine from 'v-charts/lib/line.common';
import G2 from '@antv/g2';
import DataSet from '@antv/data-set';
......@@ -37,7 +37,7 @@ export default {
xAxisType: 'time'
};
return {
formateDateTimeByType,
formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
dateTime2: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
loading: false,
......@@ -130,8 +130,8 @@ export default {
endTime: ''
};
if (this.dateTime2) {
params.beginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
params.endTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
params.beginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
params.endTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else {
params.beginTime = '';
params.endTime = '';
......@@ -150,8 +150,8 @@ export default {
//加载图表
async cardTrendEchart() {
if (this.dateTime) {
this.chartParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.chartParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.chartParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.chartParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.chartParams.beginTime = '';
this.chartParams.endTime = '';
......@@ -188,6 +188,7 @@ export default {
console.log(err);
}
},
// 画图方法
initCharts(data) {
var chart = new G2.Chart({
container: 'mountNode',
......
......@@ -4,7 +4,7 @@
<el-input v-model="listParams.searchParam" class="w300" placeholder="请输入订单信息" @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<span class="fz12 gray pl20">*仅显示满足核销条件的订单 </span>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" @row-click="chooseCard">
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" @row-click="rowClick">
<el-table-column :show-overflow-tooltip="false" :width="60" align="left" prop="orderId" label="选择">
<template slot-scope="scope">
<div class="sms-record_left label-hidden">
......@@ -25,8 +25,10 @@
<script>
import { listCoupcardOrder, writeOffCard } from '@/service/api/cardApi.js';
import tableMethods from '@/mixins/tableMethods.js';
export default {
name: 'card-order',
mixins: [tableMethods],
props: {
obj: {
type: Object,
......@@ -63,24 +65,12 @@ export default {
show(val) {
this.listParams.coupLogId = this.obj.coupLogId;
this.listParams.memberId = this.obj.memberId;
if (val) this.listCoupcardOrder();
if (val) this.getTableList();
}
},
methods: {
search() {
this.listParams.currentPage = 1;
this.listCoupcardOrder();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.listCoupcardOrder();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.listCoupcardOrder();
},
// 加载列表
async listCoupcardOrder() {
async getTableList() {
this.loading = true;
try {
let res = await listCoupcardOrder(this.listParams);
......@@ -94,7 +84,8 @@ export default {
close() {
this.$emit('update:show', false);
},
chooseCard(row) {
// 点击行选择卡券
rowClick(row) {
this.selectedId = row.orderId;
this.selectedObj = row;
},
......
......@@ -8,7 +8,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading">
<el-table-column :show-overflow-tooltip="true" width="160" align="left" prop="createTime" label="操作时间">
<template slot-scope="scope">
<p>{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
<p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" width="160" align="left" prop="orderNumber" label="订单流水号">
......@@ -61,14 +61,14 @@
</template>
<script>
import { coupcardCheckList, exportCoupcardCheckExcel } from '@/service/api/cardApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import talbeMethods from '@/mixins/tableMethods.js';
export default {
name: 'card-check',
mixins: [talbeMethods],
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
defaultAvatar: require('../../assets/img/head_default.png'),
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
listParams: {
......@@ -120,8 +120,8 @@ export default {
/**-------辅助方法---------- */
dataTimeFormat() {
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
......
/**
* 卡券新增编辑
*/
import dmUploadImg from '../../components/upload/img';
import dmUploadImg from '@/components/upload/img';
import imgTextDrag from './partials/imgtext-drag';
import { formateDateTimeByType } from '../../utils/index.js';
import { cardGetShelfs, getCardDetail, saveUpdateCard, copyCardDetailService } from '../../service/api/cardApi.js';
import dmGoodsInput from '../../components/goods-input/index.vue';
import { formatDateTimeByType } from '@/utils/index.js';
import { cardGetShelfs, getCardDetail, saveUpdateCard, copyCardDetailService } from '@/service/api/cardApi.js';
import dmGoodsInput from '@/components/goods-input/index.vue';
const initForm = {
auditingStatus: '',
cardType: 0, // 1.卡券类型: 抵金券: 0; 折扣券: 1; 兑换券: 2
......@@ -468,8 +468,8 @@ export default {
if (!this.form.dateTime) {
card.beginDate = card.endDate = '';
} else {
card.beginDate = formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd');
card.endDate = formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd');
card.beginDate = formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd');
card.endDate = formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd');
}
} else {
card.startDay = this.form.startDay || 0;
......
......@@ -147,7 +147,7 @@
import { checkPutonMemberIds, saveUpdatePutonCard, getCardDetail, getCardPutonDetail } from '@/service/api/cardApi.js';
import { listTemplateVariables } from '@/service/api/msgApi.js';
import { sceneSettingList } from '@/service/api/commonApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import itemCard from './partials/item-card.vue';
import varDialog from './partials/variables.vue';
export default {
......@@ -573,7 +573,7 @@ export default {
params.memberIds = this.form.openIds; // 指定会员:memberType = 1, 多个会员memberId用逗号拼接
}
if (this.form.putOnType) {
params.putOnTime = formateDateTimeByType(this.form.putOnTime, 'yyyy-MM-dd-HH-mm-ss');
params.putOnTime = formatDateTimeByType(this.form.putOnTime, 'yyyy-MM-dd-HH-mm-ss');
}
if (this.$route.meta.type === 'edit') {
params.coupCardPutOnId = this.$route.params.id; // 投放主键ID, 新建不传; 修改传
......
......@@ -9,10 +9,10 @@
<el-button @click="sortList('col4')">核销率<i class="el-icon--right" :class="listParams.sortBy === 'col4' ? 'el-icon-caret-top' : listParams.sortBy === 'col4 desc' ? 'el-icon-caret-bottom' : 'el-icon-d-caret'"></i></el-button>
<el-button @click="sortList('col5')">核销额<i class="el-icon--right" :class="listParams.sortBy === 'col5' ? 'el-icon-caret-top' : listParams.sortBy === 'col5 desc' ? 'el-icon-caret-bottom' : 'el-icon-d-caret'"></i></el-button>
</el-button-group>
<el-select class="dm-select" v-model="listParams.cardType" placeholder="选择卡券类型" @change="cardPageList">
<el-select class="dm-select" v-model="listParams.cardType" placeholder="选择卡券类型" @change="refresh">
<el-option v-for="(item, index) in cardTypeOptions" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
<el-input v-model="listParams.searchParam" class="w200 vertical-middle" placeholder="输入卡券名称/备注" clearable @change="cardPageList"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-input v-model="listParams.searchParam" class="w200 vertical-middle" placeholder="输入卡券名称/备注" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button class="fr" type="primary" @click="$router.push('/card/add')">新增卡券</el-button>
</div>
<ul class="clearfix" v-loading="loading" element-loading-text="拼命加载中">
......@@ -30,8 +30,10 @@
import { cardPageList, deleteCard } from '@/service/api/cardApi.js';
import adjustStock from './partials/adjust-Stock';
import cardItem from './partials/card-item';
import tableMethods from '@/mixins/tableMethods.js';
export default {
name: 'card-list',
mixins: [tableMethods],
data() {
return {
listParams: {
......@@ -57,7 +59,7 @@ export default {
},
created() {
window.scrollTo(0, 0);
this.cardPageList();
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '' }]);
},
methods: {
......@@ -73,17 +75,9 @@ export default {
sortList(val) {
this.sortFlag = !this.sortFlag;
this.listParams.sortBy = this.sortFlag ? val + ' desc' : val;
this.cardPageList();
this.refresh();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.cardPageList();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.cardPageList();
},
async cardPageList() {
async getTableList() {
this.loading = true;
try {
let res = await cardPageList(this.listParams);
......@@ -110,7 +104,7 @@ export default {
async deleteCard(coupCardId) {
await deleteCard({ coupCardId });
this.$tips({ type: 'success', message: '删除成功!' });
this.cardPageList();
this.getTableList();
}
}
};
......
......@@ -48,6 +48,7 @@ export default {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架管理', path: '' }]);
},
methods: {
// 加载列表
async getTableList() {
this.loading = true;
try {
......
......@@ -26,7 +26,7 @@
<div class="card-item__detail">
<p class="ellipsis-100">
有效期:<span v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</span>
<span v-if="item.cardEffectiveMode === 0">{{ formateDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formateDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</span>
<span v-if="item.cardEffectiveMode === 0">{{ formatDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formatDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</span>
</p>
<p class="ellipsis-100">
使用条件:<el-popover placement="top-start" width="200" trigger="hover" :content="item.useCondition | filterUseCondition">
......@@ -61,7 +61,7 @@
<script>
import renderTemp from './status-render.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
props: {
item: {
......@@ -80,7 +80,7 @@ export default {
},
data() {
return {
formateDateTimeByType
formatDateTimeByType
};
},
components: {
......
......@@ -47,8 +47,9 @@
<script>
import draggable from 'vuedraggable';
import elUploadWrap from '../../../components/upload/el-upload-wrap';
import elUploadWrap from '@/components/upload/el-upload-wrap';
export default {
name: 'imgtext-drag',
props: {
list: Array,
disabled: {
......
......@@ -5,7 +5,7 @@
<div class="inline-block">
<p class="dm-card__item__title">{{ item.cardName }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formateDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formateDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formatDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formatDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
</div>
</div>
<p class="dm-card__item--bottom">
......@@ -15,12 +15,12 @@
</template>
<script>
import { formateDateTimeByType } from '@/utils';
import { formatDateTimeByType } from '@/utils';
export default {
name: 'item-card',
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
loadErrorImg: require('../../../assets/img/loaderror.png')
};
},
......
......@@ -16,7 +16,7 @@
<el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column>
<el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false">
<template slot-scope="scope">
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formateDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formateDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formatDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formatDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div>
</template>
</el-table-column>
......@@ -44,7 +44,7 @@
<script>
import { cardPageList, saveShelfCard } from '@/service/api/cardApi.js';
import { throttle } from '@/utils/index.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
name: 'shelf-add',
props: {
......@@ -65,7 +65,7 @@ export default {
data() {
return {
throttle,
formateDateTimeByType,
formatDateTimeByType,
loading: false,
listParams: {
currentPage: 1,
......
......@@ -19,7 +19,7 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" v-loading="recordLoading" @sort-change="sortList">
<el-table-column width="135" align="left" prop="receiveTime" label="领取时间" fixed="left">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm') }}
{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm') }}
</template>
</el-table-column>
<el-table-column width="80" align="left" prop="cardTypeExcel" label="卡券类型"> </el-table-column>
......@@ -30,7 +30,7 @@
<el-table-column min-width="100" align="left" prop="attentionStatus" label="关注状态"> </el-table-column>
<el-table-column width="135" align="left" prop="transferDate" label="关注时间">
<template slot-scope="scope">
{{ scope.row.transferDate ? formateDateTimeByType(scope.row.transferDate, 'yyyy-MM-dd-HH-mm') : '--' }}
{{ scope.row.transferDate ? formatDateTimeByType(scope.row.transferDate, 'yyyy-MM-dd-HH-mm') : '--' }}
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" :key="Math.random()" prop="clerkId" label="会员信息">
......@@ -47,7 +47,7 @@
</section>
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { templateReceiveCardPage, exportTemplateReceivedExcel } from '@/service/api/cardApi.js';
import tableMethods from '@/mixins/tableMethods.js';
export default {
......@@ -56,7 +56,7 @@ export default {
data() {
return {
defaultAvatar: require('../../assets/img/head_default.png'),
formateDateTimeByType,
formatDateTimeByType,
dateTime: [Date.now() - 3 * 30 * 24 * 60 * 60 * 1000, Date.now()],
dateTime2: ['', ''],
statusOptions: [{ value: '', label: '全部关注状态' }, { value: 0, label: '已关注' }, { value: 1, label: '未关注' }],
......@@ -105,15 +105,15 @@ export default {
async getTableList() {
this.recordLoading = true;
if (this.dateTime) {
this.listParams.receiveBeginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.receiveEndTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.receiveBeginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.receiveEndTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.receiveBeginTime = '';
this.listParams.receiveEndTime = '';
}
if (this.dateTime2) {
this.listParams.attentionBeginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.attentionEndTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
this.listParams.attentionBeginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.attentionEndTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else {
this.listParams.attentionBeginTime = '';
this.listParams.attentionEndTime = '';
......@@ -128,15 +128,15 @@ export default {
this.dialogVisible = true;
this.excelUrl = exportTemplateReceivedExcel;
if (this.dateTime) {
this.listParams.receiveBeginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.receiveEndTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.receiveBeginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.receiveEndTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.receiveBeginTime = '';
this.listParams.receiveEndTime = '';
}
if (this.dateTime2) {
this.listParams.attentionBeginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.attentionEndTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
this.listParams.attentionBeginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.attentionEndTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else {
this.listParams.attentionBeginTime = '';
this.listParams.attentionEndTime = '';
......
......@@ -15,12 +15,12 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" v-loading="recordLoading" @sort-change="sortList">
<el-table-column width="135" align="left" prop="receiveTime" label="领取时间" fixed="left" sortable="custom">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm') }}
{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm') }}
</template>
</el-table-column>
<el-table-column width="135" align="left" prop="writeOffTime" label="核销时间" fixed="left" sortable="custom">
<template slot-scope="scope">
{{ scope.row.useTime ? formateDateTimeByType(scope.row.useTime, 'yyyy-MM-dd-HH-mm') : '--' }}
{{ scope.row.useTime ? formatDateTimeByType(scope.row.useTime, 'yyyy-MM-dd-HH-mm') : '--' }}
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" :key="Math.random()" prop="clerkId" label="会员信息">
......@@ -77,7 +77,7 @@
</section>
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { cardRecordPage, coupcardDestroy, exportReceivedRecordExcel } from '@/service/api/cardApi.js';
import cardOrder from './card-order';
import tableMethods from '@/mixins/tableMethods.js';
......@@ -90,7 +90,7 @@ export default {
data() {
return {
defaultAvatar: require('../../assets/img/head_default.png'),
formateDateTimeByType,
formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
dateTime2: ['', ''],
cardStatusOptions: [{ value: '', label: '全部卡券状态' }, { value: 4, label: '待核销' }, { value: 5, label: '已核销' }, { value: 6, label: '已过期' }, { value: 7, label: '已销毁' }, { value: 8, label: '已占用' }],
......@@ -140,15 +140,15 @@ export default {
async getTableList() {
this.recordLoading = true;
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
}
if (this.dateTime2) {
this.listParams.writeOffBeginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.writeOffEndTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
this.listParams.writeOffBeginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.writeOffEndTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else {
this.listParams.writeOffBeginTime = '';
this.listParams.writeOffEndTime = '';
......@@ -189,15 +189,15 @@ export default {
this.dialogVisible = true;
this.excelUrl = exportReceivedRecordExcel;
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
}
if (this.dateTime2) {
this.listParams.writeOffBeginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.writeOffEndTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
this.listParams.writeOffBeginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.writeOffEndTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else {
this.listParams.writeOffBeginTime = '';
this.listParams.writeOffEndTime = '';
......
......@@ -6,7 +6,7 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" row-key="putonTime" v-loading="loading">
<el-table-column width="160" align="left" prop="putonTime" label="投放时间" fixed="left">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.putonTime, 'yyyy-MM-dd-HH-mm') }}
{{ formatDateTimeByType(scope.row.putonTime, 'yyyy-MM-dd-HH-mm') }}
</template>
</el-table-column>
<el-table-column width="150" align="left" prop="cardName" label="卡券名称">
......@@ -40,7 +40,7 @@
</template>
<script>
import { cardRecordPage, deleteCardPuton } from '@/service/api/cardApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue';
import tableMethods from '@/mixins/tableMethods.js';
export default {
......@@ -51,7 +51,7 @@ export default {
},
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
loading: false,
recordList: [],
recordHeader: [
......
<template>
<section class="dm-wrap">
<div class="pb22">
<vue-gic-store-group class="w200 pr4" :model="currentData" @commit-store="storeChange"></vue-gic-store-group>
<el-input class="w300" v-model="listParams.searchParam" clearable placeholder="输入门店名称/代码/地区名" @change="searchParam"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<store-group class="w200 pr4" :model="currentData" @commit-store="storeChange"></store-group>
<el-input class="w300" v-model="listParams.searchParam" clearable placeholder="输入门店名称/代码/地区名" @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" @sort-change="sortList">
<el-table-column min-width="140" align="left" prop="shelfName" label="门店名称">
......@@ -34,8 +34,10 @@
<script>
import { pageCardShelfs } from '@/service/api/cardApi.js';
import storeGroup from '@/components/storeGroup/index';
import tableMethods from '@/mixins/tableMethods.js';
export default {
name: 'card-record-send',
mixins: [tableMethods],
data() {
return {
loading: false,
......@@ -55,41 +57,34 @@ export default {
storeGroup
},
created() {
this.pageCardShelfs();
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '' }]);
},
methods: {
//门店回调
storeChange(val) {
console.log(val);
this.currentData = val;
if (val.id) {
this.listParams.storeGroupId = val.id;
this.pageCardShelfs();
this.refresh();
}
},
searchParam() {
this.listParams.currentPage = 1;
this.pageCardShelfs();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.pageCardShelfs();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.pageCardShelfs();
},
async pageCardShelfs() {
async getTableList() {
this.loading = true;
let res = await pageCardShelfs(this.listParams);
this.tableList = res.result.result;
this.total = res.result.totalCount;
this.loading = false;
try {
let res = await pageCardShelfs(this.listParams);
this.tableList = res.result.result || [];
this.total = res.result.totalCount || 0;
this.loading = false;
} catch (err) {
console.log(err);
}
},
//列表 排序
sortList(obj) {
this.listParams.sortBy = obj.order === 'descending' ? obj.prop + ' desc' : obj.prop;
this.pageCardShelfs();
this.getTableList();
}
}
};
......
......@@ -27,7 +27,7 @@
</template>
<script>
import { ecmBatchSendInfos } from '@/service/api/ecmApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import batchDialog from './batch-dialog';
export default {
......@@ -59,7 +59,7 @@ export default {
align: 'left',
fixed: 'left',
formatter(row) {
return formateDateTimeByType(row.execTime, 'yyyy-MM-dd-HH-mm');
return formatDateTimeByType(row.execTime, 'yyyy-MM-dd-HH-mm');
}
},
{
......@@ -123,8 +123,8 @@ export default {
async ecmBatchSendInfos() {
this.loading = true;
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = this.listParams.senendTimedEndTime = '';
}
......@@ -139,7 +139,7 @@ export default {
this.dialogShow = true;
this.dialogId = row.ecmPlanQuartzLogId;
this.dialogEcmPlanName = this.$route.params.name;
this.dialogExecTime = formateDateTimeByType(row.execTime, 'yyyy-MM-dd-HH-mm-ss');
this.dialogExecTime = formatDateTimeByType(row.execTime, 'yyyy-MM-dd-HH-mm-ss');
console.log(this.dialogId);
}
}
......
......@@ -39,7 +39,7 @@
</template>
<script>
import { ecmCurrentSendInfos, ecmCurrentSendDetails, exportCurrentSendDetails } from '@/service/api/ecmApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import memberInfo from '@/components/member-info/index.vue';
const typeOptions = [{ value: '', label: '所有类型' }, { value: 'teletext', label: '图文' }, { value: 'text', label: '文本' }, { value: 'image', label: '图片' }, { value: 'card', label: '卡券' }, { value: 'wxa', label: '小程序' }, { value: 'message', label: '短信' }, { value: 'teltask', label: '话务' }];
export default {
......@@ -101,7 +101,7 @@ export default {
minWidth: '120',
align: 'left',
formatter(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm');
return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm');
}
},
{ label: '会员信息', prop: 'marketingType', minWidth: '120', align: 'left', component: 'member-info' },
......@@ -206,8 +206,8 @@ export default {
/*-----------辅助方法-------------*/
formatterTimeFunc() {
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = this.listParams.senendTimedEndTime = '';
}
......
......@@ -254,7 +254,7 @@ import { sceneSettingList } from '@/service/api/commonApi.js';
import { checkMessageSendCount } from '@/service/api/messageApi.js';
import { klflStrategy } from '@/service/api/gameApi.js'; // 会员等级列表接口
import marketingEvent from './marketing-event/index.vue';
import { formateDateTimeByType, sleep } from '@/utils/index.js';
import { formatDateTimeByType, sleep } from '@/utils/index.js';
import itemCard from './partials/item-card.vue';
import varDialog from './partials/variables.vue';
export default {
......@@ -678,8 +678,8 @@ export default {
memberSearchDTO: this.form.memberType ? this.form.memberGroupIds : this.form.memberSearchDTO,
searchJson: this.getSaveData,
expireType: this.form.expireType,
beginDate: this.form.expireType ? formateDateTimeByType(this.form.beginDate, 'yyyy-MM-dd-HH-mm-ss') : '',
endDate: this.form.expireType ? formateDateTimeByType(this.form.endDate, 'yyyy-MM-dd-HH-mm-ss') : '',
beginDate: this.form.expireType ? formatDateTimeByType(this.form.beginDate, 'yyyy-MM-dd-HH-mm-ss') : '',
endDate: this.form.expireType ? formatDateTimeByType(this.form.endDate, 'yyyy-MM-dd-HH-mm-ss') : '',
cardNoticeType: this.form.cardNoticeType,
templateNoticeFlag: this.form.templateNoticeFlag,
......
......@@ -15,7 +15,7 @@ export const fillZero = num => {
* @param {*时间} date
* @param {*转换的格式} type
*/
export const formateDateTimeByType = (date, type = 'yyyy-MM-dd-HH-mm-ss') => {
export const formatDateTimeByType = (date, type = 'yyyy-MM-dd-HH-mm-ss') => {
if (!date) {
return '';
}
......
......@@ -5,7 +5,7 @@
<div class="inline-block">
<p class="dm-card__item__title">{{ item.cardName }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formateDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formateDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formatDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formatDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
</div>
</div>
<p class="dm-card__item--bottom">
......@@ -15,12 +15,12 @@
</template>
<script>
import { formateDateTimeByType } from '../assets/utils.js';
import { formatDateTimeByType } from '../assets/utils.js';
export default {
name: 'item-card',
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
loadErrorImg: require('../assets/img/loaderror.png')
};
},
......
......@@ -22,7 +22,7 @@
<el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column>
<el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false">
<template slot-scope="scope">
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formateDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formateDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formatDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formatDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div>
</template>
</el-table-column>
......@@ -48,7 +48,7 @@
<script>
import { getCardList } from '../assets/api.js';
import { formateDateTimeByType } from '../assets/utils.js';
import { formatDateTimeByType } from '../assets/utils.js';
export default {
name: 'lib-card',
props: {
......@@ -74,7 +74,7 @@ export default {
},
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
listParams: {
searchParam: '',
currentPage: 1,
......
......@@ -48,7 +48,7 @@
<script>
import { loadImgTextList } from '../assets/api.js';
import { formateDateTimeByType } from '../assets/utils.js';
import { formatDateTimeByType } from '../assets/utils.js';
export default {
name: 'lib-teletext',
props: {
......@@ -81,8 +81,8 @@ export default {
this.textImgList = res.result.result || [];
this.total = res.result.totalCount;
this.textImgList.map(v => {
v.createTimeStr = formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm');
v.updateTimeStr = formateDateTimeByType(v.updateTime, 'yyyy-MM-dd-HH-mm');
v.createTimeStr = formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm');
v.updateTimeStr = formatDateTimeByType(v.updateTime, 'yyyy-MM-dd-HH-mm');
});
}
this.loading = false;
......
......@@ -5,7 +5,7 @@
<div class="inline-block">
<p class="dm-card__item__title">{{ item.cardName }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formateDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formateDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formatDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formatDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
</div>
</div>
<p class="dm-card__item--bottom">
......@@ -15,12 +15,12 @@
</template>
<script>
import { formateDateTimeByType } from '@/utils';
import { formatDateTimeByType } from '@/utils';
export default {
name: 'item-card',
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
loadErrorImg: require('../../../assets/img/loaderror.png')
};
},
......
<template>
<section class="eval-charts">
<div class="dm-form__wrap">
<vue-gic-store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></vue-gic-store-group>
<store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<span class="pl10 danger-color">*以下数据取自近180天</span>
</div>
<div class="dm-form__wrap">
......@@ -59,9 +59,6 @@ import storeGroup from '@/components/storeGroup';
import { evaluateOverviewEchart } from '@/service/api/evaluationApi.js';
import detail from './detail';
import scoredetail from './scoredetail';
import demoData from './demo.js';
export default {
components: {
storeGroup,
......@@ -96,7 +93,6 @@ export default {
let res = await evaluateOverviewEchart({ currentStoreGroupId: id, chartType: type });
if (type === 1) {
const result = res.result;
// const result = demoData.result;
let list = [];
result.sundayList.map((v, i) => {
list.push({ day: v, name: '订单总数', temperature: result.yDataorders[i] });
......
export default {
errorCode: 0,
message: null,
detailError: null,
result: {
yDataorders: ['0', '0', '0', '0', '0', '0', '0', '0', '153', '522', '443', '370', '380', '352', '383', '307', '298', '270', '235', '199', '231', '214', '279', '358', '495', '305', '100'],
yDatagood: ['0', '0', '0', '0', '0', '0', '0', '0', '9', '35', '21', '13', '21', '18', '19', '20', '10', '13', '10', '10', '9', '9', '9', '9', '14', '15', '1'],
yDataevaluate: ['0', '0', '0', '0', '0', '0', '0', '0', '9', '35', '22', '13', '21', '18', '19', '20', '10', '13', '10', '10', '9', '9', '9', '9', '14', '15', '1'],
sundayList: ['2018-04-15', '2018-04-22', '2018-04-29', '2018-05-06', '2018-05-13', '2018-05-20', '2018-05-27', '2018-06-03', '2018-06-10', '2018-06-17', '2018-06-24', '2018-07-01', '2018-07-08', '2018-07-15', '2018-07-22', '2018-07-29', '2018-08-05', '2018-08-12', '2018-08-19', '2018-08-26', '2018-09-02', '2018-09-09', '2018-09-16', '2018-09-23', '2018-09-30', '2018-10-07', '2018-10-14'],
xDataevaluate: ['201815', '201816', '201817', '201818', '201819', '201820', '201821', '201822', '201823', '201824', '201825', '201826', '201827', '201828', '201829', '201830', '201831', '201832', '201833', '201834', '201835', '201836', '201837', '201838', '201839', '201840', '201841']
}
};
<template>
<el-dialog title="趋势详情" :visible.sync="show" width="70%" :before-close="close">
<vue-gic-store-group width="240" class="pb22" :model="storeGroupData" @commit-store="getStoreGroup"></vue-gic-store-group>
<store-group width="240" class="pb22" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<el-table tooltipEffect="light" :data="tableList" height="350" style="width: 100%" v-loading="loading" @sort-change="sortList">
<el-table-column :show-overflow-tooltip="true" :min-width="140" align="left" prop="storeName" label="门店名称">
<template slot-scope="scope">
......
<template>
<section class="eval-newest dm-wrap">
<div class="clearfix pb22">
<vue-gic-store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></vue-gic-store-group>
<store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<el-date-picker v-if="$route.meta.type !== 'bad'" class="w250" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker>
<el-input v-model="listParams.searchName" class="w300" placeholder="订单号/门店名称/会员姓名/卡号" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button icon="iconfont icon-icon_yunxiazai fz14" v-if="$route.meta.type !== 'bad'" class="fr" type="primary" @click="exportLatestEvaluate"> 下载Excel</el-button>
......@@ -24,7 +24,7 @@
</el-table-column>
<el-table-column :show-overflow-tooltip="false" width="160" align="left" prop="createTime" label="评价时间">
<template slot-scope="scope">
<p>{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
<p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
<p class="fz13 gray">订单号:{{ scope.row.orderNumber }}</p>
</template>
</el-table-column>
......@@ -108,7 +108,7 @@
</template>
<script>
import { latestEvaluationList, evaluateBad, evaluationStoreExists, allocateEvaluation, changeShowStatus, exportLatestEvaluate } from '@/service/api/evaluationApi.js';
import { formateDateTimeByType, filterAvatar } from '@/utils/index.js';
import { formatDateTimeByType, filterAvatar } from '@/utils/index.js';
import reply from './reply';
import storeGroup from '@/components/storeGroup';
import tableMethods from '@/mixins/tableMethods.js';
......@@ -118,7 +118,7 @@ export default {
data() {
return {
storeGroupData: {},
formateDateTimeByType,
formatDateTimeByType,
filterAvatar,
defaultAvatar: require('../../assets/img/head_default.png'),
loading: false,
......@@ -187,7 +187,7 @@ export default {
visiteStatus: 1,
memberId: row.memberId,
storeId: row.storeId,
createTime: formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss'),
createTime: formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss'),
evaluatedId: row.evaluatedId
});
if (res.errorCode === 0) {
......@@ -288,8 +288,8 @@ export default {
if (!this.dateTime) {
this.listParams.beginTime = this.listParams.endDate = '';
} else {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
}
}
}
......
......@@ -31,7 +31,7 @@
</div>
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { getSuggestionsDetail, handleSuggestions } from '@/service/api/evaluationApi.js';
export default {
data() {
......@@ -86,7 +86,7 @@ export default {
try {
let res = await getSuggestionsDetail({ problemId: this.$route.params.id });
const result = res.result;
this.form.createTimeStr = formateDateTimeByType(result.createTime, 'yyyy-MM-dd-HH-mm-ss');
this.form.createTimeStr = formatDateTimeByType(result.createTime, 'yyyy-MM-dd-HH-mm-ss');
this.form.memberName = result.memberName || '';
this.form.thirdNickName = result.thirdNickName || '';
this.form.imgs = result.imgs || [];
......
<template>
<el-dialog title="门店评分" :visible.sync="show" width="70%" :before-close="close">
<vue-gic-store-group width="240" class="pb22" :model="storeGroupData" @commit-store="getStoreGroup"></vue-gic-store-group>
<store-group width="240" class="pb22" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<el-table tooltipEffect="light" :data="tableList" height="350" style="width: 100%" v-loading="loading" @sort-change="sortList">
<el-table-column :show-overflow-tooltip="true" :min-width="140" align="left" prop="storeName" label="门店名称">
<template slot-scope="scope">
......
......@@ -13,7 +13,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" element-loading-text="拼命加载中">
<el-table-column :show-overflow-tooltip="true" width="160" align="left" :key="Math.random()" prop="createTime" label="评价时间">
<template slot-scope="scope">
<p>{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
<p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="200" align="left" :key="Math.random()" prop="storeName" label="门店">
......@@ -54,12 +54,12 @@
</template>
<script>
import { pageSuggestionsList, exportProblemsCsv } from '@/service/api/evaluationApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
name: 'suggestion',
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
defaultAvatar: require('../../assets/img/head_default.png'),
loading: false,
tableList: [],
......@@ -139,8 +139,8 @@ export default {
if (!this.dateTime) {
this.listParams.beginTime = this.listParams.endDate = '';
} else {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
}
}
}
......
......@@ -14,7 +14,7 @@
</template>
<script>
import VueQr from 'vue-qr';
import { formateDateTimeByType, downloadFile } from '@/utils/index.js';
import { formatDateTimeByType, downloadFile } from '@/utils/index.js';
export default {
name: 'links',
components: {
......@@ -59,7 +59,7 @@ export default {
downloadImg() {
const qrWrap = document.getElementById('qrWrap');
const qrImg = qrWrap && qrWrap.childNodes[0].src;
downloadFile(this.gameTypeName + '-' + this.obj.gameName + formateDateTimeByType(this.obj.gameStartTime, 'yyyy-MM-dd-HH-mm-ss') || '游戏链接', qrImg);
downloadFile(this.gameTypeName + '-' + this.obj.gameName + formatDateTimeByType(this.obj.gameStartTime, 'yyyy-MM-dd-HH-mm-ss') || '游戏链接', qrImg);
}
}
};
......
......@@ -110,14 +110,13 @@
<script>
import { detailLottery, saveLottery } from '@/service/api/gameApi.js';
import { numberToChinese, formateDateTimeByType } from '@/utils/index.js';
import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar';
import nonnegative from '@/mixins/nonnegative.js';
import editAlertMixin from '../common/editAlertMixin.js';
let key = Date.now();
let result = {};
export default {
mixins: [nonnegative, editAlertMixin],
mixins: [editAlertMixin],
data() {
const that = this;
return {
......@@ -177,7 +176,7 @@ export default {
gameIntegral: { type: 'number', required: true, message: '请输入消耗积分', trigger: 'blur' },
gameWinningRate: { type: 'number', required: true, message: '中奖概率不能为空', trigger: 'blur' }
},
isInfo: this.$route.meta.type === 'detail',
isInfo: this.$route.meta.type === 'info',
isEdit: this.$route.meta.type === 'edit',
isAdd: this.$route.meta.type === 'add',
pickerOptions: {
......@@ -319,8 +318,8 @@ export default {
let params = {
gameId: this.form.gameId, // 游戏主键ID (新建传空, 修改必传)
gameName: this.form.gameName, // 1.游戏名称
gameStartTimeStr: this.form.dateTime ? formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 startDate
gameEndTimeStr: this.form.dateTime ? formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 endDate
gameStartTimeStr: this.form.dateTime ? formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 startDate
gameEndTimeStr: this.form.dateTime ? formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 endDate
skinType: this.form.skinType, // 1.皮肤模板: 0-自定义 1-黑金 2-红色 3- 霓虹灯 (不为0时, banner图标和 背景颜色隐藏, 对应属性不用传值)
gameImageFieldCode: this.form.skinType === 0 ? this.form.gameImage.code : '', // 3.上传后返回的banner图标 code (skinType!=0 时为空)
gameImageUrl: this.form.skinType === 0 ? this.form.gameImage.imgUrl : '', // 3.上传后返回的banner图标 URL (skinType!=0为空)
......
......@@ -33,7 +33,7 @@
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { loadLotteryList, delLotteryService } from '@/service/api/gameApi.js';
import linksMixin from '../common/linksMixin.js';
import tableMethods from '@/mixins/tableMethods.js';
......@@ -93,7 +93,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{
......@@ -103,7 +103,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{ label: '参与人数', prop: 'userCount', width: '80', align: 'left' },
......
......@@ -12,7 +12,7 @@
<el-table tooltipEffect="light" :data="recordList" style="width:100%" v-loading="loading">
<el-table-column :min-width="150" align="left" label="中奖时间">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss') }}
{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column :min-width="150" align="left" label="会员信息">
......@@ -63,12 +63,12 @@
<script>
import { loadLotteryRecordList, exportLotteryExcel } from '@/service/api/gameApi.js';
import filterAvatar from '@/mixins/filterAvater.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
mixins: [filterAvatar],
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }],
loading: false,
listParams: {
......@@ -103,8 +103,8 @@ export default {
this.loading = true;
try {
if (this.dateTime) {
this.listParams.startDate = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.startDate = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
}
let res = await loadLotteryRecordList(this.listParams);
this.recordList = res.result.result || [];
......@@ -128,8 +128,8 @@ export default {
if (!this.date) {
this.listParams.startDate = this.listParams.endDate = '';
} else {
this.listParams.startDate = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.startDate = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
}
this.params = {
searchParam: this.listParams.searchParam,
......
......@@ -100,13 +100,12 @@
<script>
import { detailLottery, saveLottery } from '@/service/api/gameApi.js';
import { numberToChinese, formateDateTimeByType } from '@/utils/index.js';
import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar';
import nonnegative from '@/mixins/nonnegative.js';
import editAlertMixin from '../common/editAlertMixin.js';
let result = {};
export default {
mixins: [nonnegative, editAlertMixin],
mixins: [editAlertMixin],
data() {
const that = this;
return {
......@@ -273,8 +272,8 @@ export default {
let params = {
gameId: this.form.gameId, // 游戏主键ID (新建传空, 修改必传)
gameName: this.form.gameName, // 1.游戏名称
gameStartTimeStr: this.form.dateTime ? formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 startDate
gameEndTimeStr: this.form.dateTime ? formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 endDate
gameStartTimeStr: this.form.dateTime ? formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 startDate
gameEndTimeStr: this.form.dateTime ? formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 endDate
skinType: this.form.skinType, // 1.皮肤模板: 0-自定义 1-黑金 2-红色 3- 霓虹灯 (不为0时, banner图标和 背景颜色隐藏, 对应属性不用传值)
gameImageFieldCode: this.form.skinType === 0 ? this.form.gameImage.code : '', // 3.上传后返回的banner图标 code (skinType!=0 时为空)
gameImageUrl: this.form.skinType === 0 ? this.form.gameImage.imgUrl : '', // 3.上传后返回的banner图标 URL (skinType!=0为空)
......
......@@ -32,7 +32,7 @@
</section>
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { loadLotteryList, delLotteryService } from '@/service/api/gameApi.js';
import linksMixin from '../common/linksMixin.js';
import tableMethods from '@/mixins/tableMethods.js';
......@@ -92,7 +92,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{
......@@ -102,7 +102,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{ label: '参与人数', prop: 'userCount', width: '80', align: 'left' },
......
......@@ -12,7 +12,7 @@
<el-table tooltipEffect="light" :data="recordList" style="width:100%" v-loading="loading">
<el-table-column :min-width="150" align="left" label="中奖时间">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss') }}
{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column :min-width="150" align="left" label="会员信息">
......@@ -62,13 +62,13 @@
</template>
<script>
import { loadLotteryRecordList, exportLotteryExcel } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js';
export default {
mixins: [filterAvatar],
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }],
loading: false,
listParams: {
......@@ -106,8 +106,8 @@ export default {
async loadLotteryRecordList() {
this.loading = true;
if (this.dateTime) {
this.listParams.startDate = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.startDate = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
}
let res = await loadLotteryRecordList(this.listParams);
this.recordList = res.result.result || [];
......@@ -128,8 +128,8 @@ export default {
if (!this.date) {
this.listParams.startDate = this.listParams.endDate = '';
} else {
this.listParams.startDate = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.startDate = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
}
this.params = {
searchParam: this.listParams.searchParam,
......
......@@ -193,7 +193,7 @@
<script>
import { klflDetail, klflSave, klflStrategyList, klflPrizeList, klflStrategySort, klflStrategyDel, klflDownTemp } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import dmUploadImg from '@/components/upload/img';
import dmUploadAvatar from '@/components/upload/avatar';
import strategy from './strategy';
......@@ -538,8 +538,8 @@ export default {
backgroudImgFieldCode: this.currentBg.imgFieldCode,
buttonImgUrl: this.currentBtn.imageUrl,
buttonImgFieldCode: this.currentBtn.imgFieldCode,
gameStartTime: formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss'),
gameEndTime: formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss'),
gameStartTime: formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss'),
gameEndTime: formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss'),
gameIntroduction: this.form.gameIntroduction,
codeType: this.form.codeType,
singleCode: this.form.singleCode,
......
......@@ -34,7 +34,7 @@
</section>
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { LoadKlflList, deleteGame, createQrCode, downloadQrCode } from '@/service/api/gameApi.js';
import linksMixin from '../common/linksMixin.js';
import tableMethods from '@/mixins/tableMethods.js';
......@@ -76,7 +76,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{
......@@ -86,7 +86,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{ label: '参与人数', prop: 'cyrs', width: '80', align: 'left' },
......
......@@ -30,7 +30,7 @@
</template>
<script>
import { klflReportList, klflRecordExcel } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js';
export default {
mixins: [filterAvatar],
......@@ -50,7 +50,7 @@ export default {
prop: 'createTime',
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{ label: '手机号码', prop: 'phoneNumber', align: 'left' },
......@@ -100,8 +100,8 @@ export default {
if (!this.date) {
this.listParams.startDate = this.listParams.endDate = '';
} else {
this.listParams.startDate = formateDateTimeByType(this.date[0], 'yyyy-MM-dd');
this.listParams.endDate = formateDateTimeByType(this.date[1], 'yyyy-MM-dd');
this.listParams.startDate = formatDateTimeByType(this.date[0], 'yyyy-MM-dd');
this.listParams.endDate = formatDateTimeByType(this.date[1], 'yyyy-MM-dd');
}
let res = await klflReportList(this.listParams);
this.rankList = res.result.result || [];
......@@ -122,8 +122,8 @@ export default {
if (!this.date) {
this.listParams.startDate = this.listParams.endDate = '';
} else {
this.listParams.startDate = formateDateTimeByType(this.date[0], 'yyyy-MM-dd');
this.listParams.endDate = formateDateTimeByType(this.date[1], 'yyyy-MM-dd');
this.listParams.startDate = formatDateTimeByType(this.date[0], 'yyyy-MM-dd');
this.listParams.endDate = formatDateTimeByType(this.date[1], 'yyyy-MM-dd');
}
this.params = {
searchParam: this.listParams.searchParam,
......
......@@ -164,9 +164,8 @@
<script>
import { ptyxDetail, savePtyx, getGameSystemMusic, downloadPtyxSkinPsd } from '@/service/api/gameApi.js';
import { numberToChinese, formateDateTimeByType } from '@/utils/index.js';
import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar';
import nonnegative from '@/mixins/nonnegative.js';
import editAlertMixin from '../common/editAlertMixin.js';
// import shareCom from '../common/share';
import ptyxSkin from './partials/ptyx-skin.vue';
......@@ -182,7 +181,7 @@ export default {
ptyxSkin,
audioUpload
},
mixins: [nonnegative, editAlertMixin],
mixins: [editAlertMixin],
data() {
const that = this;
return {
......@@ -424,8 +423,8 @@ export default {
gameInfo.gameName = this.form.gameName || '';
gameInfo.puzzleImgFieldCode = this.form.puzzleImg.code || '';
gameInfo.puzzleImgUrl = this.form.puzzleImg.imgUrl || '';
gameInfo.startTimeStr = formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') || '';
gameInfo.endTimeStr = formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') || '';
gameInfo.startTimeStr = formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') || '';
gameInfo.endTimeStr = formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') || '';
gameInfo.gameIntroduction = this.form.gameIntroduction || '';
gameInfo.logoImgFieldCode = this.form.logoImg.code || '';
gameInfo.logoImgUrl = this.form.logoImg.imgUrl || '';
......@@ -569,6 +568,13 @@ export default {
setAudioList(obj) {
this.customMusic = { ...obj, isPlay: false };
},
// 输入正整数
nonnegative(val) {
if (val < 0) {
val = 0;
this.$tips({ type: 'warning', message: '不能为负值' });
}
},
/**---------人群筛选器的方法------------- */
getData() {
this.$refs.peopleFilter.confirmSet();
......
......@@ -33,7 +33,7 @@
</section>
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { LoadPtyxList, deleteGame } from '@/service/api/gameApi.js';
import config from './config';
import linksMixin from '../common/linksMixin.js';
......@@ -74,7 +74,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{
......@@ -84,7 +84,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{ label: '参与人数', prop: 'cyrs', width: '80', align: 'left' },
......
......@@ -52,7 +52,7 @@
</template>
<script>
import { LoadPtyxRecordList, exportPtyxExcel, ptyxCalcTitle } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js';
export default {
mixins: [filterAvatar],
......@@ -80,7 +80,7 @@ export default {
prop: 'createTime',
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{ label: '手机号码', prop: 'memberPhone', align: 'left' },
......
......@@ -78,7 +78,7 @@
<script>
import { znmDetail, znmSave, znmStrategyList, znmStrategySort, znmStrategyDel } from '@/service/api/gameApi.js';
import { numberToChinese, formateDateTimeByType } from '@/utils/index.js';
import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar';
import strategy from './strategy';
import editAlertMixin from '../common/editAlertMixin.js';
......@@ -250,8 +250,8 @@ export default {
gameName: this.form.gameName, // 是 String 游戏名称
logoImgUrl: this.form.logoImg.imgUrl, // 是 String LOGO上传 url
logoImgFieldCode: this.form.logoImg.code, // 是 String LOGO上传 code
gameStartTime: formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm'), // 是 String 开始时间 “2018-05-23 11:00”
gameEndTime: formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm'), // 是 String 结束时间 2018-06-14 16:00
gameStartTime: formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm'), // 是 String 开始时间 “2018-05-23 11:00”
gameEndTime: formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm'), // 是 String 结束时间 2018-06-14 16:00
gameIntroduction: this.form.gameIntroduction, // 是 string 游戏说明
firstCouponId: this.firstStrategy.coupCardId, // 是 String 首次奖项设置 load-game-znm-strategy-list 返回的firstStrategy—prizeReferId卡券ID
strategyIds: this.tableList.map(v => v.gamePrizeStrategyId).join(','), // 否 String (不是必传)首次特殊策略 load-game-znm-strategy-list strategyList集合—gamePrizeStrategyId 多个用逗号隔开
......
......@@ -31,7 +31,7 @@
</section>
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { LoadZnmList, deleteGame } from '@/service/api/gameApi.js';
import linksMixin from '../common/linksMixin.js';
import tableMethods from '@/mixins/tableMethods.js';
......@@ -68,7 +68,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{
......@@ -78,7 +78,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{ label: '参与人数', prop: 'cyrs', width: '80', align: 'left' },
......
......@@ -55,7 +55,7 @@
</template>
<script>
import { znmReportList, znmRankExcel, znmRecordExcel } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js';
export default {
mixins: [filterAvatar],
......@@ -99,7 +99,7 @@ export default {
prop: 'createTime',
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{ label: '手机号码', prop: 'memberPhone', align: 'left' },
......
......@@ -21,7 +21,7 @@
</template>
<script>
import { znmStrategy, znmStrategySave } from '@/service/api/gameApi.js';
import { findAnyComponent, formateDateTimeByType, resetParams } from '@/utils/index.js';
import { findAnyComponent, formatDateTimeByType, resetParams } from '@/utils/index.js';
export default {
props: {
......
<template>
<div class="login">
<div class="header" id="top">
<div class="clearfix">
<div class="fl">
<a href="http://www.demogic.com/" class="logo"></a>
</div>
<a class="home-link fr border-1px" href="http://www.demogic.com/" translate="login.home">返回首页</a>
</div>
</div>
<div class="login_contetnt">
<h3 class="login-top">让信息连接一切</h3>
<h4 class="login-bottom">GIC商户后台</h4>
<div class="form">
<form class="login-form" id="optForm" method="post" action="../../uLogin.htm?operate=login">
<div class="form-control">
<label for="phone">账号</label>
<input id="userName" name="userName" type="text" v-model="account" autocomplete="off" />
</div>
<div class="form-control">
<label for="password">密码</label>
<input id="password" name="password" type="password" v-model="password" autocomplete="new-password" />
<p class="error" id="passwordError" v-show="error.flag">{{ error.msg }}</p>
</div>
<button type="button" class="submit" @click="submit">立即登录</button>
</form>
</div>
</div>
<footer id="footer">
<p class="copyright">Copyright 2017 Demogic.com All Rights Reserved 浙ICP备15033117号-1</p>
</footer>
</div>
</template>
<script>
import { login, loginEid } from '@/service/api/systemApi.js';
export default {
name: 'login',
data() {
return {
error: {
flag: false,
msg: ''
},
account: 'damogic',
password: 'damo2018'
};
},
created() {
// this.$http.get('api-marketing/list-clerk-department',{},(res) => {
// console.log(res)
// })
},
methods: {
async submit() {
if (!this.account || !this.password) {
this.$message.error('账号或者密码不能为空');
return;
}
let eidParams = {
loginName: this.account
};
let resEid = await loginEid(eidParams);
let params = {
loginName: this.account,
password: this.password,
eid: resEid.result[0].enterpriseId
// eid:'ff808081593917d90159398eca1a0014'
};
let resLogin = await login(params);
console.log(resLogin);
//先作跳转
this.$router.replace('/wechat');
}
}
};
</script>
<style scoped>
.login {
height: 100%;
background-image: url(../../assets/img/login_bg.jpg);
background-position: center top;
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
background-color: rgba(255, 255, 255, 0.15);
text-align: center;
}
#top {
background: transparent;
position: relative;
width: 100%;
height: 80px;
background-color: #111111;
position: relative;
z-index: 2;
}
#top .logo {
display: block;
float: left;
margin-left: 100px;
width: 150px;
height: 80px;
background: url(../../assets/img/login_logo.png) left center no-repeat;
text-indent: -999px;
}
.home-link {
width: 80px;
height: 32px;
margin-top: 23px;
margin-right: 135px;
border-radius: 0;
text-align: center;
font-size: 14px;
line-height: 32px;
color: rgba(255, 255, 255, 0.6);
border: 1px solid #fede29;
background: 0 0;
}
.header {
position: fixed;
left: 0;
top: 0;
height: 80px;
width: 100%;
background: 0 0;
/* box-shadow: inset 0 -1px 0 0 rgba(81, 130, 228, .15); */
z-index: 1000;
}
.home-link {
width: 80px;
height: 32px;
margin-top: 23px;
margin-right: 135px;
border-radius: 0;
text-align: center;
font-size: 14px;
line-height: 32px;
color: rgba(255, 255, 255, 0.6);
border: 1px solid #fede29;
background: 0 0;
}
.login_contetnt {
width: 350px;
margin: 0 auto;
}
.login-top {
position: relative;
z-index: 1;
font-size: 24px;
font-weight: normal;
color: #ffffff;
margin: 70px 0 20px;
}
.login-bottom {
position: relative;
z-index: 1;
font-size: 16px;
font-weight: normal;
color: #fede29;
margin-bottom: 40px;
}
.form {
position: relative;
z-index: 3;
width: 350px;
margin: 0 auto;
}
#top {
background: transparent;
position: relative;
}
#top:hover {
background: transparent;
}
.form-control {
position: relative;
}
.form-control > label {
position: absolute;
/*top: 13px;*/
line-height: 46px;
left: 15px;
font-size: 14px;
color: #fff;
cursor: text;
}
.form-control > input {
font-size: 14px;
padding-left: 50px;
color: #fff;
font-weight: 100;
width: 298px;
height: 46px;
line-height: 14px;
text-indent: 15px;
background: rgba(0, 0, 0, 0.5);
outline: 0;
margin-bottom: 10px;
}
.form-control > input:-webkit-autofill {
-webkit-box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5) inset;
}
.submit {
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
font-size: 16px;
margin-top: 30px;
margin-bottom: 36px;
}
.submit:active {
color: rgba(0, 0, 0, 0.6);
background-color: #e0bb26;
}
.submit,
.login-btn {
color: #000;
outline: 0;
border: 0;
background-color: #fede29;
cursor: pointer;
}
.header {
position: fixed;
left: 0;
top: 0;
height: 80px;
width: 100%;
background: 0 0;
/*box-shadow: inset 0 -1px 0 0 rgba(81, 130, 228, .15);*/
z-index: 1000;
}
.error {
color: #f64e4e;
font-size: 12px;
line-height: 12px;
text-align: left;
display: none;
}
.bottom-error {
margin-bottom: 10px;
}
#footer {
width: 100%;
position: absolute;
bottom: 20px;
background: transparent;
color: #fff;
text-align: center;
}
@media screen and (max-width: 767px) {
#top {
background: transparent;
position: relative;
}
.home-link {
width: 60px;
height: 20px;
margin-top: 9px;
margin-right: 15px;
border-radius: 0;
text-align: center;
font-size: 12px;
line-height: 20px;
color: rgba(255, 255, 255, 0.6);
border: 1px solid #fede29;
background: 0 0;
}
.login_contetnt {
width: 250px;
}
.form-control > label {
font-size: 13px;
}
.form-control > input {
width: 198px;
}
.form {
width: 250px;
}
.login-top {
font-size: 16px;
}
.login-bottom {
font-size: 12px;
}
#footer {
display: block;
}
}
</style>
......@@ -5,7 +5,7 @@
<el-row :gutter="20" class="message-detail__label">
<el-col :span="8">
<span class="primary-font-color">发送时间:</span>
<span class="regular-font-color">{{ formateDateTimeByType(info.sendTime, 'yyyy-MM-dd-HH-mm-ss') }}</span>
<span class="regular-font-color">{{ formatDateTimeByType(info.sendTime, 'yyyy-MM-dd-HH-mm-ss') }}</span>
</el-col>
<el-col :span="8">
<span class="primary-font-color">发送人数:</span>
......@@ -94,14 +94,14 @@
</template>
<script>
import { LoadMessageDetail, LoadMessageDetailList, exportSmsExcel } from '@/service/api/messageApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import errorCodeDialog from './errorCode';
import filterAvatar from '@/mixins/filterAvater.js';
export default {
mixins: [filterAvatar],
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
info: {
searchParams: '',
memberType: 0
......@@ -127,7 +127,7 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
return formateDateTimeByType(row.backTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.backTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{
......
......@@ -51,7 +51,7 @@
import { saveSendSmsService, checkMessageSendCount } from '@/service/api/messageApi.js';
import { sceneSettingList } from '@/service/api/wechatApi.js';
import smsTemp from '@/components/libs/smsTemp';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
name: 'add-record',
......@@ -196,7 +196,7 @@ export default {
params.openIds = this.info.openIds;
}
if (this.info.sendType) {
params.sendTime = formateDateTimeByType(this.info.sendTime, 'yyyy-MM-dd-HH-mm-ss');
params.sendTime = formatDateTimeByType(this.info.sendTime, 'yyyy-MM-dd-HH-mm-ss');
}
saveSendSmsService(params)
.then(res => {
......
......@@ -35,7 +35,7 @@
<script>
import { LoadMessageList, invalidsmsRecord } from '@/service/api/messageApi.js';
import { sceneSettingList } from '@/service/api/wechatApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue';
import tableMethods from '@/mixins/tableMethods.js';
export default {
......@@ -59,7 +59,7 @@ export default {
align: 'left',
fixed: 'left',
formatter(row) {
return formateDateTimeByType(row.sendTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.sendTime, 'yyyy-MM-dd-HH-mm-ss');
}
},
{
......@@ -125,8 +125,8 @@ export default {
try {
this.recordLoading = true;
if (this.dateTime) {
this.listParams.sendBeginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.sendEndTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.sendBeginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.sendEndTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.sendBeginTime = this.listParams.sendEndTime = '';
}
......
......@@ -25,7 +25,7 @@
<div class="sms-lib-item_bottom clearfix">
<div class="fl">
<span>{{ v.addUserName }}</span>
<span>创建于 {{ formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss') }}</span>
<span>创建于 {{ formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss') }}</span>
</div>
<div class="fr">
<el-button type="text" v-if="v.status === 2" @click="$router.push('/message/temp/edit/' + v.smsTemplateId)">修改</el-button>
......@@ -48,13 +48,13 @@
</section>
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { LoadLibList, delTempService } from '@/service/api/messageApi.js';
export default {
name: 'sms-lib',
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
loading: false,
smsTempList: [],
libTypeOptions: [{ value: '', label: '全部' }, { value: 0, label: '普通短信模板' }, { value: 1, label: '营销短信模板' }, { value: 2, label: '验证码模板' }],
......@@ -92,8 +92,8 @@ export default {
async LoadLibList() {
this.loading = true;
if (this.dateTime) {
this.listParams.startTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
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 = '';
}
......
......@@ -122,7 +122,7 @@
</template>
<script>
import { getTempDetail, listTemplateVariables, updateTempAdvice } from '@/service/api/msgApi.js';
import { formateDateTimeByType, checkUrl } from '@/utils/index.js';
import { formatDateTimeByType, checkUrl } from '@/utils/index.js';
import varDialog from './variables.vue';
import innerUrl from '@/components/innerUrl/innerUrl';
import linktoolspage from '@/components/linktools/linktoolspage.vue';
......@@ -150,7 +150,7 @@ export default {
dayOptions: Array(15)
.fill()
.map((v, i) => ({ value: i + 8, label: i + 8 + ':00' })),
formateDateTimeByType,
formatDateTimeByType,
options: [],
checked1: false,
checked2: false,
......
......@@ -38,7 +38,7 @@
</template>
<script>
import { pageTemplateMessage, syncWechatMessageTemplate, getLatestSyncTime, deleteTemplateAdvice } from '@/service/api/msgApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
name: 'sms-record',
data() {
......@@ -75,7 +75,7 @@ export default {
align: 'left',
sortable: 'custom',
formatter: function(row) {
return formateDateTimeByType(row.updateTime, 'yyyy-MM-dd-HH-mm-ss');
return formatDateTimeByType(row.updateTime, 'yyyy-MM-dd-HH-mm-ss');
}
}
],
......
......@@ -107,7 +107,7 @@
<script>
import { rechargeCenter, consumeRecord } from '@/service/api/rechargeApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
name: 'recharge',
......@@ -141,8 +141,8 @@ export default {
async consumeRecord() {
this.loading = true;
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
......
......@@ -3,7 +3,7 @@
<div class="dm-wrap">日期:<el-date-picker v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="loadAll(false)"></el-date-picker></div>
<div class="dm-form__wrap">
<h3 class="dm-title__label">趋势分析图</h3>
<div class="text-center fz16">{{ formateDateTimeByType(dateTime[0], 'yyyy-MM-dd') }}{{ formateDateTimeByType(dateTime[1], 'yyyy-MM-dd') }} 成功发送:{{ sumCount || 0 }} 条 总计消费:{{ (sumFee / 1000).toFixed(2) }}</div>
<div class="text-center fz16">{{ formatDateTimeByType(dateTime[0], 'yyyy-MM-dd') }}{{ formatDateTimeByType(dateTime[1], 'yyyy-MM-dd') }} 成功发送:{{ sumCount || 0 }} 条 总计消费:{{ (sumFee / 1000).toFixed(2) }}</div>
<div>
<div id="mountNode" ref="mountNode" v-show="list.length"></div>
<div class="chart--nodata" v-show="!list.length"></div>
......@@ -19,7 +19,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'marketing'">
<el-table-column align="left" width="170" prop="sendTime" label="发送时间">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.sendTime, 'yyyy-MM-dd-HH-mm-ss') }}
{{ formatDateTimeByType(scope.row.sendTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column align="left" width="150" prop="telephone" label="接收号码"></el-table-column>
......@@ -47,7 +47,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'sms'">
<el-table-column align="left" width="170" prop="createTime" label="发送时间">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column align="left" width="150" prop="receivePhone" label="接收号码"></el-table-column>
......@@ -71,7 +71,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'voice'">
<el-table-column align="left" prop="createTime" label="发送时间" width="170px">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column align="left" prop="receivePhone" label="接收号码"></el-table-column>
......@@ -91,7 +91,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'call'">
<el-table-column align="left" width="160" prop="createTime" label="呼叫时间">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" align="left" min-width="180" prop="storeName" label="主门店">
......@@ -142,7 +142,7 @@
</template>
<script>
import { messageMarketingChart, messageMarketingPage, smsData, voiceData, callData } from '@/service/api/rechargeApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import G2 from '@antv/g2';
import DataSet from '@antv/data-set';
export default {
......@@ -151,7 +151,7 @@ export default {
return {
list: [],
defaultAvatar: require('../../assets/img/head_default.png'),
formateDateTimeByType,
formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
loading: false,
tableList: [],
......@@ -185,8 +185,8 @@ export default {
},
loadAll(onlyList = false) {
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
......
......@@ -4,13 +4,13 @@
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading">
<el-table-column align="left" prop="timeEnd" label="充值时间">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.timeEnd, 'yyyy-MM-dd-HH-mm-ss') }}
{{ formatDateTimeByType(scope.row.timeEnd, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column align="left" prop="transactionId" label="充值流水号"></el-table-column>
<el-table-column align="left" prop="payType" label="充值方式">
<template slot-scope="scope">
{{ scope.row.payType === 1 ? '微信' : '支付宝' }}
{{ scope.row.payType | filterPayType }}
</template>
</el-table-column>
<el-table-column label="金额" align="left" prop="totalFee">
......@@ -24,13 +24,13 @@
</template>
<script>
import { rechargeRecord } from '@/service/api/rechargeApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
name: 'recharge-record',
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
loading: false,
tableList: [],
......@@ -60,8 +60,8 @@ export default {
async rechargeRecord() {
this.loading = true;
if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
......@@ -78,6 +78,26 @@ export default {
}
this.loading = false;
}
},
filters: {
filterPayType(val) {
let result = '';
switch (val) {
case 1:
result = '微信';
break;
case 2:
result = '支付宝';
break;
case 2:
result = '线下充值';
break;
default:
result = '未知';
break;
}
return result;
}
}
};
</script>
......
......@@ -14,7 +14,7 @@
</template>
<script>
import { loadAudioList, delAudioService } from '@/service/api/wechatApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import dmAudioItem from './audioItem';
import dmAudioDialog from './audioDialog';
......@@ -53,7 +53,7 @@ export default {
this.audioList = res.result.result || [];
this.audioList.map(v => {
if (typeof v.createTime === 'number') {
v.createTimeStr = formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss');
v.createTimeStr = formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss');
} else {
v.createTimeStr = '';
}
......
......@@ -253,7 +253,7 @@ export default {
});
},
methods: {
//editorInstance实例, API http://fex.baidu.com/ueditor/#api-common
//editorInstance实例
ready(editorInstance) {
this.editorInstance = editorInstance;
if (this.$route.meta.type === 'edit') {
......
......@@ -70,7 +70,7 @@
<el-table-column :show-overflow-tooltip="true" prop="remark" minWidth="180" label="备注"></el-table-column>
<el-table-column prop="updateTime" width="140" label="更新时间">
<template slot-scope="scope">
{{ formateDateTimeByType(scope.row.updateTime, 'yyyy-MM-dd-HH-mm') }}
{{ formatDateTimeByType(scope.row.updateTime, 'yyyy-MM-dd-HH-mm') }}
</template>
</el-table-column>
</el-table>
......@@ -84,7 +84,7 @@
<script>
import dmImgText from '@/components/libs/imgTextTemp';
import dmImgBox from '@/components/libs/imgTemp/index-box.vue';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { checkMessageSendCount } from '@/service/api/messageApi.js';
import { sceneSettingList, sendRecordSaveService, wechatImageTextEdit, getWechatMarketingDetail } from '@/service/api/wechatApi.js';
import config from '@/config';
......@@ -115,7 +115,7 @@ export default {
sendTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }],
customToolbar: [['link']],
currentImgText: { itemList: [] },
formateDateTimeByType,
formatDateTimeByType,
sceneSettingIdOptions: [],
// 人群筛选器可传参数
projectName: '', // 当前项目名
......@@ -346,7 +346,7 @@ export default {
params.mediaId = this.info.mediaId;
}
if (this.info.sendType) {
params.sendTime = formateDateTimeByType(this.info.sendTime, 'yyyy-MM-dd-HH-mm');
params.sendTime = formatDateTimeByType(this.info.sendTime, 'yyyy-MM-dd-HH-mm');
}
sendRecordSaveService(params)
.then(res => {
......
......@@ -9,7 +9,7 @@
<div class="msg_card_inner msg_card_inner_single wechat-item-previe-div" data-index="0" style="display: block;" @click="preview(true)">
<div class="card_cover_appmsg_title" style="margin: 6px;">
<p style="margin-bottom: 6px;" id="main-item-title">{{ firstImgText.titleName }}</p>
<p style="margin-bottom: 12px;color: #8c8c8c;font-size: 13px;">{{ formateDateTimeByType(firstImgText.updateTime, 'yyyy-MM-dd') }}</p>
<p style="margin-bottom: 12px;color: #8c8c8c;font-size: 13px;">{{ formatDateTimeByType(firstImgText.updateTime, 'yyyy-MM-dd') }}</p>
</div>
<div class="card_appmsg_item">
<img style="width: 243px;height: 120px;" id="main-item-img" :src="firstImgText.qcloudImageUrl || ''" />
......@@ -41,7 +41,7 @@
<div class="rich_media_area_primary">
<p class="rich_media_title"></p>
<div class="rich_media_meta_list">
<em class="rich_media_meta rich_media_meta_text">{{ formateDateTimeByType(activeImgText.updateTime, 'yyyy-MM-dd') }}</em> <em class="rich_media_meta rich_media_meta_text"></em> <span class="rich_media_meta rich_media_meta_link" id="content-authoer">{{ activeImgText.authorName }}</span>
<em class="rich_media_meta rich_media_meta_text">{{ formatDateTimeByType(activeImgText.updateTime, 'yyyy-MM-dd') }}</em> <em class="rich_media_meta rich_media_meta_text"></em> <span class="rich_media_meta rich_media_meta_link" id="content-authoer">{{ activeImgText.authorName }}</span>
</div>
<div class="rich_media_content" ref="richMediaContent" v-html="activeImgText.previewContent"></div>
</div>
......@@ -55,7 +55,7 @@
</template>
<script>
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
props: {
......@@ -68,7 +68,7 @@ export default {
},
data() {
return {
formateDateTimeByType,
formatDateTimeByType,
activeImgText: {},
contentHide: true
};
......
......@@ -49,7 +49,7 @@
<script>
import { sendRecordList, sceneSettingList, delWechatMarketingRecord, invalidWechatMarketingRecord } from '@/service/api/wechatApi.js';
import dmDialog from './dialog';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue';
export default {
name: 'wechat-record',
......@@ -72,7 +72,7 @@ export default {
align: 'left',
fixed: 'left',
formatter: function(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm');
return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm');
}
},
{ label: '用户名称', prop: 'clerkName', align: 'left', fixed: 'left' },
......
......@@ -17,7 +17,7 @@
</template>
<script>
import { loadVideoList, delVideoService } from '@/service/api/wechatApi.js';
import { formateDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType } from '@/utils/index.js';
import dmVideoItem from './videoItem';
export default {
......@@ -63,7 +63,7 @@ export default {
this.videoList = res.result.result || [];
this.videoList.map(v => {
if (typeof v.createTime === 'number') {
v.createTimeStr = formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss');
v.createTimeStr = formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss');
} else {
v.createTimeStr = '';
}
......
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