Commit 6a9a007a authored by liang's avatar liang

随访审核质控

parent 1495b22e
...@@ -47,7 +47,7 @@ export function getFollowUnCheckDetail(id) { ...@@ -47,7 +47,7 @@ export function getFollowUnCheckDetail(id) {
//随访病例审核 //随访病例审核
export function putFollowCheck(data = {}) { export function putFollowCheck(data = {}) {
return request({ return request({
url: "/disease-data/dataCheck/follow/check", url: "/disease-data/dataCheck/follow/uncheck",
method: "put", method: "put",
data, data,
}) })
......
...@@ -76,7 +76,8 @@ export default { ...@@ -76,7 +76,8 @@ export default {
}, },
methods: { methods: {
handleUnionName(v) { handleUnionName(v) {
return this.unionLists.filter((e) => e.id == v)[0].unionName const union = this.unionList.find((e) => e.id == v) || {}
return union.unionName || ""
}, },
}, },
filters: { filters: {
......
...@@ -227,8 +227,11 @@ export default { ...@@ -227,8 +227,11 @@ export default {
this.$router.push({ this.$router.push({
path: "/followaudit", path: "/followaudit",
query: { query: {
id: data["id"],
unionId: data["unionId"], unionId: data["unionId"],
unionName: data["unionName"], unionName: data["unionName"],
patientId: data.patientId,
checkStatus: data["checkStatus"],
}, },
}) })
} else { } else {
......
<template> <template>
<div> <div>
<el-dialog center :visible.sync="dialogVisible" width="40%" show-close @closed="cancelSubmit"> <el-dialog
center
:visible.sync="dialogVisible"
width="40%"
show-close
@closed="cancelSubmit"
>
<slot name="content"></slot> <slot name="content"></slot>
<slot name="footer"></slot> <slot name="footer"></slot>
</el-dialog> </el-dialog>
...@@ -24,4 +30,9 @@ export default { ...@@ -24,4 +30,9 @@ export default {
}, },
} }
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
::v-deep .el-dialog__body {
border-top: none;
text-align: center;
}
</style>
...@@ -4,22 +4,23 @@ ...@@ -4,22 +4,23 @@
<div class="audit-detail_header p-24"> <div class="audit-detail_header p-24">
<div class="left"> <div class="left">
<span>当前审核</span> <span>当前审核</span>
<span class="f-b" <span class="f-b">{{ $route.query.unionName }}</span>
>{{ medicalCombination }}】【剩余{{ mcCount }}</span <span v-if="!editStatus" class="f-b"
>【【剩余{{ auditNum || 0 }}</span
> >
</div> </div>
<div class="right"> <div class="right">
<el-button class="btn" @click="$router.go(-1)">返回</el-button> <el-button class="btn" @click="$router.go(-1)">返回</el-button>
</div> </div>
</div> </div>
<el-empty v-if="isEmpty"></el-empty>
<template v-if="!isEmpty">
<div class="table-content p-24"> <div class="table-content p-24">
<follow-review <FollowReview :currentRow="currentRow" titlePosition="left">
:form-data-list="followNum" </FollowReview>
:tab-active="tabActive"
></follow-review>
</div> </div>
<div class="choose-handle p-24"> <div class="choose-handle p-24">
<span v-if="!editStatus">请选择审核结果:</span>
<div class="btn_group"> <div class="btn_group">
<el-button <el-button
v-for="(item, index) in btnGroup" v-for="(item, index) in btnGroup"
...@@ -30,33 +31,53 @@ ...@@ -30,33 +31,53 @@
@click="showDialog(item.value)" @click="showDialog(item.value)"
>{{ item.text }}</el-button >{{ item.text }}</el-button
> >
<span v-if="editStatus" class="op">驳回修改建议:胃镜图片不合规</span> <span v-if="editStatus" class="op"
>{{
checkStatus == "2"
? "驳回修改建议 : "
: checkStatus == "4"
? "不合格原因 : "
: ""
}}
{{ checkStatus == "3" ? "" : checkNote }}</span
>
</div> </div>
</div> </div>
<public-dialog ref="editDialog" @onCancel="onCancel"> </template>
<!-- 编辑提交前弹窗 -->
<public-dialog ref="editDialog" @onSubmit="onSubmit" @onCancel="onCancel">
<!-- 修改审核结果 优先触发提示 --> <!-- 修改审核结果 优先触发提示 -->
<template v-if="!confirmStatus" slot="content"> <template v-if="!confirmStatus" slot="content">
<div class="title">温馨提示</div> <div class="title">温馨提示</div>
<div class="content"> <div class="content">
<div class="showTips"> <div class="showTips">
该病例已经审核【驳回修改】,需要改为{{ 该病例已经审核【{{
checkStatus == 2
? "驳回修改"
: checkStatus == 3
? "合格"
: checkStatus == 4
? "不合格"
: ""
}}】,需要改为{{
btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : "" btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : ""
}} }}
</div> </div>
</div> </div>
<div class="btn"> <div class="btn">
<el-button type="primary" :loading="loading" @click="onCancel" <el-button type="primary" @click="onCancel"></el-button>
></el-button <el-button type="primary" @click="editSubmit"></el-button>
>
<el-button type="primary" :loading="loading" @click="editSubmit"
></el-button
>
</div> </div>
</template> </template>
</public-dialog> </public-dialog>
<public-dialog ref="publicDialog" @onCancel="onCancel"> <public-dialog
ref="publicDialog"
:show-close="showClose"
@onSubmit="onSubmit"
@onCancel="onCancel"
>
<!-- 审核结果回显 --> <!-- 审核结果回显 -->
<template v-if="!confirmStatus" slot="content"> <template v-if="!confirmStatus && !editLabelFlag" slot="content">
<div class="title"> <div class="title">
{{ btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : "" }} {{ btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : "" }}
</div> </div>
...@@ -72,7 +93,7 @@ ...@@ -72,7 +93,7 @@
> >
<el-form-item <el-form-item
:label="curBtn == 2 ? '不合格原因' : '驳回修改建议'" :label="curBtn == 2 ? '不合格原因' : '驳回修改建议'"
prop="reson" prop="reason"
> >
<el-input <el-input
v-model="form.reason" v-model="form.reason"
...@@ -83,28 +104,103 @@ ...@@ -83,28 +104,103 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 标签 --> <!-- 标签部分 -->
<div v-loading="tagLoading" class="tag-form"> <div class="labelPlace">
<el-tag <div class="labelList">
v-for="(item, index) in tagList" <template v-for="(item, index) in reasonList">
<div
v-if="item.note ? item.note.length <= 8 : false"
:key="index" :key="index"
size="medium" :class="[
:class="item.isSelect ? '' : 'unselect-tag'" 'listItem',
@click="seleckTag(item, index)" selectedReason.includes(item.note) ? 'active' : '',
]"
@click="setReason(item)"
> >
<span>{{ item.note }}</span> <!-- selectedReason.includes(item) ? 'active' : '', -->
</el-tag> {{ item.note }}
<p class="handle-row" @click="showNote = true">编辑标签</p> </div>
<template v-if="item.note ? item.note.length > 8 : false">
<el-tooltip
:key="index"
class="item"
effect="dark"
:content="item.note"
placement="top"
>
<div
:class="[
'listItem',
selectedReason.includes(item.note) ? 'active' : '',
]"
@click="setReason(item)"
>
<!-- selectedReason.includes(item) ? 'active' : '', -->
{{ item.note }}
</div>
</el-tooltip>
</template>
</template>
</div>
<div class="labelEdit">
<span @click="editLabel">编辑标签</span>
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="btn"> <div class="btn">
<el-button type="primary" :loading="loading" @click="onSubmit" <el-button type="primary" :loading="loading" @click="onSubmit">{{
>确 定</el-button editStatus
? curBtn == 1
? "好的"
: "提交"
: "确认并进入下一例审核"
}}</el-button>
</div>
</template>
<!-- 标签的弹窗 -->
<template v-if="!confirmStatus && editLabelFlag" slot="content">
<div class="left-back" @click="editLabelFlag = false">
<i class="el-icon-back"></i>
</div>
<div class="title">编辑标签</div>
<div class="content">
<ul class="edit_reasonList">
<li v-for="(item, index) in reasonList" :key="index">
<el-input
v-model="item.note"
style="width: 86%"
placeholder="请输入标签内容"
clearable
>
</el-input>
<el-button
type="text"
style="color: red"
:disabled="reasonList.length == 1 && item.note == ''"
@click="deleteLabel(index)"
>删除</el-button
>
<el-button
v-show="index == reasonList.length - 1"
type="text"
@click="addLabel"
>新增</el-button
>
</li>
</ul>
</div>
<div class="btn">
<el-button
type="primary"
:loading="loading"
style="padding: 0 30px"
@click="saveLabel"
>保存</el-button
> >
</div> </div>
</template> </template>
<!-- 提交后结果 --> <!-- 提交后合格结果 -->
<template v-if="confirmStatus" slot="content"> <template v-if="confirmStatus" slot="content">
<div class="title">{{ btnGroup[curBtn - 1].text }}</div> <div class="title">{{ btnGroup[curBtn - 1].text }}</div>
<div class="content"> <div class="content">
...@@ -114,23 +210,20 @@ ...@@ -114,23 +210,20 @@
<div class="label"> <div class="label">
{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }} {{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}
</div> </div>
<div class="reson">{{ form.reson }}</div> <div class="reason">{{ form.reason }}</div>
</div> </div>
</div> </div>
<div v-if="curBtn != 1" class="showTips"> <div v-if="curBtn != 1" class="showTips">
该病例审核{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}提交成功! 该病例审核{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}提交成功!
</div> </div>
<div class="btn"> <div class="btn">
<el-button <el-button type="primary" :loading="loading" @click="nextExample">{{
type="primary" editStatus
:loading="auditLoading" ? curBtn == 1
@click="nextExample" ? "好的"
> : "提交"
<span v-if="tabActive < formEdit.length - 1" : "确认并进入下一例审核"
>确认并进入下一列审核</span }}</el-button>
>
<span v-else>确 定</span>
</el-button>
</div> </div>
</template> </template>
</public-dialog> </public-dialog>
...@@ -138,240 +231,310 @@ ...@@ -138,240 +231,310 @@
</template> </template>
<script> <script>
import publicDialog from "./components/publicDialog.vue" import publicDialog from "./components/publicDialog.vue"
import followReview from "./components/followReview.vue" import FollowReview from "../followupquery/components/FollowReview.vue"
import { getFollowUnCheckDetail, putFollowCheck } from "@/api/followup" import {
import { getSysCheckNote, postSysCheckNote } from "@/api/note" getFollowUnCheckDetail,
putFollowCheck,
putFollowCheckAdvice,
} from "@/api/followup"
import { saveSysCheckNote, getSysCheckNote } from "@/api/screeningAudit"
export default { export default {
components: { publicDialog, followReview }, components: { publicDialog, FollowReview },
data() { data() {
return { return {
medicalCombination: "无锡市人民医院医联体", isEmpty: false,
mcCount: 7, currentRow: {},
checkStatus: null,
editLabelFlag: false,
auditNum: 0,
editStatus: false, //进入的状态是第一次审核还是修改审核,false为第一次,true为修改 editStatus: false, //进入的状态是第一次审核还是修改审核,false为第一次,true为修改
followNum: [ form: {
//随访次数数据 reason: "",
{ followId: 123, formRecordId: 123 }, },
{ followId: 123, formRecordId: 123 }, patientId: "", // 当前人的patientId
{ followId: 123, formRecordId: 123 }, checkNote: "",
{ followId: 123, formRecordId: 123 }, checkStatus: "", // 传入的checkstatus
], //第几次随访数据 curUnion: "", // 当前医联体
formEdit: { id: "",
name: "djksh",
contact_phone: "12345678",
is_accept: "0",
gas_exam: "15",
G_17: "5",
}, //填报数据
form: {},
rules: { rules: {
reason: [{ required: true, message: "请填写", trigger: "blur" }], reason: [{ required: true, message: "请填写", trigger: "blur" }],
}, },
reasonList: [],
selectedReason: [],
btnGroup: [ btnGroup: [
{ {
text: "合格", text: "合格",
value: 3, value: 1,
}, },
{ {
text: "不合格", text: "不合格",
value: 4, value: 2,
}, },
{ {
text: "驳回修改", text: "驳回修改",
value: 2, value: 3,
}, },
], ],
loading: false, loading: false,
curBtn: 0, //点击的按钮 curBtn: 0,
curComponent: "followReview", curComponent: "screenReview",
confirmStatus: false, confirmStatus: false,
tagList: [
// {
// note: "不合格原因",
// isSelect: false,
// },
// {
// note: "不合格原因不合格原因",
// },
// {
// note: "不合格原因",
// },
// {
// note: "不合格原因",
// },
// {
// note: "不合格原因",
// },
],
newNote: "",
minHeight: "170px",
showNote: false,
} }
}, },
computed: { computed: {
unionId() { unionId() {
return this.$route.query.id return this.$route.query.unionId
}, },
showClose() {
return this.curBtn == 1 ? false : true
}, },
watch: {
// tagList(){
// this.$nextTick(() => {
// this.minHeight = this.$refs.publicContent.offsetHeight + "px"
// })
// }
}, },
created() { created() {
// this.getDetail() this.init()
}, },
methods: { methods: {
showDialog(val, index) { async getFollowUnCheckDetail() {
console.log("显示框", val) this.loading = true
let res = await getFollowUnCheckDetail(this.unionId)
const { now, nums } = res.data
this.auditNum = nums
this.currentRow = { ...now, followBatch: 1 }
this.loading = false
this.isEmpty = !nums
},
init() {
const { patientId, checkStatus, checkNote, id } = this.$route.query
this.editStatus = Boolean(patientId)
if (patientId) {
this.currentRow = {
id,
patientId: patientId,
followBatch: 1,
}
this.checkStatus = checkStatus
this.checkNote = checkNote
} else {
this.getFollowUnCheckDetail()
}
},
this.curBtn = index + 1 // 获取标签
if (!this.editStatus) { getSysCheckNote() {
getSysCheckNote().then((res) => {
if (res.code == 1) {
let { data } = res
if (data && data.length > 0) {
this.reasonList = data
} else {
this.reasonList = [{ note: "" }]
}
}
})
},
// 编辑标签
editLabel() {
this.editLabelFlag = true
},
// 提交接口
putFollowCheck(checkStatus, func) {
const { id, patientId } = this.currentRow
let params = {
id,
checkStatus: checkStatus,
checkNote: this.form.reason,
patientId,
}
putFollowCheck(params)
.then((res) => {
if (res.code == 1 && res.data) {
func()
} else {
this.loading = false
}
})
.catch(() => {
this.loading = false
})
},
//! 修改审核结果
putFollowCheckAdvice(checkStatus, func) {
const { id, patientId } = this.currentRow
let params = {
id,
checkStatus: checkStatus,
checkNote: this.form.reason,
patientId,
}
putFollowCheckAdvice(params)
.then((res) => {
if (res.code == 1 && res.data) {
this.loading = false
this.checkStatus = checkStatus
this.checkNote = this.form.reason
func()
} else {
this.loading = false
this.$refs.publicDialog.dialogVisible = false
}
})
.catch(() => {
this.loading = false
})
},
// 设置理由
setReason({ note }) {
if (this.selectedReason.includes(note)) {
this.selectedReason = this.selectedReason.filter((e) => e != note)
} else {
this.selectedReason.push(note)
}
this.form.reason = this.selectedReason.join("")
},
//! 合格提交 checkStatus 合格-3 不合格-4 驳回修改-2 待审核-1
showDialog(val) {
this.curBtn = val
if (this.editStatus) {
//! 精准编辑
this.$refs.editDialog.dialogVisible = true
} else {
//! 医联体的审核
if (val == 1) {
this.$confirm("确定要提交审核吗?", "警告", {
type: "warning",
})
.then(() => {
if (this.curBtn == 1) { if (this.curBtn == 1) {
// 走接口,保存合格 // 走接口,保存合格
this.putFollowCheck("3", () => {
this.confirmStatus = true this.confirmStatus = true
} else if (this.curBtn == 2) { })
this.rules.reason[0].message = "请输入不合格原因" }
//获取审核标签 })
.catch(() => {})
} else {
this.getSysCheckNote() this.getSysCheckNote()
if (this.curBtn == 2) {
this.rules.reason[0].message = "请输入不合格原因"
} else { } else {
d
this.rules.reason[0].message = "请输入驳回修改建议" this.rules.reason[0].message = "请输入驳回修改建议"
} }
this.$refs.publicDialog.dialogVisible = true this.$refs.publicDialog.dialogVisible = true
}
}
},
// 不合格提交
onSubmit() {
this.loading = true
// 切换文本
if (this.curBtn != 1) {
this.$refs.form.validate((valid) => {
if (valid) {
let status = this.curBtn == 2 ? "4" : this.curBtn == 3 ? "2" : ""
if (this.editStatus) {
this.putFollowCheckAdvice(status, () => {
this.$message.success("提交审核成功")
this.onCancel()
})
} else { } else {
this.$refs.editDialog.dialogVisible = true this.putFollowCheck(status, () => {
this.$message.success("提交审核成功")
this.nextExample()
})
} }
} else {
this.loading = false
return false
}
})
}
// this.$refs.publicDialog.dialogVisible = true
}, },
onCancel() { onCancel() {
this.confirmStatus = false this.confirmStatus = false
this.editLabelFlag = false
this.selectedReason = []
if (this.curBtn != 1) { if (this.curBtn != 1) {
this.form = {} this.form = { reason: "" }
} }
this.$refs.editDialog.dialogVisible = false this.$refs.editDialog.dialogVisible = false
this.$refs.publicDialog.dialogVisible = false this.$refs.publicDialog.dialogVisible = false
// this.$refs.noteDialog.dialogVisible = false
if (this.$refs.form) { if (this.$refs.form) {
this.$refs.form.clearValidate() this.$refs.form.clearValidate()
} }
}, },
// 修改提交
editSubmit() { editSubmit() {
// this.$refs.editDialog.dialogVisible = false // this.$refs.editDialog.dialogVisible = false
if (this.curBtn == 1) { if (this.curBtn == 1) {
// 走接口,保存合格 // 走接口,保存合格
if (this.editStatus) {
// 走接口,保存合格
this.putFollowCheckAdvice("3", () => {
this.confirmStatus = true this.confirmStatus = true
} else if (this.curBtn == 2) { this.$refs.publicDialog.dialogVisible = true
this.selectedReason = []
})
}
} else {
this.getSysCheckNote()
if (this.curBtn == 2) {
this.rules.reason[0].message = "请输入不合格原因" this.rules.reason[0].message = "请输入不合格原因"
} else { } else {
this.rules.reason[0].message = "请输入驳回修改建议" this.rules.reason[0].message = "请输入驳回修改建议"
} }
this.$refs.publicDialog.dialogVisible = true this.$refs.publicDialog.dialogVisible = true
}
}, },
nextExample() { nextExample() {
if (Number(this.tabActive) < this.formEdit.length - 1) { if (this.editStatus) {
this.tabActive = String(Number(this.tabActive) + 1) this.loading = false
}
console.log("tab激活", this.tabActive)
this.onCancel() this.onCancel()
}, } else {
async getDetail() { this.onCancel()
this.loading = true this.getFollowUnCheckDetail()
let res = await getFollowUnCheckDetail(this.unionId)
if (res.code == 1) {
this.formEdit = res.data[0]
} }
this.loading = false
}, },
//审核 deleteLabel(i) {
async handleCheck() { this.$confirm("确定要删除该标签吗?", "警告", {
this.auditLoading = true type: "warning",
let params = { })
id: this.formEdit[this.tabActive], .then(() => {
checkStatus: this.btnGroup[this.curBtn].value, this.reasonList = this.reasonList.filter((e, index) => index != i)
checkNote: this.form.reason, if (this.reasonList.length == 0) {
patientId: this.unionId, this.reasonList = [
} {
console.log("审核值", params) note: "",
// let res = await putFollowCheck(params)
// if(res.code==1){
// // this.formEdit=res.data //调试注释
// }
this.auditLoading = false
}, },
// 获取审核标签 ]
async getSysCheckNote() {
this.tagLoading = true
let res = await getSysCheckNote()
if (res.code == 1) {
this.tagList = res.data
} }
this.tagLoading = false })
.catch(() => {})
}, },
//选择标签 // 增加标签
seleckTag(item, index) { addLabel() {
this.tagList[index]["isSelect"] = true this.reasonList.push({
this.form.reason = this.form.reason + item.note + "" note: "",
this.$forceUpdate() })
}, },
//标签保存 // 保存标签
async saveTag() { saveLabel() {
let params = this.tagList.map((e) => e.note) let arr = this.reasonList.map((e) => e.note)
let res = await postSysCheckNote(params) saveSysCheckNote(arr).then((res) => {
if (res.code == 1) { if (res.code == 1) {
this.$message.success("保存标签成功") this.$message.success("保存标签成功")
this.getSysCheckNote() this.getSysCheckNote()
// this.$refs.noteDialog.dialogVisible = false this.editLabelFlag = false
} }
},
//标签添加
addTag() {
this.tagList.push({
note: "",
}) })
this.$forceUpdate()
}, },
//标签删除
delTag(item, index) {
this.$confirm("确定要删除该标签吗?", "警告", {
type: "warning",
})
.then(() => {
this.tagList = this.tagList.filter((e, i) => i != index)
})
.catch(() => {})
},
//标签对话框关闭
handleNoteDialog(i) {
this.showNote = false
this.getSysCheckNote()
},
// //标签保存对话框操作
// noteSave(){
// this.$refs.noteDialog.dialogVisible = false
// this.getSysCheckNote()
// },
// //添加、编辑标签
// async handleTag(item){
// if(!item.note) return
// else{
// let params = {
// note:item.note
// }
// item.id ? params['id']=item.id : ''
// let res = item.id ? await putSysCheckNote(params) : await postSysCheckNote(params)
// }
// }
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-dialog__body { .tips {
border-top: none;
text-align: center;
.tips {
font-size: 16px; font-size: 16px;
}
} }
.p-24 { .p-24 {
padding: 0 24px; padding: 0 24px;
...@@ -382,6 +545,8 @@ export default { ...@@ -382,6 +545,8 @@ export default {
} }
#audit-detail { #audit-detail {
display: flex;
flex-direction: column;
// padding: 22px 24px; // padding: 22px 24px;
.audit-detail_header { .audit-detail_header {
height: 65px; height: 65px;
...@@ -390,11 +555,13 @@ export default { ...@@ -390,11 +555,13 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.right { .right {
display: flex;
align-items: center;
.btn { .btn {
margin-top: 0px;
width: 80px; width: 80px;
height: 32px; height: 32px;
border-radius: 4px; border-radius: 4px;
margin-top: 0px;
} }
} }
} }
...@@ -405,7 +572,7 @@ export default { ...@@ -405,7 +572,7 @@ export default {
font-size: 14px; font-size: 14px;
font-family: AlibabaPuHuiTiM; font-family: AlibabaPuHuiTiM;
color: #333333; color: #333333;
box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1); // box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
border-top: 1px solid rgba(0, 0, 0, 0.1); border-top: 1px solid rgba(0, 0, 0, 0.1);
display: flex; display: flex;
.btn_group { .btn_group {
...@@ -425,7 +592,7 @@ export default { ...@@ -425,7 +592,7 @@ export default {
line-height: 26px; line-height: 26px;
} }
.content { .content {
margin: 28px 23px; margin: 58px;
.pass { .pass {
font-size: 18px; font-size: 18px;
font-family: AlibabaPuHuiTiM; font-family: AlibabaPuHuiTiM;
...@@ -436,7 +603,8 @@ export default { ...@@ -436,7 +603,8 @@ export default {
.btn { .btn {
margin-top: 20px; margin-top: 20px;
.el-button { .el-button {
// width: 100px; min-width: 100px;
border-radius: 5px;
height: 32px; height: 32px;
} }
} }
...@@ -457,59 +625,75 @@ export default { ...@@ -457,59 +625,75 @@ export default {
margin-left: 20px; margin-left: 20px;
} }
.table-content { .table-content {
// height: calc(100vh - 260px);
// overflow: auto;
padding-top: 20px; padding-top: 20px;
padding-bottom: 20px; padding-bottom: 20px;
} }
.tag-form { .empty {
text-align: initial; width: 100%;
height: 15px;
::v-deep { background: #f6f8f9;
.el-tag { }
margin: 0px 12px 12px 0px; .left-back {
position: absolute;
padding: 7px 5px;
top: 10px;
font-size: 20px;
text-align: left;
cursor: pointer; cursor: pointer;
border-color: #4e68ff; }
span { .labelPlace {
display: inline-block; .labelList {
} display: flex;
} flex-wrap: wrap;
.unselect-tag { .listItem {
cursor: pointer;
max-width: 200px;
white-space: nowrap;
display: block;
overflow: hidden;
text-overflow: ellipsis;
padding: 8px 12px;
border: 1px solid rgba(78, 104, 255, 0.06);
background: rgba(78, 104, 255, 0.06);
border-radius: 2px;
margin: 0 12px 12px 0;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
color: #353a45; color: #353a45;
border-color: #edf0ff; user-select: none;
}
} }
.handle-row { .active {
background: rgba(78, 104, 255, 0.1);
color: #4e68ff; color: #4e68ff;
text-decoration: underline;
text-align: right;
cursor: pointer;
}
}
.note-dialog {
::v-deep {
.tag-input {
.el-input__inner {
background-color: rgba(78, 104, 255, 0.06);
border-radius: 2px; border-radius: 2px;
border: 1px solid #4e68ff;
} }
} }
.handle-text { .labelEdit {
line-height: 36px; font-size: 14px;
text-align: right;
span {
cursor: pointer; cursor: pointer;
} }
user-select: none;
font-family: PingFangSC-Medium, PingFang SC;
color: rgba(78, 120, 255);
text-decoration: underline;
&:active {
color: rgba(78, 50, 255);
}
} }
} }
.left-back { .edit_reasonList {
position: absolute; li {
padding: 7px 5px; display: flex;
top: 10px; margin-bottom: 16px;
font-size: 22px; .el-button {
text-align: left; margin-left: 12px;
cursor: pointer; font-size: 14px;
} }
::v-deep {
.el-dialog__headerbtn {
font-weight: bold;
font-size: 22px;
} }
} }
</style> </style>
...@@ -4,12 +4,12 @@ ...@@ -4,12 +4,12 @@
<el-header v-if="titlePosition === 'top'"> <el-header v-if="titlePosition === 'top'">
<div class="follow-tab-top"> <div class="follow-tab-top">
<el-tabs v-model="activeTab" type="card"> <el-tabs v-model="activeTab" type="card">
<el-tab-pane label="筛查" name="999"></el-tab-pane> <el-tab-pane label="筛查" name="0"></el-tab-pane>
<el-tab-pane <el-tab-pane
v-for="(item, index) in followList" v-for="(item, index) in followList"
:key="index" :key="index"
:label="'第' + Number(index + 1) + '次随访数据'" :label="'第' + Number(index + 1) + '次随访数据'"
:name="String(index)" :name="String(index + 1)"
></el-tab-pane> ></el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<slot name="button"></slot> <slot name="button"></slot>
</div> </div>
</el-header> </el-header>
<el-container v-loading="fromLoading"> <el-container>
<el-aside width="auto" v-if="titlePosition === 'left'"> <el-aside width="auto" v-if="titlePosition === 'left'">
<div class="follow-tab"> <div class="follow-tab">
<el-tabs <el-tabs
...@@ -25,27 +25,36 @@ ...@@ -25,27 +25,36 @@
tab-position="right" tab-position="right"
style="height: 200px" style="height: 200px"
> >
<el-tab-pane label="筛查病例数据" name="999"></el-tab-pane> <el-tab-pane label="筛查病例数据" name="0">
<template slot="label">
<div class="tab-label">筛查病例数据</div></template
>
</el-tab-pane>
<el-tab-pane <el-tab-pane
v-for="(item, index) in followList" v-for="(item, index) in followList"
:key="index" :key="index"
:label="'第' + Number(index + 1) + '次随访数据'" :name="String(index + 1)"
:name="String(index)" >
></el-tab-pane> <template slot="label">
<div class="tab-label">
{{ "" + Number(index + 1) + "次随访数据" }}
</div></template
>
</el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</el-aside> </el-aside>
<el-main class="transition-box"> <el-main class="transition-box" v-loading="fromLoading">
<div class="my_form"> <div class="my_form">
<MyCustomForm <MyCustomForm
v-show="activeTab === '999'" v-show="activeTab === '0'"
v-for="form in formTabs" v-for="form in formTabs"
:key="form.id" :key="form.id"
:form="form" :form="form"
:patientId="currentRow.patientId" :patientId="currentRow.patientId"
></MyCustomForm> ></MyCustomForm>
<MyCustomForm <MyCustomForm
v-show="activeTab !== '999'" v-show="activeTab !== '0'"
v-for="form in followForms" v-for="form in followForms"
:key="form.id" :key="form.id"
:form="form" :form="form"
...@@ -104,7 +113,7 @@ export default { ...@@ -104,7 +113,7 @@ export default {
fromLoading: false, fromLoading: false,
formTabs: [], formTabs: [],
followForms: [], followForms: [],
activeTab: "999", activeTab: "0",
screenList: [], screenList: [],
followList: [], followList: [],
} }
...@@ -118,8 +127,8 @@ export default { ...@@ -118,8 +127,8 @@ export default {
}, },
followId() { followId() {
return ( return (
(this.followList[this.activeTab] && (this.followList[this.activeTab - 1] &&
this.followList[this.activeTab].followId) || this.followList[this.activeTab - 1].followId) ||
null null
) )
}, },
...@@ -128,13 +137,17 @@ export default { ...@@ -128,13 +137,17 @@ export default {
followId() { followId() {
this.getLogList() this.getLogList()
}, },
}, "currentRow.patientId": {
created() { handler(val) {
if (val) {
this.getCurrentFormByType() this.getCurrentFormByType()
this.getFollowInfo() this.getFollowInfo()
this.getLogList() this.getLogList()
}
},
immediate: true,
},
}, },
methods: { methods: {
getLogList() { getLogList() {
const obj = { const obj = {
...@@ -179,6 +192,7 @@ export default { ...@@ -179,6 +192,7 @@ export default {
patientFrom: this.$store.getters["table/selectedIndex"], patientFrom: this.$store.getters["table/selectedIndex"],
}).then((res) => { }).then((res) => {
this.followList = res.data.filter((_) => _.followBatch > 0) this.followList = res.data.filter((_) => _.followBatch > 0)
this.activeTab = String(this.followList.length)
}) })
}, },
getFollowInfo() { getFollowInfo() {
...@@ -199,7 +213,7 @@ export default { ...@@ -199,7 +213,7 @@ export default {
justify-content: space-between; justify-content: space-between;
} }
.follow-tab-top { .follow-tab-top {
width: calc(100% - 200px); width: calc(100vh - 200px);
padding-left: 10px; padding-left: 10px;
::v-deep { ::v-deep {
.el-tabs--card > .el-tabs__header { .el-tabs--card > .el-tabs__header {
...@@ -223,26 +237,30 @@ export default { ...@@ -223,26 +237,30 @@ export default {
} }
} }
.my_form { .my_form {
height: calc(100vh - 200px); height: calc(100vh - 280px);
overflow-y: auto; overflow-y: auto;
} }
.el-main { .el-main {
padding: 0px 20px; padding: 0px 20px;
} }
.el-aside {
padding-bottom: 20px;
}
.extra_btn { .extra_btn {
width: 170px; width: 170px;
text-align: right; text-align: right;
margin-top: 5px; margin-top: 5px;
} }
.follow-tab { .follow-tab {
::v-deep {
border-radius: 4px; border-radius: 4px;
border: 1px solid #cccccc; border: 1px solid #cccccc;
height: calc(100vh - 200px); height: calc(100vh - 280px);
overflow: overlay;
::v-deep {
.tab-label {
border-bottom: 1px solid #ccc;
padding: 0 20px;
height: 60px;
line-height: 60px;
}
.el-tabs__header { .el-tabs__header {
margin-left: 0px; margin-left: 0px;
} }
...@@ -251,7 +269,6 @@ export default { ...@@ -251,7 +269,6 @@ export default {
} }
.el-tabs__active-bar.is-right { .el-tabs__active-bar.is-right {
width: 3px; width: 3px;
height: 52px !important;
} }
.el-tabs--right { .el-tabs--right {
height: auto !important; height: auto !important;
...@@ -263,12 +280,11 @@ export default { ...@@ -263,12 +280,11 @@ export default {
border-bottom: 1px solid #cccccc; border-bottom: 1px solid #cccccc;
} }
.el-tabs__item { .el-tabs__item {
padding: 16px;
width: 180px; width: 180px;
padding: 0;
background: #fafafa; background: #fafafa;
height: auto; height: 60px;
line-height: inherit; line-height: 60px;
border-bottom: 1px solid #cccccc;
transition: all 1s; transition: all 1s;
} }
.el-tabs__item.is-active { .el-tabs__item.is-active {
...@@ -282,7 +298,7 @@ export default { ...@@ -282,7 +298,7 @@ export default {
height: 100%; height: 100%;
background: #fafafa; background: #fafafa;
padding-right: 15px; padding-right: 15px;
height: calc(100vh - 200px); height: calc(100vh - 280px);
overflow-y: overlay; overflow-y: overlay;
li { li {
padding: 16px; padding: 16px;
......
<template> <template>
<div>
<el-skeleton v-if="isEmpty" animated />
<custom-form <custom-form
v-if="!isEmpty" v-if="!isEmpty"
class="mb-20" class="mb-20"
...@@ -7,6 +9,7 @@ ...@@ -7,6 +9,7 @@
:options="widgetFormPreview" :options="widgetFormPreview"
:form-edit="formEdit" :form-edit="formEdit"
></custom-form> ></custom-form>
</div>
</template> </template>
<script> <script>
import { getPatientDetail, getFollowDetail } from "@/api/patient.js" import { getPatientDetail, getFollowDetail } from "@/api/patient.js"
...@@ -83,6 +86,7 @@ export default { ...@@ -83,6 +86,7 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.form && this.$refs.form.resetForm() this.$refs.form && this.$refs.form.resetForm()
}) })
this.loading = true
getFollowDetail({ getFollowDetail({
followId: this.followId, followId: this.followId,
formId: this.form.formId, formId: this.form.formId,
......
...@@ -308,6 +308,7 @@ export default { ...@@ -308,6 +308,7 @@ export default {
// 处理followId 针对随访查询的列表数据的查询和修改操作 // 处理followId 针对随访查询的列表数据的查询和修改操作
if (this.$route.path == "/followupentry") { if (this.$route.path == "/followupentry") {
params.followId = this.followId || this.getTabFollowId params.followId = this.followId || this.getTabFollowId
params.formRecordId = this.formData.formRecordId
} }
this.$emit("handleConfirm", params, done, (res) => { this.$emit("handleConfirm", params, done, (res) => {
// 多次填写的表单新增时,获取最新数据 // 多次填写的表单新增时,获取最新数据
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment