13 changed files with 1370 additions and 227 deletions
@ -0,0 +1,753 @@ |
|||
<template> |
|||
<div class="afterBox"> |
|||
<div class="moveIcon" v-if="!onlyRead"> |
|||
<p @click="moveAll(1)"><i style="font-size: 20px" class="el-icon-back" /></p> |
|||
<p style="margin-top: 5px" @click="moveAll(2)"><i class="el-icon-back" style="transform: rotateY(180deg);font-size: 20px" /></p> |
|||
</div> |
|||
<div style="display: flex;margin-top: 32px"> |
|||
<div style="width: 200px;padding-right: 8px;text-align: left;overflow-x: auto"> |
|||
<p style="font-weight: bold;margin-bottom: 12px;text-align: left">描述项模板</p> |
|||
<el-button v-if="!treeCaseList.length && !onlyRead" type="primary" size="small" @click="append(1)">+新增</el-button> |
|||
<el-tree |
|||
ref="tree" |
|||
:data="treeCaseList" |
|||
:props="treeProps" |
|||
:default-expand-all="true" |
|||
:expand-on-click-node="false" |
|||
node-key="id" |
|||
highlight-current |
|||
@node-click="templateData" |
|||
> |
|||
<span slot-scope="{ node, data }" class="custom-tree-node"> |
|||
<span style="display: inline-block;min-width: 80px"> |
|||
<span>{{ node.label }}</span> |
|||
</span> |
|||
<span> |
|||
<el-button v-if="!data.treeId && !onlyRead" icon="el-icon-plus" style="font-size: 12px;color: #409EFF" type="text" @click.stop="append(2, data)" /> |
|||
<el-button v-if="!onlyRead" icon="el-icon-delete" style="font-size: 12px;color: #F56C6C" type="text" @click.stop="remove(node, data)" /> |
|||
</span> |
|||
</span> |
|||
</el-tree> |
|||
</div> |
|||
<after-form |
|||
:only-read="onlyRead" |
|||
ref="afterForm" |
|||
:data-form="dataForm" |
|||
:table-data="tableData" |
|||
@selection="selection" |
|||
@moveHandle="moveHandle" |
|||
@handleNode="handleNode" |
|||
@addTree="addTree" |
|||
@removeTree="removeTree" |
|||
/> |
|||
</div> |
|||
<el-dialog :title="title" :visible.sync="dialogFormVisible" width="40%"> |
|||
<el-form :model="form" style="margin-top: 16px"> |
|||
<el-form-item label="名称:" label-width="120px"> |
|||
<el-input v-model="form.name" auto-complete="off" style="width: 300px" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="dialogFormVisible = false">取 消</el-button> |
|||
<el-button type="primary" @click="handSaveBtn">确 定</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
<el-dialog title="新建模板" :visible.sync="templateFlag" width="40%"> |
|||
<el-form :model="form" style="margin-top: 16px"> |
|||
<el-form-item label="名称:" label-width="120px"> |
|||
<el-input v-model="form.name" auto-complete="off" style="width: 300px" /> |
|||
</el-form-item> |
|||
<el-form-item label="目录:" label-width="120px"> |
|||
<el-tree |
|||
ref="tree" |
|||
:data="treeTemplate" |
|||
:props="treeProps" |
|||
:default-expand-all="true" |
|||
:expand-on-click-node="false" |
|||
node-key="id" |
|||
highlight-current |
|||
@node-click="templateNodeClick" |
|||
/> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="templateFlag = false">取 消</el-button> |
|||
<el-button type="primary" @click="saveTreeTemplete">确 定</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import eventBus from '@/page-subspecialty/utils/eventBus' |
|||
import treeSelect from '@/components/360View/itemSelect' |
|||
import axios from 'axios' |
|||
import Cookies from 'js-cookie' |
|||
import AfterForm from '@/components/360View/medicalRecord/outPatientRecord/afterForm-copy.vue' |
|||
export default { |
|||
components: { |
|||
AfterForm, |
|||
treeSelect |
|||
}, |
|||
mixins: [], |
|||
props: { |
|||
patientIdNumber: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
patientId: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
isSearch: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
caseId: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
onlyRead: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}, |
|||
inject: ['refresh'], |
|||
data() { |
|||
return { |
|||
userData: {}, |
|||
title: '', |
|||
addType: '', |
|||
sourceData: [], |
|||
treeCaseList: [], |
|||
treeTemplate: [], |
|||
treeProps: { |
|||
value: 'id', |
|||
label: 'name', |
|||
children: 'child' |
|||
}, |
|||
type: '', |
|||
doctorId: '', |
|||
deleteId: '', |
|||
treeFlag: '', |
|||
treeId: '', |
|||
treeName: '', |
|||
weight: '', |
|||
parentId: 0, |
|||
collectId: '', |
|||
form: { |
|||
name: '' |
|||
}, |
|||
multipleSelection: [], |
|||
templateFlag: false, |
|||
dialogFormVisible: false, |
|||
dataForm: { |
|||
id: '', |
|||
caseId: '', |
|||
patientId: '', |
|||
bltOd: '', // 玻璃体 vitreous |
|||
bltOs: '', // 玻璃体 vitreous |
|||
byOd: '', // 边缘 periphery |
|||
byOs: '', // 边缘 periphery |
|||
hbOd: '', // 黄斑 |
|||
hbOs: '', // 黄斑 |
|||
hmOd: '', // 巩膜 |
|||
hmOs: '', // 巩膜 |
|||
mlmOd: '', // 脉络膜 |
|||
mlmOs: '', // 脉络膜 |
|||
spCrdOd: '', // 视盘:CDR |
|||
spCrdOs: '', // 视盘:CDR |
|||
spSsjOd: '', // 视盘:视神经 |
|||
spSsjOs: '', // 视盘:视神经 |
|||
swmOd: '', // 视网膜 |
|||
swmOs: '', // 视网膜 |
|||
xgOd: '', // 血管 |
|||
xgOs: '' // 血管 |
|||
}, |
|||
tableData: [ |
|||
{ |
|||
name: '黄斑' |
|||
}, { |
|||
name: '黄斑', |
|||
sort: 99, |
|||
id: 14, |
|||
type: 'hangman', |
|||
od: '', |
|||
os: '' |
|||
}, { |
|||
name: '视盘' |
|||
}, { |
|||
name: '视盘', |
|||
id: 15, |
|||
sort: 3, |
|||
type: 'shipman', |
|||
od: '', |
|||
os: '' |
|||
}, { |
|||
name: '视盘', |
|||
id: 16, |
|||
sort: 4, |
|||
type: 'shipman', |
|||
od: '', |
|||
os: '' |
|||
}, { |
|||
name: '视网膜' |
|||
}, { |
|||
name: '视网膜', |
|||
sort: 99, |
|||
id: 17, |
|||
type: 'showing', |
|||
od: '', |
|||
os: '' |
|||
}, { |
|||
name: '脉络膜' |
|||
}, { |
|||
name: '脉络膜', |
|||
sort: 99, |
|||
id: 18, |
|||
type: 'mailbomb', |
|||
od: '', |
|||
os: '' |
|||
}, { |
|||
name: '玻璃体 vitreous' |
|||
}, { |
|||
name: '玻璃体 vitreous', |
|||
sort: 99, |
|||
id: 19, |
|||
type: 'blit', |
|||
od: '', |
|||
os: '' |
|||
}, { |
|||
name: '血管' |
|||
}, { |
|||
name: '血管', |
|||
sort: 99, |
|||
id: 20, |
|||
type: 'began', |
|||
od: '', |
|||
os: '' |
|||
}, { |
|||
name: '巩膜' |
|||
}, { |
|||
name: '巩膜', |
|||
sort: 99, |
|||
id: 21, |
|||
type: 'gong', |
|||
od: '', |
|||
os: '' |
|||
}, { |
|||
name: '边缘 periphery' |
|||
}, { |
|||
name: '边缘 periphery', |
|||
sort: 99, |
|||
id: 22, |
|||
type: 'banyan', |
|||
od: '', |
|||
os: '' |
|||
}], |
|||
treeList: [] |
|||
} |
|||
}, |
|||
watch: { |
|||
tableData: { |
|||
deep: true, |
|||
handler: (value) => { |
|||
if (value) { |
|||
eventBus.$emit('getAfterData', value) |
|||
} |
|||
} |
|||
}, |
|||
caseId: { |
|||
handler: function(newV, oldV) { |
|||
this.getforeList().then(() => { |
|||
// this.queryOptions() |
|||
}) |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
}, |
|||
mounted() { |
|||
this.userData = JSON.parse(window.localStorage.getItem('qg-userData')) |
|||
this.doctorId = this.userData.id |
|||
this.queryOptions() |
|||
this.getforeList() |
|||
this.queryTreeCase() |
|||
}, |
|||
methods: { |
|||
async getforeList() { |
|||
const { data: res } = await this.$http.get('/mjz/getMjzHdjcInfo', { |
|||
params: { |
|||
caseId: this.caseId, |
|||
patientId: this.patientId |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
if (res.data) { |
|||
this.dataForm = res.data |
|||
this.handleData(this.dataForm) |
|||
} |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
handleData(data) { |
|||
for (const aKey in data) { |
|||
if (aKey !== 'caseId' && aKey !== 'id' && aKey !== 'patientId') { |
|||
if (data[aKey]) { |
|||
data[aKey] = data[aKey].split(',') |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
// 表格复选框 |
|||
selection(value) { |
|||
if (!value.val.id) { |
|||
const data = this.tableData.filter(item => item.name === value.val.name) |
|||
if (value.val.flag) { |
|||
data.forEach(row => { |
|||
row.flag = false |
|||
this.$refs.afterForm.$refs.multipleTable.toggleRowSelection(row, false) |
|||
}) |
|||
} else { |
|||
data.forEach(row => { |
|||
row.flag = true |
|||
this.$refs.afterForm.$refs.multipleTable.toggleRowSelection(row, true) |
|||
}) |
|||
} |
|||
} else { |
|||
const data = this.tableData.filter(item => item.id === value.val.id) |
|||
if (value.val.flag) { |
|||
data.forEach(row => { |
|||
row.flag = false |
|||
}) |
|||
} else { |
|||
data.forEach(row => { |
|||
row.flag = true |
|||
}) |
|||
} |
|||
} |
|||
}, |
|||
// 保留下拉框的label,添加到数据集用于展示 |
|||
handleNode(val) { |
|||
if (val.type === 'os') { |
|||
this.tableData[val.index].osValue = val.event |
|||
} else { |
|||
this.tableData[val.index].odValue = val.event |
|||
} |
|||
}, |
|||
// 添加数据集 |
|||
addAfterData() { |
|||
const selectData = this.tableData.filter(item => item.flag === true) |
|||
if (!selectData.length) return this.$message.warning('请勾选数据!') |
|||
const data = selectData.filter(item => { |
|||
return item.type !== undefined |
|||
}) |
|||
eventBus.$emit('sendForData', data) |
|||
}, |
|||
// 获取下拉选择项,把数据封装进表格中 |
|||
queryOptions() { |
|||
const treeList = [] |
|||
this.tableData.forEach(item => { |
|||
item.flag = false |
|||
if (item.type) { |
|||
const p = this.queryTree(item.type) |
|||
treeList.push(p) |
|||
} |
|||
}) |
|||
Promise.all(treeList).then((result) => { |
|||
if (result.length) { |
|||
result.forEach(item => { |
|||
item.forEach(row => { |
|||
this.tableData.forEach(e => { |
|||
if (e.type === row.type) { |
|||
e.data = item |
|||
const sort = e.sort |
|||
if (sort === 3 || sort === 4 || sort === 99) { |
|||
e.sort = '' |
|||
this.$nextTick(() => { |
|||
e.sort = sort |
|||
}) |
|||
} |
|||
} |
|||
}) |
|||
}) |
|||
}) |
|||
} |
|||
this.sourceData = Object.assign([], this.tableData) |
|||
eventBus.$emit('getAfterData', this.tableData) |
|||
}).catch((error) => { |
|||
console.log(error) |
|||
}) |
|||
}, |
|||
// 全部移动 |
|||
moveAll(type) { |
|||
if (type === 1) { |
|||
this.tableData.forEach(item => { |
|||
if (item.sort) { |
|||
item.od = item.os |
|||
item.odValue = item.osValue |
|||
const sort = item.sort |
|||
item.sort = '' |
|||
this.$nextTick(() => { |
|||
item.sort = sort |
|||
}) |
|||
} |
|||
}) |
|||
} else { |
|||
this.tableData.forEach(item => { |
|||
if (item.sort) { |
|||
item.os = item.od |
|||
item.osValue = item.odValue |
|||
const sort = item.sort |
|||
item.sort = '' |
|||
this.$nextTick(() => { |
|||
item.sort = sort |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
// 移动 |
|||
moveHandle(val) { |
|||
if (val.row.id) { |
|||
if (val.type === 1) { |
|||
this.tableData[val.index].od = val.row.os |
|||
this.tableData[val.index].odValue = val.row.osValue |
|||
} else { |
|||
this.tableData[val.index].os = val.row.od |
|||
this.tableData[val.index].osValue = val.row.odValue |
|||
} |
|||
const sort = this.tableData[val.index].sort |
|||
this.tableData[val.index].sort = '' |
|||
this.$nextTick(() => { |
|||
this.tableData[val.index].sort = sort |
|||
}) |
|||
} else { |
|||
if (val.type === 1) { |
|||
this.tableData.forEach(item => { |
|||
if (item.name === val.row.name) { |
|||
item.od = item.os |
|||
item.odValue = item.osValue |
|||
const sort = item.sort |
|||
item.sort = '' |
|||
this.$nextTick(() => { |
|||
item.sort = sort |
|||
}) |
|||
} |
|||
}) |
|||
} else { |
|||
this.tableData.forEach(item => { |
|||
if (item.name === val.row.name) { |
|||
item.os = item.od |
|||
item.osValue = item.odValue |
|||
const sort = item.sort |
|||
item.sort = '' |
|||
this.$nextTick(() => { |
|||
item.sort = sort |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
}, |
|||
// 保存后段检查 |
|||
async saveAfter() { |
|||
for (const resKey in this.dataForm) { |
|||
if (Array.isArray(this.dataForm[resKey])) { |
|||
this.dataForm[resKey] = this.dataForm[resKey].join(',') |
|||
} |
|||
} |
|||
const { data: res } = await this.$http.post('/mjz/saveMjzHdjc', this.dataForm) |
|||
if (res.code === 0) { |
|||
await this.getforeList() |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
handSaveBtn() { |
|||
if (this.addType === 1) { |
|||
this.handleSaveTree() |
|||
} else { |
|||
this.handleSaveCase() |
|||
} |
|||
}, |
|||
// 新增树 |
|||
addTree(val) { |
|||
this.title = '新增子级' |
|||
this.addType = 1 |
|||
this.form.name = '' |
|||
this.type = val.event.type |
|||
this.parentId = val.event.id |
|||
this.treeFlag = val.event.flag |
|||
this.dialogFormVisible = true |
|||
}, |
|||
// 新增保存树-眼睛部位下拉选择 |
|||
async handleSaveTree() { |
|||
const params = { |
|||
doctorId: this.doctorId, |
|||
name: this.form.name, |
|||
flag: this.treeFlag, // 1公共树,2个人树 |
|||
type: this.type, |
|||
parentId: this.parentId, |
|||
platform: this.isSearch |
|||
} |
|||
const { data: res } = await this.$http.post('/treetag/addTree', params) |
|||
if (res.code === 0) { |
|||
this.dialogFormVisible = false |
|||
this.updataList() |
|||
this.$message.success('保存成功') |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 删除树 |
|||
removeTree(item) { |
|||
this.type = item.type |
|||
this.deleteId = item.id |
|||
this.$confirm('确定删除该节点?', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
this.handleRemove() |
|||
}).catch(() => { |
|||
|
|||
}) |
|||
}, |
|||
async handleRemove() { |
|||
const params = { |
|||
id: this.deleteId |
|||
} |
|||
const { data: res } = await this.$http.post('/treetag/deleteTree', params) |
|||
if (res.code === 0) { |
|||
this.$message.success('删除成功') |
|||
this.updataList() |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 刷新下拉树 |
|||
updataList() { |
|||
this.queryTree(this.type).then((res) => { |
|||
this.tableData.forEach(item => { |
|||
if (item.type === this.type) { |
|||
const sort = item.sort |
|||
item.sort = '' |
|||
this.$nextTick(() => { |
|||
item.sort = sort |
|||
}) |
|||
item.data = res |
|||
} |
|||
}) |
|||
}) |
|||
}, |
|||
queryTree(type) { |
|||
const baseUrl = window.SITE_CONFIG['apiURL'] + '/treetag/findTree' |
|||
return new Promise((resolve, reject) => { |
|||
axios.defaults.headers.common['token'] = Cookies.get('xa-token') || '' |
|||
axios.get(baseUrl, { |
|||
params: { |
|||
doctorId: this.doctorId, |
|||
type: type, |
|||
platform: this.isSearch |
|||
} |
|||
}).then(res => { |
|||
if (res.data.code === 0) { |
|||
const data = res.data |
|||
resolve(data.data) |
|||
} |
|||
}) |
|||
.catch(error => { |
|||
reject(error) |
|||
}) |
|||
}) |
|||
}, |
|||
// 点击左侧模板数据覆盖表格内容 |
|||
templateData(data, node) { |
|||
if (data && data.caseJson) { |
|||
this.tableData = JSON.parse(data.caseJson) |
|||
// 回显表格复选框 |
|||
this.$nextTick(() => { |
|||
this.tableData.forEach(item => { |
|||
if (item.flag) { |
|||
this.$refs.multipleTable.toggleRowSelection(item, true) |
|||
} |
|||
}) |
|||
}) |
|||
} else { |
|||
this.tableData = Object.assign([], this.sourceData) |
|||
} |
|||
}, |
|||
// 点击保存模板后弹框 |
|||
handleTemplate() { |
|||
this.form.name = '' |
|||
this.queryTemplate() |
|||
this.templateFlag = true |
|||
}, |
|||
// 保存模板时选择树节点 |
|||
templateNodeClick(node) { |
|||
this.treeId = node.id |
|||
}, |
|||
// 保存模板树 |
|||
async saveTreeTemplete() { |
|||
if (!this.treeId) return this.$message.warning('请选择节点!') |
|||
const params = { |
|||
caseJson: JSON.stringify(this.tableData), |
|||
doctorId: this.doctorId, |
|||
name: this.form.name, |
|||
type: 3, // 2前段检查 3后段检查 |
|||
treeId: this.treeId |
|||
} |
|||
const { data: res } = await this.$http.post('/treetemplate/addTreeCase', params) |
|||
if (res.code === 0) { |
|||
this.templateFlag = false |
|||
await this.queryTreeCase() |
|||
this.$message.success('保存成功') |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 新增左侧描述项树弹框 |
|||
append(type, data) { |
|||
this.addType = 2 |
|||
this.form.name = '' |
|||
type === 1 ? this.title = '新增父级' : this.title = '新增子级' |
|||
type === 1 ? this.parentId = 0 : this.parentId = data.id |
|||
this.dialogFormVisible = true |
|||
}, |
|||
// 左侧描述项树新增 |
|||
async handleSaveCase() { |
|||
const params = { |
|||
doctorId: this.doctorId, |
|||
name: this.form.name, |
|||
weight: this.weight, |
|||
parentId: this.parentId, |
|||
platform: this.isSearch |
|||
} |
|||
const { data: res } = await this.$http.post('/treetemplate/addTree', params) |
|||
if (res.code === 0) { |
|||
this.dialogFormVisible = false |
|||
this.queryTreeCase() |
|||
this.$message.success('保存成功') |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 删除左侧树/模板节点弹框 |
|||
remove(node, data) { |
|||
this.deleteId = data.id |
|||
let url = '' |
|||
if (data.type) { |
|||
// 模板节点 |
|||
url = '/treetemplate/deleteTreeCase' |
|||
} else { |
|||
// 树节点 |
|||
url = '/treetemplate/deleteTree' |
|||
} |
|||
this.$confirm('确定删除该节点?', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
this.removeTemplate(url) |
|||
}).catch(() => { |
|||
|
|||
}) |
|||
}, |
|||
// 删除左侧树/模板节点 |
|||
async removeTemplate(url) { |
|||
const params = { |
|||
id: this.deleteId |
|||
} |
|||
const { data: res } = await this.$http.post(url, params) |
|||
if (res.code === 0) { |
|||
this.$message.success('删除成功') |
|||
await this.queryTreeCase() |
|||
await this.getforeList('3') |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 查询弹框模板树 |
|||
async queryTemplate() { |
|||
const { data: res } = await this.$http.get('/treetemplate/findTree', { |
|||
params: { |
|||
platform: this.isSearch, |
|||
doctorId: this.doctorId |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.treeTemplate = res.data |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 使用递归遍历树,合并模板节点和child节点 |
|||
fn(data) { |
|||
data.forEach((item, i) => { |
|||
if (item.list && item.list.length) { |
|||
item.child = item.child.concat(item.list) |
|||
// 调用递归函数 |
|||
} |
|||
if (item.child) { |
|||
this.fn(item.child) |
|||
} |
|||
}) |
|||
return data |
|||
}, |
|||
// 查询左侧病历树 |
|||
async queryTreeCase() { |
|||
const { data: res } = await this.$http.get('/treetemplate/findTreeCase', { |
|||
params: { |
|||
type: 3, // 2前段检查 3后段检查 |
|||
platform: this.isSearch, |
|||
doctorId: this.doctorId |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.treeCaseList = this.fn(res.data) |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.afterBox{ |
|||
width: 100%; |
|||
height: 100%; |
|||
//padding: 16px; |
|||
box-sizing: border-box; |
|||
overflow-y: auto; |
|||
position: relative; |
|||
.btnBox{ |
|||
position: fixed; |
|||
right: 84px; |
|||
text-align: right; |
|||
margin-right: 16px; |
|||
background-color: white; |
|||
z-index: 999; |
|||
} |
|||
.moveIcon{ |
|||
position: absolute; |
|||
left: calc(50% + 112px); |
|||
top: 40px; |
|||
z-index: 9; |
|||
} |
|||
.custom-tree-node{ |
|||
width: 100%; |
|||
} |
|||
} |
|||
</style> |
|||
<style lang="scss"> |
|||
.afterBox{ |
|||
.el-form-item__content{ |
|||
text-align: left; |
|||
} |
|||
.el-tree-node>.el-tree-node__children{ |
|||
overflow-x: auto; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,150 @@ |
|||
<template> |
|||
<el-table |
|||
id="foreCheck" |
|||
ref="multipleTable" |
|||
:data="tableData" |
|||
style="margin: 8px 8px 0 0" |
|||
@select="selection" |
|||
> |
|||
<el-table-column |
|||
type="selection" |
|||
width="55" |
|||
/> |
|||
<el-table-column |
|||
align="center" |
|||
label="OD" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
<span v-if="scope.row.name === '黄斑' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.hbOd" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '视网膜' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.swmOd" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '脉络膜' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.mlmOd" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '玻璃体 vitreous' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.bltOd" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '血管' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.xgOd" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '巩膜' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.hmOd" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '边缘 periphery' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.byOd" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="!scope.row.sort && !scope.row.id">{{ scope.row.name }}</span> |
|||
<span v-if="scope.row.sort === 3"> |
|||
<p style="margin:0 16px 6px 0">视盘:视神经</p> |
|||
<treeSelect v-model="dataForm.spSsjOd" :props="treeProps" style="display: inline-block;" :options="scope.row.data" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" /> |
|||
</span> |
|||
<span v-if="scope.row.sort === 4"> |
|||
<span style="margin:0 16px 6px 0">视盘:CDR</span> |
|||
<treeSelect v-model="dataForm.spCrdOd" :props="treeProps" style="display: inline-block;" :options="scope.row.data" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'od', $event)" @add="addTree(scope.row, $event)" /> |
|||
</span> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
class="move" |
|||
align="center" |
|||
width="120" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<div v-if="!isPrint && !onlyRead"> |
|||
<p @click="moveHandle(scope.$index,1, scope.row)"><i style="font-size: 20px" class="el-icon-back" /></p> |
|||
<p style="margin-top: 5px" @click="moveHandle(scope.$index,2, scope.row)"><i class="el-icon-back" style="transform: rotateY(180deg);font-size: 20px" /></p> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
align="center" |
|||
label="OS" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
<span v-if="scope.row.name === '黄斑' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.hbOs" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '视网膜' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.swmOs" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '脉络膜' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.mlmOs" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '玻璃体 vitreous' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.bltOs" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '血管' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.xgOs" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '巩膜' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.hmOs" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
<span v-if="scope.row.name === '边缘 periphery' && scope.row.id"> |
|||
<treeSelect v-model="dataForm.byOs" :options="scope.row.data" :props="treeProps" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" @remove="removeTree" /> |
|||
</span> |
|||
|
|||
<span v-if="!scope.row.sort && !scope.row.id">{{ scope.row.name }}</span> |
|||
<span v-if="scope.row.sort === 3"> |
|||
<span style="margin:0 16px 6px 0">视盘:视神经</span> |
|||
<treeSelect v-model="dataForm.spSsjOs" :props="treeProps" style="display: inline-block;" :options="scope.row.data" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" /> |
|||
</span> |
|||
<span v-if="scope.row.sort === 4"> |
|||
<span style="margin:0 16px 6px 0">视盘:CDR</span> |
|||
<treeSelect v-model="dataForm.spCrdOs" :props="treeProps" style="display: inline-block;" :options="scope.row.data" :multiple="true" :filterable="true" :check-strictly="true" :default-expand-all="true" @handleNode="handleNode(scope.$index,'os', $event)" @add="addTree(scope.row, $event)" /> |
|||
</span> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</template> |
|||
|
|||
<script> |
|||
import treeSelect from '@/components/360View/itemSelect' |
|||
export default { |
|||
name: 'AfterForm', |
|||
components: { |
|||
treeSelect |
|||
}, |
|||
props: ['tableData', 'dataForm', 'isPrint', 'onlyRead'], |
|||
data() { |
|||
return { |
|||
treeProps: { |
|||
value: 'id', |
|||
label: 'name', |
|||
children: 'child' |
|||
} |
|||
} |
|||
}, |
|||
mounted() { |
|||
console.log(this.tableData) |
|||
console.log(this.dataForm) |
|||
}, |
|||
methods: { |
|||
moveHandle(index, type, row) { |
|||
this.$emit('moveHandle', { index, type, row }) |
|||
}, |
|||
handleNode(index, type, event) { |
|||
this.$emit('handleNode', { index, type, event }) |
|||
}, |
|||
addTree(item, event) { |
|||
this.$emit('addTree', { item, event }) |
|||
}, |
|||
removeTree(item) { |
|||
this.$emit('removeTree', item) |
|||
}, |
|||
selection(selection, val) { |
|||
this.$emit('selection', { selection, val }) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
Loading…
Reference in new issue