更新订单管理

This commit is contained in:
zoujiandong 2023-09-14 09:00:14 +08:00
parent cbf705ebb8
commit 07723222b6
6 changed files with 403 additions and 136 deletions

View File

@ -47,3 +47,9 @@ export function cancelProduct(id,data){//取消药品
data
})
}
export function reportPrePscription(id){//上报处方
return request({
url:`/admin/order/report/pre/${id}`,
method: 'post'
})
}

View File

@ -310,11 +310,6 @@
show-loader :src="item" />
</a-space>
</a-image-preview-group>
<upload v-show="modalSatus!='detail'" :isMultiple="true" :fileList="work_cert_list"
:dataType="'work_cert_list'" @changeData="changeData"></upload>
<!-- <a-upload v-show="modalSatus!='detail'" list-type="picture-card" :auto-upload="false"
@change="onChangeFile" accept="image/*" :file-list="work_cert_list"
@before-upload="beforeUpload('avatar')" action="/" image-preview /> -->
</a-form-item>
</a-col>
</a-row>
@ -329,10 +324,7 @@
:src="modalForm.user_doctor_info.id_card_front" />
</a-space>
</a-image-preview-group>
<upload v-show="modalSatus!='detail'" :isMultiple="false" :fileList="id_card_front_list"
:dataType="'id_card_front_list'" @changeData="changeData"></upload>
<!-- <a-upload v-show="modalSatus!='detail'" :file-list="id_card_front_list" list-type="picture-card"
action="/" :auto-upload="false" image-preview /> -->
</a-form-item>
</a-col>
</a-row>
@ -347,8 +339,7 @@
:src="modalForm.user_doctor_info.id_card_back" />
</a-space>
</a-image-preview-group>
<upload v-show="modalSatus!='detail'" :isMultiple="false" :fileList="id_card_back_list"
:dataType="'id_card_back_list'" @changeData="changeData"></upload>
<!-- <a-upload v-show="modalSatus!='detail'" :file-list="id_card_back_list" list-type="picture-card" action="/"
:auto-upload="false" image-preview /> -->
</a-form-item>
@ -366,10 +357,6 @@
:src="modalForm.user_doctor_info.sign_image" />
</a-space>
</a-image-preview-group>
<upload v-show="modalSatus!='detail'" :isMultiple="false" :fileList="sign_image_list"
:dataType="'sign_image_list'" @changeData="changeData"></upload>
<!-- <a-upload v-show="modalSatus!='detail'" :file-list="sign_image_list" list-type="picture-card" action="/"
:auto-upload="false" image-preview /> -->
</a-form-item>
</a-col>
</a-row>

View File

@ -0,0 +1,59 @@
<template>
<a-modal v-model:visible="isVisible" :modal-style="{width:'420px'}" body-class="okmodal" @ok="handleConfirm"
@cancel="handleClose" >
<template #title>
提示
</template>
{{ title }}
<!-- <template #footer>
<a-button @click="handleClose"><template #icon><icon-close /></template>取消</a-button>
<a-button type="primary" @click="handleConfirm"><template #icon><icon-check /></template>确认</a-button>
</template> -->
</a-modal>
</template>
<script setup>
import { reactive, toRefs, getCurrentInstance } from 'vue';
import { Message } from '@arco-design/web-vue';
const { proxy } = getCurrentInstance();
const props = defineProps({
//
isVisible: {
type: Boolean,
default: false,
},
id:{
type: String,
default:'',
},
//
api: {
type: Function,
},
title:{
type: String,
default:'',
}
});
const emits = defineEmits(['closeChangeOk']);
const {isVisible,title,id,api} = toRefs(props);
// Akiraka 20230210
const handleClose = () => {
emits('closeChangeOk',false);
// alert(flag)
}
// Akiraka 20230210 =>
const handleConfirm = () => {
api.value(id.value).then(response => {
// Akiraka 20230210
if(response.code==200){
Message.success("成功");
proxy.$refs.modalFormRef.resetFields();
}else{
proxy.$notification.error(response.message);
}
emits('closeChangeOk',true);
})
}
</script>

View File

@ -0,0 +1,259 @@
<template>
<a-modal
v-model:visible="patientVisible"
fullscreen
:title="modalTitle"
title-align="start"
:footer="false"
@cancel="handleClose"
>
<div class="titlebox">
<div class="bar"></div>
<div class="name">基本信息</div>
</div>
<a-form
:model="data"
:disabled="modalSatus == 'detail'"
ref="modalFormRef"
:auto-label-width="true"
>
<a-row :gutter="24" style="margin-top: 35px">
<a-col :span="12">
<a-form-item field="avatar" label="真实姓名:">
<span
>{{ data.name }}{{ data.sex == 1 ? '男,' : '女,'
}}{{ data.age }}</span
>
</a-form-item>
</a-col>
<!-- <a-col :span="12" >
<a-form-item field="mobile" label="手机号码:">
<span>{{data.mobile}}</span>
</a-form-item>
</a-col> -->
</a-row>
<a-row :gutter="24">
<a-col :span="12" v-if="data.disease_class_name">
<a-form-item field="avatar" label="所患疾病:">
<span>{{ data.disease_class_name }}</span>
</a-form-item>
</a-col>
<a-col :span="12" v-if="data.diagnosis_date">
<a-form-item field="mobile" label="确诊日期:" >
<span v-if="parseTime(data.diagnosis_date)">{{parseTime(data.diagnosis_date,'{y}-{m}-{d}') }}</span>
<span v-else>-</span>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12" v-if="data.disease_desc">
<a-form-item field="mobile" label="病情主诉:" >
<span>{{ data.disease_desc }}</span>
</a-form-item>
</a-col>
</a-row>
<a-divider />
<div class="titlebox">
<div class="bar"></div>
<div class="name">其他信息</div>
</div>
<a-col style="margin-top: 35px;">
<div class="box" v-if="otherList.length>0">
<div class="row" v-for="(item,index) in otherList" :key="item.type">
<div class="num">{{index+1}}</div>
<div class="qabox" v-if="item.infoType==1">
<div class="qa">
{{item.name}}
<text class="answer" v-if="item.status==1">是</text><text class="answer" v-else></text>
</div>
<div class="radiotip" v-if="(item.status==1 && item.desc)">
<text>{{item.nameTip}}</text>
{{item.desc}}
</div>
</div>
<div class="qabox" v-else-if="item.infoType==2">
<div class="qa">
{{item.name}}
<text class="answer" v-if="item.status==1">从不</text>
<text class="answer" v-else-if="item.status==2">偶尔</text>
<text class="answer" v-else-if="item.status==3">经常 </text>
<text class="answer" v-else-if="item.status==4">每天</text>
<text class="answer" v-else>
<text v-if="item.type=='smoke'">已戒烟</text>
<text v-else>已戒酒</text>
</text>
</div>
</div>
<div class="qabox" v-else-if="item.infoType==3">
<div class="qa">
{{item.name}}
<text class="answer" v-if="item.status==1">从不</text>
<text class="answer" v-else-if="item.status==2">偶尔</text>
<text class="answer" v-else-if="item.status==3">经常 </text>
<text class="answer" v-else-if="item.status==4">每天</text>
</div>
<div class="radiotip" v-if="(item.status && item.status!=1)">
<text>{{item.nameTip}}</text>
{{item.desc}}
</div>
</div>
<div class="qabox" v-else-if="item.infoType==4">
<div class="qa">
{{item.name}}
<text class="answer" >{{item.desc}}</text>
</div>
</div>
</div>
</div>
<div v-else>暂无数据</div>
</a-col>
</a-form>
</a-modal>
</template>
<script setup>
import {
reactive,
ref,
getCurrentInstance,
watch,
toRefs,
} from 'vue';
import { parseTime } from '@/utils/parseTime';
const otherList=ref([]);
const props = defineProps({
//
patientVisible: {
type: Boolean,
default: false,
},
data: {
type: Object,
},
});
const emits = defineEmits(['patientVisibleChange']);
const { patientVisible, data } = toRefs(props);
const modalTitle = ref('就诊人详情');
const modalSatus = ref('detail');
const loading = ref(false);
watch(
() => props.patientVisible,
(value) => {
if (value) {
patientVisible.value = value;
}
}
);
watch(()=>props.data,(data)=>{
let filter1=[];
let filter2=[];
let arr=[
{
type:"taboo",
name:'是否服用过您想购买的药品且无相关禁忌:',
nameTip:'',
status:data.is_taboo,
desc:"",
infoType:1
},
{
type:"allergy_history",
name:'是否有过敏史:',
nameTip:'过敏史:',
infoType:1,
status:data.is_allergy_history,
desc:data.allergy_history
},
{
type:"family_history",
name:'是否有家族史:',
nameTip:'家族史:',
infoType:1,
status:data.is_family_history,
desc:data.family_history
},
{
infoType:1,
type:"pregnant",
name:'是否处于备孕、妊娠、哺乳期:',
nameTip:'',
status:data.is_pregnant,
desc:data.pregnant
},
{ infoType:1,
type:"operation",
name:'是否做过手术:',
nameTip:'手术史',
status:data.is_operation,
desc:data.operation
},
{
infoType:2,
type:"drink_wine",
name:'是否有饮酒史:',
nameTip:'',
status:data.drink_wine_status,
desc:''
},
{
infoType:2,
type:"smoke",
name:'是否有吸烟史:',
nameTip:'',
status:data.smoke_status,
desc:''
},
{
infoType:3,
type:"chemical",
name:'是否有接触过化学物:',
nameTip:'接触过的化学物:',
status:data.chemical_compound_status,
desc:data.chemical_compound_describe
},
{
infoType:4,
type:'hospital',
name:'确诊医院:',
status:'',
nameTip:'',
desc:data.diagnosis_hospital
},
{
type:"takeMedince",
name:'是否服药:',
nameTip:'正在服药:',
status:data.is_take_medicine,
desc:data.drugs_name,
infoType:1
}
]
if(data.sex==1){
filter1=arr.filter((item)=>{
return item.type!="pregnant"
});
}else{
filter1=arr;
}
if(!data.diagnosis_hospital){
filter2=filter1.filter((item)=>{
return item.type!="hospital"
});
}else{
filter2=filter1
}
let newarr=filter2.filter((item)=>{
return item.status!=null
});
console.log(newarr)
otherList.value=newarr;
},{immediate:true,deep:true})
// Akiraka 20230210
const handleClose = () => {
emits('patientVisibleChange', (patientVisible.value = false));
// Akiraka 20230210
patientVisible.value = false;
//otherList.value=[];
};
</script>

View File

@ -128,7 +128,6 @@
@click="handleDetail(record)"
><icon-book />详情</a-button
>
<!-- <a-button v-has="'admin:sysPost:remove'" type="text" @click="() => { deleteVisible = true; deleteData = [record.post_id]; }"><icon-delete /> 删除</a-button> -->
</a-space>
</template>
</a-table>
@ -139,13 +138,7 @@
:title="modalTitle"
title-align="start"
:footer="false"
@before-ok="handleSubmit"
@close="
() => {
$refs.modalFormRef.resetFields();
modalForm.doctor_id = null;
}
"
@close="() => {$refs.modalFormRef.resetFields();modalForm.doctor_id = null;}"
>
<div class="titlebox">
<div class="bar"></div>
@ -153,7 +146,6 @@
</div>
<a-form
:model="modalForm"
:rules="rules"
ref="modalFormRef"
:auto-label-width="true"
>
@ -188,26 +180,24 @@
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="amount_total" label="订单金额:">
<span>{{ modalForm.amount_total }}</span>
<span>{{ modalForm.amount_total }}</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="logistics_fee" label="邮费:">
<span>{{ modalForm.logistics_fee }}</span>
<span>{{ modalForm.logistics_fee }}</span>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="payment_amount_total" label="实付金额:">
<span>{{ modalForm.payment_amount_total }}</span>
<span>{{ modalForm.payment_amount_total }}</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="order_product_status" label="订单状态:">
<span>{{
formatRefundStatus(modalForm.order_product_status)
}}</span>
<span>{{formatRefundStatus(modalForm.order_product_status)}}</span>
</a-form-item>
</a-col>
</a-row>
@ -230,9 +220,7 @@
>
<a-col :span="12">
<a-form-item field="inquiry_refund_no" label="退款编号:">
<span>{{
modalForm.order_product_refund.product_refund_no
}}</span>
<span>{{ modalForm.order_product_refund.product_refund_no}}</span>
</a-form-item>
</a-col>
<a-col :span="12">
@ -244,16 +232,13 @@
<a-row :gutter="24" v-if="modalForm.order_product_refund">
<a-col :span="12">
<a-form-item field="inquiry_refund_no" label="退款金额:">
<span>{{ modalForm.order_product_refund.refund_total }}</span>
<span>{{ modalForm.order_product_refund.refund_total }}</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="escrow_trade_no" label="退款状态:">
<span>{{
formatRefundStatus(
modalForm.order_product_refund.product_refund_status
)
}}</span>
formatRefundStatus(modalForm.order_product_refund.product_refund_status)}}</span>
</a-form-item>
</a-col>
</a-row>
@ -429,7 +414,7 @@
</div>
<div class="row">
<div class="nameDesc">病情描述</div>
<div class="desc">{{modalForm.order_inquiry_case.disease_desc}}&nbsp;&nbsp;{{modalForm.user_doctor.department_custom_name}}</div>
<div class="desc">{{modalForm.order_inquiry_case.disease_desc}}</div>
</div>
</div>
</div>
@ -445,7 +430,7 @@
<a-col :span="24">
<a-form-item field="" label="" no-style>
<a-space style="margin-right: 8px">
<a-button type="primary" @click="() => (alert('开发中'))"
<a-button type="primary" @click="() =>{isVisible=true;order_product_id=modalForm.order_product_id;}"
>上报处方平台</a-button
>
</a-space>
@ -464,7 +449,10 @@
</a-modal>
<!-- 医生详情弹框 -->
<doctorModal :doctorVisible="doctorVisible" :doctor_id="doctor_id" @doctorVisibleChange="() => {doctorVisible = false;doctor_id='';}"></doctorModal>
<confirmModal :okVisible="okVisible" :api="cancelProduct" :title="'确定取消此订单吗?'" :dealType="'order_inquiry_id'" :id="cur_product_id" @closeChange="closeChange"></confirmModal>
<!-- 患者详情弹窗 -->
<patientModal :patientVisible="patientVisible" :data="patientData" @patientVisibleChange="() => {patientVisible = false;}"></patientModal>
<confirmModal :okVisible="okVisible" :api="cancelProduct" :dealType="'order_inquiry_id'" :id="cur_product_id" @closeChange="closeChange"></confirmModal>
<isOkModal :isVisible="isVisible" :api="reportPrePscription" :title="'确定上报处方吗?'" :dealType="'order_product_id'" :id="order_product_id" @closeChangeOk="()=>{isVisible=false;order_product_id='';}"></isOkModal>
</div>
</template>
@ -477,7 +465,7 @@ import {
nextTick,
watch,
} from 'vue';
import { productList, getProductDetail,cancelProduct} from '@/api/order/list';
import { productList, getProductDetail,cancelProduct,reportPrePscription} from '@/api/order/list';
import { parseTime } from '@/utils/parseTime';
import {formatDoctorTitle,formatPrescriptionStatus,formatPharmacistStatus,formatProductCancelReason} from "@/utils/format"
const IMG_URL=import.meta.env.VITE_IMG_URL;
@ -490,9 +478,14 @@ const okVisible=ref(false);
const cur_product_id=ref('');
const doctorVisible = ref(false);
const doctor_id = ref('');
const isVisible=ref(false);
const order_product_id=ref("");
let express=[];//
const cur_express=ref([]);
const isExpand=ref(false)
const isExpand=ref(false);
const patientVisible=ref(false);
const patientData=reactive({
});
const chufang_columns=reactive([
{
title: '处方编号',
@ -582,10 +575,6 @@ watch(()=>queryForm.report_range_time,(value)=>{
queryForm.report_pre_time=''
};
})
// Rules
const rules = {
post_name: [{ required: true, message: '请输入岗位名称' }],
};
// Modal
const modalVisible = ref(false);
@ -617,55 +606,8 @@ const columns = [
// Table Data
const tableData = ref([]);
//
const handleAdd = () => {
modalVisible.value = true;
modalTitle.value = '新增岗位';
};
//
const handleUpdate = async (record) => {
modalVisible.value = true;
modalTitle.value = '修改岗位';
await nextTick();
Object.assign(modalForm, record);
};
// Modal ok
// Modal done()
const handleSubmit = (done) => {
proxy.$refs.modalFormRef.validate(async (valid) => {
if (!valid) {
let res;
if (!modalForm.post_id) {
const { code, message } = await addPost(modalForm);
if (code == 200) {
proxy.$notification.success('新增成功');
} else {
proxy.$notification.error(message);
}
} else {
console.log('post_id:' + modalForm.post_id);
const { code, message } = await updatePost(
modalForm,
modalForm.post_id
);
if (code == 200) {
proxy.$notification.success('更新成功');
} else {
proxy.$notification.error(message);
}
}
done();
getProductInfo(pager);
} else {
proxy.$message.error('表单校验失败');
done(false);
}
});
};
/**
* 分页改变
@ -721,8 +663,8 @@ const handleDetail = async (record) => {
if (code == 200) {
Object.assign(modalForm, data);
let result=data.order_prescription;
express=data.order_product_logistics && JSON.parse(data.order_product_logistics.logistics_content);
cur_express.value=express.slice(0,1);
express=data.order_product_logistics?JSON.parse(data.order_product_logistics.logistics_content):[];
cur_express.value=express.length>1 && express.slice(0,1);
let data_arr=[{}];
if(result){
chufang_columns.forEach((item)=>{
@ -738,7 +680,7 @@ const handleDetail = async (record) => {
data_arr[0][item.dataIndex]=result[item.dataIndex]
}
});
console.log(data_arr)
chufang_data=data_arr;
}
@ -814,7 +756,8 @@ doctor_id.value=modalForm.doctor_id;
doctorVisible.value=true;
}
const openPatient=()=>{
alert('开发中')
Object.assign(patientData,modalForm.order_inquiry_case);
patientVisible.value=true;
}
onMounted(() => {
getProductInfo(pager);

View File

@ -111,7 +111,7 @@
<!-- Modal -->
<a-modal v-model:visible="modalVisible" fullscreen :title="modalTitle" title-align="start" :footer="false"
@before-ok="handleSubmit" @close="() => {$refs.modalFormRef.resetFields(); modalForm.doctor_id = null;}">
@close="() => {$refs.modalFormRef.resetFields(); modalForm.doctor_id = null;}">
<div class="titlebox">
<div class="bar"></div>
<div class="name">订单信息</div>
@ -145,19 +145,20 @@
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="amount_total" label="订单金额:">
<span>{{modalForm.amount_total}}</span>
<span>{{modalForm.amount_total}}</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="coupon_amount_total" label="优惠卷:">
<span>{{modalForm.coupon_amount_total}}</span>
<span v-if="modalForm.coupon_amount_total>0">{{modalForm.coupon_amount_total}}</span>
<span v-else>暂无</span>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="payment_amount_total" label="实付金额:">
<span>{{modalForm.payment_amount_total}}</span>
<span>{{modalForm.payment_amount_total}}</span>
</a-form-item>
</a-col>
<a-col :span="12">
@ -194,7 +195,7 @@
<a-row :gutter="24" v-if="modalForm.order_inquiry_refund">
<a-col :span="12">
<a-form-item field="inquiry_refund_no" label="退款金额:">
<span>{{modalForm.order_inquiry_refund.refund_total}}</span>
<span>{{modalForm.order_inquiry_refund.refund_total}}</span>
</a-form-item>
</a-col>
<a-col :span="12">
@ -266,9 +267,9 @@
<div class="nameDesc">确诊疾病</div>
<div class="desc">{{modalForm.order_inquiry_case.disease_class_name}}&nbsp;&nbsp;{{modalForm.user_doctor.department_custom_name}}</div>
</div>
<div class="row">
<div class="row" v-if="modalForm.order_inquiry_case.disease_desc">
<div class="nameDesc">病情描述</div>
<div class="desc">{{modalForm.order_inquiry_case.disease_desc}}&nbsp;&nbsp;{{modalForm.user_doctor.department_custom_name}}</div>
<div class="desc">{{modalForm.order_inquiry_case.disease_desc}}</div>
</div>
</div>
</div>
@ -314,7 +315,7 @@
<a-col :span="24">
<a-form-item field="" label="" no-style>
<a-space style="margin-right: 8px;">
<a-button type="primary" @click="()=>(alert('开发中'))">问诊记录</a-button>
<a-button type="primary" @click="openInquiryRecord">问诊记录</a-button>
</a-space>
<a-space style="margin-right: 8px;" v-if="modalForm.inquiry_status==4 || modalForm.inquiry_status==5">
<a-button type="primary" status="danger" v-has="'admin:sysOrderList:cancel'" @click="()=>{okVisible=true;cur_inruiry_id=modalForm.order_inquiry_id;}">取消问诊</a-button>
@ -326,6 +327,10 @@
<!-- 医生详情弹框 -->
<doctorModal :doctorVisible="doctorVisible" :doctor_id="doctor_id" @doctorVisibleChange="() => {doctorVisible = false;doctor_id='';}"></doctorModal>
<!-- 患者详情弹窗 -->
<patientModal :patientVisible="patientVisible" :data="patientData" @patientVisibleChange="() => {patientVisible = false;}"></patientModal>
<confirmModal :okVisible="okVisible" :api="cancelInquiry" :title="'确定取消此订单吗?'" :dealType="'order_inquiry_id'" :id="cur_inruiry_id" @closeChange="handelCloseChange"></confirmModal>
</div>
@ -347,6 +352,9 @@ const doctorVisible=ref(false);
const okVisible=ref(false);
const cur_inruiry_id=ref('');
const doctor_id=ref('');
const patientVisible=ref(false);
const patientData=reactive({
});
// Akiraka 20230210
watch(() => deleteVisible.value ,(value) => {
@ -446,35 +454,35 @@ const handleUpdate = async (record) => {
// Modal ok
// Modal done()
const handleSubmit = (done) => {
proxy.$refs.modalFormRef.validate(async (valid) => {
if (!valid) {
let res;
if (!modalForm.post_id) {
const { code, message } = await addPost(modalForm);
if (code == 200 ) {
proxy.$notification.success('新增成功');
} else {
proxy.$notification.error(message);
}
} else {
console.log("post_id:"+modalForm.post_id)
// const handleSubmit = (done) => {
// proxy.$refs.modalFormRef.validate(async (valid) => {
// if (!valid) {
// let res;
// if (!modalForm.post_id) {
// const { code, message } = await addPost(modalForm);
// if (code == 200 ) {
// proxy.$notification.success('');
// } else {
// proxy.$notification.error(message);
// }
// } else {
// console.log("post_id:"+modalForm.post_id)
const { code, message } = await updatePost(modalForm, modalForm.post_id);
if (code == 200 ) {
proxy.$notification.success('更新成功');
} else {
proxy.$notification.error(message);
}
}
done();
getOrderInfo(pager);
} else {
proxy.$message.error('表单校验失败');
done(false);
}
});
};
// const { code, message } = await updatePost(modalForm, modalForm.post_id);
// if (code == 200 ) {
// proxy.$notification.success('');
// } else {
// proxy.$notification.error(message);
// }
// }
// done();
// getOrderInfo(pager);
// } else {
// proxy.$message.error('');
// done(false);
// }
// });
// };
/**
@ -559,12 +567,17 @@ const handleQuery = async () => {
const openDcotor=()=>{
doctor_id.value=modalForm.doctor_id;
doctorVisible.value=true;
}
const openPatient=()=>{
alert('开发中')
//patientData=modalForm.order_inquiry_case;
Object.assign(patientData,modalForm.order_inquiry_case);
// console.log(patientData);
patientVisible.value=true;
}
const openInquiryRecord=()=>{
alert("开发中");
}
//
const handelCloseChange=(data)=>{