3 changed files with 247 additions and 2 deletions
-
20src/components/doctorCheck/CheckItemList.vue
-
228src/components/doctorCheck/PacsTemplate.vue
-
1src/store/index.js
@ -0,0 +1,228 @@ |
|||||
|
<template> |
||||
|
<div style="display: flex;"> |
||||
|
<div style="width: 258px;height:520px;border: 1px solid #EEE;"> |
||||
|
<div style="margin:2px 2px 2px 2px;"> |
||||
|
<el-input placeholder="输入关键字进行过滤" v-model="filterText" size="small" /> |
||||
|
</div> |
||||
|
<div> |
||||
|
<el-tree style="overflow: scroll;width: 200px;height:480px;" :data="pacsTemplateTree" :props="treeprops" |
||||
|
@node-click="handleNode" :filter-node-method="filterNode" ref="ref_tree"> |
||||
|
<span class="custom-tree-node" slot-scope="{ node, data }"> |
||||
|
<div> |
||||
|
<span class="treeicons"> |
||||
|
<img style="width:20px;height:20px;vertical-align: sub;" src="@/assets/images/order.png" |
||||
|
v-if="!data.parentId" /> |
||||
|
</span> |
||||
|
<span :class="!data.parentId ? 'maxtitle' : 'mintitle'">{{ node.label }} |
||||
|
</span> |
||||
|
</div> |
||||
|
</span> |
||||
|
</el-tree> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div :style="`display: block;width:580px; margin-left: 5px;`"> |
||||
|
<el-table :data="description" border height="470" highlight-current-row @row-dblclick="rowClick" size="small"> |
||||
|
<el-table-column prop="description" label="描述" min-width="450" /> |
||||
|
<el-table-column prop="conclusion" label="结论" min-width="130"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-autocomplete style="width: 100%;" type="textarea" v-model="scope.row.result" placeholder="请输入结论" |
||||
|
:autosize="{ minRows: 1, maxRows: 1 }" :trigger-on-focus="false" :fetch-suggestions="querySearch"> |
||||
|
</el-autocomplete> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
</el-table> |
||||
|
<div style="display: flex;margin-top: 8px;margin-left: 15px;"> |
||||
|
<div></div> |
||||
|
<div style="margin-left: 150px;margin-top: 5px;"> |
||||
|
<el-button type="primary" @click="btnOk" class="commonbutton">确定</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { arrayExistObj, deepCopy, reMadeOrgTree } from "../../utlis/proFunc"; |
||||
|
import { getTreePids, getTreeAllChildIdsById, madeTree } from "../../utlis/tree"; |
||||
|
|
||||
|
export default { |
||||
|
components: {}, |
||||
|
props: ["useCustomerOrg", "initDateType", "isUnit"], |
||||
|
data() { |
||||
|
return { |
||||
|
filterText: '', |
||||
|
preNodeId: '', //上一次点击树节点 |
||||
|
curNodeId: '', //本次点击树节点 |
||||
|
dateType: 'medicalStartDate', |
||||
|
useCusOrg: false, //是否使用单位 |
||||
|
isUnitOption: false,//是否禁用单位勾选 |
||||
|
//体检单位,体检次数,日期类型,起止日期,分组 |
||||
|
dataCusOrgOCX: [{ |
||||
|
id: '', //随机的ID,用于删除 |
||||
|
customerOrgId: '', // |
||||
|
customerOrgName: '', //企业名称,显示用 |
||||
|
customerOrgRegister: {}, //已选的体检次数 |
||||
|
customerOrgRegisterList: [], //当前单位的体检次数信息 |
||||
|
dateType: 'medicalStartDate', // 登记日期:creationTime;体检日期:medicalStartDate;总检日期:summaryDate |
||||
|
startDate: '', |
||||
|
endDate: '', |
||||
|
customerOrgGroupIds: [], //已选分组 |
||||
|
customerOrgGroupList: [], //可选的分组 |
||||
|
}], |
||||
|
|
||||
|
description: [], // 描述 |
||||
|
conclusion: [], // 结论 |
||||
|
pacsTemplateTree: [], //类别 + 模板树 |
||||
|
treeprops: { |
||||
|
label: "displayName", // label/displayName |
||||
|
value: "id", |
||||
|
id: "id", |
||||
|
children: "children", |
||||
|
}, //树形组件的数据结构 |
||||
|
curDescription: {} // 当前选中的描述 |
||||
|
}; |
||||
|
}, |
||||
|
//<el-tree :data="$store.state.customerOrg.ref_tree" :props="$store.state.customerOrg.treeprops" @node-click="treeclick"></el-tree> |
||||
|
computed: { |
||||
|
...mapState(["dict", "customerOrg", "patientRegister", "report", "diagnosis", "project"]), |
||||
|
}, |
||||
|
//创建组件后 |
||||
|
created() { |
||||
|
this.dataCusOrgOCX = []; |
||||
|
if (this.useCustomerOrg) { |
||||
|
this.useCusOrg = true |
||||
|
} |
||||
|
if (this.initDateType) { |
||||
|
this.dateType = this.initDateType |
||||
|
} |
||||
|
if (this.isUnit) { |
||||
|
this.isUnitOption = true |
||||
|
} |
||||
|
this.changeUseOrg(this.useCusOrg) |
||||
|
}, |
||||
|
|
||||
|
//挂载组件完成 |
||||
|
mounted() { |
||||
|
//获取体检单位列表树信息 |
||||
|
this.getPacsTemplateTree(); |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
|
||||
|
//树过滤 |
||||
|
filterNode(value, data) { |
||||
|
//console.log(value,data) |
||||
|
if (!value) return true; |
||||
|
return data['displayName'].indexOf(value) > -1; |
||||
|
}, |
||||
|
|
||||
|
//获取体检单位列表树信息 |
||||
|
getPacsTemplateTree() { |
||||
|
let resultType = [], resultTemplate = [], treeData = [] |
||||
|
|
||||
|
postapi('/api/app/BigtextResultType/GetList') |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
resultType = res.data |
||||
|
return postapi('/api/app/BigtextResultTemplate/GetList', {}) |
||||
|
} |
||||
|
}) |
||||
|
.then(res => { |
||||
|
if (res && res.code > -1) { |
||||
|
res.data.forEach(e => { |
||||
|
resultTemplate.push(Object.assign({}, e, { parentId: e.bigtextResultTypeId })) |
||||
|
}); |
||||
|
treeData = resultType.concat(resultTemplate) |
||||
|
// console.log('treeData',treeData,resultType,) |
||||
|
this.pacsTemplateTree = madeTree(treeData, "children", "parentId", "id", null) |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
//获取体检单位父级ID api/app/customer-org/parent/[CustomerOrgld |
||||
|
getCustomerOrgParentId(customerOrgld) { |
||||
|
if (customerOrgld == this.dict.personOrgId) { |
||||
|
this.patientRegister.query.CustomerOrgParentId = this.dict.personOrgId; |
||||
|
return; |
||||
|
} |
||||
|
getapi(`/api/app/customer-org/parent/${customerOrgld}`).then((res) => { |
||||
|
console.log("res.data", res.data); |
||||
|
if (res.code == 1) { |
||||
|
this.patientRegister.query.CustomerOrgParentId = res.data; |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
//点击树节点 |
||||
|
handleNode(data, node, prop) { |
||||
|
let ids = getTreeAllChildIdsById(this.pacsTemplateTree, "children", "id", data.id) |
||||
|
|
||||
|
postapi('/api/app/BigtextResultTemplate/GetBigtextResultTemplateDetail', { bigtextResultTemplateIds: ids }) |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
this.description = res.data.descriptionDetail |
||||
|
this.conclusion = res.data.conclusionDetail |
||||
|
|
||||
|
this.description.forEach(e => { |
||||
|
let conclusion = this.conclusion.filter(c => { |
||||
|
return c.bigtextResultTemplateId = e.bigtextResultTemplateId |
||||
|
}) |
||||
|
e["conclusion"] = "" |
||||
|
e["conclusionList"] = [] |
||||
|
conclusion.forEach(c => { |
||||
|
e["conclusionList"].push({ value: c.conclusion }) |
||||
|
}); |
||||
|
if (conclusion.length == 1) e["conclusion"] = conclusion[0].conclusion |
||||
|
}); |
||||
|
|
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
querySearch(queryString, cb) { |
||||
|
var restaurants = deepCopy(this.restaurants); //不需要字典库显示 [{ value: '阴性' },{ value: '阳性' }] |
||||
|
restaurants.forEach((item) => { |
||||
|
return (item.value = item.result); |
||||
|
}); |
||||
|
// console.log("restaurants", restaurants); |
||||
|
var results = queryString |
||||
|
? restaurants.filter(this.createFilter(queryString)) |
||||
|
: restaurants; |
||||
|
// 调用 callback 返回建议列表的数据 |
||||
|
cb(results); |
||||
|
}, |
||||
|
|
||||
|
//双击删除该行查询条件 |
||||
|
rowClick(row) { |
||||
|
this.curDescription = row; |
||||
|
this.restaurants = row.conclusionList; |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
btnOk() { |
||||
|
this.dialogWin.PacsTemplate = false |
||||
|
}, |
||||
|
}, |
||||
|
watch: { |
||||
|
"filterText"(newVal, oldVal) { |
||||
|
if(newVal != oldVal) this.$refs['ref_tree'].filter(newVal); |
||||
|
} |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style lang="scss" scoped> |
||||
|
@import "../../assets/css/global_dialog.css"; |
||||
|
@import "../../assets/css/global_table.css"; |
||||
|
@import "../../assets/css/global_input.css"; |
||||
|
@import "../../assets/css/global.css"; |
||||
|
@import "../../assets/css/global_tree.css"; |
||||
|
|
||||
|
:deep .el-tree-node>.el-tree-node__children { |
||||
|
overflow: visible; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue