Commit 468220a2 by chenxin

fix: 卡券包;图表

parent 80be6124
<!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.c492994ca7244b246a9799497d9e428f.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.35.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.10.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.16.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.18.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.42.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.10.js></script><script type=text/javascript src=/marketing/static/js/manifest.ff2f1112249adbf46c49.js></script><script type=text/javascript src=/marketing/static/js/vendor.cbb380c2053ab598e892.js></script><script type=text/javascript src=/marketing/static/js/main.93d39b4ed9fa3dfcebd2.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.5b3ae39448ec6d7b20a818c66c0064d3.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.35.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.10.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.16.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.18.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.42.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.10.js></script><script type=text/javascript src=/marketing/static/js/manifest.1f3a6c08eee75919d2c8.js></script><script type=text/javascript src=/marketing/static/js/vendor.cbb380c2053ab598e892.js></script><script type=text/javascript src=/marketing/static/js/main.93d39b4ed9fa3dfcebd2.js></script></body></html>
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var i,u,f,s=0,l=[];s<t.length;s++)u=t[s],n[u]&&l.push(n[u][0]),n[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(r&&r(t,c,a);l.length;)l.shift()();if(a)for(s=0;s<a.length;s++)f=o(o.s=a[s]);return f};var t={},n={13:0};function o(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(e){var r=n[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var t=new Promise(function(t,o){r=n[e]=[t,o]});r[2]=t;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"evaluation",6:"ecm",7:"activity",8:"recharge",9:"msg",10:"calllog"}[e]||e)+"."+{0:"6c26959b60e382668042",1:"5603aa6bc3c455d7b51e",2:"f0b4c0e5c36f5ed6b7a8",3:"dbb7db1bf14e057fd6e0",4:"6d9e78ea84d8a6629c63",5:"60028c53524bb4040e70",6:"393c92cf9310bf3051e4",7:"c7e6a74eba07ee933137",8:"cc0950432812606ca31b",9:"32e2fb20e9e49c721b1a",10:"4b68b26d138f9bc39980"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return a.onerror=a.onload=u,c.appendChild(a),t},o.m=e,o.c=t,o.d=function(e,r,t){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var f,i,u,d=0,s=[];d<t.length;d++)i=t[d],n[i]&&s.push(n[i][0]),n[i]=0;for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(e[f]=c[f]);for(r&&r(t,c,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)u=o(o.s=a[d]);return u};var t={},n={13:0};function o(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(e){var r=n[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var t=new Promise(function(t,o){r=n[e]=[t,o]});r[2]=t;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"evaluation",6:"ecm",7:"activity",8:"recharge",9:"msg",10:"calllog"}[e]||e)+"."+{0:"76d9ef7515ed4fdb0511",1:"5603aa6bc3c455d7b51e",2:"f0b4c0e5c36f5ed6b7a8",3:"dbb7db1bf14e057fd6e0",4:"6d9e78ea84d8a6629c63",5:"e17f69bc7860fd47dffb",6:"393c92cf9310bf3051e4",7:"c7e6a74eba07ee933137",8:"cc0950432812606ca31b",9:"32e2fb20e9e49c721b1a",10:"4b68b26d138f9bc39980"}[e]+".js";var f=setTimeout(i,12e4);function i(){a.onerror=a.onload=null,clearTimeout(f);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return a.onerror=a.onload=i,c.appendChild(a),t},o.m=e,o.c=t,o.d=function(e,r,t){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -2,7 +2,7 @@
<div class="dm-wrap" v-loading="loading">
<el-form ref="form" :model="ruleForm" label-width="140px" :rules="rules">
<el-form-item prop="name" label="卡券包名称">
<dm-input v-model="ruleForm.name" class="w300" placeholder="请输入卡券包名称" :byteType="1" :maxlength="10"></dm-input>
<dm-input v-model="ruleForm.name" class="w250" placeholder="请输入卡券包名称" :byteType="1" :maxlength="10"></dm-input>
</el-form-item>
<el-form-item prop="effectiveMode" label="有效时间">
<!-- <el-select class="w300" v-model="ruleForm.effectiveMode">
......@@ -15,11 +15,12 @@
<br />
<el-date-picker v-if="ruleForm.effectiveMode" class="w300 mt10" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions"></el-date-picker>
</el-form-item>
<el-form-item label="营销场景">
<!-- <el-form-item label="营销场景">
<el-select class="w300" v-model="ruleForm.sceneSettingId" placeholder="选择营销场景">
<el-option v-for="item in sceneSettingIdOptions" :key="item.sceneSettingId" :label="item.sceneName" :value="item.sceneSettingId"></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<activity-select style="margin-left:71px;margin-bottom:22px;" :actId.sync="ruleForm.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<el-form-item prop="cardIds" label="新增卡券">
<el-button @click="showCardDialog = true">添加卡券</el-button>
<el-table v-if="ruleForm.cardIds" class="mt20" :data="tableData" style="width: 100%">
......@@ -66,6 +67,7 @@
</template>
<script>
import activitySelect from '@/components/activity-select';
import { saveCoupPackage, coupPackageDetail, getCoupListInfo } from '@/service/api/cardApi.js';
import { sceneSettingList } from '@/service/api/wechatApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
......@@ -88,6 +90,7 @@ export default {
cardIds: '', // 卡券ids,多个id用逗号隔开
name: '',
effectiveMode: 0,
marketingActivityId: '',
sceneSettingId: ''
},
dateTime: [],
......@@ -107,6 +110,9 @@ export default {
isEdit: this.$route.meta.type === 'edit'
};
},
components: {
activitySelect
},
methods: {
formatDateTimeByType,
del({ coupCardId }) {
......
......@@ -2,7 +2,7 @@
<section class="card-record-get" v-loading="recordLoading">
<!-- 条件筛选区 -->
<div class="pb22">
<el-input v-model="listParams.search" class="w250" placeholder="请输入会员信息/卡券代码" @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-input clearable v-model="listParams.search" class="w250" placeholder="请输入会员信息/卡券代码" @change="refresh"><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="refresh" />
<card-select-filter ref="cdf" :cId.sync="listParams.coupCardId" class="w250" @cIdUpdate="refresh" :disabled="listParams.allCouponFlag" />
<div class="inline-block ml5">
......
......@@ -111,7 +111,6 @@ export default {
list = list.sort((a, b) => {
return a.temperature - b.temperature;
});
console.log(list);
this.$nextTick(_ => {
this.initCharts(list, 'mountNode');
});
......@@ -163,7 +162,7 @@ export default {
const badTagList = res.result.badTagList || [];
//正面快评生成
let goodList = [];
const goodTotal = goodTagList.map(v => v[0]).reduce((total, num) => total + num);
const goodTotal = goodTagList.length ? goodTagList.map(v => v[0]).reduce((total, num) => total + num) : 0;
goodTagList.map((v, i) => {
goodList.push({ item: v[1], count: parseInt(v[0]), percent: parseFloat((v[0] / goodTotal).toFixed(2)) });
});
......@@ -206,7 +205,6 @@ export default {
},
//生成饼图
initPieChart(data, nodeName) {
console.log(data);
let chart = new G2.Chart({
container: nodeName,
forceFit: true,
......@@ -218,6 +216,11 @@ export default {
val = (val * 100).toFixed(2) + '%';
return val;
}
},
count: {
formatter: function formatter(val) {
return val;
}
}
});
chart.coord('theta', {
......@@ -243,18 +246,17 @@ export default {
chart
.intervalStack()
.position('percent')
.position('count')
.color('item')
.label('percent', {
.label('count', {
formatter: function formatter(val, item) {
return item.point.item + ': ' + val;
}
})
.tooltip('item*percent', function(item, percent) {
percent = percent * 100 + '%';
return {
name: item,
value: percent
value: percent * 100 + '%'
};
})
.style({
......
......@@ -97,7 +97,7 @@ export default {
this.tableList = res.result.result || [];
this.total = res.result.totalCount;
this.tableList.unshift({
totalCount: '总计:' + this.tableList.length + '家',
totalCount: '总计:' + res.result.totalCount + '家',
evaluateCount: res.result.params.totalCountValue,
fwtdAvg: res.result.params.fwtdValue.toFixed(2),
zycdAvg: res.result.params.zycdValue.toFixed(2),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment