Commit 6c2a1947 by chenxin

fix:bug 商品选择器回显 深拷贝备份对象

parent f673912d
<!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.b900faa7f2d18ca38103a55924ce3f23.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.22.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.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.03.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.31.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.04.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.80.js></script><script type=text/javascript src=/marketing/static/js/manifest.c05062918f2c5da056c7.js></script><script type=text/javascript src=/marketing/static/js/vendor.4f54dc53154967b3adc7.js></script><script type=text/javascript src=/marketing/static/js/main.949fc9b6a672743a453a.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.6ce6881e38223c6b682fd21cddd7948f.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.22.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.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.03.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.31.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.04.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.80.js></script><script type=text/javascript src=/marketing/static/js/manifest.1ef0d683d75db12da675.js></script><script type=text/javascript src=/marketing/static/js/vendor.33cafa0134aa152d9bdc.js></script><script type=text/javascript src=/marketing/static/js/main.f6c96c61c0ecf8dae639.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.
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,a,c){for(var d,i,u,f=0,s=[];f<n.length;f++)i=n[f],t[i]&&s.push(t[i][0]),t[i]=0;for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&(e[d]=a[d]);for(r&&r(n,a,c);s.length;)s.shift()();if(c)for(f=0;f<c.length;f++)u=o(o.s=c[f]);return u};var n={},t={11: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:"evaluation",4:"message",5:"ecm",6:"recharge",7:"msg",8:"calllog"}[e]||e)+"."+{0:"16d82a0a928ab6daa70a",1:"1a606c5eb5bc4957c065",2:"3dd19b59722d26fdbfbf",3:"c59c0098bd52da5edb26",4:"9a09a2ca69a10dd4b1cb",5:"8211d285dc417451dd35",6:"bb4c60b1af82de26c84a",7:"78d26db17068eec22a7c",8:"5eed9786deb616aedcf4"}[e]+".js";var d=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(d);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,o,c){for(var f,i,u,s=0,l=[];s<n.length;s++)i=n[s],t[i]&&l.push(t[i][0]),t[i]=0;for(f in o)Object.prototype.hasOwnProperty.call(o,f)&&(e[f]=o[f]);for(r&&r(n,o,c);l.length;)l.shift()();if(c)for(s=0;s<c.length;s++)u=a(a.s=c[s]);return u};var n={},t={11:0};function a(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,a),t.l=!0,t.exports}a.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,a){r=t[e]=[n,a]});r[2]=n;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:"game",1:"card",2:"wechat",3:"evaluation",4:"message",5:"ecm",6:"recharge",7:"msg",8:"calllog"}[e]||e)+"."+{0:"30baa0dec811f6f4ec49",1:"57d774a0eee201771e11",2:"5aa3ca7e326ef2ff5b56",3:"650a38a154a63ff404db",4:"b240fe6b93138b5f102a",5:"05668b6d94780bfa9a5c",6:"727cccae0b80bca129d5",7:"8b5caebf83a79ac810ca",8:"73199fa96bf2a53581b9"}[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,o.appendChild(c),n},a.m=e,a.c=n,a.d=function(e,r,n){a.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/marketing/",a.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -10,6 +10,7 @@ export default {
filterAbbrInfo: [], // 选择后回显的label数据
goodsFilterId: null,
conditionList: null, // 商品选择器的回显值
conditionList_copy: [], // 没有只读功能,备份数据
isResign: false // 编辑后赋值
}
// ----线下适用商品结束----
......@@ -24,7 +25,7 @@ export default {
this.xxSysp.conditionList = null;
this.xxSysp.goodsFilterId = null;
},
// 编辑点击
// 编辑查看btn点击
handleXxSyspClick(visible = true) {
this.xxSysp.visible = visible;
// refs.selector放在modal里,初始化的时候并没有渲染
......
......@@ -265,3 +265,8 @@ export const findAnyComponent = (context, componentName, root = null) => {
}
return children;
};
// 序列化反序列化法 深拷贝对象
export const deepClone = obj => {
return JSON.parse(JSON.stringify(obj));
};
......@@ -3,7 +3,7 @@
*/
import dmUploadImg from '@/components/upload/img';
import imgTextDrag from './partials/imgtext-drag';
import { formatDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType, deepClone } from '@/utils/index.js';
import xxSysp_mix from '@/mixins/selector.js'; // 商品选择器方法
import { cardGetShelfs, getCardDetail, saveUpdateCard, copyCardDetailService, getCategoryList, getPropertyList, getPropertyValueList } from '@/service/api/cardApi.js';
import dmGoodsInput from '@/components/goods-input/index.vue';
......@@ -301,10 +301,12 @@ export default {
}
// 线下适用商品
this.xxSysp.goodsFilterId = card.goodsFilterId || '';
if (card.goodsSearchDetail) {
if (card.goodsSearchDetail && card.goodsFilterId) {
this.xxSysp.goodsFilterId = card.goodsFilterId;
const goodsSearchDetail = JSON.parse(card.goodsSearchDetail);
this.xxSysp.conditionList = this.xxSysp.conditionList_copy = goodsSearchDetail.conditionList; // ref selector此时放在modal里并没有渲染,之后赋值
this.xxSysp.conditionList = goodsSearchDetail.conditionList; // ref selector此时放在modal里并没有渲染,之后赋值
this.xxSysp.conditionList_copy = deepClone(goodsSearchDetail.conditionList); // 备份数据
this.xxSysp.filterAbbrInfo = goodsSearchDetail.filterAbbrInfo || [];
}
......@@ -524,7 +526,7 @@ export default {
card.goodsFilterId = this.xxSysp.goodsFilterId;
if (this.xxSysp.conditionList) {
card.goodsSearchDetail = JSON.stringify({
conditionList: this.xxSysp.conditionList,
conditionList: this.isEdit ? this.xxSysp.conditionList_copy : this.xxSysp.conditionList, // 编辑保存备份数据
filterAbbrInfo: this.xxSysp.filterAbbrInfo
}); // 反显数据
}
......
......@@ -4,7 +4,7 @@ import { sceneSettingList } from '@/service/api/commonApi.js';
import { klflStrategy } from '@/service/api/gameApi.js'; // 会员等级列表接口
import xxSysp_mix from '@/mixins/selector.js'; // 商品选择器方法mixins
import marketingEvent from './marketing-event/index.vue';
import { formatDateTimeByType } from '@/utils/index.js';
import { formatDateTimeByType, deepClone } from '@/utils/index.js';
import { isEmpty, numOfDecimal } from '@/utils/strlen.js';
import itemCard from './partials/item-card.vue';
import varDialog from './partials/variables.vue';
......@@ -294,6 +294,7 @@ export default {
if (res.result.goodsSearchDetail.detail) {
const goodsSearchDetail = JSON.parse(res.result.goodsSearchDetail.detail);
this.xxSysp.conditionList = goodsSearchDetail.conditionList; // ref selector此时放在modal里并没有渲染,之后赋值
this.xxSysp.conditionList_copy = deepClone(goodsSearchDetail.conditionList); // 备份数据
this.xxSysp.filterAbbrInfo = goodsSearchDetail.filterAbbrInfo || [];
}
}
......@@ -543,7 +544,7 @@ export default {
if (this.consumeChecked.good && this.xxSysp.goodsFilterId) {
consumeObj.goods_filter_id = this.xxSysp.goodsFilterId;
consumeObj.goodsSearchDetail = JSON.stringify({
conditionList: this.xxSysp.conditionList,
conditionList: this.isEdit ? this.xxSysp.conditionList_copy : this.xxSysp.conditionList, // 编辑保存备份数据
filterAbbrInfo: this.xxSysp.filterAbbrInfo
});
}
......
......@@ -55,6 +55,7 @@
</el-select>
</el-form-item>
</section>
{{ xxSysp.goodsList_copy }}
<!-- 消费触发配置 -->
<section class="dm-form__wrap" v-if="!form.effectType && form.effectAction === 'consume'">
<h3 class="dm-title__label">
......@@ -98,7 +99,7 @@
<div class="no_label_form_label">
<el-checkbox class="el-form-item__label" :disabled="isEdit" v-model="consumeChecked.cost">消费金额</el-checkbox>
<div>
<span class="fz14 gray" v-show="!consumeChecked.cost">所有消费金额</span>
<span class="fz14 gray" v-show="!consumeChecked.cost">任意消费金额</span>
<div v-show="consumeChecked.cost">
<el-input-number :disabled="isEdit" controls-position="right" min="" :max="1000000" style="width:150px;" v-model="form.lowest_cost" @change="handleLowestCost()"></el-input-number>
<span class="ml5 mr5"></span>
......@@ -113,7 +114,7 @@
<div class="no_label_form_label">
<el-checkbox class="el-form-item__label" :disabled="isEdit" v-model="consumeChecked.count">消费件数</el-checkbox>
<div>
<span class="fz14 gray" v-show="!consumeChecked.count">所有消费件数</span>
<span class="fz14 gray" v-show="!consumeChecked.count">任意消费件数</span>
<div v-show="consumeChecked.count">
<el-input-number :disabled="isEdit" controls-position="right" min="" :max="1000000" style="width:150px;" v-model="form.lowest_cost_count" @change="handleLowestCostCount()"></el-input-number>
<span class="ml5 mr5"></span>
......
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