Parcourir la source

优化:页面设计手动选择数据时过滤默认

萤火科技 il y a 1 an
Parent
commit
87fb4ef637

+ 3 - 0
src/components/MyColorPicker/MyColorPicker.vue

@@ -85,5 +85,8 @@ export default {
     height: 100%;
     border: 1px solid #000;
   }
+  .one-colorpanel {
+    z-index: 10;
+  }
 }
 </style>

+ 5 - 2
src/views/page/modules/editor/modules/SCoupon.vue

@@ -36,8 +36,11 @@ import draggable from 'vuedraggable'
 import { pick, cloneDeep } from 'lodash'
 import { CouponModal } from '@/components/Modal'
 
+// 主键字段
+const primaryKey = 'coupon_id'
+
 // 仅需要的字段
-const itemColumns = ['coupon_id', 'name', 'coupon_type', 'reduce_price', 'discount', 'min_price']
+const itemColumns = [primaryKey, 'name', 'coupon_type', 'reduce_price', 'discount', 'min_price']
 
 // 优惠券选择器组件(仅适用于页面设计)
 export default {
@@ -92,7 +95,7 @@ export default {
 
     // 过滤仅需要的数据
     filterItems (selectedItems) {
-      return selectedItems.map(itm => pick(itm, itemColumns))
+      return selectedItems.filter(item => item[primaryKey] != undefined).map(itm => pick(itm, itemColumns))
     },
 
     // 删除优惠券

+ 5 - 2
src/views/page/modules/editor/modules/SGoods.vue

@@ -43,8 +43,11 @@ import draggable from 'vuedraggable'
 import { pick, cloneDeep } from 'lodash'
 import { GoodsModal } from '@/components/Modal'
 
+// 主键字段
+const primaryKey = 'goods_id'
+
 // 仅需要的字段
-const itemColumns = ['goods_id', 'goods_name', 'goods_image', 'goods_price_min', 'line_price_min', 'selling_point', 'goods_sales']
+const itemColumns = [primaryKey, 'goods_name', 'goods_image', 'goods_price_min', 'line_price_min', 'selling_point', 'goods_sales']
 
 // 商品选择器组件
 export default {
@@ -101,7 +104,7 @@ export default {
 
     // 过滤仅需要的数据
     filterItems (selectedItems) {
-      return selectedItems.map(itm => pick(itm, itemColumns))
+      return selectedItems.filter(item => item[primaryKey] != undefined).map(itm => pick(itm, itemColumns))
     },
 
     // 删除商品

+ 4 - 4
src/views/page/modules/phone/Phone.vue

@@ -160,7 +160,7 @@
           <div v-else-if="item.type == 'article'" class="diy-article">
             <div
               class="article-item"
-              v-for="(dataItm, dataIdx) in (item.params.source == 'choice' ? item.data : item.defaultData)"
+              v-for="(dataItm, dataIdx) in (item.params.source == 'choice' && item.data.length ? item.data : item.defaultData)"
               :key="`${index}_${dataIdx}`"
               :class="`show-type__${dataItm.show_type}`"
             >
@@ -270,7 +270,7 @@
             >
               <div
                 class="goods-item"
-                v-for="(dataItm, dataIdx) in (item.params.source == 'choice' ? item.data : item.defaultData)"
+                v-for="(dataItm, dataIdx) in (item.params.source == 'choice' && item.data.length ? item.data : item.defaultData)"
                 :key="`${index}_${dataIdx}`"
                 :class="[`display-${item.style.cardType}`]"
                 :style="{ marginBottom: `${item.style.itemMargin}px`, borderRadius: `${item.style.borderRadius}px` }"
@@ -466,7 +466,7 @@
             <div class="coupon-wrapper">
               <div
                 class="coupon-item"
-                v-for="(coupon, idx) in (item.params.source == 'choice' ? (item.data.length ? item.data : item.defaultData) : item.defaultData)"
+                v-for="(coupon, idx) in (item.params.source == 'choice' && item.data.length ? item.data : item.defaultData)"
                 :key="idx"
                 :style="{ marginRight: `${item.style.marginRight}px` }"
               >
@@ -512,7 +512,7 @@
               <ul class="special-content-list">
                 <li
                   class="content-item oneline-hide"
-                  v-for="(dataItm, idx) in (item.params.source == 'choice' ? item.data : item.defaultData)"
+                  v-for="(dataItm, idx) in (item.params.source == 'choice' && item.data.length ? item.data : item.defaultData)"
                   :key="idx"
                 >
                   <span :style="{ color: item.style.textColor }">{{ dataItm.title }}</span>