Prechádzať zdrojové kódy

调整页面固定跳转选项

csk 1 mesiac pred
rodič
commit
c0d962b08f

+ 32 - 29
工作空间/产研/权益/汇丰全行/产品原型/pc-demo/src/views/PageAssembly.vue

@@ -271,15 +271,11 @@
                     <el-form-item class="jump-type-item" label-width="0">
                       <el-radio-group v-model="btn.linkType" @change="handleButtonJumpTypeChange(btn)">
                         <el-radio label="h5">H5链接跳转</el-radio>
-                        <el-radio label="fixed">固定链接跳转</el-radio>
                         <el-radio label="miniProgram">小程序跳转</el-radio>
+                        <el-radio label="taikoo">太古地产</el-radio>
+                        <el-radio label="dragon">龙腾</el-radio>
                       </el-radio-group>
                     </el-form-item>
-                    <el-form-item v-if="btn.linkType === 'fixed'" label="目标链接">
-                      <el-select v-model="btn.fixedLink" size="small" placeholder="请选择目标链接" style="width:100%" @change="handleButtonJumpFieldChange(btn)">
-                        <el-option v-for="opt in fixedJumpOptions" :key="opt.value" :label="opt.label" :value="opt.value" />
-                      </el-select>
-                    </el-form-item>
                     <el-form-item v-if="btn.linkType === 'h5'" label="配置链接">
                       <el-input v-model="btn.linkH5" size="small" placeholder="例如:https://hsbc.com" @input="handleButtonJumpFieldChange(btn)" />
                     </el-form-item>
@@ -330,15 +326,11 @@
                       <el-form-item class="jump-type-item" label-width="0">
                         <el-radio-group v-model="btn.dialog.confirmLinkType" @change="handleDialogJumpTypeChange(btn.dialog)">
                           <el-radio label="h5">H5链接跳转</el-radio>
-                          <el-radio label="fixed">固定链接跳转</el-radio>
                           <el-radio label="miniProgram">小程序跳转</el-radio>
+                          <el-radio label="taikoo">太古地产</el-radio>
+                          <el-radio label="dragon">龙腾</el-radio>
                         </el-radio-group>
                       </el-form-item>
-                      <el-form-item v-if="btn.dialog.confirmLinkType === 'fixed'" label="目标链接">
-                        <el-select v-model="btn.dialog.confirmFixedLink" size="small" placeholder="请选择目标链接" style="width:100%" @change="handleDialogJumpFieldChange(btn.dialog)">
-                          <el-option v-for="opt in fixedJumpOptions" :key="opt.value" :label="opt.label" :value="opt.value" />
-                        </el-select>
-                      </el-form-item>
                       <el-form-item v-if="btn.dialog.confirmLinkType === 'h5'" label="配置链接">
                         <el-input v-model="btn.dialog.confirmLinkH5" size="small" placeholder="例如:https://hsbc.com" @input="handleDialogJumpFieldChange(btn.dialog)" />
                       </el-form-item>
@@ -440,7 +432,7 @@
 <script>
 import { ElMessage, ElMessageBox } from 'element-plus'
 import request from '@/utils/request'
-import { FIXED_JUMP_OPTIONS, fetchLinkOptions } from '@/utils/linkOptions'
+import { fetchLinkOptions } from '@/utils/linkOptions'
 
 let blockIdCounter = 0
 function genBlockId() {
@@ -463,7 +455,6 @@ export default {
       linkForm: { campaignId: '', channelId: '' },
       campaignOptions: [],
       channelOptions: [],
-      fixedJumpOptions: FIXED_JUMP_OPTIONS,
       linkTargetId: '',
       linkTargetPublished: false,
       quillOptions: {
@@ -565,34 +556,48 @@ export default {
         target[key] = value
       }
     },
+    getPartnerFixedLink(type) {
+      if (type === 'taikoo') return '太古地产'
+      if (type === 'dragon') return '龙腾'
+      return ''
+    },
     isFixedJumpValue(value) {
-      return FIXED_JUMP_OPTIONS.some(opt => opt.value === value)
+      return value === '太古地产' || value === '龙腾'
+    },
+    normalizePartnerJumpType(type, fixedLink = '') {
+      if (type === 'taikoo' || type === 'dragon') return type
+      if (type === 'fixed') return fixedLink === '龙腾' ? 'dragon' : 'taikoo'
+      return type
     },
     inferButtonJumpType(btn = {}) {
-      if (btn.linkType) return btn.linkType
+      if (btn.linkType) return this.normalizePartnerJumpType(btn.linkType, btn.fixedLink || btn.link)
       if (btn.miniAppId || btn.miniAppPath) return 'miniProgram'
-      if (this.isFixedJumpValue(btn.link)) return 'fixed'
+      if (btn.link === '太古地产') return 'taikoo'
+      if (btn.link === '龙腾') return 'dragon'
       return 'h5'
     },
     inferDialogJumpType(dialog = {}) {
-      if (dialog.confirmLinkType) return dialog.confirmLinkType
+      if (dialog.confirmLinkType) return this.normalizePartnerJumpType(dialog.confirmLinkType, dialog.confirmFixedLink || dialog.confirmLink)
       if (dialog.confirmMiniAppId || dialog.confirmMiniAppPath) return 'miniProgram'
-      if (this.isFixedJumpValue(dialog.confirmLink)) return 'fixed'
+      if (dialog.confirmLink === '太古地产') return 'taikoo'
+      if (dialog.confirmLink === '龙腾') return 'dragon'
       if (dialog.confirmLinkH5 || dialog.confirmLink) return 'h5'
       return 'h5'
     },
     syncButtonLegacyLink(btn) {
-      if (btn.linkType === 'fixed') btn.link = btn.fixedLink || ''
+      const partnerLink = this.getPartnerFixedLink(btn.linkType)
+      if (partnerLink) btn.link = partnerLink
       if (btn.linkType === 'h5') btn.link = btn.linkH5 || ''
       if (btn.linkType === 'miniProgram') btn.link = ''
     },
     syncDialogLegacyLink(dialog) {
-      if (dialog.confirmLinkType === 'fixed') dialog.confirmLink = dialog.confirmFixedLink || ''
+      const partnerLink = this.getPartnerFixedLink(dialog.confirmLinkType)
+      if (partnerLink) dialog.confirmLink = partnerLink
       if (dialog.confirmLinkType === 'h5') dialog.confirmLink = dialog.confirmLinkH5 || ''
       if (dialog.confirmLinkType === 'miniProgram') dialog.confirmLink = ''
     },
     clearInactiveButtonJumpFields(btn) {
-      if (btn.linkType !== 'fixed') btn.fixedLink = ''
+      btn.fixedLink = this.getPartnerFixedLink(btn.linkType)
       if (btn.linkType !== 'h5') btn.linkH5 = ''
       if (btn.linkType !== 'miniProgram') {
         btn.miniAppId = ''
@@ -601,7 +606,7 @@ export default {
       this.syncButtonLegacyLink(btn)
     },
     clearInactiveDialogJumpFields(dialog) {
-      if (dialog.confirmLinkType !== 'fixed') dialog.confirmFixedLink = ''
+      dialog.confirmFixedLink = this.getPartnerFixedLink(dialog.confirmLinkType)
       if (dialog.confirmLinkType !== 'h5') dialog.confirmLinkH5 = ''
       if (dialog.confirmLinkType !== 'miniProgram') {
         dialog.confirmMiniAppId = ''
@@ -615,7 +620,7 @@ export default {
       const normalized = this.createDefaultJumpConfig({
         ...btn,
         linkType,
-        fixedLink: btn.fixedLink || (this.isFixedJumpValue(legacyLink) ? legacyLink : '太古地产'),
+        fixedLink: btn.fixedLink || (this.isFixedJumpValue(legacyLink) ? legacyLink : ''),
         linkH5: btn.linkH5 || (!this.isFixedJumpValue(legacyLink) ? legacyLink : ''),
         miniAppId: btn.miniAppId || '',
         miniAppPath: btn.miniAppPath || ''
@@ -631,7 +636,7 @@ export default {
       const normalized = this.createDefaultDialogJumpConfig({
         ...dialog,
         confirmLinkType,
-        confirmFixedLink: dialog.confirmFixedLink || (this.isFixedJumpValue(legacyLink) ? legacyLink : '太古地产'),
+        confirmFixedLink: dialog.confirmFixedLink || (this.isFixedJumpValue(legacyLink) ? legacyLink : ''),
         confirmLinkH5: dialog.confirmLinkH5 || (!this.isFixedJumpValue(legacyLink) ? legacyLink : ''),
         confirmMiniAppId: dialog.confirmMiniAppId || '',
         confirmMiniAppPath: dialog.confirmMiniAppPath || ''
@@ -829,7 +834,6 @@ export default {
       this.isModified = true
     },
     handleButtonJumpTypeChange(btn) {
-      if (btn.linkType === 'fixed' && !btn.fixedLink) btn.fixedLink = '太古地产'
       this.clearInactiveButtonJumpFields(btn)
       this.isModified = true
     },
@@ -838,7 +842,6 @@ export default {
       this.isModified = true
     },
     handleDialogJumpTypeChange(dialog) {
-      if (dialog.confirmLinkType === 'fixed' && !dialog.confirmFixedLink) dialog.confirmFixedLink = '太古地产'
       this.clearInactiveDialogJumpFields(dialog)
       this.isModified = true
     },
@@ -847,7 +850,7 @@ export default {
       this.isModified = true
     },
     validateButtonJumpConfig(btn) {
-      if (btn.linkType === 'fixed') return !!btn.fixedLink
+      if (this.getPartnerFixedLink(btn.linkType)) return true
       if (btn.linkType === 'h5') return !!(btn.linkH5 || '').trim()
       if (btn.linkType === 'miniProgram') {
         return !!(btn.miniAppId || '').trim() && !!(btn.miniAppPath || '').trim()
@@ -855,7 +858,7 @@ export default {
       return false
     },
     validateDialogJumpConfig(dialog) {
-      if (dialog.confirmLinkType === 'fixed') return !!dialog.confirmFixedLink
+      if (this.getPartnerFixedLink(dialog.confirmLinkType)) return true
       if (dialog.confirmLinkType === 'h5') return !!(dialog.confirmLinkH5 || '').trim()
       if (dialog.confirmLinkType === 'miniProgram') {
         return !!(dialog.confirmMiniAppId || '').trim() && !!(dialog.confirmMiniAppPath || '').trim()

+ 18 - 12
工作空间/产研/权益/汇丰全行/产品原型/pc-demo/src/views/PageZoneConfig.vue

@@ -181,15 +181,11 @@
               <el-form-item class="jump-type-item" label-width="0">
                 <el-radio-group v-model="item.jumpType" @change="handleZoneJumpTypeChange(item)">
                   <el-radio label="h5">H5链接跳转</el-radio>
-                  <el-radio label="fixed">固定链接跳转</el-radio>
                   <el-radio label="miniProgram">小程序跳转</el-radio>
+                  <el-radio label="taikoo">太古地产</el-radio>
+                  <el-radio label="dragon">龙腾</el-radio>
                 </el-radio-group>
               </el-form-item>
-              <el-form-item v-if="item.jumpType === 'fixed'" label="目标链接">
-                <el-select v-model="item.fixedLink" placeholder="请选择目标链接" style="width:100%" @change="markModified">
-                  <el-option v-for="opt in fixedJumpOptions" :key="opt.value" :label="opt.label" :value="opt.value" />
-                </el-select>
-              </el-form-item>
               <el-form-item v-if="item.jumpType === 'h5'" label="配置链接">
                 <el-input v-model="item.linkH5" placeholder="例如:https://hsbc.com" @input="markModified" />
               </el-form-item>
@@ -327,7 +323,7 @@
 <script>
 import { ElMessage } from 'element-plus'
 import request from '@/utils/request'
-import { FIXED_JUMP_OPTIONS, fetchLinkOptions } from '@/utils/linkOptions'
+import { fetchLinkOptions } from '@/utils/linkOptions'
 
 export default {
   name: 'PageZoneConfig',
@@ -353,7 +349,6 @@ export default {
       linkForm: { campaignId: '', channelId: '' },
       campaignOptions: [],
       channelOptions: [],
-      fixedJumpOptions: FIXED_JUMP_OPTIONS,
       quillOptions: {
         placeholder: '请输入富文本内容...',
         modules: {
@@ -437,10 +432,22 @@ export default {
         ...overrides
       }
     },
+    getPartnerFixedLink(type) {
+      if (type === 'taikoo') return '太古地产'
+      if (type === 'dragon') return '龙腾'
+      return ''
+    },
+    normalizePartnerJumpType(type, fixedLink = '') {
+      if (type === 'taikoo' || type === 'dragon') return type
+      if (type === 'fixed') return fixedLink === '龙腾' ? 'dragon' : 'taikoo'
+      return type
+    },
     inferJumpType(item = {}) {
-      if (item.jumpType) return item.jumpType
+      if (item.jumpType) return this.normalizePartnerJumpType(item.jumpType, item.fixedLink)
       if (item.wechatAppId || item.wechatPath) return 'miniProgram'
       if (item.linkH5) return 'h5'
+      if (item.fixedLink === '太古地产') return 'taikoo'
+      if (item.fixedLink === '龙腾') return 'dragon'
       return 'h5'
     },
     normalizeJumpConfig(item) {
@@ -458,7 +465,7 @@ export default {
       return items
     },
     clearInactiveJumpFields(item) {
-      if (item.jumpType !== 'fixed') item.fixedLink = ''
+      item.fixedLink = this.getPartnerFixedLink(item.jumpType)
       if (item.jumpType !== 'h5') item.linkH5 = ''
       if (item.jumpType !== 'miniProgram') {
         item.wechatAppId = ''
@@ -467,12 +474,11 @@ export default {
       item.linkApp = ''
     },
     handleZoneJumpTypeChange(item) {
-      if (item.jumpType === 'fixed' && !item.fixedLink) item.fixedLink = '太古地产'
       this.clearInactiveJumpFields(item)
       this.markModified()
     },
     validateJumpConfig(item) {
-      if (item.jumpType === 'fixed') return !!item.fixedLink
+      if (this.getPartnerFixedLink(item.jumpType)) return true
       if (item.jumpType === 'h5') return !!(item.linkH5 || '').trim()
       if (item.jumpType === 'miniProgram') {
         return !!(item.wechatAppId || '').trim() && !!(item.wechatPath || '').trim()