Commit 49a2f1ab by crushh

Merge branch 'feature/ai营销二期' into dev

parents ffb13243 0024bc16
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(a,t,o){for(var f,d,i,u=0,s=[];u<a.length;u++)d=a[u],n[d]&&s.push(n[d][0]),n[d]=0;for(f in t)Object.prototype.hasOwnProperty.call(t,f)&&(e[f]=t[f]);for(c&&c(a,t,o);s.length;)s.shift()();if(o)for(u=0;u<o.length;u++)i=r(r.s=o[u]);return i};var a={},n={24:0};function r(c){if(a[c])return a[c].exports;var n=a[c]={i:c,l:!1,exports:{}};return e[c].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var c=n[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var a=new Promise(function(a,r){c=n[e]=[a,r]});c[2]=a;var t=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,r.nc&&o.setAttribute("nonce",r.nc),o.src=r.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"ecm",4:"message",5:"ewash",6:"scan",7:"recharge",8:"activity",9:"signIn",10:"evaluation",11:"cdKey",12:"popup",13:"msg",15:"calllog"}[e]||e)+"."+{0:"d845bd264200e2fe023e",1:"8360686d83100ba44c76",2:"5a7e6c9a558f266c7762",3:"61e1d1a00a605488f348",4:"0ed5feeccec606921a9e",5:"dd66a6012402ab8d374f",6:"118cffd4fc4aec6165ca",7:"1870a11c1c7a62882285",8:"388da8ce361aad466b33",9:"fe11d8b6fea8a8e19249",10:"6750cbc0a759ff4c6458",11:"204e0fccedfb8f4e13ed",12:"561607517a3cf8bfd1d1",13:"fcdcee9f6a8e702a7712",14:"e974b9f88ac8f6dcb990",15:"cf0b09aa556f363809e3",16:"fd4b67a6e4b93d8b97e0",17:"c6caec60e9035b136c02",18:"cff1460eee064990b166",19:"59b5d962bdb9dfd78bda",20:"66d6821411e0e42afe9e",21:"3b70c426e7cb5384d238"}[e]+".js";var f=setTimeout(d,12e4);function d(){o.onerror=o.onload=null,clearTimeout(f);var c=n[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return o.onerror=o.onload=d,t.appendChild(o),a},r.m=e,r.c=a,r.d=function(e,c,a){r.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:a})},r.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(c,"a",c),c},r.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},r.p="/marketing/",r.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -612,7 +612,6 @@ img::after {
padding: 2px 8px;
line-height: 20px;
border:none;
}
.el-radio-button__orig-radio:checked+.el-radio-button__inner{
background: #EBEFFE;
......@@ -648,4 +647,5 @@ img::after {
background: #F2F3F5;
}
}
\ No newline at end of file
}
\ No newline at end of file
......@@ -10,15 +10,11 @@
</div>
</div>
<div class="searchWarp">
<el-form inline="true" class="table-page-search-wrapper" size="small" v-show="dimension == '门店维度'">
<el-form-item>
<el-input placeholder="请输入门店名称/code" v-model="form.search" class="input-with-select" @change="handleSearch" clearable> </el-input>
</el-form-item>
<el-form-item>
<vue-gic-select-tree :options="options" v-if="dimension == '门店维度'" @change="onChange" ref="selectTree"></vue-gic-select-tree>
</el-form-item>
<el-button icon="iconfont icon-cp-xiazai" class="fr" type="primary" @click="handleExport" :disabled="!total"> 查询结果导出</el-button>
</el-form>
<div class="pb20 clearfix" v-show="dimension == '门店维度'">
<el-input placeholder="请输入门店名称/code" class="w260" v-model="form.search" @change="handleSearch" clearable> </el-input>
<vue-gic-select-tree class="inline" :options="options" v-if="dimension == '门店维度'" @change="onChange" ref="selectTree"></vue-gic-select-tree>
<el-button icon="iconfont fz14 icon-cp-xiazai" class="fr" type="primary" @click="handleExport" :disabled="!total"> 查询结果导出</el-button>
</div>
<el-form inline="true" class="table-page-search-wrapper" size="small" v-show="dimension == '分组维度'">
<el-form-item>
<el-select v-model="selectVal" class="w100" @change="groupSelectChange">
......@@ -71,16 +67,16 @@ import { numFormat } from '@/utils/index.js';
const tableHead = [
{
label: '上级分组',
minWidth: '150',
prop: 'storeGroupName',
width: '180',
formatter: function(row) {
return `<span>${row.storeGroupName ? row.storeGroupName : '- -'}</span>`;
return `<span class="ellipsis-l2">${row.storeGroupName ? row.storeGroupName : '- -'}</span>`;
}
},
{
label: '营销人数',
prop: 'marketingNumber',
minWidth: '100',
width: '100',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.marketingNumber) ? row.marketingNumber.toLocaleString() : '- -'}</span>`;
......@@ -89,7 +85,7 @@ const tableHead = [
{
label: '触达人数',
prop: 'reachNumber',
minWidth: '100',
width: '120',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.reachNumber) ? row.reachNumber.toLocaleString() : '- -'}</span>`;
......@@ -98,7 +94,7 @@ const tableHead = [
{
label: '触达率',
prop: 'reachRate',
minWidth: '100',
width: '120',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.reachRate) ? row.reachRate + '%' : '- -'}</span>`;
......@@ -107,7 +103,7 @@ const tableHead = [
{
label: '转换人数',
prop: 'conversionNumber',
minWidth: '120',
width: '120',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.conversionNumber) ? row.conversionNumber.toLocaleString() : '- -'}</span>`;
......@@ -116,25 +112,25 @@ const tableHead = [
{
label: '转化率',
prop: 'conversionRate',
minWidth: '160',
width: '120',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.conversionRate) ? row.conversionRate + '%' : '- -'}</span>`;
}
},
{
label: '销售额(元)',
label: '销售额(元)',
prop: 'actualSale',
minWidth: '140',
width: '140',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.actualSale) ? row.actualSale.toLocaleString() : '- -'}</span>`;
}
},
{
label: '客单价(元)',
label: '客单价(元)',
prop: 'perCustomerTransaction',
minWidth: '160',
width: '160',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.perCustomerTransaction) ? row.perCustomerTransaction.toLocaleString() : '- -'}</span>`;
......@@ -143,7 +139,7 @@ const tableHead = [
{
label: '连带率',
prop: 'associatedPurchaseRate',
minWidth: '120',
width: '120',
sortable: 'custom',
fixed: 'right'
}
......@@ -347,8 +343,9 @@ export default {
const head = {
label: '门店名称',
prop: 'storeName',
minWidth: '150',
width: '150',
tooltip: true,
fixed: 'left',
formatter: function(row) {
return `<span>${row.storeName ? row.storeName : '- -'}</span>`;
}
......@@ -399,6 +396,7 @@ export default {
prop: 'name',
minWidth: '150',
tooltip: true,
fixed: 'left',
formatter: function(row) {
return `<span>${row.name ? row.name : '- -'}</span>`;
}
......
......@@ -10,15 +10,11 @@
</div>
</div>
<div class="searchWarp">
<el-form inline="true" class="table-page-search-wrapper" size="small" v-show="dimension == '门店维度'">
<el-form-item>
<el-input placeholder="请输入门店名称/code" v-model="form.search" class="input-with-select" @change="handleSearch" clearable> </el-input>
</el-form-item>
<el-form-item>
<vue-gic-select-tree :options="options" v-if="dimension == '门店维度'" @change="onChange" ref="selectTree"></vue-gic-select-tree>
</el-form-item>
<el-button icon="iconfont icon-cp-xiazai" class="fr" type="primary" @click="handleExport" :disabled="!total"> 查询结果导出</el-button>
</el-form>
<div class="pb20 clearfix" v-show="dimension == '门店维度'">
<el-input placeholder="请输入门店名称/code" v-model="form.search" class="w260" @change="handleSearch" clearable> </el-input>
<vue-gic-select-tree class="inline" :options="options" v-if="dimension == '门店维度'" @change="onChange" ref="selectTree"></vue-gic-select-tree>
<el-button icon="iconfont fz14 icon-cp-xiazai " type="primary" class="fr" @click="handleExport" size="small" :disabled="!total"> 查询结果导出</el-button>
</div>
<el-form inline="true" class="table-page-search-wrapper" size="small" v-show="dimension == '分组维度'">
<el-form-item>
<el-select v-model="selectVal" class="w100" @change="groupSelectChange">
......@@ -72,15 +68,15 @@ let tableHead = [
{
label: '上级分组',
prop: 'storeGroupName',
width: '180',
minWidth: '180',
formatter: function(row) {
return `<span>${row.storeGroupName ? row.storeGroupName : '- -'}</span>`;
return `<span class="ellipsis-l2">${row.storeGroupName ? row.storeGroupName : '- -'}</span>`;
}
},
{
label: '营销人数',
prop: 'marketingNumber',
minWidth: '100',
width: '100',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.marketingNumber) ? row.marketingNumber.toLocaleString() : '- -'}</span>`;
......@@ -89,7 +85,7 @@ let tableHead = [
{
label: '已外呼数',
prop: 'outboundNumber',
minWidth: '100',
width: '100',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.outboundNumber) ? row.outboundNumber.toLocaleString() : '- -'}</span>`;
......@@ -98,7 +94,7 @@ let tableHead = [
{
label: '总接通数',
prop: 'totalConnectionNumber',
minWidth: '100',
width: '100',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.totalConnectionNumber) ? row.totalConnectionNumber.toLocaleString() : '- -'}</span>`;
......@@ -107,7 +103,7 @@ let tableHead = [
{
label: '接通率',
prop: 'telephoneConnectionRate',
minWidth: '120',
width: '120',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.telephoneConnectionRate) ? row.telephoneConnectionRate + '%' : '- -'}</span>`;
......@@ -116,16 +112,16 @@ let tableHead = [
{
label: 'A/B类客户意向数',
prop: 'customerIntentionsNumber',
minWidth: '160',
width: '160',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.customerIntentionsNumber) ? row.sentMessagesNumber.toLocaleString() : '- -'}</span>`;
return `<span>${!isNaN(row.customerIntentionsNumber) ? row.customerIntentionsNumber.toLocaleString() : '- -'}</span>`;
}
},
{
label: '接通意向率',
prop: 'connectionIntentionRate',
minWidth: '120',
width: '120',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.connectionIntentionRate) ? row.connectionIntentionRate + '%' : '- -'}</span>`;
......@@ -136,7 +132,7 @@ let smsFlagHead = [
{
label: '短信发送总数',
prop: 'sentMessagesNumber',
minWidth: '160',
width: '160',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.sentMessagesNumber) ? row.sentMessagesNumber.toLocaleString() : '- -'}</span>`;
......@@ -145,7 +141,7 @@ let smsFlagHead = [
{
label: '发送成功数',
prop: 'sentSuccessfullyNumber',
minWidth: '120',
width: '120',
sortable: 'custom',
formatter: function(row) {
return `<span>${!isNaN(row.sentSuccessfullyNumber) ? row.sentSuccessfullyNumber.toLocaleString() : '- -'}</span>`;
......@@ -352,8 +348,9 @@ export default {
const head = {
label: '门店名称',
prop: 'storeName',
minWidth: '150',
width: '150',
tooltip: true,
fixed: 'left',
formatter: function(row) {
return `<span>${row.storeName ? row.storeName : '- -'}</span>`;
}
......@@ -406,8 +403,9 @@ export default {
const head = {
label: '分组名称',
prop: 'name',
minWidth: '150',
width: '150',
tooltip: true,
fixed: 'left',
formatter: function(row) {
return `<span>${row.name ? row.name : '- -'}</span>`;
}
......
......@@ -122,7 +122,7 @@ export default {
<style lang="scss" scoped>
.data-detail {
padding: 20px;
padding: 5px 20px 20px 20px;
.search-bar {
margin-bottom: 20px;
width: 290px;
......
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