优惠卷列表

This commit is contained in:
zoujiandong
2024-06-04 18:51:39 +08:00
parent bce4651dfd
commit 0f6f973192
5 changed files with 165 additions and 113 deletions
+142 -56
View File
@@ -13,10 +13,10 @@
<div class="bar"></div>
<div class="name">优惠卷信息</div>
</div>
<a-form :model="modalForm" ref="modalFormRef" :auto-label-width="true">
<a-form :model="modalForm" ref="modalFormRef" :auto-label-width="true" :rules="rules">
<a-row :gutter="24" style="margin-top: 35px">
<a-col :span="12">
<a-form-item field="inquiry_no" label="优惠卷名称:">
<a-form-item field="coupon_name" label="优惠卷名称:">
<a-input
placeholder="请输入优惠卷名称"
v-model="modalForm.coupon_name"
@@ -24,7 +24,7 @@
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="inquiry_no" label="使用平台:">
<a-form-item field="coupon_client" label="使用平台:">
<a-select
placeholder="请选择使用平台"
v-model="modalForm.coupon_client"
@@ -117,7 +117,6 @@
:style="{ width: '320px' }"
placeholder="请选择问诊类型"
v-model="modalForm.inquiry_type"
>
<!-- 1:'专家问诊', 2:'快速问诊', 3:'公益问诊', 4:'问诊购药',5:'糖组检测' -->
<a-option key="1" value="1" label="专家问诊">专家问诊</a-option>
@@ -129,9 +128,35 @@
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="coupon_count" label="发放数量:">
<a-input-number
v-model="modalForm.coupon_count"
:style="{ width: '320px' }"
placeholder="请输入发放数量"
class="input-demo"
:min="1"
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="coupon_price" label="优惠卷金额:">
<a-input-number
v-model="modalForm.coupon_price"
:style="{ width: '320px' }"
placeholder="请输入优惠卷金额"
class="input-demo"
:min="0"
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24" v-if="showTimeRange">
<a-col :span="12">
<a-form-item field="inquiry_type" label="有效时间:">
<a-form-item field="valid_start_time" label="有效时间:" :rules="[{required: true,message:'请选择有效时间'}]">
<a-range-picker
style="width: 360px; margin: 0 24px 24px 0"
show-time
@@ -145,7 +170,7 @@
</a-row>
<a-row :gutter="24" v-if="showValidDay">
<a-col a-col :span="24">
<a-form-item field="valid_days" label="领取之日起有效天数:">
<a-form-item field="valid_days" label="领取之日起有效天数:" :rules="[{required: true,message:'请输入领取之日起有效天数'}]">
<a-input-number
v-model="modalForm.valid_days"
:style="{ width: '320px' }"
@@ -156,22 +181,9 @@
</a-form-item>
</a-col>
</a-row>
<!-- <a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="inquiry_type" label="发放个数:">
<a-input-number
v-model="value"
:style="{ width: '320px' }"
placeholder="请输入发放个数"
class="input-demo"
:min="1"
/>
</a-form-item>
</a-col>
</a-row> -->
<a-row :gutter="24" v-if="showManjian">
<a-col a-col :span="24">
<a-form-item field="with_amount" label="满减金额(元):">
<a-form-item field="with_amount" label="满减金额(元):" :rules="[{required: true,message:'请输入满减金额'}]">
<a-input-number
v-model="modalForm.with_amount"
:style="{ width: '320px' }"
@@ -184,7 +196,7 @@
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="min_usable_number" label="单商品最小可使用数量:">
<a-form-item field="min_usable_number" label="单商品最小可使用数量:" :rules="[{required: true,message:'请输入单商品最小可使用数量'}]">
<a-input-number
v-model="modalForm.min_usable_number"
:style="{ width: '320px' }"
@@ -216,15 +228,13 @@
</a-col>
</a-row> -->
<a-row :gutter="24" v-if="showProduct">
<a-col a-col :span="24">
<a-form-item field="product_id" label="关联商品:">
<a-input-number
v-model="modalForm.product_id"
:style="{ width: '320px' }"
placeholder="请选择关联商品"
class="input-demo"
:min="1"
/>
<a-col a-col :span="12">
<a-form-item field="product_id" label="关联商品:" :rules="[{required: true,message:'请选择关联商品'}]">
<a-select multiple v-model="modalForm.product_id" placeholder="请选择关联商品">
<a-option v-for="item in productList" :key="item.product_platform_id" :value="item.product_platform_id" :label="item.product_name">
{{ item.product_name }}
</a-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
@@ -321,9 +331,10 @@
</a-modal>
</template>
<script setup>
import { ref, toRefs, reactive, watch} from 'vue';
import { addCoupon,updateCoupon } from '@/api/coupon/list';
import { ref, toRefs, watch,getCurrentInstance} from 'vue';
import { addCoupon,updateCoupon,getProduct } from '@/api/coupon/list';
import { Message } from '@arco-design/web-vue';
const { proxy } = getCurrentInstance();
const emits = defineEmits(['closeChange']);
const props = defineProps({
// 是否显示
@@ -395,7 +406,11 @@ watch(
changeType(props.modalForm.coupon_type);
changeScope(props.modalForm.application_scope);
changeObject(props.modalForm.distribution_object);
changeValidType(props.modalForm.valid_type)
changeValidType(props.modalForm.valid_type);
if(props.modalForm.valid_start_time && props.modalForm.valid_end_time){
defaultValue.value=[props.modalForm.valid_start_time,props.modalForm.valid_end_time]
};
}
},
{ immediate: true, deep: true }
@@ -403,42 +418,113 @@ watch(
const onOk = (dateString, date) => {
[valid_start_time.value, valid_end_time.value] = dateString;
};
const productList=ref([])
const handleGetProduct=async()=>{
const {code,data}=await getProduct();
if(code==200){
productList.value=data;
}
}
const handleClose = () => {
emits('closeChange', (modalVisible.value = false));
};
const disabledDate = (time) => {
return time.getTime() < Date.now() - 8.64e7;
};
const handleAddCoupon=async()=>{
const {code}=await addCoupon({
const handleAddCoupon=()=>{
proxy.$refs.modalFormRef.validate(async(valid) => {
if (!valid) {
let {coupon_name,coupon_client,coupon_type,distribution_object,application_scope,
inquiry_type,is_mutex,is_display,distribution_with_day,min_usable_number,coupon_count,coupon_price,with_amount,valid_type,valid_days,valid_start_time,valid_end_time,product_id,reissue_interval_days,is_reissuable_after_expire,is_popup,coupon_desc}=props.modalForm;
let product_id_arr=[];
if(product_id){
product_id_arr=product_id.split(',');
}
const {code}=await addCoupon({
coupon_name,
coupon_client,
coupon_type,
distribution_object,
application_scope,
inquiry_type,
is_mutex,
is_display,
distribution_with_day,
min_usable_number,
coupon_count,
coupon_price,
with_amount,
valid_type,
valid_days,
valid_start_time,
valid_end_time,
product_id,
reissue_interval_days,
is_reissuable_after_expire,
is_popup,
coupon_desc
})
if(code==200){
Message.success("添加成功");
handleClose();
}
if(code==200){
Message.success("添加成功");
handleClose();
}else{
proxy.$notification.error(response.message);
}
}
})
};
const handleUpdateCoupon=async()=>{
const {code}=await updateCoupon({
proxy.$refs.modalFormRef.validate(async(valid) => {
if (!valid) {
let {coupon_id,coupon_name,coupon_client,coupon_type,distribution_object,application_scope,
inquiry_type,is_mutex,is_display,distribution_with_day,min_usable_number,coupon_count,coupon_price,with_amount,valid_type,valid_days,valid_start_time,valid_end_time,product_id,reissue_interval_days,is_reissuable_after_expire,is_popup,coupon_desc}=props.modalForm;
let product_id_arr=[];
if(product_id){
product_id_arr=product_id.split(',');
}
const {code}=await updateCoupon(coupon_id,{
coupon_name,
coupon_client,
coupon_type,
distribution_object,
application_scope,
inquiry_type,
is_mutex,
is_display,
distribution_with_day,
min_usable_number,
coupon_count,
coupon_price,
with_amount,
valid_type,
valid_days,
valid_start_time,
valid_end_time,
product_id:product_id_arr,
reissue_interval_days,
is_reissuable_after_expire,
is_popup,
coupon_desc
})
if(code==200){
Message.success("修改成功");
handleClose();
}else{
proxy.$notification.error(response.message);
}
}
})
if(code==200){
Message.success("修改成功");
handleClose()
}
};
const rules = {
coupon_name: [{ required: true, message: '请输入优惠卷名称' }],
department_custom_id: [{ required: true, message: '请选择所在科室' }],
coupon_client:[{ required: true, message: '请选择使用平台' }],
application_scope: [{ required: true, message: '请选择使用范围' }],
coupon_type:[{ required: true, message: '请选择发放类型' }],
distribution_object:[{ required: true, message: '请选择发放对象' }],
valid_type:[{ required: true, message: '请选择有效类型' }],
};
</script>
<style scoped>
.infobox {
display: flex;
flex-direction: column;
justify-content: space-between;
}
<style scoped>
</style>