提交
24
pages.json
@@ -35,6 +35,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/medicalRecords/PendingApprovalIndex",
|
||||
"style": {
|
||||
"navigationBarTitleText": "待审核医案",
|
||||
"enablePullDownRefresh": true, // 禁止下拉刷新
|
||||
"app-plus": {
|
||||
"bounce": "none",
|
||||
"titleNView": false,
|
||||
"popGesture": "none"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/articleList/index",
|
||||
"style": {
|
||||
@@ -59,6 +71,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/medicalRecords/evaluateDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "医案",
|
||||
"enablePullDownRefresh": true, // 禁止下拉刷新
|
||||
"app-plus": {
|
||||
"bounce": "none",
|
||||
"titleNView": false,
|
||||
"popGesture": "none"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/articleList/article",
|
||||
|
||||
@@ -187,6 +187,7 @@ export default {
|
||||
fileList1: [],
|
||||
|
||||
containerHeight: null,
|
||||
pollInterval: null,
|
||||
formData: {
|
||||
message: "",
|
||||
},
|
||||
@@ -776,11 +777,12 @@ export default {
|
||||
const poll = () => {
|
||||
this.getMedicalDetail(() => {
|
||||
// 停止轮询
|
||||
clearInterval(pollInterval);
|
||||
clearInterval(this.pollInterval);
|
||||
this.pollInterval = null;
|
||||
});
|
||||
};
|
||||
// 每5秒发送一次请求,直到收到正确的响应
|
||||
const pollInterval = setInterval(poll, 5000);
|
||||
this. pollInterval = setInterval(poll, 5000);
|
||||
|
||||
//调用后端 SSE 接口,发送问题并接收实时回答
|
||||
// this.startSSE(params);
|
||||
@@ -1183,9 +1185,11 @@ export default {
|
||||
},
|
||||
},
|
||||
onHide() {
|
||||
|
||||
this.closeWebSocket();
|
||||
},
|
||||
onUnload() {
|
||||
this.pollInterval()
|
||||
this.closeWebSocket();
|
||||
},
|
||||
};
|
||||
|
||||
@@ -176,7 +176,8 @@ export default {
|
||||
this.tabsList = [
|
||||
{ id: 0, title: "草稿箱", statusTitle: '' },
|
||||
{ id: 1, title: "待审核",statusTitle: '待审核',color:'#f59442' },
|
||||
{ id: 3, title: "已通过",statusTitle: '已通过' ,color:'#22be98' },
|
||||
{ id: 3, title: "质量检测中",statusTitle: '检测中' ,color:'#22be98' },
|
||||
{ id: 4, title: "已通过",statusTitle: '已通过' ,color:'#22be98' },
|
||||
{ id: 2, title: "未通过",statusTitle: '未通过',color:"#e78084" },
|
||||
];
|
||||
this.taihumedId = this.tabsList[0].id;
|
||||
|
||||
51
pages/component/commonComponents/DepartmentMenu.vue
Normal file
@@ -0,0 +1,51 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="department_item"
|
||||
:class="deptLabelId == item.id ? 'department_active' : ''"
|
||||
v-for="(item, index) in chatAssistants"
|
||||
:key="index"
|
||||
@click.stop="click_department(item, index)">
|
||||
<text>{{ item.title }}</text>
|
||||
<!-- 递归显示子菜单 -->
|
||||
<view v-if="item.children && item.children.length > 0">
|
||||
<department-menu :chat-assistants="item.children" @item-click="click_department"></department-menu>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DepartmentMenu from "../commonComponents/DepartmentMenu.vue";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
DepartmentMenu
|
||||
},
|
||||
props: {
|
||||
chatAssistants: {
|
||||
type: Array,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
click_department(item, index) {
|
||||
this.$emit('item-click', item, index); // 向父组件传递点击事件
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.department_item {
|
||||
padding-left: 10px; /* 左侧缩进 */
|
||||
}
|
||||
|
||||
.department_active {
|
||||
color: #ff4500; /* 选中的菜单项颜色 */
|
||||
}
|
||||
|
||||
.department_item > .department_item {
|
||||
padding-left: 20px; /* 子菜单项的缩进 */
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
:backState="2000"
|
||||
></z-nav-bar>
|
||||
<view class="doctors_module" :style="`top: ${42 + statusBarHeight}px;`">
|
||||
<view class="tab-bar">
|
||||
<!-- <view class="tab-bar">
|
||||
<view
|
||||
class="tab-item left-tab"
|
||||
:class="{ active: activeTab === 0 }"
|
||||
@@ -22,9 +22,9 @@
|
||||
>
|
||||
名医天地
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<template v-if="activeTab == 0">
|
||||
<view class="cateList flexbox" style="background-color: #fff">
|
||||
<view class="cateList flexbox" >
|
||||
<common-sticky
|
||||
itemStyle="width:33.3%; height: 38px;font-size:24rpx;"
|
||||
:list="tabsList"
|
||||
@@ -58,14 +58,15 @@
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
|
||||
<!-- height: calc(100vh - ${activeTab==0?320:280}rpx);
|
||||
margin-top: ${activeTab==0?280:180}rpx; -->
|
||||
<scroll-view
|
||||
scroll-y="true"
|
||||
:scroll-top="scrollTop"
|
||||
@scrolltolower="loadMore"
|
||||
:style="`
|
||||
height: calc(100vh - ${activeTab==0?320:280}rpx);
|
||||
margin-top: ${activeTab==0?260:180}rpx;
|
||||
height: calc(100vh - ${activeTab==0?280:280}rpx);
|
||||
margin-top: ${activeTab==0?180:180}rpx;
|
||||
padding-bottom: 140rpx;`
|
||||
"
|
||||
v-if="show == true"
|
||||
@@ -93,14 +94,23 @@
|
||||
></image>
|
||||
|
||||
<view class="item_right" v-if="currentCateIndex != 2">
|
||||
<view class="item_top">
|
||||
<!-- <view class="item_top">
|
||||
<text
|
||||
class="item_name"
|
||||
v-if="item.taihuTalent && item.taihuTalent.length > 0"
|
||||
>{{ item.taihuTalent[0].name }}</text
|
||||
>
|
||||
</view>
|
||||
</view> -->
|
||||
<text class="item_con">{{ item.title }}</text>
|
||||
<view class="item_info hidden2" style="margin-top: 20rpx;">
|
||||
<rich-text style="color: #666;"
|
||||
|
||||
:nodes="item.content"
|
||||
|
||||
v-if="item.content"
|
||||
></rich-text
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="item_right" v-else>
|
||||
@@ -424,7 +434,7 @@ else{
|
||||
background-color: #fff;
|
||||
}
|
||||
.doctors_list {
|
||||
margin: 0 30rpx 20rpx;
|
||||
margin: 0 20rpx 20rpx;
|
||||
}
|
||||
.doctors_item {
|
||||
border: 1rpx solid $themeColor;
|
||||
@@ -602,4 +612,9 @@ else{
|
||||
box-shadow: 0 0 8rpx rgba(0, 0, 0, 0.04),
|
||||
/* 外部柔光阴影 */ inset -4rpx 0 6rpx rgba(0, 0, 0, 0.03); /* 内阴影模拟夹层效果 */
|
||||
}
|
||||
.hidden2{
|
||||
line-height: 24px;
|
||||
max-height: 48px;
|
||||
height: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
473
pages/medicalRecords/PendingApprovalIndex.vue
Normal file
@@ -0,0 +1,473 @@
|
||||
<template>
|
||||
<view class="content" style="background-color: #d8e6ff57">
|
||||
<z-nav-bar title="待审批医案" bgColor="#5188e5" fontColor="#fff">
|
||||
|
||||
</z-nav-bar>
|
||||
|
||||
<scroll-view
|
||||
scroll-y="true"
|
||||
:scroll-top="scrollTop"
|
||||
@scrolltolower="loadMore"
|
||||
style="
|
||||
height: calc(100vh - 140rpx);
|
||||
margin-top: 40rpx;
|
||||
padding-bottom: 120rpx;
|
||||
"
|
||||
v-if="show == true"
|
||||
>
|
||||
<view class="doctors_list" id="top">
|
||||
<view
|
||||
class="doctors_item"
|
||||
v-for="(item, index) in list"
|
||||
:key="index"
|
||||
@click="goToDetail(item)"
|
||||
>
|
||||
<view class="flex">
|
||||
<view class="flex">
|
||||
|
||||
|
||||
<view class="item_right">
|
||||
<view style="display: flex; align-items: center">
|
||||
<text class="card_label" v-if="statusTitle" :style="`background-color:${statusColor} ;`">{{ statusTitle }}</text>
|
||||
<text class="item_time">{{ item.createTime }}</text></view
|
||||
>
|
||||
|
||||
<view class="item_top">
|
||||
<view class="item_name">{{ item.title }}</view>
|
||||
<rich-text
|
||||
class="item_content"
|
||||
:nodes="item.information"
|
||||
></rich-text>
|
||||
<!-- <rich-text
|
||||
class="item_content"
|
||||
:nodes="item.chiefComplaint"
|
||||
></rich-text> -->
|
||||
</view>
|
||||
<view style="margin-top: 20rpx" v-if="item.img">
|
||||
<u-upload
|
||||
:fileList="item.fileList1"
|
||||
multiple
|
||||
width="50"
|
||||
height="50"
|
||||
:disabled="true"
|
||||
:previewFullImage="true"
|
||||
@click.stop="handleClick"
|
||||
>
|
||||
</u-upload>
|
||||
</view>
|
||||
|
||||
<view class="list_item_bt">
|
||||
|
||||
<text class="list_item_study">去评价</text>
|
||||
</view>
|
||||
<!-- <text class="item_con">{{ item.taihuTalent.map(talent => talent.name).join(' ') }}</text> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<text v-show="showText && count > list.length" class="show-more"
|
||||
>加载更多</text
|
||||
>
|
||||
<text v-show="noMore" class="no-more">没有更多了</text>
|
||||
</scroll-view>
|
||||
<text class="null_text" v-else>{{ null_text }}</text>
|
||||
<z-navigation></z-navigation>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import $http from "@/config/requestConfig.js";
|
||||
import { mapState } from "vuex";
|
||||
export default {
|
||||
computed: {
|
||||
...mapState(["userInfo"]),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
list: [],
|
||||
null_text: "",
|
||||
|
||||
current: 1,
|
||||
limit: 10,
|
||||
courseName: "",
|
||||
taihumedId: 3,
|
||||
statusTitle: '',
|
||||
statusColor: '',
|
||||
|
||||
timer: null,
|
||||
showText: false,
|
||||
noMore: false,
|
||||
show: null,
|
||||
count: 0,
|
||||
scrollTop: 0, //滚动位置
|
||||
isRefreshing: false, //刷新状态
|
||||
};
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.isRefreshing = true;
|
||||
console.log("下拉刷新");
|
||||
|
||||
setTimeout(() => {
|
||||
this.current = 1;
|
||||
this.list = [];
|
||||
this.noMore = false;
|
||||
|
||||
this.getListData(3);
|
||||
uni.stopPullDownRefresh();
|
||||
this.isRefreshing = false;
|
||||
console.log("下拉刷新已停止");
|
||||
}, 800);
|
||||
},
|
||||
onLoad() {
|
||||
uni.hideTabBar();
|
||||
this.getTabData();
|
||||
},
|
||||
onShow() {
|
||||
this.getListData(this.taihumedId);
|
||||
},
|
||||
methods: {
|
||||
createFolder() {
|
||||
uni.navigateTo({
|
||||
url: `/pages/medicalRecords/medical?navTitle=创建医案&title=创建医案&type=add`,
|
||||
});
|
||||
},
|
||||
//判断显示‘上/中/下’
|
||||
formatContent(content) {
|
||||
const keywords = ["上部", "中部", "下部"];
|
||||
let result = [];
|
||||
|
||||
// 判断是否包含关键字
|
||||
keywords.forEach((keyword) => {
|
||||
if (content.includes(keyword)) {
|
||||
result.push(keyword.substring(0, 1));
|
||||
}
|
||||
});
|
||||
return result.join("");
|
||||
},
|
||||
//获取tab数据
|
||||
getTabData() {
|
||||
// this.$http.request({
|
||||
// url: 'taihumed/course/getCourseTaihumedList',
|
||||
// method: "POST",
|
||||
// data: {},
|
||||
// header: {
|
||||
// "Content-Type": "application/json",
|
||||
// },
|
||||
// })
|
||||
// .then(res=> {
|
||||
// if (res.list&&res.list.length>0) {
|
||||
this.tabsList = [ ];
|
||||
this.taihumedId = 3;
|
||||
this.statusTitle = '';
|
||||
this.statusColor = '';
|
||||
this.getListData(this.taihumedId);
|
||||
// }
|
||||
// });
|
||||
},
|
||||
//获取列表数据
|
||||
getListData(taihumedId, type) {
|
||||
// if (type) {
|
||||
// this.current = 1;
|
||||
// this.list = [];
|
||||
// this.noMore = false;
|
||||
// }
|
||||
// if (this.noMore) {
|
||||
// return false;
|
||||
// }
|
||||
uni.showLoading({
|
||||
title: "加载中",
|
||||
});
|
||||
this.$http
|
||||
.request({
|
||||
url: "common/medicalRecords/getMedicalRecordsCheckList",
|
||||
method: "POST",
|
||||
data: {
|
||||
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
uni.hideLoading();
|
||||
// 过滤不包含自己的用户ID的对象
|
||||
this.list = [...res.list].filter(item => {
|
||||
// 判断是否有 stateInfo 属性,且它不包含用户ID,或者为空字符串
|
||||
return !item.stateInfo || item.stateInfo === "" || !item.stateInfo.includes(this.userInfo.id.toString());
|
||||
});
|
||||
|
||||
console.log('this.list at line 191:', this.list)
|
||||
this.show = true;
|
||||
this.count = this.list.length; //总数
|
||||
let length = this.list.length;
|
||||
if(length == 0){
|
||||
this.show = false;
|
||||
this.null_text = "暂无数据";
|
||||
}
|
||||
// if (res.medicalRecordsList && length > 0) {
|
||||
// this.show = true;
|
||||
// // //如果返回的数据少于每页数量,表示没有更多数据
|
||||
// // if(this.count==length || length < this.limit ||this.count/this.current==this.limit){
|
||||
// // this.noMore = true;
|
||||
// // }
|
||||
// // this.list = [...this.list, ...res.pageRes.records];
|
||||
// // this.current += 1; //更新页码
|
||||
// // //显示提示语
|
||||
// // this.showText = true;
|
||||
|
||||
// // if(this.current==2||type){
|
||||
// // this.scrollTop = 0
|
||||
// // this.$nextTick(() => {
|
||||
// // this.scrollTop = 0.1; // 确保触发滚动
|
||||
// // })
|
||||
// // }
|
||||
// } else {
|
||||
// this.show = false;
|
||||
// this.null_text = "暂无数据";
|
||||
// }
|
||||
});
|
||||
},
|
||||
//加载更多
|
||||
loadMore() {
|
||||
this.getListData(this.taihumedId);
|
||||
},
|
||||
//切换tab状态
|
||||
ordersTabCLi(data, index) {
|
||||
this.currentCateIndex = index;
|
||||
this.courseName = "";
|
||||
this.taihumedId = data.id;
|
||||
this.statusTitle = data.statusTitle;
|
||||
this.statusColor = data.color;
|
||||
//重置
|
||||
this.list = [];
|
||||
this.noMore = false;
|
||||
this.show = false;
|
||||
this.count = 0;
|
||||
this.current = 1;
|
||||
this.getListData(this.taihumedId);
|
||||
},
|
||||
//详情
|
||||
goToDetail(item) {
|
||||
if (this.isRefreshing) return;
|
||||
var navTitle = "";
|
||||
var type = "";
|
||||
navTitle = "医案详情";
|
||||
type = "detail";
|
||||
|
||||
uni.navigateTo({
|
||||
url: `/pages/medicalRecords/evaluateDetail?navTitle=${navTitle}&title=${navTitle}&id=${item.id}&type=${type}&statusId=${this.taihumedId}&isEvaluate=1`,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/static/mixin.scss";
|
||||
.content {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
background-color: #fff;
|
||||
}
|
||||
.doctors_list {
|
||||
margin: 0 20rpx 20rpx;
|
||||
}
|
||||
.doctors_item {
|
||||
// border: 1rpx solid $themeColor;
|
||||
border-radius: 15rpx;
|
||||
margin-bottom: 20rpx;
|
||||
padding: 12rpx 30rpx 60rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 1px 8px #e3e1e1;
|
||||
}
|
||||
.item_image {
|
||||
display: block;
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
flex-shrink: 0;
|
||||
background: #f3f3f3;
|
||||
}
|
||||
.item_right {
|
||||
width: calc(100%);
|
||||
// margin-left: 30rpx;
|
||||
// padding-bottom: 20rpx;
|
||||
}
|
||||
.item_top {
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// line-height: 30rpx;
|
||||
margin-top: 8rpx;
|
||||
}
|
||||
.item_name {
|
||||
font-size: 34rpx;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word; /* 避免长单词造成溢出 */
|
||||
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
.item_content {
|
||||
h1 {
|
||||
font-size: 28rpx;
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
.item_title {
|
||||
font-size: 32rpx;
|
||||
color: #333;
|
||||
}
|
||||
.item_time {
|
||||
font-size: 26rpx;
|
||||
color: #aaacab;
|
||||
}
|
||||
.item_con {
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
margin-top: 10rpx;
|
||||
line-height: 40rpx;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.null_text {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 30rpx;
|
||||
color: #999;
|
||||
padding-top: 300rpx;
|
||||
}
|
||||
.doctors_module {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
z-index: 99;
|
||||
left: 0;
|
||||
}
|
||||
.cateList {
|
||||
background: #f3f3f3;
|
||||
}
|
||||
.flex {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.name_search {
|
||||
background-color: #fff;
|
||||
padding: 20rpx 30rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
/deep/.is-input-border {
|
||||
background-color: #f3f3f3;
|
||||
border-radius: 50rpx;
|
||||
height: 60rpx;
|
||||
line-height: 30rpx;
|
||||
padding: 15rpx;
|
||||
font-size: 28rpx;
|
||||
color: #666;
|
||||
}
|
||||
/deep/.uni-easyinput__content-input {
|
||||
}
|
||||
.name-placeholder {
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
button {
|
||||
background-color: $themeBgColor;
|
||||
font-size: 26rpx;
|
||||
line-height: 36rpx;
|
||||
border-radius: 15rpx;
|
||||
color: #fff;
|
||||
padding: 5rpx 20rpx;
|
||||
margin-left: 15rpx;
|
||||
}
|
||||
}
|
||||
.show-more,
|
||||
.no-more {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
font-size: 24rpx;
|
||||
padding-top: 5rpx;
|
||||
color: #ccc;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.list_item_study {
|
||||
line-height: 48rpx;
|
||||
background: $themeBgColor;
|
||||
color: #fff;
|
||||
border-radius: 40rpx;
|
||||
font-size: 24rpx;
|
||||
padding: 0 20rpx;
|
||||
}
|
||||
.list_item_bt {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
bottom: 16rpx;
|
||||
}
|
||||
.list_item_price {
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
margin-right: 30rpx;
|
||||
color: red;
|
||||
line-height: 54rpx;
|
||||
}
|
||||
.top_right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 30rpx;
|
||||
|
||||
text {
|
||||
font-size: 28rpx;
|
||||
color: #fff;
|
||||
padding-left: 2rpx;
|
||||
}
|
||||
}
|
||||
/deep/.u-upload__deletable {
|
||||
display: none !important;
|
||||
}
|
||||
/deep/.u-upload__button {
|
||||
display: none !important;
|
||||
}
|
||||
/* 状态样式 */
|
||||
.card_label {
|
||||
display: inline-block;
|
||||
padding: 0px 16rpx;
|
||||
background-color: #4caf50; /* 绿色背景 */
|
||||
color: white;
|
||||
// font-weight: bold;
|
||||
font-size: 12px;
|
||||
border-radius: 4px; /* 圆角 */
|
||||
position: relative; /* 用于斜角效果 */
|
||||
text-align: center;
|
||||
transform: skew(-20deg); /* 倾斜效果 */
|
||||
margin-right: 20rpx; /* 如果有多个标签时,之间保持间距 */
|
||||
line-height: 38rpx;
|
||||
}
|
||||
|
||||
/* 斜角效果 */
|
||||
// .card_label::after {
|
||||
// content: '';
|
||||
// position: absolute;
|
||||
// top: 0;
|
||||
// right: -10px;
|
||||
// width: 20px;
|
||||
// height: 20px;
|
||||
// background-color: inherit;
|
||||
// transform: rotate(45deg); /* 旋转45度,形成斜角 */
|
||||
// z-index: -1;
|
||||
// }
|
||||
</style>
|
||||
1712
pages/medicalRecords/evaluateDetail.vue
Normal file
@@ -11,7 +11,7 @@
|
||||
<view class="doctors_module" :style="`top: ${42 + statusBarHeight}px;`">
|
||||
<view class="cateList flexbox" style="background-color: #fff">
|
||||
<common-sticky
|
||||
itemStyle="width:25%; height: 38px;font-size:24rpx;"
|
||||
itemStyle="width:20%; height: 38px;font-size:24rpx;"
|
||||
:list="tabsList"
|
||||
label="title"
|
||||
:currentCateIndex="currentCateIndex"
|
||||
@@ -43,6 +43,7 @@
|
||||
<view class="doctors_list" id="top">
|
||||
<view
|
||||
class="doctors_item"
|
||||
:style="taihumedId == 4 ? 'padding-bottom:80rpx;' : ''"
|
||||
v-for="(item, index) in list"
|
||||
:key="index"
|
||||
@click="goToDetail(item)"
|
||||
@@ -64,12 +65,75 @@
|
||||
|
||||
<view class="item_right">
|
||||
<view style="display: flex; align-items: center">
|
||||
<text class="card_label" v-if="statusTitle" :style="`background-color:${statusColor} ;`">{{ statusTitle }}</text>
|
||||
<text
|
||||
class="card_label"
|
||||
v-if="statusTitle"
|
||||
:style="`background-color:${statusColor} ;`"
|
||||
>{{item.state==4?'质检未通过': statusTitle }}</text
|
||||
>
|
||||
<image
|
||||
v-if="currentCateIndex == 3 && item.state == 6"
|
||||
style="
|
||||
height: 60rpx;
|
||||
width: 60rpx;
|
||||
position: absolute;
|
||||
right: 16rpx;
|
||||
top: 0rpx;
|
||||
"
|
||||
src="../../static/icon/aa.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
|
||||
<image
|
||||
v-if="currentCateIndex == 3 && item.state == 5"
|
||||
style="
|
||||
height: 60rpx;
|
||||
width: 60rpx;
|
||||
position: absolute;
|
||||
right: 16rpx;
|
||||
top: 0rpx;
|
||||
"
|
||||
src="../../static/icon/bb.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image
|
||||
v-if="currentCateIndex == 4 && item.state == 4"
|
||||
style="
|
||||
height: 60rpx;
|
||||
width: 60rpx;
|
||||
position: absolute;
|
||||
right: 16rpx;
|
||||
top: 0rpx;
|
||||
"
|
||||
src="../../static/icon/cc.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<text class="item_time">{{ item.createTime }}</text></view
|
||||
>
|
||||
|
||||
<view class="item_top">
|
||||
<view class="item_name">{{ item.title }}</view>
|
||||
<view
|
||||
class="item_top"
|
||||
:style="`${currentCateIndex == 4 ? 'opacity: 0.5;' : ''}${
|
||||
currentCateIndex == 0 ? 'margin-top:0;' : ''
|
||||
}`"
|
||||
>
|
||||
<view
|
||||
class="item_name"
|
||||
:style="
|
||||
currentCateIndex != 3
|
||||
? 'width:100%;'
|
||||
: 'width:calc(100% - 100rpx);display: flex;align-items: center;'
|
||||
"
|
||||
>{{ item.title }}
|
||||
|
||||
<image
|
||||
v-if="currentCateIndex == 3 && item.state == 6"
|
||||
style="height: 50rpx; width: 50rpx; margin-left: 10rpx"
|
||||
src="../../static/icon/jing2.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
</view>
|
||||
|
||||
<rich-text
|
||||
class="item_content"
|
||||
:nodes="item.information"
|
||||
@@ -79,7 +143,10 @@
|
||||
:nodes="item.chiefComplaint"
|
||||
></rich-text> -->
|
||||
</view>
|
||||
<view style="margin-top: 20rpx" v-if="item.img">
|
||||
<view
|
||||
style="margin-top: 20rpx"
|
||||
v-if="item.img && taihumedId == 0"
|
||||
>
|
||||
<u-upload
|
||||
:fileList="item.fileList1"
|
||||
multiple
|
||||
@@ -92,11 +159,43 @@
|
||||
</u-upload>
|
||||
</view>
|
||||
|
||||
<view class="list_item_bt">
|
||||
<view
|
||||
class="list_item_bt"
|
||||
:style="
|
||||
taihumedId == 4
|
||||
? 'width: 100%;display: block;align-items: center;justify-content: space-between;right: 0;padding:0 20rpx;'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<view
|
||||
@click.stop="changeShowFlag(item)"
|
||||
v-if="taihumedId == 4"
|
||||
:style="`color: ${
|
||||
item.showFlag == 1 ? '#5188e5' : '#5e6d82'
|
||||
};display: flex;align-items: center;`"
|
||||
>
|
||||
<text style="margin-right: 10rpx"
|
||||
>是否在我的医案中展示</text
|
||||
>
|
||||
<uni-icons
|
||||
:color="item.showFlag == 1 ? '#5188e5' : '#5e6d82'"
|
||||
:type="
|
||||
item.showFlag == 0 ? 'eye-slash-filled' : 'eye-filled'
|
||||
"
|
||||
size="24"
|
||||
></uni-icons>
|
||||
</view>
|
||||
<!-- <view @click.stop="changeShowFlag(item)" v-if="taihumedId == 4" :style="`color: ${item.article_flag==1?'#5188e5':'#5e6d82'};display: flex;align-items: center;`">
|
||||
<text style="margin-right: 10rpx;">是否在我的文章中展示</text>
|
||||
<uni-icons :color="item.article_flag==1?'#5188e5':'#5e6d82'" :type="item.article_flag==0?'eye-slash-filled':'eye-filled'" size="24" ></uni-icons>
|
||||
|
||||
|
||||
</view> -->
|
||||
|
||||
<text class="list_item_study" v-if="taihumedId == 0"
|
||||
>编辑医案</text
|
||||
>
|
||||
<text class="list_item_study" v-else>医案详情</text>
|
||||
<!-- <text class="list_item_study" :class="`medicalDetailButton${item.state}`" v-else>医案详情</text> -->
|
||||
</view>
|
||||
<!-- <text class="item_con">{{ item.taihuTalent.map(talent => talent.name).join(' ') }}</text> -->
|
||||
</view>
|
||||
@@ -116,9 +215,11 @@
|
||||
|
||||
<script>
|
||||
import $http from "@/config/requestConfig.js";
|
||||
import text from "uview-ui/libs/config/props/text";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
options: null,
|
||||
tabsList: [],
|
||||
currentCateIndex: 0,
|
||||
list: [],
|
||||
@@ -128,8 +229,8 @@ export default {
|
||||
limit: 10,
|
||||
courseName: "",
|
||||
taihumedId: null,
|
||||
statusTitle: '',
|
||||
statusColor: '',
|
||||
statusTitle: "",
|
||||
statusColor: "",
|
||||
|
||||
timer: null,
|
||||
showText: false,
|
||||
@@ -194,14 +295,25 @@ export default {
|
||||
// .then(res=> {
|
||||
// if (res.list&&res.list.length>0) {
|
||||
this.tabsList = [
|
||||
{ id: 0, title: "草稿箱", statusTitle: '' },
|
||||
{ id: 1, title: "待审核",statusTitle: '待审核',color:'#f59442' },
|
||||
{ id: 3, title: "已通过",statusTitle: '已通过' ,color:'#22be98' },
|
||||
{ id: 2, title: "未通过",statusTitle: '未通过',color:"#e78084" },
|
||||
{ id: 0, title: "草稿箱", statusTitle: "" },
|
||||
{ id: 1, title: "待审核", statusTitle: "待审核", color: "#f59442" },
|
||||
{ id: 3, title: "质检中", statusTitle: "检测中", color: "#17A2B8" },
|
||||
{ id: 4, title: "已通过", statusTitle: "", color: "#22be98" },
|
||||
{ id: 2, title: "未通过", statusTitle: "审核未通过", color: "#e78084" },
|
||||
];
|
||||
this.taihumedId = this.tabsList[0].id;
|
||||
this.statusTitle = '';
|
||||
this.statusColor = '';
|
||||
if (uni.getStorageSync("medicalRecordsStatusId")) {
|
||||
const statusId = uni.getStorageSync("medicalRecordsStatusId");
|
||||
this.taihumedId = this.tabsList[statusId].id;
|
||||
this.currentCateIndex = statusId;
|
||||
this.statusTitle = this.tabsList[statusId].statusTitle;
|
||||
this.statusColor = this.tabsList[statusId].color;
|
||||
} else {
|
||||
this.taihumedId = this.tabsList[0].id;
|
||||
this.currentCateIndex = 0;
|
||||
this.statusTitle = "";
|
||||
this.statusColor = "";
|
||||
}
|
||||
|
||||
this.getListData(this.taihumedId);
|
||||
// }
|
||||
// });
|
||||
@@ -224,7 +336,8 @@ export default {
|
||||
url: "common/medicalRecords/medicalRecordsList",
|
||||
method: "POST",
|
||||
data: {
|
||||
state: taihumedId,
|
||||
state:
|
||||
taihumedId == 4 ? "5,6" : taihumedId == 2 ? "2,4" : taihumedId,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
@@ -232,7 +345,7 @@ export default {
|
||||
})
|
||||
.then((res) => {
|
||||
uni.hideLoading();
|
||||
this.list=[...res.medicalRecordsList].filter(e=>e.data)
|
||||
this.list = [...res.medicalRecordsList].filter((e) => e.data);
|
||||
this.list = [...this.list].map((e) => {
|
||||
return {
|
||||
...e,
|
||||
@@ -271,6 +384,23 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
changeShowFlag(data) {
|
||||
this.$http
|
||||
.request({
|
||||
url: "common/medicalRecords/saveMedicalRecords",
|
||||
method: "POST",
|
||||
data: {
|
||||
...data,
|
||||
showFlag: data.showFlag == 0 ? 1 : 0,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
this.getListData(this.taihumedId);
|
||||
});
|
||||
},
|
||||
//加载更多
|
||||
loadMore() {
|
||||
this.getListData(this.taihumedId);
|
||||
@@ -309,13 +439,17 @@ export default {
|
||||
navTitle = "医案详情";
|
||||
type = "detail";
|
||||
break;
|
||||
case 4:
|
||||
navTitle = "医案详情";
|
||||
type = "detail";
|
||||
break;
|
||||
case 2:
|
||||
navTitle = "医案详情";
|
||||
type = "detail";
|
||||
break;
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: `/pages/medicalRecords/medical?navTitle=${navTitle}&title=${navTitle}&id=${item.id}&type=${type}&statusId=${this.taihumedId}`,
|
||||
url: `/pages/medicalRecords/medical?navTitle=${navTitle}&title=${navTitle}&id=${item.id}&type=${type}&statusId=${item.state}`,
|
||||
});
|
||||
},
|
||||
},
|
||||
@@ -336,7 +470,7 @@ export default {
|
||||
// border: 1rpx solid $themeColor;
|
||||
border-radius: 15rpx;
|
||||
margin-bottom: 20rpx;
|
||||
padding: 12rpx 30rpx 60rpx;
|
||||
padding: 12rpx 30rpx 50rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
@@ -528,4 +662,22 @@ export default {
|
||||
// transform: rotate(45deg); /* 旋转45度,形成斜角 */
|
||||
// z-index: -1;
|
||||
// }
|
||||
|
||||
.medicalDetailButton2,
|
||||
.medicalDetailButton4 {
|
||||
background: #f2f1f6 !important;
|
||||
color: #635c5c;
|
||||
}
|
||||
.medicalDetailButton5,
|
||||
.medicalDetailButton6 {
|
||||
background: rgb(34, 190, 152) !important;
|
||||
}
|
||||
.medicalDetailButton1 {
|
||||
background: #fff4e0 !important;
|
||||
color: rgb(245, 148, 66);
|
||||
}
|
||||
.medicalDetailButton3 {
|
||||
background: #82ddeb70 !important;
|
||||
color: rgb(23, 162, 184);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -54,16 +54,13 @@
|
||||
<!-- 固定的输入框部分 -->
|
||||
<view style="height: calc(100% - 120rpx)">
|
||||
<textarea
|
||||
|
||||
v-model="formData.message"
|
||||
maxlength="-1"
|
||||
style="
|
||||
|
||||
width: 100%;
|
||||
min-height: calc(85vh - 100px) !important;
|
||||
height: calc(85vh - 100px) !important;
|
||||
max-height: calc(85vh - 100px) !important;
|
||||
|
||||
"
|
||||
auto-height
|
||||
placeholder="请输入医案到此处,将自动解析医案信息
|
||||
@@ -104,7 +101,12 @@
|
||||
class="message_wrap"
|
||||
:class="`${options.type == 'detail' ? 'message_wrap_detail' : ''}`"
|
||||
:style="`top: 1px;height:${
|
||||
options.statusId == 1 || options.statusId == 3 ? '92vh' : '85vh'
|
||||
options.statusId == 1 ||
|
||||
options.statusId == 5 ||
|
||||
options.statusId == 6 ||
|
||||
options.statusId == 4
|
||||
? '92vh'
|
||||
: '85vh'
|
||||
}`"
|
||||
v-if="showMessages"
|
||||
>
|
||||
@@ -286,36 +288,35 @@ export default {
|
||||
// this.clickRecord(this.pageData, index);
|
||||
// }
|
||||
},
|
||||
async onPullDownRefresh() {
|
||||
async onPullDownRefresh() {
|
||||
this.isRefreshing = true;
|
||||
console.log("下拉刷新");
|
||||
|
||||
setTimeout(async() => {
|
||||
if (this.options.type == "add") {
|
||||
this.showMessages = false;
|
||||
this.loading = true;
|
||||
} else {
|
||||
this.showMessages = true;
|
||||
this.loading = true;
|
||||
await this.getMedicalDetail(() => {
|
||||
this.medicalForm = { ...this.medicalRecords };
|
||||
console.log("this.medicalForm at line 193:", this.medicalForm);
|
||||
if (this.medicalRecords.img) {
|
||||
this.$refs.commonMedicalDetail.fileList1 = this.medicalRecords.img
|
||||
.split(",")
|
||||
.map((image, i) => ({
|
||||
uid: i, // 假设 id 是唯一标识符
|
||||
name: i, // 文件名
|
||||
status: "done", // 状态
|
||||
url: image, // 文件 URL
|
||||
}));
|
||||
}
|
||||
});
|
||||
setTimeout(async () => {
|
||||
if (this.options.type == "add") {
|
||||
this.showMessages = false;
|
||||
this.loading = true;
|
||||
} else {
|
||||
this.showMessages = true;
|
||||
this.loading = true;
|
||||
await this.getMedicalDetail(() => {
|
||||
this.medicalForm = { ...this.medicalRecords };
|
||||
console.log("this.medicalForm at line 193:", this.medicalForm);
|
||||
if (this.medicalRecords.img) {
|
||||
this.$refs.commonMedicalDetail.fileList1 = this.medicalRecords.img
|
||||
.split(",")
|
||||
.map((image, i) => ({
|
||||
uid: i, // 假设 id 是唯一标识符
|
||||
name: i, // 文件名
|
||||
status: "done", // 状态
|
||||
url: image, // 文件 URL
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
||||
// this.tishi=true
|
||||
}
|
||||
// this.tishi=true
|
||||
}
|
||||
|
||||
|
||||
uni.stopPullDownRefresh();
|
||||
this.isRefreshing = false;
|
||||
console.log("下拉刷新已停止");
|
||||
@@ -383,48 +384,41 @@ export default {
|
||||
}
|
||||
}
|
||||
if (
|
||||
|
||||
["妇科", "儿科"].includes(this.medicalForm.labelTitle)&&isNewSave!=1
|
||||
) {
|
||||
if (
|
||||
|
||||
this.medicalForm.labelTitle == "妇科"
|
||||
) {
|
||||
const value = this.editableMap["personalAndFamilyHistory"] || "";
|
||||
const hasKeywords =
|
||||
value.includes("月经") || value.includes("婚育");
|
||||
["妇科", "儿科"].includes(this.medicalForm.labelTitle) &&
|
||||
isNewSave != 1
|
||||
) {
|
||||
if (this.medicalForm.labelTitle == "妇科") {
|
||||
const value = this.editableMap["personalAndFamilyHistory"] || "";
|
||||
const hasKeywords = value.includes("月经") || value.includes("婚育");
|
||||
|
||||
if (!hasKeywords) {
|
||||
// 包含“月经”或“婚育”
|
||||
console.log("包含月经或婚育相关内容");
|
||||
const titleHtml = this.getTitleHtml(
|
||||
this.record["personalAndFamilyHistory"]
|
||||
).replace(/<[^>]*>/g, "");
|
||||
this.$commonJS.showToast(
|
||||
"请在 " + titleHtml + " 中输入月经或婚育相关内容"
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (
|
||||
|
||||
this.medicalForm.labelTitle == "儿科"
|
||||
) {
|
||||
const value = this.editableMap["pastHistory"] || "";
|
||||
const hasKeywords = value.includes("疫苗");
|
||||
if (!hasKeywords) {
|
||||
// 包含“月经”或“婚育”
|
||||
console.log("疫苗");
|
||||
const titleHtml = this.getTitleHtml(
|
||||
this.record["pastHistory"]
|
||||
).replace(/<[^>]*>/g, "");
|
||||
this.$commonJS.showToast(
|
||||
"请在 " + titleHtml + " 中输入疫苗接种相关内容"
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!hasKeywords) {
|
||||
// 包含“月经”或“婚育”
|
||||
console.log("包含月经或婚育相关内容");
|
||||
const titleHtml = this.getTitleHtml(
|
||||
this.record["personalAndFamilyHistory"]
|
||||
).replace(/<[^>]*>/g, "");
|
||||
this.$commonJS.showToast(
|
||||
"请在 " + titleHtml + " 中输入月经或婚育相关内容"
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (this.medicalForm.labelTitle == "儿科") {
|
||||
const value = this.editableMap["pastHistory"] || "";
|
||||
const hasKeywords = value.includes("疫苗");
|
||||
if (!hasKeywords) {
|
||||
// 包含“月经”或“婚育”
|
||||
console.log("疫苗");
|
||||
const titleHtml = this.getTitleHtml(
|
||||
this.record["pastHistory"]
|
||||
).replace(/<[^>]*>/g, "");
|
||||
this.$commonJS.showToast(
|
||||
"请在 " + titleHtml + " 中输入疫苗接种相关内容"
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
var recordData = { ...this.record };
|
||||
for (const key in recordData) {
|
||||
const titleHtml = this.getTitleHtml(recordData[key]);
|
||||
@@ -465,6 +459,11 @@ export default {
|
||||
url: `/pages/medicalRecords/medical?navTitle=编辑医案&title=编辑医案&id=${this.medicalId}&type=edit&statusId=0`,
|
||||
});
|
||||
} else {
|
||||
if (type == "submit") {
|
||||
uni.setStorageSync("medicalRecordsStatusId", 1);
|
||||
} else {
|
||||
uni.removeStorageSync("medicalRecordsStatusId");
|
||||
}
|
||||
uni.redirectTo({
|
||||
url: "/pages/medicalRecords/index",
|
||||
});
|
||||
@@ -479,26 +478,26 @@ export default {
|
||||
// 判断内容是否为空或无效
|
||||
|
||||
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");
|
||||
@@ -753,7 +752,7 @@ export default {
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log('res at line 713:', res)
|
||||
console.log("res at line 713:", res);
|
||||
if (res.code == 0) {
|
||||
this.medicalId = res.data;
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
1601
pages/my/index.vue
BIN
static/icon/a.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
static/icon/a_.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
static/icon/aa.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
static/icon/b.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
static/icon/b_.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
BIN
static/icon/bb.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
static/icon/c.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
static/icon/c_.png
Normal file
|
After Width: | Height: | Size: 304 KiB |
BIN
static/icon/cc.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
static/icon/jiancezhong.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
static/icon/jing2.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
static/icon/jingpin.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
static/icon/jingpinganli.png
Normal file
|
After Width: | Height: | Size: 12 KiB |