Commit df5e6ace by chenxin

fix:build 不良评价;群发加个isGroupSend;card flag bug

parents ff0b0a0d 5dcbb94d
<!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 rel=stylesheet href=//web-1251519181.file.myqcloud.com/components/element.2.12.0.css><link href=/marketing/static/css/main.c5727cc9fb44830f737470fd59936e43.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.33.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.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.13.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.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.12.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.95.js></script><script type=text/javascript src=/marketing/static/js/manifest.d754f7a37a74fe2d12cd.js></script><script type=text/javascript src=/marketing/static/js/vendor.f6e5442e18ed1c7d4a4d.js></script><script type=text/javascript src=/marketing/static/js/main.a0f3b2f842e42776c15e.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 rel=stylesheet href=//web-1251519181.file.myqcloud.com/components/element.2.12.0.css><link href=/marketing/static/css/main.232098886131824c384853e8f8c57b71.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.33.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.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.13.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.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.12.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.95.js></script><script type=text/javascript src=/marketing/static/js/manifest.0b336565078f9c378a18.js></script><script type=text/javascript src=/marketing/static/js/vendor.f6e5442e18ed1c7d4a4d.js></script><script type=text/javascript src=/marketing/static/js/main.229f78df4b0a14bd1404.js></script></body></html>
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,a,c){for(var f,i,u,d=0,s=[];d<n.length;d++)i=n[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(r&&r(n,a,c);s.length;)s.shift()();if(c)for(d=0;d<c.length;d++)u=o(o.s=c[d]);return u};var n={},t={12:0};function o(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var n=new Promise(function(n,o){r=t[e]=[n,o]});r[2]=n;var a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,o.nc&&c.setAttribute("nonce",o.nc),c.src=o.p+"static/js/"+({0:"game",1:"card",2:"wechat",3:"ewash",4:"evaluation",5:"message",6:"ecm",7:"recharge",8:"msg",9:"calllog"}[e]||e)+"."+{0:"37981538d75a58135483",1:"bf229f1363685fdec2c8",2:"bf2ba30f271e8e2a76ac",3:"361dc762e7a8e5f66292",4:"82b6062b9f7c9e15698f",5:"ffab842d16f1dfd391a7",6:"0d37793997c7db318d9a",7:"6dfebb35a2cb22f7489d",8:"bd6f84bb38a1ad84a1c0",9:"925a34b416ed002007fe"}[e]+".js";var f=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(f);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.onerror=c.onload=i,a.appendChild(c),n},o.m=e,o.c=n,o.d=function(e,r,n){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,a,c){for(var f,i,u,d=0,s=[];d<n.length;d++)i=n[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(r&&r(n,a,c);s.length;)s.shift()();if(c)for(d=0;d<c.length;d++)u=o(o.s=c[d]);return u};var n={},t={12:0};function o(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var n=new Promise(function(n,o){r=t[e]=[n,o]});r[2]=n;var a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,o.nc&&c.setAttribute("nonce",o.nc),c.src=o.p+"static/js/"+({0:"game",1:"card",2:"wechat",3:"ewash",4:"evaluation",5:"message",6:"ecm",7:"recharge",8:"msg",9:"calllog"}[e]||e)+"."+{0:"37981538d75a58135483",1:"d22734f47637c9b28d3f",2:"371d8b029bdbb83ef7d3",3:"b4c765acc4a5c46a5c53",4:"a42f94c7650e12262576",5:"ffab842d16f1dfd391a7",6:"0d37793997c7db318d9a",7:"6dfebb35a2cb22f7489d",8:"bd6f84bb38a1ad84a1c0",9:"925a34b416ed002007fe"}[e]+".js";var f=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(f);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.onerror=c.onload=i,a.appendChild(c),n},o.m=e,o.c=n,o.d=function(e,r,n){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
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.
......@@ -13,11 +13,30 @@
<!-- GrowingIO Analytics code version 2.1 -->
<!-- Copyright 2015-2018 GrowingIO, Inc. More info available at http://www.growingio.com -->
<!-- <script type='text/javascript'>
<<<<<<< HEAD
!function(e,t,n,g,i){e[i]=e[i]||function(){(e[i].q=e[i].q||[]).push(arguments)},n=t.createElement("script"),tag=t.getElementsByTagName("script")[0],n.async=1,n.src=('https:'==document.location.protocol?'https://':'http://')+g,tag.parentNode.insertBefore(n,tag)}(window,document,"script","assets.giocdn.com/2.1/gio.js","gio");
gio('init','8be12240a3749eab', {});
//custom page code begin here
//custom page code end here
gio('send');
=======
!(function(e, t, n, g, i) {
(e[i] =
e[i] ||
function() {
(e[i].q = e[i].q || []).push(arguments);
}),
(n = t.createElement('script')),
(tag = t.getElementsByTagName('script')[0]),
(n.async = 1),
(n.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + g),
tag.parentNode.insertBefore(n, tag);
})(window, document, 'script', 'assets.giocdn.com/2.1/gio.js', 'gio');
gio('init', '8be12240a3749eab', {});
//custom page code begin here
//custom page code end here
gio('send');
>>>>>>> dev
</script> -->
<!-- End GrowingIO Analytics code version: 2.1 -->
</head>
......
......@@ -44,6 +44,11 @@ export default {
selfSwitch: {
type: Boolean,
default: true
},
// 是否是群发接口调用
isGroupSend: {
type: Boolean,
default: false
}
},
created() {
......@@ -100,7 +105,11 @@ export default {
},
async loadImgList() {
this.loading = true;
let res = await loadImgList(this.listParams);
let params = { ...this.listParams };
if (this.isGroupSend) {
params.isGroupSend = 1;
}
let res = await loadImgList(params);
this.total = res.result.page.totalCount;
this.currentGroup = res.result.currentGroup;
this.groupsMoveList = Object.assign([], res.result.groups);
......
......@@ -84,6 +84,11 @@ export default {
showSelf: {
type: Boolean,
default: true
},
// 是否是群发接口调用
isGroupSend: {
type: Boolean,
default: false
}
},
created() {
......@@ -124,7 +129,11 @@ export default {
}
this.loading = true;
try {
let res = await loadImgTextList(this.listParams);
let params = { ...this.listParams };
if (this.isGroupSend) {
params.isGroupSend = 1;
}
let res = await loadImgTextList(params);
if (res.errorCode === 0) {
// 从页面上过滤itemList为[]的错误数据,原因:微信导入错误
// eslint-disable-next-line
......
......@@ -15,6 +15,7 @@ if (process.env.NODE_ENV == 'development') { // eslint-disable-line
Vue.prototype.axios = axios;
Vue.prototype.axios.withCredentials = true;
Vue.prototype.axios.defaults.timeout = 50000;
Object.keys(directives).map(item => Vue.directive(item, directives[item]));
window.$bus = new Vue();
let flag = false;
......
......@@ -41,5 +41,11 @@ export const getSuggestionsDetail = params => requests(PREFIX + 'get-suggestions
//投诉与建议-分页列表信息--立即处理--保存
export const handleSuggestions = params => requests(PREFIX + 'handle-suggestions', params);
//投诉与建议-启用不良评价话务回访自动分配功能--获取配置详情
export const getEvaluateSetting = params => requests(PREFIX + 'evaluate-setting', params);
//投诉与建议-启用不良评价话务回访自动分配功能--启用/不启用
export const setEvaluateSetting = params => requests(PREFIX + 'set-evaluate-setting', params);
//投诉与建议-分页列表信息-导出csv
export const exportProblemsCsv = config.api + PREFIX + 'export-problems-csv';
......@@ -267,6 +267,7 @@ export default {
if (this.goods.ok || this.goods.no) {
this.goods.flag = true;
}
this.only = !!useCondition.only || false;
this.form.proNoList = useCondition.proNo ? [{ name: useCondition.proNo, id: useCondition.proNo }] : [];
}
......@@ -304,6 +305,9 @@ export default {
v3name: f3Arr || []
};
});
if (this.goodsList.length) {
this.goods.flag = true;
}
this.coupGoodsWeimobList = card.coupGoodsWeimobList;
}
......
......@@ -192,7 +192,7 @@
<el-form-item label="适用门店">
<el-radio :disabled="isEdit" v-model="storeMode" :label="0">所有门店</el-radio>
<el-radio :disabled="isEdit" v-model="storeMode" :label="1">部分门店</el-radio>
<span v-if="isEdit" class="fz12 gray ml20">编辑适用门店前会员领取该卡券不包含新增的适用门店;编辑适用门店后会员领取该卡券包含新增的适用门店</span>
<span v-if="isEdit" class="fz12 gray ml20">编辑适用门店前会员领取该卡券不包含新增的适用门店;编辑适用门店后会员领取该卡券包含新增的适用门店</span>
<!-- :readonly="isEdit" -->
<vue-gic-store-card class="pt10" v-show="storeMode" ref="storeCard" :uuid.sync="uuid"></vue-gic-store-card>
<el-alert v-show="storeMode && form.cardApplyChannel.indexOf('WMmicroMall') !== -1" title="选择的门店必须保持与微盟侧门店一致,请确认选择无误" type="warning" show-icon :closable="false" class="mt20 width80"></el-alert>
......
......@@ -5,6 +5,7 @@
<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>
<el-button icon="el-icon-setting fz14" class="fr mr10 setting" @click="auto.visible = true" type="primary"></el-button>
</div>
<div class="filter--box">
<el-select size="small" v-if="$route.meta.type === 'bad'" class="vertical-middle pl10 w150" v-model="badStatus" placeholder="选择差评类型" @change="$router.push('/evaluation/bad/' + badStatus)">
......@@ -104,10 +105,23 @@
<el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
<reply :show.sync="replyShow" :id="replyId" @refresh="getTableList"></reply>
<vue-gic-export-excel :dialogVisible.sync="dialogVisible" :dataArr="tableList" :type="2" :excelUrl="excelUrl" :params="params" :projectName="projectName"></vue-gic-export-excel>
<el-dialog title="配置" :visible.sync="auto.visible" width="400px" @close="handleClose">
<div class="pb20">
<p class="mb20">是否启用不良评价话务回访自动分配功能</p>
<el-radio-group v-model="auto.autoAllocationStatus">
<el-radio :label="0">不启用</el-radio>
<el-radio :label="1">启用</el-radio>
</el-radio-group>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="setEvaluateSetting" :loading="auto.loading">确 定</el-button>
</span>
</el-dialog>
</section>
</template>
<script>
import { latestEvaluationList, evaluateBad, evaluationStoreExists, allocateEvaluation, changeShowStatus, exportLatestEvaluate } from '@/service/api/evaluationApi.js';
import { latestEvaluationList, evaluateBad, evaluationStoreExists, allocateEvaluation, changeShowStatus, exportLatestEvaluate, setEvaluateSetting, getEvaluateSetting } from '@/service/api/evaluationApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import reply from './reply';
import storeGroup from '@/components/storeGroup';
......@@ -134,7 +148,13 @@ export default {
projectName: 'marketing', // 当前项目名
dialogVisible: false,
excelUrl: '', // 下载数据的地址
params: {} // 传递的参数
params: {}, // 传递的参数
auto: {
loading: false,
info: {},
visible: false, // 配置dialog
autoAllocationStatus: 0
}
};
},
created() {
......@@ -145,6 +165,9 @@ export default {
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '最新评价', path: '' }]);
}
},
mounted() {
this.getEvaluateSetting();
},
watch: {
$route(val) {
this.getTableList();
......@@ -155,6 +178,27 @@ export default {
storeGroup
},
methods: {
// 设置配置
setEvaluateSetting() {
this.auto.loading = true;
setEvaluateSetting({ autoStatus: this.auto.autoAllocationStatus }).then(res => {
this.auto.loading = false;
this.$tips({ message: '设置成功', type: 'success' });
this.handleClose();
this.getEvaluateSetting();
});
},
// 获取配置详情
getEvaluateSetting() {
getEvaluateSetting().then(res => {
this.auto.info = res.result || {};
this.auto.autoAllocationStatus = res.result.autoAllocationStatus || 0;
});
},
handleClose() {
this.auto.visible = false;
this.auto.autoAllocationStatus = this.auto.info.autoAllocationStatus || 0;
},
getStoreGroup(val) {
this.listParams.currentStoreGroupId = val.storeGroupId || '';
this.getTableList();
......@@ -295,3 +339,12 @@ export default {
}
};
</script>
<style lang="scss" scoped>
.setting {
width: 33px;
height: 33px;
line-height: 33px;
padding: 0;
}
</style>
......@@ -151,7 +151,7 @@
<el-form-item label="适用门店">
<el-radio :disabled="isEdit" v-model="storeMode" :label="0">所有门店</el-radio>
<el-radio :disabled="isEdit" v-model="storeMode" :label="1">部分门店</el-radio>
<span v-if="isEdit" class="fz12 gray ml20">编辑适用门店前会员领取该卡券不包含新增的适用门店;编辑适用门店后会员领取该卡券包含新增的适用门店</span>
<span v-if="isEdit" class="fz12 gray ml20">编辑适用门店前会员领取该卡券不包含新增的适用门店;编辑适用门店后会员领取该卡券包含新增的适用门店</span>
<vue-gic-store-card class="pt10" v-show="storeMode" ref="storeCard" :uuid.sync="uuid" scenes="edaixi" />
</el-form-item>
......
......@@ -48,12 +48,12 @@
</el-radio-group>
<div class="pt20">
<div v-show="info.contentType === 0" style="padding:15px; border:1px solid #DCDFE6;border-radius:2px;">
<dm-img-text :showSelf="false" :showSelfFlag="showSelfFlag" @get-data="getImgTextData" :radioShow="true" :auto="false" :imageTextId="info.imageTextId" :activeId="info.imageTextWechatId"></dm-img-text>
<dm-img-text :isGroupSend="true" :showSelf="false" :showSelfFlag="showSelfFlag" @get-data="getImgTextData" :radioShow="true" :auto="false" :imageTextId="info.imageTextId" :activeId="info.imageTextWechatId"></dm-img-text>
</div>
<dm-img-box :selfSwitch="false" v-show="info.contentType === 2" :mediaId="info.mediaId" @get-data="getImgData"></dm-img-box>
<dm-img-box :isGroupSend="true" :selfSwitch="false" v-show="info.contentType === 2" :mediaId="info.mediaId" @get-data="getImgData"></dm-img-box>
<div v-show="info.contentType === 1">
<!-- <wxText :msgText="info.content" @listenWxText="getWxText"></wxText> -->
<wx-text :showWxApp="false" :appendToBody="true" :value.sync="info.content" :urlType.sync="info.urlType" :jumpUrlInfo.sync="info.jumpUrlInfo" :isSupportVar="false" ref="wxText"></wx-text>
<wx-text :isGroupSend="true" :showWxApp="false" :appendToBody="true" :value.sync="info.content" :urlType.sync="info.urlType" :jumpUrlInfo.sync="info.jumpUrlInfo" :isSupportVar="false" ref="wxText"></wx-text>
</div>
</div>
</section>
......
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