|
|
@@ -3,11 +3,11 @@
|
|
|
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px" @submit.prevent>
|
|
|
<el-form-item label="红包名称" prop="couponName">
|
|
|
<el-input v-model="form.couponName" placeholder="请输入红包名称" maxlength="20" show-word-limit
|
|
|
- :disabled="isEditActive" />
|
|
|
+ :disabled="isEditActive || isViewMode" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="红包数量" prop="totalNum">
|
|
|
- <el-input-number v-model="form.totalNum" :min="1" :max="100000" placeholder="请输入" class="!w-[200px]" />
|
|
|
+ <el-input-number v-model="form.totalNum" :min="1" :max="100000" placeholder="请输入" class="!w-[200px]" :disabled="isViewMode" />
|
|
|
<span class="ml-2 text-gray-500">张</span>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -16,19 +16,19 @@
|
|
|
<template v-if="type === '2'">
|
|
|
<el-form-item prop="minMoney" class="mb-0 !mr-0">
|
|
|
<el-input-number v-model="form.minMoney" :min="0.01" :precision="2" :controls="false"
|
|
|
- placeholder="请输入" class="!w-[100px]" :disabled="isEditActive" />
|
|
|
+ placeholder="请输入" class="!w-[100px]" :disabled="isEditActive || isViewMode" />
|
|
|
</el-form-item>
|
|
|
<span>-</span>
|
|
|
<el-form-item prop="maxMoney" class="mb-0 !mr-0">
|
|
|
<el-input-number v-model="form.maxMoney" :min="0.01" :precision="2" :controls="false"
|
|
|
- placeholder="请输入" class="!w-[100px]" :disabled="isEditActive" />
|
|
|
+ placeholder="请输入" class="!w-[100px]" :disabled="isEditActive || isViewMode" />
|
|
|
</el-form-item>
|
|
|
<span class="text-gray-500">元随机数字</span>
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
<el-form-item prop="faceMoney" class="mb-0 !mr-0">
|
|
|
<el-input-number v-model="form.faceMoney" :min="0.01" :precision="2" :controls="false"
|
|
|
- placeholder="请输入" class="!w-[150px]" :disabled="isEditActive" />
|
|
|
+ placeholder="请输入" class="!w-[150px]" :disabled="isEditActive || isViewMode" />
|
|
|
</el-form-item>
|
|
|
<span class="text-gray-500">元</span>
|
|
|
</template>
|
|
|
@@ -36,32 +36,32 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="使用门槛" prop="thresholdType">
|
|
|
- <el-radio-group v-model="form.thresholdType" :disabled="isEditActive">
|
|
|
+ <el-radio-group v-model="form.thresholdType" :disabled="isEditActive || isViewMode">
|
|
|
<el-radio label="none">无门槛</el-radio>
|
|
|
<el-radio label="full">满</el-radio>
|
|
|
</el-radio-group>
|
|
|
<el-form-item v-if="form.thresholdType === 'full'" prop="thresholdMoney"
|
|
|
class="inline-block ml-2 mb-0 !mr-0">
|
|
|
<el-input-number v-model="form.thresholdMoney" :min="0.01" :precision="2" :controls="false"
|
|
|
- placeholder="请输入" class="!w-[100px]" :disabled="isEditActive" />
|
|
|
+ placeholder="请输入" class="!w-[100px]" :disabled="isEditActive || isViewMode" />
|
|
|
<span class="ml-2 text-gray-500">元 可用</span>
|
|
|
</el-form-item>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="可否叠加使用" prop="stackType">
|
|
|
- <el-radio-group v-model="form.stackType" :disabled="isEditActive">
|
|
|
+ <el-radio-group v-model="form.stackType" :disabled="isEditActive || isViewMode">
|
|
|
<el-radio label="0">否</el-radio>
|
|
|
<el-radio label="1">是</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="使用商品" prop="scope">
|
|
|
- <el-radio-group v-model="form.scope" :disabled="isEditActive">
|
|
|
+ <el-radio-group v-model="form.scope" :disabled="isEditActive || isViewMode">
|
|
|
<el-radio :label="'1'">所有商品</el-radio>
|
|
|
<el-radio :label="'2'">指定商品</el-radio>
|
|
|
</el-radio-group>
|
|
|
<div v-if="form.scope === '2'" class="mt-2">
|
|
|
- <el-button type="primary" link @click="openProductSelect" :disabled="isEditActive">
|
|
|
+ <el-button type="primary" link @click="openProductSelect" :disabled="isEditActive || isViewMode">
|
|
|
已选择 {{ form.products ? form.products.length : 0 }} 个商品
|
|
|
</el-button>
|
|
|
</div>
|
|
|
@@ -70,22 +70,22 @@
|
|
|
<el-form-item label="有效期" required>
|
|
|
<div class="flex flex-col space-y-4 w-full">
|
|
|
<div class="flex items-center">
|
|
|
- <el-radio v-model="form.validityType" label="range" :disabled="isEditActive" @change="handleValidityTypeChange"
|
|
|
+ <el-radio v-model="form.validityType" label="range" :disabled="isEditActive || isViewMode" @change="handleValidityTypeChange"
|
|
|
class="!mr-4">日期范围</el-radio>
|
|
|
<el-form-item prop="validityRange" class="mb-0">
|
|
|
<el-date-picker v-model="form.validityRange" type="daterange" range-separator="至"
|
|
|
start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- :disabled="isEditActive || form.validityType !== 'range'" style="width: 320px;" />
|
|
|
+ :disabled="isEditActive || isViewMode || form.validityType !== 'range'" style="width: 320px;" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
|
|
|
<div class="flex items-center">
|
|
|
- <el-radio v-model="form.validityType" label="days" :disabled="isEditActive" @change="handleValidityTypeChange"
|
|
|
+ <el-radio v-model="form.validityType" label="days" :disabled="isEditActive || isViewMode" @change="handleValidityTypeChange"
|
|
|
class="!mr-4">有效日期</el-radio>
|
|
|
<div class="flex items-center">
|
|
|
<el-form-item prop="effectDays" class="mb-0 !mr-2">
|
|
|
<el-input-number v-model="form.effectDays" placeholder="请输入" style="width: 200px;"
|
|
|
- :min="1" :disabled="isEditActive || form.validityType !== 'days'" />
|
|
|
+ :min="1" :disabled="isEditActive || isViewMode || form.validityType !== 'days'" />
|
|
|
</el-form-item>
|
|
|
<span>天</span>
|
|
|
</div>
|
|
|
@@ -95,12 +95,12 @@
|
|
|
|
|
|
<el-form-item label="每人限领" prop="limitedPerUser">
|
|
|
<el-input-number v-model="form.limitedPerUser" :min="1" placeholder="请输入" class="!w-[200px]"
|
|
|
- :disabled="isEditActive" />
|
|
|
+ :disabled="isEditActive || isViewMode" />
|
|
|
<span class="ml-2 text-gray-500">张</span>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item v-if="type === '2'" label="口令" prop="commandWord">
|
|
|
- <el-input v-model="form.commandWord" placeholder="请输入口令" :disabled="isEditActive" />
|
|
|
+ <el-input v-model="form.commandWord" placeholder="请输入口令" :disabled="isEditActive || isViewMode" />
|
|
|
<div class="text-gray-400 text-xs mt-1">
|
|
|
用户搜索后弹出惊喜红包
|
|
|
</div>
|
|
|
@@ -111,7 +111,7 @@
|
|
|
<template #footer>
|
|
|
<div class="flex justify-end items-center">
|
|
|
<el-button @click="visible = false">取消</el-button>
|
|
|
- <el-button type="primary" :loading="loading" @click="handleSubmit">
|
|
|
+ <el-button v-if="!isViewMode" type="primary" :loading="loading" @click="handleSubmit">
|
|
|
{{ isEdit ? '保存' : '立即添加' }}
|
|
|
</el-button>
|
|
|
</div>
|
|
|
@@ -134,6 +134,7 @@
|
|
|
const visible = ref(false);
|
|
|
const type = ref('1'); // '1' (Common) | '2' (Surprise)
|
|
|
const dialogData = ref(null);
|
|
|
+ const isViewMode = ref(false);
|
|
|
|
|
|
const formRef = ref(null);
|
|
|
const loading = ref(false);
|
|
|
@@ -144,6 +145,9 @@
|
|
|
|
|
|
const dialogTitle = computed(() => {
|
|
|
const typeName = (type.value === '2') ? '惊喜红包' : '普通红包';
|
|
|
+ if (isViewMode.value) {
|
|
|
+ return `查看${typeName}详情`;
|
|
|
+ }
|
|
|
return isEdit.value ? `编辑${typeName}` : `新建${typeName}`;
|
|
|
});
|
|
|
|
|
|
@@ -185,9 +189,10 @@
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const open = (newType, data) => {
|
|
|
+ const open = (newType, data, viewMode = false) => {
|
|
|
type.value = newType;
|
|
|
dialogData.value = data;
|
|
|
+ isViewMode.value = viewMode;
|
|
|
visible.value = true;
|
|
|
|
|
|
resetForm();
|