|
|
@@ -262,27 +262,71 @@
|
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="权益有效期" required>
|
|
|
- <template v-if="form.isPlatformExchange === '是'">
|
|
|
- <el-radio-group v-model="form.validityType">
|
|
|
- <el-radio label="fromGrantPlan">取自发放计划</el-radio>
|
|
|
- <el-radio label="custom">自定义输入</el-radio>
|
|
|
+ <el-form-item label="领取有效期" required>
|
|
|
+ <div style="display: flex; align-items: center; gap: 12px; width: 100%;">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.claimStartTime"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="请选择开始时间"
|
|
|
+ format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ style="flex: 1;"
|
|
|
+ ></el-date-picker>
|
|
|
+ <span>至</span>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.claimEndTime"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="请选择结束时间"
|
|
|
+ format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ style="flex: 1;"
|
|
|
+ ></el-date-picker>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="使用有效期" required>
|
|
|
+ <template v-if="form.isPlatformExchange === '是' && form.productType === '微信立减金'">
|
|
|
+ <el-radio-group v-model="form.validityType" style="margin-bottom: 8px;">
|
|
|
+ <el-radio label="fixed">固定日期</el-radio>
|
|
|
+ <el-radio label="relative">相对日期</el-radio>
|
|
|
</el-radio-group>
|
|
|
- <el-input
|
|
|
- v-if="form.validityType === 'custom'"
|
|
|
- v-model="form.validityText"
|
|
|
- maxlength="50"
|
|
|
- show-word-limit
|
|
|
- placeholder="请输入权益有效期"
|
|
|
- style="margin-top: 8px;"
|
|
|
- ></el-input>
|
|
|
+ <div v-if="form.validityType === 'fixed'">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.validityRange"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%;"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else style="display: flex; align-items: center;">
|
|
|
+ <span style="margin-right: 8px;">领取后</span>
|
|
|
+ <el-input-number v-model="form.validityDays" :min="1" :max="3650" controls-position="right" style="width: 200px;" />
|
|
|
+ <span style="margin-left: 8px;">天</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="form.isPlatformExchange === '是' && form.productType === '券码'">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.validityRange"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%;"
|
|
|
+ />
|
|
|
</template>
|
|
|
<el-input
|
|
|
v-else
|
|
|
v-model="form.validityText"
|
|
|
maxlength="50"
|
|
|
show-word-limit
|
|
|
- placeholder="请输入权益有效期"
|
|
|
+ placeholder="请输入使用有效期"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -413,32 +457,8 @@
|
|
|
</template>
|
|
|
<div class="rule-section">
|
|
|
<el-form :model="form" label-width="120px" label-position="left">
|
|
|
- <el-form-item label="领取时间限制">
|
|
|
- <el-switch v-model="form.claimTimeEnabled"></el-switch>
|
|
|
- <template v-if="form.claimTimeEnabled">
|
|
|
- <div style="display: flex;max-width: 600px;background: #f1f2f5;padding: 20px;margin-top: 10px;flex-basis: 100%;">
|
|
|
- <el-date-picker
|
|
|
- v-model="form.claimStartTime"
|
|
|
- type="datetime"
|
|
|
- placeholder="请选择开始时间"
|
|
|
- format="YYYY-MM-DD HH:mm:ss"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- style="width: 100%"
|
|
|
- ></el-date-picker>
|
|
|
- <div style="width: 50px;text-align: center;">-</div>
|
|
|
- <el-date-picker
|
|
|
- v-model="form.claimEndTime"
|
|
|
- type="datetime"
|
|
|
- placeholder="请选择结束时间"
|
|
|
- format="YYYY-MM-DD HH:mm:ss"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- style="width: 100%"
|
|
|
- ></el-date-picker>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-form-item>
|
|
|
<el-form-item label="领取客群限制">
|
|
|
- <el-switch v-model="form.claimGroupEnabled"></el-switch>
|
|
|
+ <el-switch v-model="form.claimGroupEnabled" disabled></el-switch>
|
|
|
<template v-if="form.claimGroupEnabled">
|
|
|
<div style="max-width: 600px;background: #f1f2f5;padding: 20px;margin-top: 10px;flex-basis: 100%;">
|
|
|
<el-alert
|
|
|
@@ -495,10 +515,12 @@
|
|
|
placeholder="请选择组装页"
|
|
|
style="width: 100%"
|
|
|
>
|
|
|
- <el-option label="组装页A" value="组装页A"></el-option>
|
|
|
- <el-option label="组装页B" value="组装页B"></el-option>
|
|
|
- <el-option label="组装页C" value="组装页C"></el-option>
|
|
|
- <el-option label="组装页D" value="组装页D"></el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="page in assemblyPageOptions"
|
|
|
+ :key="page.id"
|
|
|
+ :label="page.name"
|
|
|
+ :value="page.name"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
@@ -634,8 +656,10 @@ export default {
|
|
|
listIcon: [],
|
|
|
mainImage: [],
|
|
|
introduction: '',
|
|
|
- validityType: 'fromGrantPlan',
|
|
|
+ validityType: 'fixed',
|
|
|
validityText: '',
|
|
|
+ validityRange: [],
|
|
|
+ validityDays: 30,
|
|
|
overview: '',
|
|
|
details: '',
|
|
|
smsEnabled: false,
|
|
|
@@ -647,10 +671,9 @@ export default {
|
|
|
showEndTime: '',
|
|
|
showGroupEnabled: false,
|
|
|
showGroupTagIds: [],
|
|
|
- claimTimeEnabled: false,
|
|
|
claimStartTime: '',
|
|
|
claimEndTime: '',
|
|
|
- claimGroupEnabled: false,
|
|
|
+ claimGroupEnabled: true,
|
|
|
claimGroupIsPotential: false,
|
|
|
claimGroupTagId: '',
|
|
|
claimDenyMessage: '很抱歉,您暂不符合领取条件。',
|
|
|
@@ -659,7 +682,8 @@ export default {
|
|
|
showOnHome: '显示',
|
|
|
showOnAssembly: '不显示',
|
|
|
assemblyPages: []
|
|
|
- }
|
|
|
+ },
|
|
|
+ assemblyPageOptions: []
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -679,12 +703,21 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
+ this.fetchAssemblyPages()
|
|
|
const copyFrom = this.$route.query.copyFrom
|
|
|
if (copyFrom) {
|
|
|
this.loadCopySource(copyFrom)
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ async fetchAssemblyPages() {
|
|
|
+ try {
|
|
|
+ const res = await request.get('/api/assembly/list')
|
|
|
+ this.assemblyPageOptions = res.data || []
|
|
|
+ } catch {
|
|
|
+ this.assemblyPageOptions = []
|
|
|
+ }
|
|
|
+ },
|
|
|
handlePlatformExchangeChange(val) {
|
|
|
if (val === '是') {
|
|
|
this.form.productType = '券码'
|
|
|
@@ -910,8 +943,10 @@ export default {
|
|
|
exchangeMethod: isNotPlatform
|
|
|
? (f.externalJumpMethod === '有' ? '第三方(详情页跳转)' : '第三方(列表跳转)')
|
|
|
: '权益平台',
|
|
|
- validityType: isCustomValidity ? 'custom' : 'fromGrantPlan',
|
|
|
- validityText: isCustomValidity ? (f.validityText || '') : '',
|
|
|
+ validityType: f.validityType || 'fixed',
|
|
|
+ validityText: f.validityText || '',
|
|
|
+ validityRange: f.validityRange || [],
|
|
|
+ validityDays: f.validityDays || 30,
|
|
|
showOnHome: f.showOnHome,
|
|
|
showOnAssembly: f.showOnAssembly,
|
|
|
assemblyPages: [...(f.assemblyPages || [])]
|