Pārlūkot izejas kodu

feat: 细节优化

cuiyalong 3 mēneši atpakaļ
vecāks
revīzija
e1dcecfb3a

+ 6 - 0
src/store/order.js

@@ -432,6 +432,12 @@ export default {
         const { error_code: code, error_msg: msg, data } = await ajaxGetUserService(payload)
         commit('setLoadingState', { key: 'userService', value: false })
         if (code === 0 && data) {
+          if (Array.isArray(data.serviceArrMap)) {
+            data.serviceArrMap.forEach(item => {
+              // 虚拟id,个人服务下无关联订单时候,使用此id代替(仅前端使用)
+              item._verId = getRandomString()
+            })
+          }
           return data
         } else {
           console.log(msg)

+ 26 - 14
src/views/create-order/components/ProductInfoCard.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="product-info-card">
+  <div class="product-info-card" v-loading="loading">
     <el-form label-width="126px">
       <el-row :gutter="2">
         <el-col :span="24">
@@ -7,22 +7,27 @@
             :productTypeOptions="productTypeOptions"
             :showErrorTip="showErrorTip"
             :value="productTypeResult"
+            :loading="loading"
+            :showLoading="true"
             @input="onProductionInput"
             @change="onProductionChange"
           />
         </el-col>
       </el-row>
-      <el-row :gutter="2" v-if="productTypeResult && productTypeResult.productCode">
-        <el-col :span="24">
-          <ProductSchemaForm
-            :productType="productTypeResult.productCode"
-            :productInfo="productTypeInfo"
-            :value="productForm"
-            :index="index"
-            @input="onSchemaFormChange"
-          />
-        </el-col>
-      </el-row>
+      <el-collapse-transition>
+        <el-row :gutter="2" v-if="productTypeResult && productTypeResult.productCode">
+          <el-col :span="24">
+            <ProductSchemaForm
+              :productType="productTypeResult.productCode"
+              :productInfo="productTypeInfo"
+              :value="productForm"
+              :index="index"
+              @input="onSchemaFormChange"
+              @loading="changeLoading"
+            />
+          </el-col>
+        </el-row>
+      </el-collapse-transition>
     </el-form>
   </div>
 </template>
@@ -47,10 +52,10 @@ export default {
       type: [String, Number],
       default: '0'
     },
-
   },
   data() {
     return {
+      loading: false,
       // productTypeResult: {
       //   productCode: '',
       //   activityCode: '',
@@ -124,10 +129,17 @@ export default {
       const payload = this.getState()
       this.$emit('change', payload)
     },
+    changeLoading(e) {
+      this.loading = e
+    }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-
+::v-deep {
+  .product-type-cascader {
+    width: 90%;
+  }
+}
 </style>

+ 10 - 1
src/views/create-order/components/paymentPlanModule.vue

@@ -6,6 +6,7 @@
         :value="pageForm.paybackTimes"
         @input="onPaybackChange"
         placeholder="请输入"
+        :min="0"
         maxlength="2">
         <template #append>次</template>
       </number-input>
@@ -103,7 +104,8 @@ export default {
   data() {
     return {
       conf: {
-        paybackMax: 5
+        paybackMin: 1,
+        paybackMax: 5,
       },
       required: {
         payback: true,
@@ -175,12 +177,19 @@ export default {
     },
     onPaybackChange(i) {
       const max = this.conf.paybackMax
+      const min = this.conf.paybackMin
       if (i > max) {
         this.setPageFormData('paybackTimes', max)
         this.$message({
           message: `最大值为${max}`,
           type: 'warning'
         })
+      } else if (i < min && i !== '') {
+        this.$message({
+          message: `最小值为${min}`,
+          type: 'warning'
+        })
+        this.setPageFormData('paybackTimes', 1)
       } else {
         this.setPageFormData('paybackTimes', i)
       }

+ 3 - 3
src/views/create-order/components/product-info-submodule/ContractAmount.vue

@@ -14,7 +14,7 @@
       <span class="sub-info-item no-amount-money" v-if="noStandardMoney">该产品暂无法计算标准售价</span>
       <span class="sub-info-item form-item-container" v-else>
         <span class="form-item-label">标准售价:</span>
-        <span class="form-item-value">{{ formatMoney(standardMoney) }}</span>
+        <span class="form-item-value">{{ formatMoney(standardMoney || '') }}</span>
       </span>
       <span class="sub-info-item form-item-container">
         <span class="form-item-label">折扣率:</span>
@@ -84,8 +84,8 @@ export default {
         return
       }
       const { contractMoney, standardMoney } = e
-      this.contractMoney = contractMoney
-      this.standardMoney = standardMoney
+      this.contractMoney = contractMoney || ''
+      this.standardMoney = standardMoney || ''
     },
     onChange() {
       const e = this.getState()

+ 25 - 5
src/views/create-order/components/product-info-submodule/ProductTypeSelector.vue

@@ -3,7 +3,7 @@
     <el-form-item label="选择产品" required :error="productTypeError">
       <el-cascader
         :options="productTypeOptions"
-        class="el-cascader-w100"
+        class="product-type-cascader"
         :props="conf.cascaderProps"
         v-model="productType1"
         size="medium"
@@ -11,11 +11,16 @@
         placeholder="请选择产品"
         filterable
         clearable></el-cascader>
+      <span v-if="showLoading && loading" class="loading-container">
+        <Spin fix class="order-spin">
+          <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon>
+        </Spin>
+      </span>
     </el-form-item>
     <el-form-item label="产品类型" required v-if="activityMark">
       <el-cascader
         :options="activityTypeOptions"
-        class="el-cascader-w100"
+        class="product-type-cascader"
         :props="conf.cascaderProps"
         v-model="productType2"
         size="medium"
@@ -23,6 +28,11 @@
         placeholder="请选择产品类型"
         filterable
         clearable></el-cascader>
+      <span v-if="showLoading && loading" class="loading-container">
+        <!-- <Spin fix class="order-spin">
+          <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon>
+        </Spin> -->
+      </span>
     </el-form-item>
   </div>
 </template>
@@ -47,6 +57,14 @@ export default {
         return {}
       }
     },
+    showLoading: {
+      type: Boolean,
+      default: false,
+    },
+    loading: {
+      type: Boolean,
+      default: false,
+    },
     showErrorTip: {
       type: Boolean,
       default: false,
@@ -241,9 +259,6 @@ export default {
 
 <style lang="scss" scoped>
 ::v-deep {
-  .el-cascader-w100 {
-    width: 100%;
-  }
   .el-form-item.is-error .el-input__inner {
     border-color: #DCDFE6;
   }
@@ -252,4 +267,9 @@ export default {
     border-color: $main;
   }
 }
+
+.loading-container {
+  position: relative;
+  left: 20px;
+}
 </style>

+ 10 - 5
src/views/create-order/components/product-info-submodule/RelatedOrderTable.vue

@@ -12,11 +12,12 @@
       <el-table-column
         v-if="selection"
         align="center"
+        width="70"
         label="请选择"
       >
         <template #default="scope">
           <el-checkbox
-            :value="value.includes(scope.row[defaultKey])"
+            :value="value.includes(scope.row[defaultKey] || scope.row[defaultKey2])"
             @change="handleRadioChange(scope.row)"
           ></el-checkbox>
         </template>
@@ -77,7 +78,11 @@ export default {
   props: {
     defaultKey: {
       type: String,
-      default: 'linkedId'
+      default: 'linkedOrder'
+    },
+    defaultKey2: {
+      type: String,
+      default: '_verId'
     },
     defaultSelected: {
       type: Boolean,
@@ -119,12 +124,12 @@ export default {
       this.$emit('input', e)
     },
     getRowKey(row) {
-      return row?._linkedId || row[this.defaultKey]
+      return row[this.defaultKey] || row[this.defaultKey2]
     },
     initSelected() {
       if (this.tableData.length === 1) {
         // 默认勾选
-        const id = this.tableData[0][this.defaultKey]
+        const id = this.tableData[0][this.defaultKey] || this.tableData[0][this.defaultKey2]
         this.onInput([id])
       }
     },
@@ -132,7 +137,7 @@ export default {
       this.handleRadioChange(row)
     },
     handleRadioChange(row) {
-      const id = row[this.defaultKey]
+      const id = row[this.defaultKey] || row[this.defaultKey2]
       let selectedRowId = []
       if (this.required) {
         selectedRowId = [id]

+ 9 - 9
src/views/create-order/components/product-info-submodule/RelatedOrders.vue

@@ -16,7 +16,7 @@
     <el-dialog title="选择关联订单" :visible.sync="dialogTableVisible">
       <RelatedOrderTable
         selection
-        v-model="cacheLinkedIdArr"
+        v-model="cacheLinkedOrderArr"
         :tableData="tableData"
         :defaultSelected="required"
         :required="required"
@@ -153,8 +153,8 @@ export default {
   data(){
     return {
       dialogTableVisible: false,
-      linkedIdArr: [],
-      cacheLinkedIdArr: [],
+      linkedOrderArr: [],
+      cacheLinkedOrderArr: [],
     }
   },
   computed: {
@@ -183,10 +183,10 @@ export default {
       })
     },
     selectedTableData() {
-      return this.tableData.filter(r => this.linkedIdArr.includes(r.linkedId))
+      return this.tableData.filter(r => this.linkedOrderArr.includes(r.linkedOrder))
     },
     linkedIdText() {
-      return this.selectedTableData.map(r => r.order_code).join(',') || ''
+      return this.selectedTableData.map(r => r.linkedOrder || '-').join(',') || ''
     },
   },
   methods: {
@@ -194,11 +194,11 @@ export default {
       this.$emit('input', e)
     },
     getState() {
-      return JSON.parse(JSON.stringify(this.linkedIdArr))
+      return JSON.parse(JSON.stringify(this.linkedOrderArr))
     },
     setState(e) {
       if (Array.isArray(e)) {
-        this.linkedIdArr = e
+        this.linkedOrderArr = e
         this.onInput(e)
       }
     },
@@ -234,8 +234,8 @@ export default {
     },
     onDialogConfirm() {
       this.showTableDialog(false)
-      this.linkedIdArr = this.cacheLinkedIdArr
-      this.onInput(this.linkedIdArr)
+      this.linkedOrderArr = this.cacheLinkedOrderArr
+      this.onInput(this.linkedOrderArr)
       this.onConfirm()
     },
     onConfirm() {

+ 119 - 6
src/views/create-order/components/product-info-submodule/ServiceList.vue

@@ -74,10 +74,17 @@ export default {
     disabled: {
       type: Boolean,
       default: false,
-    }
+    },
+    defaultSelectedIds: {
+      type: Array,
+      default() {
+        return [1,3] 
+      }
+    },
   },
   data() {
     return {
+      customServiceList: [],
       serviceList: [
         // {
         //   label: '基础服务',
@@ -301,7 +308,9 @@ export default {
       // const customServiceList = this.bigServiceInfo?.customService || []
       this.serviceList = this.initServiceList(customServiceList)
     },
+    // 初始化数据结构
     initServiceList(customServiceList) {
+      this.customServiceList = customServiceList
       let sList = []
       if (Array.isArray(customServiceList)) {
         sList = customServiceList.map(first => {
@@ -335,7 +344,7 @@ export default {
               obj.list.forEach(e => {
                 if (e.s_new_name.indexOf('数据导出') > -1) {
                   e.dw = '条/天'
-                  if (e.s_count_year == 200) {
+                  if (e.s_count_year == 100) {
                     obj.id = e.id
                   }
                 } else if (e.s_new_name.includes('市场分析定制报告') || e.s_new_name.includes('企业分析') || e.s_new_name.includes('业主分析')) {
@@ -448,6 +457,13 @@ export default {
       service.indeterminate = checkedCount > 0 && checkedCount < service.children.length
       this.onChange()
     },
+    // 检查一级checkbox是否需要全选半选
+    checkAllFirstCheckboxChecked() {
+      this.serviceList.forEach(service => {
+        if (service.id === 1) return
+        this.handleChildrenCheckedChange(service.childrenValue, service)
+      })
+    },
     onScCheckboxChange(sc, e) {
       sc.checked = e
     },
@@ -459,6 +475,7 @@ export default {
       const payload = this.getState()
       this.$emit('change', payload)
     },
+    // 根据组件数据结构获取当前被选中的项
     getSelected() {
       const map = {
         selectedInfoList: [], // 包含disabled的被选中子项
@@ -481,11 +498,105 @@ export default {
       })
       return map
     },
+    // 计算选中列表的id数组(用来传参)和name数组(用来展示)
+    calcSelectedArrIdNames(selectedInfoList) {
+      const selectedInfoArr = []
+      // 默认选中 [1,3]
+      selectedInfoList.forEach(s => {
+        const selectedId = s.selected
+        if (Array.isArray(s.options)) {
+          s.options.forEach(item => {
+            if (item.id === selectedId) {
+              selectedInfoArr.push(item)
+            }
+          })
+        }
+      })
+      
+      // 字段补充
+      const idArr = selectedInfoArr.map(r => r.id)
+      const nameArr = selectedInfoArr.map(e => {
+        const name = e.s_new_name
+        if (e.id === 1) {
+          return this.entService ? '基础服务+企业管理' : '基础服务'
+        } else if (e.id == 22 || e.id == 20 || e.id == 24) {
+          // 项目进度监控 22=>100; 14=>500  企业情报监控20=>100 ;23=>500  业主监控 24=>100 ;25=>500
+          return `${name}(100个)`
+        } else if (e.id == 14 || e.id == 23 || e.id == 25) {
+          return `${name}(500个)`
+        } else if (e.id == 17) { // 数据导出
+          return `${name}(100条/天)`
+        } else if (e.id == 18) {
+          return `${name}(200条/天)`
+        } else if (e.s_new_name.includes('市场分析定制报告') || e.s_new_name.includes('企业分析') || e.s_new_name.includes('业主分析')) {
+          if (e.s_count_year) {
+            if (e.s_new_name.includes('企业分析') && e.s_count_year == 500) {
+              return e.s_new_name
+            } else {
+              return e.s_new_name.replace(',报告下载:', '') + `(报告下载:${e.s_count_year}${e.dw || ''})`
+            }
+          } else {
+            return e.s_new_name
+          }
+        } else {
+          return e.s_new_name
+        }
+      })
+      const names_str = nameArr.join(',')
+      // 基础服务: 服务id需要传1 3
+      
+      if (idArr.includes(1) && !idArr.includes(3)) {
+        idArr.push(3)
+      }
+
+      // 企业情报监控包含企业情报监控 20 23 企业情报监控传20的时候,企业中标动态传21 企业中标动态 21 13 企业情报监控传23的时候 企业中标动态传13
+      // 20-企业情报监控(100个) 选中: 需要同时传21-企业中标动态(100个)
+      if (idArr.includes(20) && !idArr.includes(21)) {
+        idArr.push(21)
+      }
+       // 23-企业情报监控(500个) 选中: 需要同时传13-企业中标动态(500个)
+      if (idArr.includes(23) && !idArr.includes(13)) {
+        idArr.push(13)
+      }
+
+      // 选中下载包的ID时则存在没有基础产品的ID,这里补上。基础产品和下载包是绑定的,但是有两个ID
+      if (names_str.includes('市场分析定制报告') && !idArr.includes(26)) {
+        idArr.push(26) // 添加基础服务
+      }
+      if (names_str.includes('企业分析') && !idArr.includes(4)) {
+        idArr.push(4) // 添加基础服务
+      }
+      if (names_str.includes('业主分析') && !idArr.includes(5)) {
+        idArr.push(5) // 添加基础服务
+      }
+      console.log(`serviceList选中服务: `, idArr, nameArr)
+      return {
+        idArr: [...new Set(idArr)], // 数组去重
+        nameArr,
+      }
+    },
+    getSelectedIdArrAndNameArr() {
+      const { selectedInfoList } = this.getSelected()
+      return this.calcSelectedArrIdNames(selectedInfoList)
+    },
     getState() {
       const { selectedInfoList } = this.getSelected()
-      return selectedInfoList.map(s => s.selected)
+      const { idArr } = this.getSelectedIdArrAndNameArr(selectedInfoList)
+      return idArr
+    },
+    // 根据id获取服务信息
+    getServiceInfoById(id) {
+      const findIt = {}
+      this.customServiceList.find(item => {
+        const t = item.Children.find(t => t.id === id)
+        if (t) {
+          Object.assign(findIt, t)
+        }
+        return t
+      })
+      return findIt
     },
-    setState(selectedIds = []) {
+    setState(selectedIds = this.defaultSelectedIds) {
       const target = selectedIds
       if (!Array.isArray(target)) return
       this.serviceList.forEach(service => {
@@ -493,12 +604,14 @@ export default {
         service.children.forEach(serve => {
           const t = serve.options.find(item => target.includes(item.value))
           if (t) {
-            childrenValue.push(t.value)
+            childrenValue.push(serve.value)
             serve.checked = true
             serve.selected = t.value
           }
         })
-        service.childrenValue = childrenValue
+        service.childrenValue = [...new Set(childrenValue)]
+        // 检查是否全选
+        this.handleChildrenCheckedChange(service.childrenValue, service)
       })
     },
     setDisabledService(disabledIds = []) {

+ 3 - 0
src/views/create-order/components/schema-form/params/bigmember.js

@@ -39,6 +39,9 @@ export class BigMemberParamsGroup extends Parameters {
       ...commonFilter,
       comboId,
       serviceIds: productForm.serviceList,
+      // 大会员个人版也可开通子账号,getCommonFilterParams中个人版没有加上的,此处要加上
+      buyAccountCount: productForm.subAccountNumbers?.payCount,
+      giftAccountCount: productForm.subAccountNumbers?.freeCount
     }
 
     // filter.SupServiceIds = productForm.SupServiceIds

+ 58 - 19
src/views/create-order/components/schema-form/schema-form.vue

@@ -102,12 +102,10 @@ export default {
       immediate: true,
       handler(n) {
         this.getOrderProductInfo(n, true)
-        this.beforeGetUserPower(true)
       }
     },
     schemaKey() {
       this.getOrderProductInfo(this.productType)
-      this.beforeGetUserPower()
       setTimeout(() => {
         this.$refs.schemaForm.clearValidate()
       }, 0)
@@ -115,6 +113,7 @@ export default {
   },
   created() {
     window.form = this
+    this.changeLoading(false)
   },
   methods: {
     ...mapMutations('order', [
@@ -133,7 +132,7 @@ export default {
     },
     onInput(e) {
       this.emitInput(e)
-      this.afterInput() // 用于动态修改用户限制选中项
+      this.afterInput() // 用于监听哪些字段做了变动,然后进行一些操作
     },
     onInitSchema() {
       this.$emit('initd')
@@ -149,7 +148,10 @@ export default {
       const r = Object.assign({}, this.value, obj)
       this.emitInput(r)
     },
-    getOrderProductInfo(type, typeChanged) {
+    changeLoading(e) {
+      this.$emit('loading', e)
+    },
+    async getOrderProductInfo(type, typeChanged) {
       // rules和schema可以根据productType、productInfo、form生成
       const { schemaList, rules, defaultValue, changedFields } = createSchema({
         type: type || this.productType,
@@ -171,8 +173,25 @@ export default {
       this.onInitSchema()
       // 更新完规则后,刷新规则相关判断
       this.dynamicChangeSchema()
+
+      this.$nextTick(() => {
+        this.beforeGetUserPower()
+      })
+    },
+    async beforeGetUserPower() {
+      this.changeLoading(true)
+      try {
+        await this.getUserPowerCheck()
+      } catch (error) {
+        console.log(error)
+      } finally {
+        this.changeLoading(false)
+        this.$nextTick(() => {
+          this.dynamicChangeSchema()
+        })
+      }
     },
-    async beforeGetUserPower(ent = false) {
+    async getUserPowerCheck(ent = false) {
       // 判断购买主体是企业还是个人
       const { buySubject, accountTel, companyName } = this.pageForm
       if (buySubject === 1) {
@@ -185,13 +204,13 @@ export default {
           await this.getUserService()
         }
       }
-      this.afterInput()
     },
     async getUserService() {
       const payload = {
         phone: this.pageForm.accountTel,
         entName: this.pageForm.companyName,
         buySubject: this.pageForm.buySubject + '',
+        service_type: this.value.paymentType - 0, // 1购买 2续费 3升级 4试用
         productType: productTypeMap[this.productType],
       }
       if (!payload.productType) return
@@ -219,7 +238,11 @@ export default {
     needChangeSchema() {
       const changedFieldsArr = this.getChangedFields()
       const changedFields = changedFieldsArr.join(',')
-      if (!changedFields) return true
+      const res = {
+        needChange: true,
+        changedFieldsArr
+      }
+      if (!changedFields) return res
       // 能够更新的条件:
       // 1. 当前产品需要的字段变更
       // 求交集
@@ -229,9 +252,11 @@ export default {
       // 求交集
       const needChange = needChangedArr.length !== 0
       // 此处规则log不要注释!!!需要通过此log判断在产品类型变更后是否产生了递归调用
-      // <主要是this.value字段少 -> this.value 字段多时的情况>
+      // <主要是应对this.value字段少 -> this.value 字段多时的情况>
       console.log('是否需要更新schema规则: ', needChange, needChangedArr) // 禁止移除
-      return needChange
+      return Object.assign(res, {
+        needChange
+      })
     },
     // 暂定规则更新
     pauseRefreshSchema() {
@@ -251,11 +276,11 @@ export default {
     // 处理并分发各个产品卡片操作的限制
     afterInput: debounce(function() {
       // 修改某些字段时候才会更新schema
-      const needChange = this.needChangeSchema()
+      const { needChange, changedFieldsArr } = this.needChangeSchema()
+      this.onChangedFields(changedFieldsArr)
       if (!needChange) return
       this.dynamicChangeSchema()
-    }, 10),
-
+    }, 50),
     getPriceRequest: debounce(async function getPrice(p) {
       const commonP = {
         productInfo: cloneDeep(this.thisProductInfoListItem),
@@ -267,8 +292,12 @@ export default {
       this.$store.dispatch('order/getPrice', commonP).then(r => {
         // 刷新xx组件价格
         const key = schemaKeyMap.contractAmount
+        let standardMoney = ''
+        if (r) {
+          standardMoney = r / 100
+        }
         this.refreshValue({
-          [key]: Object.assign({}, this.value[key], { standardMoney: r / 100 }) 
+          [key]: Object.assign({}, this.value[key], { standardMoney }) 
         })
         this.startRefreshSchema()
       })
@@ -301,30 +330,34 @@ export default {
     },
     // 工具:检查是否可以升级,并动态禁用启用付费类型相关选项
     utilCheckAndEnabledUpgradeRenew() {
-      let canRenewUpgrade = false
+      let hasAvailableService = false
       const ma = this.getSchemaItemWithKey(schemaKeyMap.payment)
       if (this.thisProductInfoListItem?.productUserService) {
         const us = this.thisProductInfoListItem.productUserService
         if (Array.isArray(us.serviceArrMap) && us.serviceArrMap.length > 0) {
+          // 有生效订单,且没过期,先禁用购买选项,并更改默认值为续费
           if (us.serviceArrMap[0].vipExist) {
             // 可以续费
-            canRenewUpgrade = true
+            hasAvailableService = true
           }
         }
       }
 
       // 修改options
+      // 启用续费升级,禁用购买试用
       ma.props.options.forEach(item => {
         // 续费或升级
         if (item.value === 2 || item.value === 3) {
-          item.disabled = !canRenewUpgrade
+          item.disabled = !hasAvailableService
+        } else {
+          item.disabled = hasAvailableService
         }
       })
 
       // 如果被禁用的项被选中,则自动调整选中项
       const changed = this.utilChangeAvailablePayment()
       return {
-        canRenewUpgrade,
+        hasAvailableService,
         changed,
       }
     },
@@ -350,7 +383,7 @@ export default {
           // 1.1 个人: serviceArrMap不能位空,且,vipExist为true。此时可以续费(升级),否则不可以续费(升级)
           this.utilCheckAndEnabledUpgradeRenew()
         } else if (buySubject === 2) {
-          // 1.2 企业: 选择关联订单后再次查询。然后做1.1相同判断
+          // 1.2 企业: 选择关联订单后再次查询。然后固定权益
           // 此处判断在关联订单选择完成后判断
         }
       }
@@ -376,6 +409,7 @@ export default {
       } else {
         relatedOrders.required = false
       }
+      // this.$set(relatedOrders.props, 'required', relatedOrders.required)
       relatedOrders.props.required = relatedOrders.required
 
       this.$set(relatedOrders.hooks, 'confirm', async (p) => {
@@ -386,7 +420,7 @@ export default {
         if (buySubject === 2) {
           // 重新调用
           await this.getUserService()
-          this.utilCheckAndEnabledUpgradeRenew()
+          // this.utilCheckAndEnabledUpgradeRenew()
         }
       })
     },
@@ -628,6 +662,11 @@ export default {
       // const { [schemaKeyMap.payment]: payment } = this.value
       // const ma = this.getSchemaItemWithKey(schemaKeyMap.payment)
     },
+    onChangedFields(changedArr) {
+      // 付费类型
+      if (changedArr.includes(schemaKeyMap.payment)) {}
+      console.log('以下字段变更了:', changedArr)
+    }
   }
 }
 </script>