From a222ff2444de217eeea832f6062b937d587d924d Mon Sep 17 00:00:00 2001 From: zoujiandong <10130823232@qq.com> Date: Thu, 6 Jun 2024 18:19:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=A5=E5=BA=B7=E5=8C=85=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/addHealthModal.vue | 140 +++++++++++++++++++++++------ src/components/couponDetail.vue | 2 +- src/views/inquiry/health/index.vue | 11 ++- 3 files changed, 123 insertions(+), 30 deletions(-) diff --git a/src/components/addHealthModal.vue b/src/components/addHealthModal.vue index b8d77da..2419ea4 100644 --- a/src/components/addHealthModal.vue +++ b/src/components/addHealthModal.vue @@ -42,8 +42,9 @@ - - - - + + {{ item.product_name }} @@ -77,6 +78,21 @@ + + + + + + + + + + +
@@ -98,8 +114,9 @@ import { ref,toRefs,watch,getCurrentInstance,reactive,defineExpose} from 'vue'; import { addHealth,updateHealth} from '@/api/inquiry/service'; import { parseTime } from '@/utils/parseTime'; + import {getProduct} from '@/api/coupon/list'; const { proxy } = getCurrentInstance(); - let multi_point_status=''; + const product_data=ref([]); const props = defineProps({ // 是否显示 modalVisible: { @@ -112,13 +129,17 @@ }, modalForm:{ type:Object, - default:{} + default:{} } }); - const title=ref('添加问诊配置'); +const title=ref('添加问诊配置'); const productList=ref([]); const loading=ref(false); +let initData=[]; +const reset=()=>{ + product_data.value=[]; +}; const handleGetProduct=async(name='',id='')=>{ loading.value=true; const {code,data}=await getProduct({ @@ -135,24 +156,65 @@ const handleGetProduct=async(name='',id='')=>{ const {modalVisible,id,modalForm}=toRefs(props); const emits = defineEmits(['healthVisibleChange','freshList']); watch(()=>props.id,(newVal,oldValval)=>{ - if(newVal){ - title.value='修改健康包' - + if(props.id){ + title.value='修改健康包'; }else{ - //handleDoctorList(); title.value='添加健康包'; - } + },{immediate:true}) + watch(()=>props.modalForm,()=>{ + handleGetProduct(); + if(id.value){ + let product=modalForm.value.health_package_product; + initData=modalForm.value.health_package_product; + if(product && product.length>0){ + + modalForm.value.my_package_product=product.map((item)=>item.product_id); + product_data.value=product; + } + } + + },{immediate:true}) + const changeProduct=(val)=>{ + console.log(val); + product_data.value=[]; + for (let i = 0; i < val.length; i++) { + if(initData.length>0){ + for (let j = 0; j < initData.length; j++) { + if (val[i]=== initData[j].product_id){ + product_data.value.push({ + product_id:initData[j].product_id, + product_name:initData[j].product_name, + quantity:initData[j].quantity, + discount_product_price:initData[j].discount_product_price + }) + continue; + }else{ + let arr=productList.value.filter((item)=>item.product_id==val[i]); + product_data.value.push({ + product_id:arr[0].product_id, + product_name:arr[0].product_name, + quantity:1, + discount_product_price:10 + }) + } + } + }else{ + let arr=productList.value.filter((item)=>item.product_id==val[i]); + product_data.value.push({ + product_id:arr[0].product_id, + product_name:arr[0].product_name, + quantity:1, + discount_product_price:10 + }) + } + + } + + }; - - - - - - - const reset=()=>{ - } + @@ -169,15 +231,17 @@ const handleGetProduct=async(name='',id='')=>{ const handleSubmit=()=>{ proxy.$refs.modalFormRefConfig.validate(async (valid) => { let data=null; + let obj=Object.assign({},modalForm.value,{health_package_product:product_data.value}); + if (!valid) { - if(props.inquiry_config_id){ - data= await editInquiryconfig(modalForm,props.inquiry_config_id) + if(props.id){ + data= await updateHealth(props.id,obj) }else{ - data= await addInquiryconfig(modalForm); + data= await addHealth(obj); } if(data.code==200){ - props.inquiry_config_id?proxy.$message.success('修改成功'):proxy.$message.success('添加成功'); - emits('freshList', ''); + props.id?proxy.$message.success('修改成功'):proxy.$message.success('添加成功'); + //emits('freshList', ''); } handleClose(); }else { @@ -192,8 +256,30 @@ const handleGetProduct=async(name='',id='')=>{ monthly_frequency:[{ required: true, message: '请输入每月次数' }], effective_days: [{ required: true, message: '请输入服务有效天数' }], service_rate:[{ required: true, message: '请输入服务费率' }], - health_package_product:[{ required: true, message: '请选关联商品' }], + my_package_product: {type: 'array',required: true,message:'请选择关联商品'} + }; + const product_columns=[ + { + title: '商品id', + dataIndex: 'product_id', + }, + { + title: '商品名称', + dataIndex: 'product_name', + }, + { + title: '商品数量', + dataIndex: 'quantity', + slotName: 'quantity' + }, + { + title: '商品打折后价格', + dataIndex: 'discount_product_price', + slotName: 'discount_product_price' + } + +] defineExpose({ reset }); diff --git a/src/components/couponDetail.vue b/src/components/couponDetail.vue index 749d13f..7b045c1 100644 --- a/src/components/couponDetail.vue +++ b/src/components/couponDetail.vue @@ -345,7 +345,7 @@ 强制失效 - +