优惠卷列表

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

View File

@ -47,5 +47,9 @@ export function getCouponDetail(id){
data
})
}
export function getProduct(){//系统-发放系统优惠卷
return request({
url:'admin/product/list',
method: 'post'
})
}

View File

@ -1,11 +1,11 @@
import request from '../../utils/request'
const url = '/admin/inquiry/config/doctor';
const url = '/admin/inquiry/doctor';
export function getInquiryconfigList(params){
return request({
url:'/admin/inquiry/config/doctor',
url:'/admin/inquiry/doctor',
method: 'get',
params
})
@ -13,21 +13,21 @@ export function getInquiryconfigList(params){
export function addInquiryconfig(data){//添加配置
return request({
url:'/admin/inquiry/config/doctor',
url:'/admin/inquiry/doctor',
method: 'post',
data
})
}
export function editInquiryconfig(data,id){//添加配置
return request({
url:'/admin/inquiry/config/doctor/'+id,
url:'/admin/inquiry/doctor/'+id,
method: 'put',
data
})
}
export function getInquiryconfigDetail(id){
return request({
url:'/admin/inquiry/config/doctor/'+id,
url:'/admin/inquiry/doctor/'+id,
method: 'get'
})
}

View File

@ -1,11 +1,11 @@
import request from '../../utils/request'
const url = '/admin/inquiry/config/system';
const url = '/admin/inquiry/system';
export function getSysconfigList(params){
return request({
url:'/admin/inquiry/config/system',
url:'/admin/inquiry/system',
method: 'get',
params
})
@ -13,21 +13,21 @@ export function getSysconfigList(params){
export function addSysconfig(data){//添加配置
return request({
url:'/admin/inquiry/config/system',
url:'/admin/inquiry/system',
method: 'post',
data
})
}
export function editSysconfig(data,id){//添加配置
return request({
url:'/admin/inquiry/config/system/'+id,
url:'/admin/inquiry/system/'+id,
method: 'put',
data
})
}
export function getSysconfigDetail(id){
return request({
url:'/admin/inquiry/config/system/'+id,
url:'/admin/inquiry/system/'+id,
method: 'get'
})
}

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>

View File

@ -100,11 +100,10 @@
</a-table>
<!-- Modal -->
<couponDetail :modalVisible="modalVisible" :modalForm="modalForm" @closeChange="()=>{modalVisible=false;}"></couponDetail>
<couponDetail :modalVisible="modalVisible" :modalForm="modalForm" @closeChange="closeCouponDetail"></couponDetail>
<!-- 就诊人详情 -->
<familyModal :modalVisible="familyVisible" :modalForm="familyForm" @familyVisibleChange="()=>{familyVisible=false}"></familyModal>
<!-- Akiraka 20230223 删除与批量删除 结束 -->
<a-modal v-model:visible="okVisible" :modal-style="{width:'420px'}" body-class="okmodal"
@cancel="cancelOk" @ok="handleOk">
@ -273,6 +272,7 @@ const isVisible=ref(false);
}
})
}
//
const closeChangeOk = () => {
isVisible.value = false;
@ -286,47 +286,6 @@ const showCoupon=(value,record)=>{
isVisible.value=true;
cur_coupon_id.value=record.coupon_id;
};
//
const handleChangeStatus=async(status)=>{
if(status==0){
cur_coupon_id.value=modalForm.coupon_id;
//okVisible.value=true;
isVisible.value=true
}else{
//okVisible.value=true;
isVisible.value=true
// switchStatus(modalForm.coupon_id,{
// status:1
// })
}
// await updateCouponStatus(cur_coupon_id,{
// coupon_status:!status?1:2
// })
// if(record.status==0){
// okVisible.value=true;
// }else{
// switchStatus(record.coupon_id,{
// status:1
// })
}
//
const familyVisible=ref(false);
const familyForm=reactive({
user:{},
avatar: 'https://img.applets.igandanyiyuan.com/basic/file/patient_avatar.png',
});
const handleFamilyDetail = async (family_id) => {
const { code, data} = await getFamilyDetail(family_id);
if (code == 200) {
Object.assign(familyForm, data);
familyVisible.value = true;
}
};
/**
* 分页改变
* @param {Number} [page]
@ -373,7 +332,10 @@ const handleChangeStatus=async(status)=>{
proxy.$refs.queryFormRef.resetFields();
getInfo(queryForm);
}
const closeCouponDetail=()=>{
modalVisible.value=false;
getInfo({ ...pager, ...queryForm });
}
onMounted(() => {
getInfo(pager);
});