Commit a0021410 by 黑潮

Merge branch 'feature/七月上旬迭代' into dev

parents 601e61e0 823584f2
<!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/fonts/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link rel=stylesheet href=//web-1251519181.file.myqcloud.com/components/element.2.12.0.css><link href=/marketing/static/css/main.7a00b0eb5e079b327e07f7c5236bd046.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/components/element.2.12.0.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.45.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.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.2.32.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.30.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.71.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.06.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.43.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.16.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.27.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/track.1.0.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/activity-select.1.0.3.js></script><script src=//web-1251519181.file.myqcloud.com/components/upload-file.1.0.6.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.21.js></script><script src=//web-1251519181.file.myqcloud.com/components/radio-transfer.1.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/steps.1.0.1.js></script><script src=//web-1251519181.file.myqcloud.com/components/material.1.0.9.js></script><script type=text/javascript src=/marketing/static/js/manifest.7d86b05d8794917657a6.js></script><script type=text/javascript src=/marketing/static/js/vendor.f9f292eb91cca2c0fcc1.js></script><script type=text/javascript src=/marketing/static/js/main.4a9141d9f2290fc19c07.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/fonts/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link rel=stylesheet href=//web-1251519181.file.myqcloud.com/components/element.2.12.0.css><link href=/marketing/static/css/main.09f4424cd1245659f4dadf9eee852681.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/components/element.2.12.0.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.45.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.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.2.32.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.30.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.71.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.06.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.43.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.16.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.27.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/track.1.0.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/activity-select.1.0.3.js></script><script src=//web-1251519181.file.myqcloud.com/components/upload-file.1.0.6.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.21.js></script><script src=//web-1251519181.file.myqcloud.com/components/radio-transfer.1.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/steps.1.0.1.js></script><script src=//web-1251519181.file.myqcloud.com/components/material.1.0.9.js></script><script type=text/javascript src=/marketing/static/js/manifest.63d20b867f5e0e2d9a8a.js></script><script type=text/javascript src=/marketing/static/js/vendor.f9f292eb91cca2c0fcc1.js></script><script type=text/javascript src=/marketing/static/js/main.4a9141d9f2290fc19c07.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.
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.
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,a,o){for(var f,i,u,d=0,s=[];d<r.length;d++)i=r[d],t[i]&&s.push(t[i][0]),t[i]=0;for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&(e[f]=a[f]);for(n&&n(r,a,o);s.length;)s.shift()();if(o)for(d=0;d<o.length;d++)u=c(c.s=o[d]);return u};var r={},t={17:0};function c(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,c),t.l=!0,t.exports}c.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,c){n=t[e]=[r,c]});n[2]=r;var a=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,c.nc&&o.setAttribute("nonce",c.nc),o.src=c.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"ecm",4:"message",5:"ewash",6:"scan",7:"evaluation",8:"activity",9:"cdKey",10:"recharge",11:"popup",12:"signIn",13:"msg",14:"calllog"}[e]||e)+"."+{0:"ca26517b0793fc90389f",1:"1b92c0c94b803ef7ae97",2:"3f04ab3f20219ff8b5d9",3:"1c5f60ddfa5039f7f6e5",4:"db647ff1aa771017a36c",5:"499510114acac6860134",6:"93180e7d8e4530422afb",7:"6f650fda68f6dd28ecea",8:"5ddb72b68fcdf6943011",9:"1e9ce432c3656fb230bf",10:"5fb78afa189c890e3cf0",11:"4fc71bbd3d39f3fbe211",12:"d31a431660000260acb5",13:"02883278bc559b7084a0",14:"67177b0729dc4ddc6d2c"}[e]+".js";var f=setTimeout(i,12e4);function i(){o.onerror=o.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return o.onerror=o.onload=i,a.appendChild(o),r},c.m=e,c.c=r,c.d=function(e,n,r){c.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},c.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(n,"a",n),n},c.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},c.p="/marketing/",c.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,o,c){for(var f,i,u,d=0,s=[];d<r.length;d++)i=r[d],t[i]&&s.push(t[i][0]),t[i]=0;for(f in o)Object.prototype.hasOwnProperty.call(o,f)&&(e[f]=o[f]);for(n&&n(r,o,c);s.length;)s.shift()();if(c)for(d=0;d<c.length;d++)u=a(a.s=c[d]);return u};var r={},t={17:0};function a(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,a){n=t[e]=[r,a]});n[2]=r;var o=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,a.nc&&c.setAttribute("nonce",a.nc),c.src=a.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"ecm",4:"message",5:"ewash",6:"scan",7:"evaluation",8:"activity",9:"cdKey",10:"recharge",11:"popup",12:"signIn",13:"msg",14:"calllog"}[e]||e)+"."+{0:"ca26517b0793fc90389f",1:"ba222cf4f7dbabeb508c",2:"3f04ab3f20219ff8b5d9",3:"c62f22d2ae45928b3c6f",4:"db647ff1aa771017a36c",5:"499510114acac6860134",6:"93180e7d8e4530422afb",7:"6f650fda68f6dd28ecea",8:"5ddb72b68fcdf6943011",9:"1e9ce432c3656fb230bf",10:"50521f679ec2f27197c1",11:"4fc71bbd3d39f3fbe211",12:"d31a431660000260acb5",13:"f35167a5e066177d908a",14:"d65040e25afb30289d4f"}[e]+".js";var f=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.onerror=c.onload=i,o.appendChild(c),r},a.m=e,a.c=r,a.d=function(e,n,r){a.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,"a",n),n},a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.p="/marketing/",a.oe=function(e){throw console.error(e),e}}([]);
\ 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.
<template>
<section class="dm-wrap" v-loading="loading">
<div class="pb22 clearfix">
<el-select class="dm-select" clearable="" v-model="listParams.effectType" placeholder="选择时效" @change="search">
<!-- <el-select class="dm-select" clearable="" v-model="listParams.effectType" placeholder="选择时效" @change="search">
<el-option v-for="(v, i) in effectTypeOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-select class="dm-select" clearable v-model="listParams.marketingType" placeholder="选择营销方式" @change="search">
</el-select> -->
<!-- <el-select class="dm-select" clearable v-model="listParams.marketingType" placeholder="选择营销方式" @change="search">
<el-option v-for="(v, i) in showMarketingTypeOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<dm-activity-select class="vertical-middle" onlySelect width="130" :actId.sync="listParams.marketingActivityId" @actUpdate="search"></dm-activity-select>
<el-select class="dm-select" clearable v-model="listParams.onlineStatus" placeholder="选择状态" @change="search">
</el-select> -->
<!-- <dm-activity-select class="vertical-middle" onlySelect width="130" :actId.sync="listParams.marketingActivityId" @actUpdate="search"></dm-activity-select> -->
<!-- <el-select class="dm-select" clearable v-model="listParams.onlineStatus" placeholder="选择状态" @change="search">
<el-option v-for="(v, i) in onlineOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-input v-model="listParams.searchName" class="w150" placeholder="输入计划名称" clearable @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-checkbox class="vertical-middle" v-if="$store.state.marketing.isShowSelf" v-model="listParams.showSelfFlag" :true-label="1" :false-label="0" label="仅看本人" border @change="search" />
<el-date-picker v-model="dateTime" style="width:250px" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="search"></el-date-picker>
</el-select> -->
<el-input v-model="listParams.searchName" class="w250" placeholder="输入计划名称" clearable @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button type="text" @click="showSearch = !showSearch" class="senior-search">高级搜索<i :class="showSearch ? 'el-icon-d-arrow-left' : 'el-icon-d-arrow-right'"></i></el-button>
<!-- <el-checkbox class="vertical-middle" v-if="$store.state.marketing.isShowSelf" v-model="listParams.showSelfFlag" :true-label="1" :false-label="0" label="仅看本人" border @change="search" /> -->
<!-- <el-date-picker v-model="dateTime" style="width:250px" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="search"></el-date-picker> -->
<el-button class="fr" type="primary" @click="$router.push('/ecm/add')">新建计划</el-button>
<el-tooltip class="fr" content="只记录删除计划或编辑“进行中”计划的操作日志" placement="top" open-delay="200">
<el-button style="margin-right:10px" @click="$router.push('/ecm/log')">操作日志</el-button>
</el-tooltip>
</div>
<div v-show="showSearch" class="senior-search-content">
<el-form label-width="100px">
<el-form-item label="创建时间" class="inline-item">
<el-date-picker style="width:350px" v-model="dateTime" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="search"></el-date-picker>
</el-form-item>
<el-form-item label="选择时效" class="inline-item">
<el-select style="width:350px" clearable="" v-model="listParams.effectType" placeholder="选择时效" @change="search">
<el-option v-for="(v, i) in effectTypeOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="选择营销方式" class="inline-item">
<el-select style="width:350px" clearable v-model="listParams.marketingType" placeholder="选择营销方式" @change="search">
<el-option v-for="(v, i) in showMarketingTypeOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="选择状态" class="inline-item">
<el-select style="width:350px" clearable v-model="listParams.onlineStatus" placeholder="选择状态" @change="search">
<el-option v-for="(v, i) in onlineOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
</el-form-item>
<el-form-item v-if="$store.state.marketing.isShowSelf" class="inline-item">
<el-checkbox class="vertical-middle" v-model="listParams.showSelfFlag" :true-label="1" :false-label="0" label="仅看本人" border @change="search" />
</el-form-item>
</el-form>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" element-loading-text="拼命加载中">
<el-table-column align="left" fixed="left" :min-width="200" show-overflow-tooltip label="计划名称">
<template slot-scope="scope">
......@@ -94,6 +120,7 @@ export default {
name: 'ecm',
data() {
return {
showSearch: false,
dateTime: null,
formatDateTimeByType,
effectTypeOption: [
......@@ -416,4 +443,29 @@ export default {
color: #606266;
}
}
.senior-search {
margin-left: 10px;
font-size: 14px;
}
.senior-search .el-icon-d-arrow-right {
display: inline-block;
transform: rotate(90deg);
margin-left: 5px;
}
.senior-search .el-icon-d-arrow-left {
display: inline-block;
transform: rotate(90deg);
margin-left: 5px;
}
.senior-search-content {
border: 1px solid #dcdfe6;
border-radius: 2px;
padding: 15px 24px;
margin-bottom: 20px;
}
.inline-item {
display: inline-block;
width: 500px;
vertical-align: top;
}
</style>
......@@ -30,7 +30,7 @@
<!-- <el-select v-if="$route.params.type === 'call'" class="dm-select" v-model="taskType" placeholder="选择发送状态" @change="loadAll(true)">
<el-option v-for="item in taskTypeOptions" :key="item.taskType" :label="item.ecmName" :value="item.taskType"></el-option>
</el-select> -->
<el-input v-model="listParams.searchParam" class="w250" :placeholder="placeholder" clearable @change="loadAll(true)"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-input v-model="listParams.searchParam" :style="setInputWidth()" :placeholder="placeholder" clearable @change="loadAll(true)"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
</div>
<!-- 短信营销 -->
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-if="$route.params.type === 'marketing'">
......@@ -46,7 +46,7 @@
<el-table-column align="left" width="100" prop="countNum" label="计费条数">
<template slot-scope="scope">{{ scope.row.countNum }}</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" align="left" width="320" prop="storeName" label="门店">
<el-table-column :show-overflow-tooltip="true" align="left" width="320" prop="storeName" label="服务门店">
<template slot-scope="scope">
<p>{{ scope.row.storeName }}</p>
<p class="gray">{{ scope.row.storeGroupName }}</p>
......@@ -75,7 +75,7 @@
</template>
</el-table-column>
<el-table-column align="left" width="150" prop="receivePhone" label="接收号码"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="left" width="320" prop="storeName" label="门店">
<el-table-column :show-overflow-tooltip="true" align="left" width="320" prop="storeName" label="服务门店">
<template slot-scope="scope">
<p>{{ scope.row.storeName }}</p>
<p class="fz13 gray">{{ scope.row.storeGroupName }}</p>
......@@ -101,7 +101,7 @@
</template>
</el-table-column>
<el-table-column align="left" prop="receivePhone" label="接收号码"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="left" width="320" prop="storeName" label="门店">
<el-table-column :show-overflow-tooltip="true" align="left" width="320" prop="storeName" label="服务门店">
<template slot-scope="scope">
<p>{{ scope.row.storeName }}</p>
<p class="fz13 gray">{{ scope.row.storeGroupName }}</p>
......@@ -123,7 +123,7 @@
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" align="left" min-width="320" prop="storeName" label="门店">
<el-table-column :show-overflow-tooltip="true" align="left" min-width="320" prop="storeName" label="任务门店">
<template slot-scope="scope">
<p>{{ scope.row.storeName }}</p>
<p class="fz13 gray">{{ scope.row.storeGroupName }}</p>
......@@ -168,7 +168,7 @@
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" align="left" prop="storeName" width="350" label="门店">
<el-table-column :show-overflow-tooltip="true" align="left" prop="storeName" width="350" label="任务门店">
<template slot-scope="scope">
<p>{{ scope.row.storeName }}</p>
<p class="fz13 gray">{{ scope.row.storeGroupName }}</p>
......@@ -284,6 +284,21 @@ export default {
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '计费中心', path: '/recharge' }, { name: '消费详情', path: '' }]); // eslint-disable-line
},
methods: {
setInputWidth() {
let width = 250;
switch (this.$route.params.type) {
case 'marketing':
width = 400;
break;
case 'call':
case 'record':
width = 320;
break;
default:
width = 250;
}
return { width: `${width}px` };
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.loadAll();
......@@ -301,7 +316,7 @@ export default {
this.listParams.endTime = '';
}
if (this.$route.params.type === 'marketing') {
this.placeholder = '输入手机号码/模板ID/内容';
this.placeholder = '输入手机号码/模板ID/内容/触发计划名称/计划创建人';
if (!onlyList) {
this.marketingCharts();
}
......@@ -322,14 +337,14 @@ export default {
this.voiceData('list');
}
if (this.$route.params.type === 'call') {
this.placeholder = '输入手机号码';
this.placeholder = '输入手机号码/触发计划名称/计划创建人';
if (!onlyList) {
this.callData('charts');
}
this.callData('list');
}
if (this.$route.params.type === 'record') {
this.placeholder = '输入手机号码';
this.placeholder = '输入手机号码/触发计划名称/计划创建人';
if (!onlyList) {
this.recordData('charts');
}
......
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