Explorar el Código

权益和发放计划字段调整:领取有效期移至发放计划、使用有效期/库存改为纯文本回显、领取链接改名使用链接

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
csk hace 1 mes
padre
commit
6f0add7bcc

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

@@ -114,15 +114,10 @@
                   </el-form-item>
                 </el-col>
               </el-row>
-              <el-row :gutter="20" v-if="form.productType === '微信立减金'">
+              <el-row :gutter="20" v-if="form.productType === '微信立减金' && form.stockCount != null">
                 <el-col :span="8">
-                  <el-form-item label="库存数" required>
-                    <el-input-number
-                      v-model="form.stockCount"
-                      :min="0"
-                      :max="100000"
-                      style="width: 100%"
-                    ></el-input-number>
+                  <el-form-item label="库存数">
+                    <span>{{ form.stockCount }}</span>
                   </el-form-item>
                 </el-col>
               </el-row>
@@ -261,55 +256,12 @@
                 </el-form-item>
               </el-col>
             </el-row>
-            <el-row :gutter="20" v-if="form.isPlatformExchange === '是'">
-              <el-col :span="12">
-                <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" v-if="form.isPlatformExchange === '是'">
               <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>
-                    <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>
+                    <span v-if="form.validityType === 'relative'">领取后 {{ form.validityDays }} 天有效</span>
+                    <span v-else>{{ form.validityRange[0] }} ~ {{ form.validityRange[1] }}</span>
                   </template>
                   <template v-else-if="form.isPlatformExchange === '是' && form.productType === '券码'">
                     <el-date-picker
@@ -332,6 +284,13 @@
                 </el-form-item>
               </el-col>
             </el-row>
+            <el-row :gutter="20" v-if="form.isPlatformExchange === '否' && form.externalJumpMethod === '有'">
+              <el-col :span="12">
+                <el-form-item label="使用有效期" required>
+                  <el-input v-model="form.externalValidityText" maxlength="40" show-word-limit placeholder="请输入使用有效期"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
             <el-row :gutter="20">
               <el-col :span="12">
                 <el-form-item label="权益内容" required>
@@ -397,14 +356,14 @@
             </template>
             <el-row :gutter="20">
               <el-col :span="8">
-                <el-form-item label="领取链接">
+                <el-form-item label="使用链接">
                   <template #label>
-                    <span>领取链接</span>
+                    <span>使用链接</span>
                     <el-tooltip content="使用链接填写后,可在详情页复制" placement="top">
                       <el-icon style="margin-left: 4px; vertical-align: middle; cursor: pointer;"><QuestionFilled /></el-icon>
                     </el-tooltip>
                   </template>
-                  <el-input v-model="form.claimLink" placeholder="请输入领取链接"></el-input>
+                  <el-input v-model="form.claimLink" placeholder="请输入使用链接"></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -672,6 +631,7 @@ export default {
         introduction: '',
         validityType: 'fixed',
         validityText: '',
+        externalValidityText: '',
         validityRange: [],
         validityDays: 30,
         overview: '',
@@ -838,6 +798,7 @@ export default {
           miniAppPath: '',
           skuNo: 'SKU003',
           equityName: '权益C',
+          externalValidityText: '自激活之日起12个月内有效',
           listIcon: [],
           mainImage: [],
           overview: '<p>外部详情页权益内容</p>',
@@ -1036,6 +997,9 @@ export default {
       this.form.equityName = product.name
       this.form.merchantName = product.merchant
       this.form.stockCount = product.stock
+      this.form.validityType = product.validityType || 'fixed'
+      this.form.validityRange = product.validityRange || ['2026-01-01', '2026-12-31']
+      this.form.validityDays = product.validityDays || 30
       this.form.mainImage = product.mainImage ? [...product.mainImage] : []
     }
   }

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

@@ -142,9 +142,9 @@
             </el-row>
             <el-row :gutter="20">
               <el-col :span="8">
-                <el-form-item label="领取链接">
+                <el-form-item label="使用链接">
                   <template #label>
-                    <span>领取链接</span>
+                    <span>使用链接</span>
                     <el-tooltip content="使用链接填写后,可在详情页复制" placement="top">
                       <el-icon style="margin-left: 4px; vertical-align: middle; cursor: pointer;"><QuestionFilled /></el-icon>
                     </el-tooltip>

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

@@ -208,21 +208,18 @@
             </el-row>
             <el-row :gutter="20" v-if="form.isPlatformExchange === '是'">
               <el-col :span="12">
-                <el-form-item label="领取有效期">
+                <el-form-item label="使用有效期">
                   <el-input
-                    :value="form.claimStartTime && form.claimEndTime ? `${form.claimStartTime} 至 ${form.claimEndTime}` : '-'"
+                    :value="validityDisplay"
                     readonly
                   ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
-            <el-row :gutter="20" v-if="form.isPlatformExchange === ''">
+            <el-row :gutter="20" v-if="form.isPlatformExchange === '否' && form.externalJumpMethod === '有'">
               <el-col :span="12">
                 <el-form-item label="使用有效期">
-                  <el-input
-                    :value="validityDisplay"
-                    readonly
-                  ></el-input>
+                  <el-input :value="form.externalValidityText || '-'" readonly></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -274,9 +271,9 @@
             </template>
             <el-row :gutter="20">
               <el-col :span="8">
-                <el-form-item label="领取链接">
+                <el-form-item label="使用链接">
                   <template #label>
-                    <span>领取链接</span>
+                    <span>使用链接</span>
                     <el-tooltip content="使用链接填写后,可在详情页复制" placement="top">
                       <el-icon style="margin-left: 4px; vertical-align: middle; cursor: pointer;"><QuestionFilled /></el-icon>
                     </el-tooltip>
@@ -473,6 +470,7 @@ export default {
         introduction: '',
         validityType: 'fixed',
         validityText: '',
+        externalValidityText: '',
         overview: '',
         details: '',
         smsEnabled: false,
@@ -502,10 +500,10 @@ export default {
   computed: {
     validityDisplay() {
       if (this.form.validityType === 'relative') {
-        return `领取后${this.form.validityDays || '-'}天`
+        return `领取后 ${this.form.validityDays || '-'} 有效`
       }
       if (Array.isArray(this.form.validityRange) && this.form.validityRange.length === 2) {
-        return `${this.form.validityRange[0]}  ${this.form.validityRange[1]}`
+        return `${this.form.validityRange[0]} ~ ${this.form.validityRange[1]}`
       }
       return this.form.validityText || '-'
     },
@@ -608,6 +606,7 @@ export default {
         miniAppPath: '',
           skuNo: 'SKU003',
           equityName: '权益C',
+          externalValidityText: '自激活之日起12个月内有效',
           subTitle: '外部详情页副标题',
           listIcon: [],
           mainImage: [],

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

@@ -44,6 +44,9 @@
             </template>
             <span v-else>-</span>
           </el-descriptions-item>
+          <el-descriptions-item v-if="snapshot.grantMode !== 'direct'" label="领取有效期" :span="2">
+            {{ snapshot.claimStartTime && snapshot.claimEndTime ? `${snapshot.claimStartTime} 至 ${snapshot.claimEndTime}` : '-' }}
+          </el-descriptions-item>
           <el-descriptions-item label="短信通知" :span="2">
             <div class="sms-info-row">
               <span class="sms-tpl-name">{{ smsTemplateName }}</span>

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

@@ -114,15 +114,10 @@
                 </el-form-item>
               </el-col>
             </el-row>
-            <el-row :gutter="20" v-if="form.productType === '微信立减金'">
+            <el-row :gutter="20" v-if="form.productType === '微信立减金' && form.stockCount != null">
               <el-col :span="8">
-                <el-form-item label="库存数" required>
-                  <el-input-number
-                    v-model="form.stockCount"
-                    :min="0"
-                    :max="100000"
-                    style="width: 100%"
-                  ></el-input-number>
+                <el-form-item label="库存数">
+                  <span>{{ form.stockCount }}</span>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -261,55 +256,12 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row :gutter="20" v-if="form.isPlatformExchange === '是'">
-            <el-col :span="12">
-              <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" v-if="form.isPlatformExchange === '是'">
             <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>
-                  <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>
+                    <span v-if="form.validityType === 'relative'">领取后 {{ form.validityDays }} 天有效</span>
+                    <span v-else>{{ form.validityRange[0] }} ~ {{ form.validityRange[1] }}</span>
                 </template>
                 <template v-else-if="form.isPlatformExchange === '是' && form.productType === '券码'">
                   <el-date-picker
@@ -332,6 +284,13 @@
               </el-form-item>
             </el-col>
           </el-row>
+          <el-row :gutter="20" v-if="form.isPlatformExchange === '否' && form.externalJumpMethod === '有'">
+            <el-col :span="12">
+              <el-form-item label="使用有效期" required>
+                <el-input v-model="form.externalValidityText" maxlength="40" show-word-limit placeholder="请输入使用有效期"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
           <el-row :gutter="20">
             <el-col :span="12">
               <el-form-item label="权益内容" required>
@@ -399,14 +358,14 @@
           </template>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="领取链接">
+              <el-form-item label="使用链接">
                 <template #label>
-                  <span>领取链接</span>
+                  <span>使用链接</span>
                   <el-tooltip content="使用链接填写后,可在详情页复制" placement="top">
                     <el-icon style="margin-left: 4px; vertical-align: middle; cursor: pointer;"><QuestionFilled /></el-icon>
                   </el-tooltip>
                 </template>
-                <el-input v-model="form.claimLink" placeholder="请输入领取链接"></el-input>
+                <el-input v-model="form.claimLink" placeholder="请输入使用链接"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
@@ -680,6 +639,7 @@ export default {
         introduction: '',
         validityType: 'fixed',
         validityText: '',
+        externalValidityText: '',
         validityRange: [],
         validityDays: 30,
         overview: '',
@@ -899,6 +859,7 @@ export default {
         miniAppPath: '',
           skuNo: 'SKU003',
           equityName: '权益C',
+          externalValidityText: '自激活之日起12个月内有效',
           listIcon: [],
           mainImage: [],
           overview: '<p>外部详情页权益内容</p>',
@@ -1041,6 +1002,9 @@ export default {
       this.form.equityName = product.name
       this.form.merchantName = product.merchant
       this.form.stockCount = product.stock
+      this.form.validityType = product.validityType || 'fixed'
+      this.form.validityRange = product.validityRange || ['2026-01-01', '2026-12-31']
+      this.form.validityDays = product.validityDays || 30
       this.form.mainImage = product.mainImage ? [...product.mainImage] : []
     }
   }

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

@@ -93,6 +93,27 @@
             />
           </el-select>
         </el-form-item>
+        <el-form-item v-if="isClaimMode" 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-form-item label="单客户权益数量" required>
           <div class="grant-row">
             <el-select v-model="form.grantCycle" placeholder="类型" style="width:140px">
@@ -152,6 +173,8 @@ function emptyForm() {
     isAutoGrant: '是',
     grantMode: 'claim',
     equityList: [],
+    claimStartTime: '',
+    claimEndTime: '',
     grantCycle: 'total',
     grantQuantity: 1,
     validity: { type: 'fixed', fixedRange: [], relativeDays: 30 },
@@ -259,6 +282,8 @@ export default {
         crowdList: [...(row.crowdList || [])],
         grantMode: row.grantMode || 'claim',
         equityList: [...(row.equityList || [])],
+        claimStartTime: row.claimStartTime || '',
+        claimEndTime: row.claimEndTime || '',
         grantCycle: row.grantCycle || 'total',
         grantQuantity: row.grantQuantity || 1,
         validity: {

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

@@ -42,6 +42,9 @@
           </template>
           <span v-else>-</span>
         </el-descriptions-item>
+        <el-descriptions-item v-if="current.grantMode !== 'direct'" label="领取有效期" :span="2">
+          {{ current.claimStartTime && current.claimEndTime ? `${current.claimStartTime} 至 ${current.claimEndTime}` : '-' }}
+        </el-descriptions-item>
         <el-descriptions-item label="短信通知" :span="2">
           <div class="sms-info-row">
             <span class="sms-tpl-name">{{ smsTemplateName }}</span>

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

@@ -214,21 +214,18 @@
             </el-row>
             <el-row :gutter="20" v-if="form.isPlatformExchange === '是'">
               <el-col :span="12">
-                <el-form-item label="领取有效期">
+                <el-form-item label="使用有效期">
                   <el-input
-                    :value="form.claimStartTime && form.claimEndTime ? `${form.claimStartTime} 至 ${form.claimEndTime}` : '-'"
+                    :value="validityDisplay"
                     readonly
                   ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
-            <el-row :gutter="20" v-if="form.isPlatformExchange === ''">
+            <el-row :gutter="20" v-if="form.isPlatformExchange === '否' && form.externalJumpMethod === '有'">
               <el-col :span="12">
                 <el-form-item label="使用有效期">
-                  <el-input
-                    :value="validityDisplay"
-                    readonly
-                  ></el-input>
+                  <el-input :value="form.externalValidityText || '-'" readonly></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -280,9 +277,9 @@
             </template>
             <el-row :gutter="20">
               <el-col :span="8">
-                <el-form-item label="领取链接">
+                <el-form-item label="使用链接">
                   <template #label>
-                    <span>领取链接</span>
+                    <span>使用链接</span>
                     <el-tooltip content="使用链接填写后,可在详情页复制" placement="top">
                       <el-icon style="margin-left: 4px; vertical-align: middle; cursor: pointer;"><QuestionFilled /></el-icon>
                     </el-tooltip>
@@ -509,6 +506,7 @@ export default {
         introduction: '',
         validityType: 'fixed',
         validityText: '',
+        externalValidityText: '',
         overview: '',
         details: '',
         smsEnabled: false,
@@ -539,10 +537,10 @@ export default {
   computed: {
     validityDisplay() {
       if (this.form.validityType === 'relative') {
-        return `领取后${this.form.validityDays || '-'}天`
+        return `领取后 ${this.form.validityDays || '-'} 有效`
       }
       if (Array.isArray(this.form.validityRange) && this.form.validityRange.length === 2) {
-        return `${this.form.validityRange[0]}  ${this.form.validityRange[1]}`
+        return `${this.form.validityRange[0]} ~ ${this.form.validityRange[1]}`
       }
       return this.form.validityText || '-'
     },
@@ -656,6 +654,7 @@ export default {
         miniAppPath: '',
           skuNo: 'SKU003',
           equityName: '权益C',
+          externalValidityText: '自激活之日起12个月内有效',
           subTitle: '外部详情页副标题',
           listIcon: [],
           mainImage: [],