Просмотр исходного кода

feat(create-order): 增加数据导出服务升级提示

- 在 ServiceList 组件中添加升级提示文本
- 在 SchemaForm 组件中增加 upgradeService 属性,用于控制提示显示
- 优化购买和升级逻辑判断,支持试用场景
cuiyalong 1 месяц назад
Родитель
Сommit
29de5e49b8

+ 24 - 0
src/views/create-order/components/product-info-submodule/ServiceList.vue

@@ -53,6 +53,7 @@
           </div>
         </div>
       </div>
+      <div class="upgrade-text color-red" v-if="showDataUpgradeTip">注:请选择升级后的总条数,非增购条数</div>
       <div class="already-buy-text" v-if="alreadyBuyIds.length > 0">
         <span class="color-orange">注:服务到期时间:{{ serviceEndTime }},</span>
         <span class="font-bold">该客户已购买:</span>
@@ -104,6 +105,10 @@ export default {
         return [1,3] 
       }
     },
+    upgradeService: {
+      type: Boolean,
+      default: false
+    },
   },
   data() {
     return {
@@ -314,6 +319,18 @@ export default {
     entService() {
       return this.buySubject === 2
     },
+    showDataUpgradeTip() {
+      // 从serviceList中找,数据导出是否展示
+      const needShowDateUpgradeTip = this.serviceList.findLast(service => {
+        let dataExport = false
+        if (Array.isArray(service.children)) {
+          dataExport = service.children.find(serve => serve.label.includes('数据导出'))
+        }
+        return dataExport && !service.hide
+      })
+      console.log(needShowDateUpgradeTip)
+      return this.upgradeService && !!needShowDateUpgradeTip
+    },
   },
   watch: {
     bigServiceInfo: {
@@ -848,12 +865,19 @@ export default {
     width: 120px;
   }
 }
+.color-red {
+  color: $red_deep;
+}
 .color-orange {
   color: #e13d13;
 }
 .font-bold {
   font-weight: bold;
 }
+.upgrade-text {
+  margin-top: -12px;
+  margin-left: 92px;
+}
 .service-list-group {
   display: inline-block;
 }

+ 5 - 3
src/views/create-order/components/schema-form/schema-form.vue

@@ -1157,15 +1157,17 @@ export default {
 
       const { [schemaKeyMap.specification]: specification } = value
       const { [schemaKeyMap.payment]: payment } = value
-      const buy001 = payment === 1 && specification === dhy001
+      const buyOrTrail = payment === 1 || payment === 4
+      const buy001 = buyOrTrail && specification === dhy001
       const upgradeAddService = payment === 3 && value[schemaKeyMap.upgradeContent].includes(1)
-      ma.show = buy001 || upgradeAddService  // 购买-自定义规格/升级-补充服务选中才展示
+      ma.show = buy001 || upgradeAddService  // 购买/试用-自定义规格/升级-补充服务选中才展示
       const { buySubject } = this.pageForm
       this.$set(ma.props, 'buySubject', buySubject)
+      this.$set(ma.props, 'upgradeService', payment === 3)
       
       // 1.付费类型为“续费”,则禁用服务列表全部,不支持修改;
       // 2.如果是升级,则禁用已选的
-      if (payment === 1) {
+      if (buyOrTrail) {
         // 购买,恢复,不禁用
         this.$set(ma.props, 'disabled', false)
         this.$set(ma.props, 'alreadyBuyIds', [])