From 994afb354929a05b81145bd04ee14f605f31ca24 Mon Sep 17 00:00:00 2001 From: zoujiandong <10130823232@qq.com> Date: Tue, 11 Jun 2024 09:53:05 +0800 Subject: [PATCH] =?UTF-8?q?6.11=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 2 + src/api/inquiry/service.js | 47 ++- src/components/addHealthConfigModal.vue | 270 +++++++++++++++++ src/components/addHealthModal.vue | 96 ++++-- src/components/addVisitConfigModal.vue | 368 +++++++++++++++++++++++ src/views/inquiry/health/index.vue | 5 +- src/views/inquiry/healthconfig/index.vue | 52 ++-- src/views/inquiry/visitconfig/index.vue | 268 +++++++++++++++++ 8 files changed, 1050 insertions(+), 58 deletions(-) create mode 100644 src/components/addHealthConfigModal.vue create mode 100644 src/components/addVisitConfigModal.vue create mode 100644 src/views/inquiry/visitconfig/index.vue diff --git a/components.d.ts b/components.d.ts index 8c48da0..ffe92d9 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,9 +10,11 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { AccountModal: typeof import('./src/components/accountModal.vue')['default'] + AddHealthConfigModal: typeof import('./src/components/addHealthConfigModal.vue')['default'] AddHealthModal: typeof import('./src/components/addHealthModal.vue')['default'] AddInquiryConfigModal: typeof import('./src/components/addInquiryConfigModal.vue')['default'] AddSysconfigModal: typeof import('./src/components/addSysconfigModal.vue')['default'] + AddVisitConfigModal: typeof import('./src/components/addVisitConfigModal.vue')['default'] ChatRecord: typeof import('./src/components/chatRecord.vue')['default'] ConfirmModal: typeof import('./src/components/confirmModal.vue')['default'] copy: typeof import('./src/components/isOkModal copy.vue')['default'] diff --git a/src/api/inquiry/service.js b/src/api/inquiry/service.js index 94c6b45..7ae43fc 100644 --- a/src/api/inquiry/service.js +++ b/src/api/inquiry/service.js @@ -24,7 +24,7 @@ export function addHealth(data){//健康包管理-获取健康包详情 export function updateHealth(id,data){//健康包管理-获取健康包详情 return request({ url:'/admin/inquiry/health/'+id, - method: 'post', + method: 'put', data }) } @@ -51,7 +51,50 @@ export function addHealth(data){//健康包管理-获取健康包详情 } export function updateHealthConfig(id,data){//医生健康包配置-修改医生健康包配置 return request({ - url:'/admin/inquiry/doctor/health'+id, + url:'/admin/inquiry/doctor/health/'+id, + method: 'put', + data + }) + } + export function getDoctorList(params){//医生列表 + return request({ + url:'/admin/doctor/list', + method: 'get', + params + }) + } + export function getHealthConfigAddList(params){//健康包管理-获取健康包列表-限制条数 + return request({ + url:'/admin/inquiry/health/list', + method: 'get', + params + }) + } + + + export function getVisitConfigList(params){//医生随访包配置-获取开启随访包服务的医生-分页 + return request({ + url:'/admin/inquiry/doctor/follow', + method: 'get', + params + }) + } + export function visitConfigDetail(id){//医生随访包配置-医生随访包配置详情 + return request({ + url:'/admin/inquiry/doctor/follow/'+id, + method: 'get' + }) + } + export function addVisitConfig(data){//医生随访包配置-新增医生随访包配置 + return request({ + url:'/admin/inquiry/doctor/follow', + method: 'post', + data + }) + } + export function updateVisitConfig(id,data){//医生随访包配置-修改医生随访包配置 + return request({ + url:'/admin/inquiry/doctor/follow/'+id, method: 'put', data }) diff --git a/src/components/addHealthConfigModal.vue b/src/components/addHealthConfigModal.vue new file mode 100644 index 0000000..18e28e4 --- /dev/null +++ b/src/components/addHealthConfigModal.vue @@ -0,0 +1,270 @@ + + + + + + + 健康包配置信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ item.package_id }} + + + + + + + + + + + + {{ item.user_name }} + + + + + + + + + + + + + + + + + + + + + + + + + + + 操作 + + + + + + 保存 + + + + + + + + \ No newline at end of file diff --git a/src/components/addHealthModal.vue b/src/components/addHealthModal.vue index 2419ea4..b702911 100644 --- a/src/components/addHealthModal.vue +++ b/src/components/addHealthModal.vue @@ -81,7 +81,7 @@ - + @@ -156,50 +156,71 @@ const handleGetProduct=async(name='',id='')=>{ const {modalVisible,id,modalForm}=toRefs(props); const emits = defineEmits(['healthVisibleChange','freshList']); watch(()=>props.id,(newVal,oldValval)=>{ + handleGetProduct(); if(props.id){ title.value='修改健康包'; + }else{ 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){ + },{immediate:true}); - modalForm.value.my_package_product=product.map((item)=>item.product_id); - product_data.value=product; - } - } - - },{immediate:true}) + // watch(()=>props.modalForm,()=>{ + // 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 getData=()=>{ + 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; + } + } + const changeProduct=(val)=>{ - console.log(val); product_data.value=[]; + let json={}; + let count=0; + console.log(initData) for (let i = 0; i < val.length; i++) { if(initData.length>0){ for (let j = 0; j < initData.length; j++) { + count++; 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; + if(!json[initData[j].product_id]){ + json[initData[j].product_id]=count; + 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 + }) + } }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 - }) + let arr=productList.value.filter((item)=>item.product_id==val[i]); + if(!json[arr[0].product_id]){ + json[arr[0].product_id]=count; + 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({ @@ -211,7 +232,6 @@ const handleGetProduct=async(name='',id='')=>{ } } - }; @@ -231,6 +251,17 @@ const handleGetProduct=async(name='',id='')=>{ const handleSubmit=()=>{ proxy.$refs.modalFormRefConfig.validate(async (valid) => { let data=null; + for (let i = 0; i < product_data.value.length; i++) { + if(!product_data.value[i].quantity){ + proxy.$message.warning('商品数量不能为空'); + return false + }; + if(!product_data.value[i].discount_product_price ){ + proxy.$message.warning('商品折后价格不能为空'); + return false + }; + + } let obj=Object.assign({},modalForm.value,{health_package_product:product_data.value}); if (!valid) { @@ -281,7 +312,8 @@ const handleGetProduct=async(name='',id='')=>{ ] defineExpose({ - reset + reset, + getData }); \ No newline at end of file diff --git a/src/views/inquiry/health/index.vue b/src/views/inquiry/health/index.vue index f98733f..9126107 100644 --- a/src/views/inquiry/health/index.vue +++ b/src/views/inquiry/health/index.vue @@ -149,11 +149,14 @@ //详情 const handleDetail = async (record) => { + handleAdd(); package_id.value=record.package_id; modalVisible.value = true; const {code,data}=await healthDetail(record.package_id); if(code==200){ - Object.assign(modalForm,data) + + Object.assign(modalForm,data); + addChild.value.getData(); } }; diff --git a/src/views/inquiry/healthconfig/index.vue b/src/views/inquiry/healthconfig/index.vue index 4d170d6..9f99061 100644 --- a/src/views/inquiry/healthconfig/index.vue +++ b/src/views/inquiry/healthconfig/index.vue @@ -10,8 +10,6 @@ {deleteData = selection;console.log(selection)}" @page-change="handlePageChange" @page-size-change="handlepage_sizeChange"> @@ -22,14 +20,21 @@ 健康包 随访包 - - - + + {{record.health_package.service_rate+"%"}} + - {modalVisible=false;package_id='';}"> + {modalVisible=false;health_package_id='';}"> okVisible=false"> @@ -56,15 +61,13 @@ + + \ No newline at end of file