|
|
@@ -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()
|