From 3a61aa096c3191e97770a92e4e145fe63ddc1aa4 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 27 二月 2026 18:41:05 +0800
Subject: [PATCH] 经销商管理
---
admin/src/components/business/OperaCouponWindow.vue | 68 +++++++++++++++++++++++----------
1 files changed, 47 insertions(+), 21 deletions(-)
diff --git a/admin/src/components/business/OperaCouponWindow.vue b/admin/src/components/business/OperaCouponWindow.vue
index 2f1df05..a6649b7 100644
--- a/admin/src/components/business/OperaCouponWindow.vue
+++ b/admin/src/components/business/OperaCouponWindow.vue
@@ -38,14 +38,12 @@
<el-input type="textarea" v-model="form.info" placeholder="璇疯緭鍏ヤ紭鎯犲埜璇存槑" maxlength="500" v-trim/>
</el-form-item>
<p class="tip-header" >浣跨敤闄愬埗</p>
- <el-form-item label="鏈夋晥鏈�" prop="useType">
- <el-radio-group v-model="form.useType">
+ <el-form-item label="鏈夋晥鏈�" prop="getDate">
+ <el-radio-group v-model="form.useType" @change="changeApplyType">
<el-radio :label="0">鍥哄畾鏃舵</el-radio>
<el-radio :label="1">鍥哄畾鏃堕暱</el-radio>
</el-radio-group>
- </el-form-item>
- <el-form-item label="浣跨敤鏃舵" prop="getDate" v-if="form.useType===0">
- <div class="date-style">
+ <div class="date-style" v-if="form.useType===0">
<el-date-picker
v-model="getDate"
type="datetimerange"
@@ -57,9 +55,7 @@
@change="selectDate"
></el-date-picker>
</div>
- </el-form-item>
- <el-form-item label="鍥哄畾鏃堕暱" prop="validDays" v-if="form.useType===1">
- <div class="coupon-rule">
+ <div class="coupon-rule" v-if="form.useType===1">
<div class="discrep">棰嗗姷鍚�</div>
<el-input
v-model="form.validDays"
@@ -72,13 +68,22 @@
</div>
</el-form-item>
<el-form-item label="閫傜敤瀵硅薄" prop="applyType">
- <el-radio-group v-model="form.applyType">
+ <el-radio-group v-model="form.applyType" @change="changeApplyType">
<el-radio :label="0">鍏ㄥ満閫氱敤</el-radio>
<el-radio :label="1">鎸夊搧绫�</el-radio>
<el-radio :label="2">鎸囧畾鍟嗗搧</el-radio>
</el-radio-group>
</el-form-item>
- <el-form-item v-if="form.applyType===1" label="閫夋嫨鍝佺被" prop="applyCateIdList" >
+ <el-form-item label="閫夋嫨鍝佺被" prop="applyTypeRule" v-if="form.applyType===1">
+ <el-select style="margin-left:10px;width: 300px;" v-model="form.applyCateIdList" placeholder="璇烽�夋嫨鍟嗗搧鍒嗙被,鏀寔澶氶��" filterable multiple clearable >
+ <el-option v-for="item in categorys" :key="'optCate'+item.id" :label="item.name" :value="item.id"> </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="閫変腑鍟嗗搧" prop="applyTypeRule" v-if="form.applyType===2">
+ <span style="font-size: 12px;color: #216EEE" @click="selectGoods">宸叉寚瀹氥�� {{applyDataList.length}} 銆戜欢鍟嗗搧</span>
+ <el-button style="margin-left:30px;display: inline-block;width: 80px;" type="primary" @click="selectGoods">鍘婚�夋嫨 </el-button>
+ </el-form-item>
+<!-- <el-form-item v-if="form.applyType===1" label="閫夋嫨鍝佺被" prop="applyCateIdList" >
<el-select v-model="form.applyCateIdList" placeholder="璇烽�夋嫨鍟嗗搧鍒嗙被,鏀寔澶氶��" filterable multiple clearable >
<el-option v-for="item in categorys" :key="'optCate'+item.id" :label="item.name" :value="item.id"> </el-option>
</el-select>
@@ -86,7 +91,7 @@
<el-form-item v-if="form.applyType===2" label="閫夋嫨鍟嗗搧" prop="applyIdList" style="display: flex">
<span style="font-size: 12px;color: #216EEE" @click="selectGoods">宸叉寚瀹氥�� {{applyDataList.length}} 銆戜欢鍟嗗搧</span>
<el-button style="margin-left:30px;display: inline-block;width: 80px;" type="primary" @click="selectGoods">鍘婚�夋嫨 </el-button>
- </el-form-item>
+ </el-form-item>-->
<p class="tip-header" >鍙戞斁瑙勫垯</p>
<el-form-item label="鍙戞斁鎬婚噺" prop="num">
<div class="num-style">
@@ -123,10 +128,25 @@
}
}
const getDateRules = (rule, value, callback) => {
- if (!this.form.startDate) {
+ if (!this.form.useType < 0) {
+ callback(new Error('璇烽�夋嫨鏈夋晥鏈�'))
+ } else if (this.form.useType == 1 && !this.form.validDays) {
+ callback(new Error('璇疯緭鍏ュ浐瀹氭椂闀垮ぉ鏁�'))
+ } else if (this.form.useType == 0 && !this.form.startDate) {
callback(new Error('璇烽�夋嫨寮�濮嬫椂闂�'))
- } else if (!this.form.endDate) {
+ } else if (this.form.useType == 0 && !this.form.endDate) {
callback(new Error('璇疯緭鍏ョ粨鏉熸椂闂�'))
+ } else {
+ callback()
+ }
+ }
+ const getApplyTypeRule = (rule, value, callback) => {
+ if (!this.form.applyType < 0) {
+ callback(new Error('璇烽�夋嫨閫傜敤鑼冨洿'))
+ } else if (this.form.applyType == 1 && (!this.form.applyCateIdList || !this.form.applyCateIdList.length)) {
+ callback(new Error('璇烽�夋嫨浣跨敤鍝佺被'))
+ } else if (this.form.applyType == 2 && (!this.form.applyIdList || !this.form.applyIdList.length)) {
+ callback(new Error('璇烽�夋嫨鎸囧畾鍟嗗搧'))
} else {
callback()
}
@@ -187,16 +207,16 @@
],
num: [
{ required: true, validator: numRule, message: '璇疯緭鍏ュ彂鏀炬�绘暟', tigger: 'blur' }
- ]
+ ],
/* integral: [
{ required: true, validator: numRule, message: '璇疯緭鍏ュ厬鎹㈡潯浠�', tigger: 'blur' }
], */
- // validDays: [
- // { required: true, message: '璇疯緭鍏ュ彲鐢ㄦ椂闂�', tigger: 'blur' }
- // ],
- // getDate: [
- // { required: true, validator: getDateRules, tigger: 'change' }
- // ],
+ getDate: [
+ { required: true, validator: getDateRules }
+ ],
+ applyTypeRule: [
+ { required: true, validator: getApplyTypeRule }
+ ]
// shopId: [
// { required: true, validator: numRule, message: '璇烽�夋嫨鍏宠仈搴楅摵', tigger: 'change' }
// ]
@@ -231,6 +251,9 @@
this.applyDataList = res || []
})
},
+ changeApplyType(){
+ this.$refs.form.clearValidate()
+ },
doSelect (rows) {
console.log(rows, this.applyDataList)
this.applyDataList = []
@@ -241,6 +264,7 @@
this.form.applyIdList.push(item.id)
})
}
+ this.$refs.form.clearValidate();
},
open (title, target, type) {
this.showGoods = false
@@ -273,7 +297,9 @@
for (const key in this.form) {
this.form[key] = target[key]
}
- this.getDate = [target.startDate, target.endDate]
+ if (target.startDate && target.endDate) {
+ this.getDate = [target.startDate, target.endDate]
+ }
if (this.form.applyType === 1) {
this.form.applyCateIdList = []
var ta = this.form.applyIds.split(',')
--
Gitblit v1.9.3