This commit is contained in:
2025-08-07 16:38:25 +08:00
parent b761ae562f
commit c0aab3d94c
25 changed files with 4204 additions and 1480 deletions

View File

@@ -6,61 +6,118 @@
:scroll-into-view="scrollIntoView"
scroll-with-animation
>
<view
class="message-container-block"
:class="{
:class="{
'message-container-detail': type == 'detail',
'content_detail_0': statusId == 0,
'content_detail_1': statusId == 1,
'content_detail_2': statusId == 2,
'content_detail_3': statusId == 3,
'content_detail_3_talents': page == 'talents',
}"
content_detail_0: statusId == 0,
content_detail_1: statusId == 1,
content_detail_2: statusId == 2 || statusId == 4,
content_detail_3: statusId == 3,
content_detail_4: statusId == 5 || statusId == 6,
content_detail_3_talents: page == 'talents',
content_detail_none: isEvaluate == '1',
}"
>
<view class="loading-spinner" v-if="loading"></view>
<uni-notice-bar :color="medicalRecords.state==0?'#eb3c41':medicalRecords.state==2?'#e78083':''"
:background-color="medicalRecords.state==3?'#e7808330':medicalRecords.state==2?'#e7808330':''"
:text="`审核备注:${markInfo}`"
v-if="markInfo" style="margin-bottom: 0;"/>
<uni-notice-bar
:color="
medicalRecords.state == 0
? '#eb3c41'
: medicalRecords.state == 2 || medicalRecords.state == 4
? '#e78083'
: ''
"
:background-color="
medicalRecords.state == 6 || medicalRecords.state == 5
? '#e7808330'
: medicalRecords.state == 2 || medicalRecords.state == 4
? '#e7808330'
: ''
"
:text="`${medicalRecords.state == 4?'质检未通过':'审核备注'}${markInfo}`"
v-if="markInfo"
style="margin-bottom: 0"
/>
<view style="" class="detail_top" :class="{
'detail_top_0': statusId == 0,
'detail_top_1': statusId == 1,
'detail_top_2': statusId == 2,
'detail_top_3': statusId == 3,
'detail_top_3_talents': page == 'talents',
}" v-if="type == 'detail'">
<view class="detail_top_left" :style="`${page?'width:100%;padding-bottom:0':''}`">
<view
style=""
class="detail_top"
:class="{
detail_top_0: statusId == 0,
detail_top_1: statusId == 1,
detail_top_2: statusId == 2 || statusId == 4,
detail_top_3: statusId == 3,
detail_top_4: statusId == 5 || statusId == 6,
detail_top_3_talents: page == 'talents',
detail_top_none: isEvaluate == '1',
}"
v-if="type == 'detail'"
>
<view
class="detail_top_left"
:style="`${page ? 'width:100%;padding-bottom:0' : ''}`"
>
<view class="detail_top_item">
<view class="detail_top_item_name">{{ formData.title }}</view>
<view class="label_title">分类 : {{ formData.labelTitle }}</view>
<view class="detail_top_item_name">
{{ formData.title }}</view
>
<view
class="label_title"
:style="isEvaluate == '1' ? 'color:#000' : ''"
>分类 : {{ formData.labelTitle }}
</view>
</view>
</view>
<image
class="image_box"
v-if="statusId == 1&&!page"
v-if="statusId == 1 && !page && !isEvaluate"
src="../../static/icon/shenghezhong.png"
style=""
></image>
<image
class="image_box"
v-if="statusId == 2&&!page"
v-if="(statusId == 2) && !page && !isEvaluate"
src="../../static/icon/weitongguo.png"
style=""
></image>
<image
class="image_box"
v-if="statusId == 3&&!page"
style="width: 150rpx"
v-if="statusId == 3 && !page && !isEvaluate"
src="../../static/icon/jiancezhong.png"
></image>
<!-- <image
class="image_box"
v-if="(statusId == 5) && !page && !isEvaluate"
src="../../static/icon/yitongguo.png"
style="width: 150rpx;"
style="width: 150rpx"
></image
></view>
> -->
<image
class="image_box"
v-if="(statusId == 6) && !page && !isEvaluate"
src="../../static/icon/a_.png"
style="width: 170rpx;right:40rpx;top: 60rpx;"
></image
>
<image
class="image_box"
v-if="(statusId == 5) && !page && !isEvaluate"
src="../../static/icon/b_.png"
style="width: 200rpx;"
></image
>
<image
class="image_box"
v-if="(statusId == 4) && !page && !isEvaluate"
src="../../static/icon/c_.png"
style="width: 200rpx;right: -10rpx;"
></image
>
</view>
<view class="home_wrap" style="margin: 0" v-if="!loading">
<view
class="home_form"
@@ -182,6 +239,7 @@
justify-content: space-between;
margin-bottom: 14px;
"
:style="isEvaluate == '1' ? 'text-align: justify;' : ''"
>
<view style="width: calc(100%)">
<view
@@ -209,54 +267,58 @@
></view>
<!-- <view class="editor-wrapper"> -->
<rich-text style="color: #474343;"
<rich-text
style="color: #474343"
:nodes="editableMap[key]"
v-if="editableMap[key]"
></rich-text>
<rich-text nodes="<p>无</p>" v-else style="color: #474343;"></rich-text>
<rich-text
nodes="<p>无</p>"
v-else
style="color: #474343"
></rich-text>
<!-- </view> -->
</view>
<view v-if="fileList1.length>0"
class="form_item"
style="
display: block;
<view
v-if="fileList1.length > 0"
class="form_item"
style="
display: block;
margin-bottom: 14px;
"
>
<view
class="h1_box"
v-html="`<h1>图片</h1>`"
style="
margin-top: 0;
margin-bottom: 14px;
font-weight: bold;
display: flex;
align-items: center;
"
></view>
<view
class="in"
style="border: none; width: 100%"
@click="checkPermision"
>
<u-upload
:fileList="fileList1"
@afterRead="addPic"
@delete="deletePic"
multiple
width="55"
height="55"
:previewFullImage="true"
margin-bottom: 14px;
"
>
</u-upload>
</view>
</view>
</view>
</view>
<view
class="h1_box"
v-html="`<h1>图片</h1>`"
style="
margin-top: 0;
margin-bottom: 14px;
font-weight: bold;
display: flex;
align-items: center;
"
></view>
<view
class="in"
style="border: none; width: 100%"
@click="checkPermision"
>
<u-upload
:fileList="fileList1"
@afterRead="addPic"
@delete="deletePic"
multiple
width="55"
height="55"
:previewFullImage="true"
>
</u-upload>
</view>
</view>
</view>
</view>
</view>
<!-- 搜索结果列表 -->
@@ -284,10 +346,18 @@ export default {
components: {
treeList,
},
props: ["loading", "form", "medicalRecords", "type", "statusId",'page'],
props: [
"loading",
"form",
"medicalRecords",
"type",
"statusId",
"page",
"isEvaluate",
],
data() {
return {
markInfo:'',
markInfo: "",
editorOptions: {
theme: "snow", // Quill 编辑器的主题
modules: {
@@ -389,8 +459,6 @@ export default {
onShow() {},
methods: {
onStatusChange(e) {
this.formats = e.detail;
},
@@ -454,40 +522,40 @@ export default {
},
getInnerHtml(html) {
// Regular expression to capture all HTML tags excluding the first <h1> tag
const h1Match = html.match(/<h1[^>]*>.*?<\/h1>/);
// If an <h1> is found, remove it and process the rest
if (h1Match) {
// Remove the first <h1> and its content, then return the rest of the HTML
html = html.replace(h1Match[0], '');
}
// Regular expression to capture all HTML tags excluding the first <h1> tag
const h1Match = html.match(/<h1[^>]*>.*?<\/h1>/);
// Return the remaining HTML
return html;
},
// If an <h1> is found, remove it and process the rest
if (h1Match) {
// Remove the first <h1> and its content, then return the rest of the HTML
html = html.replace(h1Match[0], "");
}
// Return the remaining HTML
return html;
},
getTitleHtml(html, key) {
const str = [
"chiefComplaint",
"historyOfPresentIllness",
"physicaExamination",
"treatmentPlan",
].includes(key)
? `<span style="color:#F56C6C;margin-right:4px">*</span>`
: "";
const str = [
"chiefComplaint",
"historyOfPresentIllness",
"physicaExamination",
"treatmentPlan",
].includes(key)
? `<span style="color:#F56C6C;margin-right:4px">*</span>`
: "";
// Regular expression to capture the first <h1> element in the HTML
const h1Match = html.match(/<h1[^>]*>(.*?)<\/h1>/);
if (h1Match) {
// If an <h1> is found, return it with the prepended star if needed
return `<h1>${str}${h1Match[1]}</h1>`;
} else {
// If no <h1> is found, return an empty <h1>
return "<h1></h1>";
}
},
// Regular expression to capture the first <h1> element in the HTML
const h1Match = html.match(/<h1[^>]*>(.*?)<\/h1>/);
if (h1Match) {
// If an <h1> is found, return it with the prepended star if needed
return `<h1>${str}${h1Match[1]}</h1>`;
} else {
// If no <h1> is found, return an empty <h1>
return "<h1></h1>";
}
},
async checkPermision() {
var result = await permission.premissionCheck("CAMERA_EXTERNAL_STORAGE");
@@ -742,27 +810,36 @@ export default {
this.chatId = item.id;
this.chatName = item.name;
},
initRecordData(data) {
this.markInfo=''
this.markInfo = "";
this.formData.title = data.title ? data.title : "";
this.formData.labelId = data.labelId ? data.labelId : "";
this.formData.labelTitle = data.labelTitle ? data.labelTitle : "";
if(data.mark){
this.markList = JSON.parse(data.mark);
const latest = this.markList.reduce((latest, current) => {
return new Date(current.time) > new Date(latest.time) ? current : latest;
});
if(data.state!=1&&data.state!=3&&latest){
this.markInfo=latest.mark?latest.mark:''
}
if (data.mark) {
this.markList = JSON.parse(data.mark);
const latest = this.markList.reduce((latest, current) => {
return new Date(current.time) > new Date(latest.time)
? current
: latest;
});
if (
data.state != 1 &&
data.state != 4 &&
data.state != 5 &&
data.state != 6 &&
data.state != 3 &&
latest
) {
this.markInfo = latest.mark ? latest.mark : "";
}
// medicalRecords.mark&&medicalRecords.state!=1&&medicalRecords.state!=3
}
if(data.state==4){
this.markInfo = '医案内容不够精准'
}
this.record = {
information: data.information
? data.information
@@ -1386,8 +1463,6 @@ if(data.state!=1&&data.state!=3&&latest){
}
}
.message_title {
text-align: center;
font-size: 34rpx;
@@ -1866,23 +1941,24 @@ h3 {
display: none !important;
}
}
.content_detail_1{
.content_detail_1 {
background: #fff4e026;
}
.content_detail_3{
.content_detail_3 {
background: linear-gradient(to bottom, #f4fbfa 0%, #fff 90%);
}
.content_detail_4 {
background: linear-gradient(to bottom, #f6fcfb 0%, #fff 90%);
}
.content_detail_3_talents{
.content_detail_3_talents {
background: linear-gradient(to bottom, #e9f2fc 0%, #ffffff 90%);
}
// .content_detail_2{
// background: linear-gradient(to bottom, #f2f1f6 0%, #fff 90%);
// }
.content_detail_2{
.content_detail_2 {
// background: linear-gradient(to bottom, #e7808330 0%, #fff 90%);
}
.detail_top {
@@ -1890,7 +1966,7 @@ h3 {
min-height: 280rpx;
position: relative;
// background: linear-gradient(to bottom, #fff4e0 0%, #fff 90%);
.image_box {
width: 130rpx;
height: 130rpx;
@@ -1927,22 +2003,30 @@ h3 {
font-weight: bold;
margin-bottom: 40rpx;
}
.detail_top_1{
.detail_top_1 {
background: linear-gradient(to bottom, #fff4e0 0%, #fff4e026 90%);
}
.detail_top_2{
.detail_top_2 {
background: linear-gradient(to bottom, #f2f1f6 0%, #fff 90%);
}
.detail_top_3{
.detail_top_3 {
background: linear-gradient(to bottom, #67c2d070 0%, #f6fcfb 90%);
}
.detail_top_4 {
background: linear-gradient(to bottom, #22be973d 0%, #f6fcfb 90%);
}
.detail_top_3_talents{
.detail_top_3_talents {
background: linear-gradient(to bottom, #d8e6ff 0%, #e9f2fc 90%);
min-height:260rpx;
min-height: 260rpx;
}
.content_detail_none {
background: #d8e6ff57 !important;
}
.detail_top_none {
background: #d8e6ff0d !important;
min-height: auto;
.detail_top_left {
width: 100%;
}
}
</style>