This commit is contained in:
2025-08-08 17:36:23 +08:00
parent 613ed5173c
commit 181a98c157
4 changed files with 195 additions and 58 deletions

View File

@@ -3,21 +3,32 @@
<z-nav-bar title="待审批医案" bgColor="#5188e5" fontColor="#fff"> <z-nav-bar title="待审批医案" bgColor="#5188e5" fontColor="#fff">
</z-nav-bar> </z-nav-bar>
<view class="doctors_module" :style="`top: ${42 + statusBarHeight}px;`">
<view class="cateList flexbox" style="background-color: #fff">
<common-sticky
itemStyle="width:50%; height: 38px;font-size:24rpx;"
:list="tabsList"
label="title"
:currentCateIndex="currentCateIndex"
@handleselectCate="ordersTabCLi"
></common-sticky>
</view>
</view>
<scroll-view <scroll-view
scroll-y="true" scroll-y="true"
:scroll-top="scrollTop" :scroll-top="scrollTop"
@scrolltolower="loadMore" @scrolltolower="loadMore"
style=" style="
height: calc(100vh - 140rpx); height: calc(100vh - 220rpx);
margin-top: 40rpx; margin-top: 100rpx;
padding-bottom: 120rpx; padding-bottom: 120rpx;
" "
v-if="show == true" v-if="show == true"
> >
<view class="doctors_list" id="top"> <view class="doctors_list" id="top">
<view <view
class="doctors_item" class="doctors_item" :style="taihumedId == 1 ? 'padding-bottom:20rpx;' : ''"
v-for="(item, index) in list" v-for="(item, index) in list"
:key="index" :key="index"
@click="goToDetail(item)" @click="goToDetail(item)"
@@ -56,7 +67,8 @@
</u-upload> </u-upload>
</view> </view>
<view class="list_item_bt"> <view class="list_item_bt" v-if="taihumedId==0">
<text class="list_item_study">去评价</text> <text class="list_item_study">去评价</text>
</view> </view>
@@ -114,7 +126,7 @@ export default {
this.list = []; this.list = [];
this.noMore = false; this.noMore = false;
this.getListData(3); this.getListData(this.taihumedId);
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
this.isRefreshing = false; this.isRefreshing = false;
console.log("下拉刷新已停止"); console.log("下拉刷新已停止");
@@ -158,8 +170,9 @@ export default {
// }) // })
// .then(res=> { // .then(res=> {
// if (res.list&&res.list.length>0) { // if (res.list&&res.list.length>0) {
this.tabsList = [ ]; this.tabsList = [ { id: 0, title: "待审批", statusTitle: "" },
this.taihumedId = 3; { id: 1, title: "审批完成", statusTitle: "审批完成", color: "#f59442" },];
this.taihumedId = 0;
this.statusTitle = ''; this.statusTitle = '';
this.statusColor = ''; this.statusColor = '';
this.getListData(this.taihumedId); this.getListData(this.taihumedId);
@@ -184,7 +197,8 @@ export default {
url: "common/medicalRecords/getMedicalRecordsCheckList", url: "common/medicalRecords/getMedicalRecordsCheckList",
method: "POST", method: "POST",
data: { data: {
flag: taihumedId,
}, },
header: { header: {
"Content-Type": "application/json", "Content-Type": "application/json",
@@ -193,10 +207,16 @@ export default {
.then((res) => { .then((res) => {
uni.hideLoading(); uni.hideLoading();
// 过滤不包含自己的用户ID的对象 // 过滤不包含自己的用户ID的对象
this.list = [...res.list].filter(item => { if(this.taihumedId==0){
this.list = [...res.list].filter(item => {
// 判断是否有 stateInfo 属性且它不包含用户ID或者为空字符串 // 判断是否有 stateInfo 属性且它不包含用户ID或者为空字符串
return !item.stateInfo || item.stateInfo === "" || !item.stateInfo.includes(this.userInfo.id.toString()); return !item.stateInfo || item.stateInfo === "" || !item.stateInfo.includes(this.userInfo.id.toString());
}); });
}else{
this.list = [...res.list]
}
console.log('this.list at line 191:', this.list) console.log('this.list at line 191:', this.list)
this.show = true; this.show = true;
@@ -257,7 +277,8 @@ export default {
type = "detail"; type = "detail";
uni.navigateTo({ uni.navigateTo({
url: `/pages/medicalRecords/evaluateDetail?navTitle=${navTitle}&title=${navTitle}&id=${item.id}&type=${type}&statusId=${this.taihumedId}&isEvaluate=1`, url: `/pages/medicalRecords/evaluateDetail?navTitle=${navTitle}&title=${navTitle}&id=${item.id}&type=${type}&statusId=${this.taihumedId}&isEvaluate=1&taimedId=${this.taihumedId}`,
}); });
}, },
}, },

View File

@@ -26,36 +26,102 @@
ref="commonMedicalDetail" ref="commonMedicalDetail"
></medicalDetail> ></medicalDetail>
<view class="footer_box"> <view class="footer_box" v-if="options.taimedId == 0">
<view style="color: #5188e5;padding-left: 10rpx;margin-bottom: 24rpx;">请您结合医案内容给出评价 : </view>
<view style="color: #5188e5; padding-left: 10rpx; margin-bottom: 24rpx"
>请您结合医案内容给出评价 :
</view>
<view style="display: flex; flex-direction: row"> <view style="display: flex; flex-direction: row">
<view class="footer_item" @click="handleSubmit('A')"> <view class="footer_item" @click="showModal('A')">
<image src="/static/icon/a.png"></image> <image src="/static/icon/a.png"></image>
<view class="button savebutton" style="background-color:#2bc66912; <view
color: #2bc669;" class="button savebutton"
style="background-color: #2bc66912; color: #2bc669"
>A >A
</view>
</view> <view class="button_text" style="color: #2bc669;">特别具有吴门意义</view> <view class="button_text" style="color: #2bc669"
>特别具有吴门意义</view
>
</view> </view>
<view class="footer_item" @click="handleSubmit('B')" <view class="footer_item" @click="showModal('B')">
> <image src="/static/icon/b.png"></image><view class="button" style="background-color: #0099ff0f; <image src="/static/icon/b.png"></image
color: #0099ff;" ><view
class="button"
style="background-color: #0099ff0f; color: #0099ff"
>B </view >B </view
><view class="button_text" style="color: #0099ff;">不太具有吴门意义</view></view ><view class="button_text" style="color: #0099ff"
>不太具有吴门意义</view
></view
> >
<view class="footer_item" @click="handleSubmit('C')" <view class="footer_item" @click="showModal('C')">
> <image src="/static/icon/c.png"></image><view class="button" style="background-color: #f2f1f6; <image src="/static/icon/c.png"></image
color: #333333cf;" ><view
class="button"
style="background-color: #f2f1f6; color: #333333cf"
>C</view >C</view
><view class="button_text" style="color: #333333cf">医案内容不够精准</view></view ><view class="button_text" style="color: #333333cf"
>医案内容不够精准</view
></view
> >
</view> </view>
</view> </view>
<view class="footer_box" v-if="options.taimedId == 1" style="height: 170rpx;">
<view style="color: #5188e5; padding-left: 10rpx; margin-bottom: 0rpx"
>您给出的评价是 :
</view>
<view style="display: flex; flex-direction: row">
<view class="footer_item" ></view>
<view class="footer_item" v-if="currentSelect=='A'">
<image src="/static/icon/a.png"></image>
<view
class="button savebutton"
style="background-color: #2bc66912; color: #2bc669"
>A
</view>
<view class="button_text" style="color: #2bc669"
>特别具有吴门意义</view
>
</view>
<view class="footer_item" v-if="currentSelect=='B'">
<image src="/static/icon/b.png"></image
><view
class="button"
style="background-color: #0099ff0f; color: #0099ff"
>B </view
><view class="button_text" style="color: #0099ff"
>不太具有吴门意义</view
></view
>
<view class="footer_item" v-if="currentSelect=='C'">
<image src="/static/icon/c.png"></image
><view
class="button"
style="background-color: #f2f1f6; color: #333333cf"
>C</view
><view class="button_text" style="color: #333333cf"
>医案内容不够精准</view
></view
>
<view class="footer_item" ></view>
</view>
</view>
</view> </view>
<!-- <z-navigation></z-navigation> --> <!-- <z-navigation></z-navigation> -->
<u-modal
:show="show"
@confirm="confirm"
@cancel="cancel"
ref="uModal"
:asyncClose="true"
:showCancelButton="true"
title="提示"
>
<view class="slot-content">
<rich-text :nodes="content"></rich-text>
</view>
</u-modal>
</view> </view>
</template> </template>
@@ -64,12 +130,16 @@ import $http from "@/config/requestConfig.js";
import { mapState, mapMutations } from "vuex"; import { mapState, mapMutations } from "vuex";
import medicalDetail from "./medicalDetail.vue"; import medicalDetail from "./medicalDetail.vue";
import qs from "qs"; import qs from "qs";
import color from "uview-ui/libs/config/color";
export default { export default {
components: { components: {
medicalDetail, medicalDetail,
}, },
data() { data() {
return { return {
selectType: "",
content: "",
show: false,
options: {}, options: {},
fileList1: [], fileList1: [],
@@ -120,6 +190,7 @@ export default {
freeStatus: null, freeStatus: null,
flag: null, flag: null,
scrollIntoView: "", scrollIntoView: "",
currentSelect: "",
recordData: {}, recordData: {},
editableMap: {}, editableMap: {},
isRefreshing: false, //刷新状态 isRefreshing: false, //刷新状态
@@ -129,6 +200,8 @@ export default {
...mapState(["userInfo"]), ...mapState(["userInfo"]),
}, },
async onLoad(options) { async onLoad(options) {
this.selectType = "";
this.show = false;
this.options = options; this.options = options;
this.medicalId = options.id; this.medicalId = options.id;
if (this.options.type == "add") { if (this.options.type == "add") {
@@ -150,6 +223,10 @@ export default {
url: image, // 文件 URL url: image, // 文件 URL
})); }));
} }
if(this.medicalForm.stateInfo){
this.currentSelect = JSON.parse(this.medicalForm.stateInfo)[this.userInfo.id];
console.log('this.currentSelect at line 223:', this.currentSelect)
}
}); });
// this.tishi=true // this.tishi=true
@@ -209,6 +286,36 @@ export default {
}, 800); }, 800);
}, },
methods: { methods: {
showModal(type) {
this.selectType = type;
var color = "";
var content = "";
switch (type) {
case "A":
color = "#2bc669";
content = "特别具有吴门意义";
break;
case "B":
color = "#0099ff";
content = "不太具有吴门意义";
break;
case "C":
color = "#333333cf";
content = "医案内容不够精准";
break;
}
this.content = `您确定选择 <span style="color:${color};font-size:20px;font-weight:bold;margin:0 4px">${type} </span> 吗?`;
this.show = true;
},
confirm() {
this.handleSubmit(this.selectType);
},
cancel() {
this.show = false;
},
//更新子组件内容 //更新子组件内容
updateEditableMap(val) { updateEditableMap(val) {
this.editableMap = val; this.editableMap = val;
@@ -225,14 +332,13 @@ export default {
}, },
handleSubmit(type) { handleSubmit(type) {
this.$http this.$http
.request({ .request({
url: "common/medicalRecords/medicalRecordsCheck", url: "common/medicalRecords/medicalRecordsCheck",
method: "POST", method: "POST",
data: { data: {
"id":this.options.id, id: this.options.id,
"state":type state: type,
}, },
header: { header: {
"Content-Type": "application/json", "Content-Type": "application/json",
@@ -241,16 +347,27 @@ export default {
.then((res) => { .then((res) => {
if (res.code == 0) { if (res.code == 0) {
console.log("res.code at line 434:", res.code); console.log("res.code at line 434:", res.code);
setTimeout(() => {
uni.redirectTo({ // 3秒后自动关闭
url: "/pages/medicalRecords/PendingApprovalIndex", this.show = false;
}); }, 500);
uni.redirectTo({
url: "/pages/medicalRecords/PendingApprovalIndex",
});
} else { } else {
setTimeout(() => {
// 3秒后自动关闭
this.show = false;
}, 500);
this.$commonJS.showToast(res.msg); this.$commonJS.showToast(res.msg);
} }
}) })
.catch((err) => {}); .catch((err) => {
setTimeout(() => {
// 3秒后自动关闭
this.show = false;
}, 500);
});
}, },
// 判断内容是否为空或无效 // 判断内容是否为空或无效
@@ -1605,23 +1722,22 @@ h3 {
flex: 1; flex: 1;
// display: flex; // display: flex;
// align-items: center; // align-items: center;
image{ image {
width: 80rpx; width: 80rpx;
height: 80rpx; height: 80rpx;
margin-right: -60rpx; margin-right: -60rpx;
margin-left: 60rpx; margin-left: 60rpx;
float: left; float: left;
} }
.button_text{ .button_text {
position: relative; position: relative;
font-size: 24rpx; font-size: 24rpx;
color: #666; color: #666;
margin-top: 10rpx; margin-top: 10rpx;
padding-left: 30rpx; padding-left: 30rpx;
width: 100%; width: 100%;
display: inline-block; display: inline-block;
text-align: center; text-align: center;
} }
.button { .button {
float: left; float: left;
@@ -1629,7 +1745,7 @@ float: left;
background-color: #f0f0f0; background-color: #f0f0f0;
// margin: auto auto; // margin: auto auto;
margin-top: 10rpx; margin-top: 10rpx;
padding-left:40rpx; padding-left: 40rpx;
border-radius: 50px; border-radius: 50px;
line-height: 36px; line-height: 36px;
height: 36px; height: 36px;

View File

@@ -850,30 +850,30 @@ export default {
this.record = { this.record = {
information: data.information information: data.information
? data.information ? data.information
: recordData.information, : this.recordData.information,
chiefComplaint: data.chiefComplaint chiefComplaint: data.chiefComplaint
? data.chiefComplaint ? data.chiefComplaint
: recordData.chiefComplaint, : this.recordData.chiefComplaint,
historyOfPresentIllness: data.historyOfPresentIllness historyOfPresentIllness: data.historyOfPresentIllness
? data.historyOfPresentIllness ? data.historyOfPresentIllness
: recordData.historyOfPresentIllness, : this.recordData.historyOfPresentIllness,
pastHistory: data.pastHistory pastHistory: data.pastHistory
? data.pastHistory ? data.pastHistory
: recordData.pastHistory, : this.recordData.pastHistory,
personalAndFamilyHistory: data.personalAndFamilyHistory personalAndFamilyHistory: data.personalAndFamilyHistory
? data.personalAndFamilyHistory ? data.personalAndFamilyHistory
: recordData.personalAndFamilyHistory, : this.recordData.personalAndFamilyHistory,
physicaExamination: data.physicaExamination physicaExamination: data.physicaExamination
? data.physicaExamination ? data.physicaExamination
: recordData.physicaExamination, : this.recordData.physicaExamination,
diagnosis: data.diagnosis ? data.diagnosis : recordData.diagnosis, diagnosis: data.diagnosis ? data.diagnosis : this.recordData.diagnosis,
treatmentPlan: data.treatmentPlan treatmentPlan: data.treatmentPlan
? data.treatmentPlan ? data.treatmentPlan
: recordData.treatmentPlan, : this.recordData.treatmentPlan,
other: data.other other: data.other
? data.other ? data.other
: recordData.other, : this.recordData.other,
}; };
for (const key in this.record) { for (const key in this.record) {
this.$set(this.editableMap, key, this.getInnerHtml(this.record[key])); this.$set(this.editableMap, key, this.getInnerHtml(this.record[key]));

View File

@@ -303,7 +303,7 @@ export default {
if (res2.code == 0 && res2.flag == true) { if (res2.code == 0 && res2.flag == true) {
this.pageList.splice(2, 0, { this.pageList.splice(2, 0, {
name: "审批医案", name: "审批医案",
url: "/pages/medicalRecords/PendingApprovalIndex", url: "/pages/medicalRecords/PendingApprovalIndex",
type: "pageJump", type: "pageJump",
contentType: "shengpi", contentType: "shengpi",