Browse Source

peter

360view
newPeter7 2 years ago
parent
commit
7f69e5d3a6
  1. 234
      src/components/360View/afterPart/index.vue
  2. 2
      src/components/360View/business.vue
  3. 5
      src/components/360View/collection.vue
  4. 11
      src/components/360View/commonForm/deveopmentFIle.vue
  5. 12
      src/components/360View/commonForm/eyesVision.vue
  6. 11
      src/components/360View/commonForm/optometryForm.vue
  7. 10
      src/components/360View/commonForm/threeVision.vue
  8. 11
      src/components/360View/dataInfo.vue
  9. 4
      src/components/360View/followUpRecord/index.vue
  10. 291
      src/components/360View/forePart/index.vue
  11. 855
      src/components/360View/forePart/index.vue.bak
  12. 3
      src/components/360View/img-reccrd.vue
  13. 6
      src/components/360View/index1.vue
  14. 9
      src/components/360View/key-indicators.vue
  15. 165
      src/components/360View/medicalRecord/index.vue
  16. 63
      src/components/360View/opticalFile/index.vue
  17. 31
      src/components/360View/overView/index.vue
  18. 11
      src/components/360View/routine/index.vue
  19. 101
      src/components/360View/special/index.vue
  20. 59
      src/components/360View/specialExamine/index.vue
  21. 2
      src/components/360View/time-line-follow-up.vue
  22. 2
      src/components/360View/time-line.vue
  23. 41
      src/page-subspecialty/views/modules/optometryManagement/dioptric/index.vue
  24. 4
      src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue
  25. 1
      src/page-subspecialty/views/modules/seeDoctor/archives/index.vue

234
src/components/360View/afterPart/index.vue

@ -5,29 +5,95 @@
<p style="margin-top: 5px" @click="moveAll(2)"><i class="el-icon-back" style="transform: rotateY(180deg)" /></p>
</div>
<div style="display: flex;margin-top: 32px">
<div style="width: 200px;padding-right: 8px;text-align: left">
<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" type="primary" size="small" @click="append(1)">+新增</el-button>
<el-tree
ref="tree"
:data="treeCaseList"
:props="treeProps"
:render-content="renderContent"
: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" icon="el-icon-plus" style="font-size: 12px;color: #409EFF" type="text" @click.stop="append(2, data)"></el-button>
<el-button icon="el-icon-delete" style="font-size: 12px;color: #F56C6C" type="text" @click.stop="remove(node, data)"></el-button>
</span>
</span>
</el-tree>
</div>
<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.sort === 99">
<treeSelect v-model="scope.row.od" :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">
<span style="margin-right: 16px">视盘视神经</span><treeSelect v-model="scope.row.od" :props="treeProps" style="display: inline-block;width: 60%" :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-right: 16px">视盘CDR</span><treeSelect v-model="scope.row.od" :props="treeProps" style="display: inline-block;width: 60%" :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>
<p @click="moveHandle(scope.$index,1, scope.row)"><i 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)" /></p>
</div>
<after-form
:table-data="tableData"
@handleNode="handleNode"
@addTree="addTree"
@moveHandle="moveHandle"
@handleSelectionChange="handleSelectionChange"
@removeTree="removeTree"
/>
</template>
</el-table-column>
<el-table-column
align="center"
label="OS"
width="300"
>
<template slot-scope="scope">
<div>
<span v-if="scope.row.sort === 99">
<treeSelect v-model="scope.row.os" :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)" />
</span>
<span v-if="!scope.row.sort && !scope.row.id">{{ scope.row.name }}</span>
<span v-if="scope.row.sort === 3">
<span style="margin-right: 16px">视盘视神经</span><treeSelect v-model="scope.row.os" :props="treeProps" style="display: inline-block;width: 60%" :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-right: 16px">视盘CDR</span><treeSelect v-model="scope.row.os" :props="treeProps" style="display: inline-block;width: 60%" :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>
</div>
<el-dialog :title="title" :visible.sync="dialogFormVisible">
<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" />
@ -38,18 +104,20 @@
<el-button type="primary" @click="handSaveBtn"> </el-button>
</div>
</el-dialog>
<el-dialog title="保存模板" :visible.sync="templateFlag">
<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-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>
@ -68,11 +136,9 @@ 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.vue'
const Base64 = require('js-base64').Base64
export default {
components: {
AfterForm,
treeSelect
},
mixins: [],
@ -84,6 +150,10 @@ export default {
patientId: {
type: String,
default: ''
},
isSearch: {
type: String,
default: ''
}
},
inject: ['refresh'],
@ -224,32 +294,61 @@ export default {
const { data: res } = await this.$http.get('/case/getCase', {
params: {
patientId: this.patientId,
platform: 1,
platform: this.isSearch,
flag: flag // 1234
}
})
if (res.code === 0) {
// this.tableData = res.data ? JSON.parse(res.data.jsonText) : []
this.tableData = res.data ? JSON.parse(res.data.jsonText) : []
this.tableData.forEach(item => {
item.flag = false
})
this.collectId = res.data ? res.data.id : ''
} else {
this.$message.error(res.msg)
}
},
//
handleSelectionChange(val) {
this.multipleSelection = val
selection(selection, val) {
if (!val.id) {
const data = this.tableData.filter(item => item.name === val.name)
if (val.flag) {
data.forEach(row => {
row.flag = false
this.$refs.multipleTable.toggleRowSelection(row, false);
})
} else {
data.forEach(row => {
row.flag = true
this.$refs.multipleTable.toggleRowSelection(row, true);
})
}
} else {
const data = this.tableData.filter(item => item.id === val.id)
if (val.flag) {
data.forEach(row => {
row.flag = false
});
} else {
data.forEach(row => {
row.flag = true
})
}
}
},
handleNode(val) {
if (val.type === 'os') {
this.tableData[val.index].osValue = val.event
// label
handleNode(index, type, event) {
if (type === 'os') {
this.tableData[index].osValue = event
} else {
this.tableData[val.index].odValue = val.event
this.tableData[index].odValue = event
}
},
//
addAfterData() {
if (!this.multipleSelection.length) return this.$message.warning('请勾选数据!')
const data = this.multipleSelection.filter(item => {
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)
@ -315,17 +414,47 @@ export default {
}
},
//
moveHandle(value) {
if (value.type === 1) {
this.tableData[value.index].od = value.row
moveHandle(index, type, row) {
if (row.id) {
if (type === 1) {
this.tableData[index].od = row.os
this.tableData[index].odValue = row.osValue
} else {
this.tableData[value.index].os = value.row
this.tableData[index].os = row.od
this.tableData[index].osValue = row.odValue
}
const sort = this.tableData[index].sort
this.tableData[index].sort = ''
this.$nextTick(() => {
this.tableData[index].sort = sort
})
} else {
if (type === 1) {
this.tableData.forEach(item => {
if (item.name === 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 === row.name) {
item.os = item.od
item.osValue = item.odValue
const sort = item.sort
item.sort = ''
this.$nextTick(() => {
item.sort = sort
})
}
})
}
}
},
//
async saveAfter() {
@ -334,7 +463,7 @@ export default {
jsonText: JSON.stringify(this.tableData),
name: '后段检查',
patientId: this.patientId,
platform: '1'
platform: this.isSearch
}
let url = ''
if (this.collectId) {
@ -359,12 +488,13 @@ export default {
}
},
//
addTree(value) {
addTree(item, event) {
this.title = '新增子级'
this.addType = 1
this.form.name = ''
this.type = value.event.type
this.parentId = value.event.id
this.type = event.type
this.parentId = event.id
this.treeFlag = event.flag
this.dialogFormVisible = true
},
// -
@ -375,7 +505,7 @@ export default {
flag: this.treeFlag, // 1,2
type: this.type,
parentId: this.parentId,
platform: 1
platform: this.isSearch
}
const { data: res } = await this.$http.post('/treetag/addTree', params)
if (res.code === 0) {
@ -436,7 +566,7 @@ export default {
params: {
doctorId: this.doctorId,
type: type,
platform: 1
platform: this.isSearch
}
}).then(res => {
if (res.data.code === 0) {
@ -454,6 +584,13 @@ export default {
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 = _.cloneDeep(this.sourceData)
}
@ -504,7 +641,7 @@ export default {
name: this.form.name,
weight: this.weight,
parentId: this.parentId,
platform: 1
platform: this.isSearch
}
const { data: res } = await this.$http.post('/treetemplate/addTree', params)
if (res.code === 0) {
@ -550,26 +687,11 @@ export default {
this.$message.error(res.msg)
}
},
//
renderContent(h, { node, data, store }) {
return (
<span style='flex: 1; display: flex; align-items: center; justify-content: space-between; font-size: 14px; padding-right: 8px;'>
<span>
<span>{node.label}</span>
</span>
<span>
<el-button icon='el-icon-plus' style='font-size: 12px;color: black' type='text' on-click={ () => this.append(2, data) }>
</el-button>
<el-button icon='el-icon-delete' style='font-size: 12px;color: black' type='text' on-click={ () => this.remove(node, data) }>
</el-button>
</span>
</span>)
},
//
async queryTemplate() {
const { data: res } = await this.$http.get('/treetemplate/findTree', {
params: {
platform: 1,
platform: this.isSearch,
doctorId: this.doctorId
}
})
@ -597,7 +719,7 @@ export default {
const { data: res } = await this.$http.get('/treetemplate/findTreeCase', {
params: {
type: 3, // 2 3
platform: 1,
platform: this.isSearch,
doctorId: this.doctorId
}
})
@ -632,6 +754,9 @@ export default {
top: 40px;
z-index: 9;
}
.custom-tree-node{
width: 100%;
}
}
</style>
<style lang="scss">
@ -639,5 +764,8 @@ export default {
.el-form-item__content{
text-align: left;
}
.el-tree-node>.el-tree-node__children{
overflow-x: auto;
}
}
</style>

2
src/components/360View/business.vue

@ -156,7 +156,7 @@ export default {
<style lang="scss" scoped>
.business {
width: 600px;
width: 650px;
padding: 16px;
box-sizing: border-box;
box-sizing: border-box;

5
src/components/360View/collection.vue

@ -84,7 +84,7 @@ export default {
remark: '',
curNode: '',
editName: '',
editMessage: '添加成功!',
editMessage: '',
disabled: false, //
addParam: {
id: '',
@ -262,6 +262,7 @@ export default {
this.deleteNode(node, data)
} else {
this.disabled = false
console.log(this.curNode)
this.editNode(node, data)
}
},
@ -310,7 +311,7 @@ export default {
<style lang="scss" scoped>
.collection {
width: 600px;
width: 650px;
display: flex;
flex-direction: column;
justify-content: space-between;

11
src/components/360View/commonForm/deveopmentFIle.vue

@ -1,6 +1,6 @@
<template>
<div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always">
<div class="btnBox">
<div class="btnBox" v-if="!onlyRead">
<el-button v-print="printObj" size="small">打印</el-button>
<el-button type="primary" size="small" @click="handleSaveTable">保存</el-button>
<el-button type="danger" size="small" @click="handleDelete">删除</el-button>
@ -278,13 +278,13 @@
<script>
export default {
props: {
archiveCaseCRFItem: {
type: Object,
default: () => { }
},
formContent: {
type: Object,
default: () => { }
},
onlyRead: {
type: Boolean,
default: false
}
},
data() {
@ -398,7 +398,6 @@ export default {
watch: {
operationRecord: {
handler(value) {
console.log(value)
},
deep: true,
immediate: true

12
src/components/360View/commonForm/eyesVision.vue

@ -1,6 +1,6 @@
<template>
<div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always">
<div class="btnBox">
<div class="btnBox" v-if="!onlyRead">
<el-button v-print="'#eyesFunc'" size="small">打印</el-button>
<el-button type="primary" size="small" @click="handleSaveTable">保存</el-button>
<el-button type="danger" size="small" @click="handleDelete">删除</el-button>
@ -334,13 +334,13 @@
<script>
export default {
props: {
archiveCaseCRFItem: {
type: Object,
default: () => { }
},
formContent: {
type: Object,
default: () => { }
},
onlyRead: {
type: Boolean,
default: false
}
},
data() {
@ -432,7 +432,6 @@ export default {
b: '',
c: ''
}]
}
},
computed: {
@ -457,7 +456,6 @@ export default {
setData() {
this.dataForm = this.formContent.a
this.tableData = this.formContent.b
console.log(this.tableData)
},
reSet() {
this.dataForm = {

11
src/components/360View/commonForm/optometryForm.vue

@ -1,6 +1,6 @@
<template>
<div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always">
<div class="btnBox">
<div class="btnBox" v-if="!onlyRead">
<el-button v-print="'#optomeFunc'" size="small">打印</el-button>
<el-button type="primary" size="small" @click="handleSaveTable">保存</el-button>
<el-button type="danger" size="small" @click="handleDelete">删除</el-button>
@ -315,13 +315,13 @@
<script>
export default {
props: {
archiveCaseCRFItem: {
type: Object,
default: () => { }
},
formContent: {
type: Object,
default: () => { }
},
onlyRead: {
type: Boolean,
default: false
}
},
data() {
@ -412,7 +412,6 @@ export default {
watch: {
operationRecord: {
handler(value) {
console.log(value)
},
deep: true,
immediate: true

10
src/components/360View/commonForm/threeVision.vue

@ -1,6 +1,6 @@
<template>
<div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always">
<div class="btnBox">
<div class="btnBox" v-if="!onlyRead">
<el-button v-print="'#threeFunc'" size="small">打印</el-button>
<el-button type="primary" size="small" @click="handleSaveTable">保存</el-button>
<el-button type="danger" size="small" @click="handleDelete">删除</el-button>
@ -201,13 +201,13 @@
<script>
export default {
props: {
archiveCaseCRFItem: {
type: Object,
default: () => { }
},
formContent: {
type: Object,
default: () => { }
},
onlyRead: {
type: Boolean,
default: false
}
},
data() {

11
src/components/360View/dataInfo.vue

@ -1,11 +1,16 @@
<template>
<div class="component-container info">
<div class="infoContainer">
<div v-if="foreList.length" style="padding: 6px">
<el-table
max-height="450"
:data="foreList"
style="width:100%;margin: 8px 8px 0 0"
>
<el-table-column
align="center"
type="index"
width="30"
/>
<el-table-column
align="center"
prop="name"
@ -321,8 +326,8 @@ export default {
</style>
<style lang="scss" scoped>
.info {
width: 600px;
.infoContainer {
width: 650px;
height: 100%;
overflow-y: auto;
.cell-cursor {

4
src/components/360View/followUpRecord/index.vue

@ -6,12 +6,12 @@
<!-- 随访内容 -->
<div class="content-left">
<div class="buttonBackground">
<el-button type="primary" plain size="small" icon="el-icon-plus" class="addfollow" @click="addFollowHandle">新增随访</el-button>
<el-button v-if="!onlyRead" type="primary" plain size="small" icon="el-icon-plus" class="addfollow" @click="addFollowHandle">新增随访</el-button>
</div>
<time-line-follow-up ref="timeline" :time-axis-data="timeAxisDataVisit" class="time-line" @refreshDataVisitList="childInit" />
</div>
<div class="content-right">
<div class="btnGroup">
<div class="btnGroup" v-if="!onlyRead">
<el-button type="primary" size="small" @click="addOrUpdateHandle()">保存</el-button>
<el-button type="danger" size="small" @click="deleteHandle">删除</el-button>
<el-button v-print="'#followFunc'" size="small">打印</el-button>

291
src/components/360View/forePart/index.vue

@ -1,38 +1,147 @@
<template>
<div class="foreBox">
<!-- <div class="btnBox">-->
<!-- <el-button v-print="'#foreCheck'" size="small">打印</el-button>-->
<!-- <el-button type="primary" size="small" @click="saveFore('2', '前段检查')">保存</el-button>-->
<!-- <el-button type="primary" size="small" @click="handleTemplate">保存为模板</el-button>-->
<!-- <div size="small" style="display:inline-block;margin-left:10px;text-align:center;width: 32px;height: 32px;background-color: #1e79ff;border-radius: 4px;vertical-align: bottom" @click="addForeData">-->
<!-- <img :src="require('@/assets/img/data.png')" alt="" style="width: 17px;height: 16px;margin-top: 5px">-->
<!-- </div>-->
<!-- </div>-->
<div class="moveIcon">
<p @click="moveAll(1)"><i class="el-icon-back" /></p>
<p style="margin-top: 5px" @click="moveAll(2)"><i class="el-icon-back" style="transform: rotateY(180deg)" /></p>
</div>
<div style="display: flex;margin-top: 32px">
<div style="width: 200px;padding-right: 8px;text-align: left">
<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" type="primary" size="small" @click="append(1)">+新增</el-button>
<el-tree
ref="tree"
:data="treeCaseList"
:props="treeProps"
:render-content="renderContent"
: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" icon="el-icon-plus" style="font-size: 12px;color: #409EFF" type="text" @click.stop="append(2, data)"></el-button>
<el-button icon="el-icon-delete" style="font-size: 12px;color: #F56C6C" type="text" @click.stop="remove(node, data)"></el-button>
</span>
</span>
</el-tree>
</div>
<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.sort === 1">
<span style="margin-right: 16px">结膜充血</span><treeSelect
v-model="scope.row.od"
:props="treeProps"
style="display: inline-block;width: 60%"
: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)"
@remove="removeTree"
/>
</span>
<span v-if="scope.row.sort === 2">
<span style="margin-right: 16px">结膜分泌物</span><treeSelect
v-model="scope.row.od"
:props="treeProps"
style="display: inline-block;width: 60%"
: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)"
@remove="removeTree"
/>
</span>
<span v-if="scope.row.sort === 99">
<treeSelect v-model="scope.row.od" :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>
</div>
<fore-form
:table-data="tableData"
@handleSelectionChange="handleSelectionChange"
@addTree="addTree"
</template>
</el-table-column>
<el-table-column
class="move"
align="center"
width="120"
>
<template slot-scope="scope">
<div>
<p @click="moveHandle(scope.$index,1, scope.row)"><i 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)" /></p>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="OS"
width="300"
>
<template slot-scope="scope">
<div>
<span v-if="scope.row.sort === 1">
<span style="margin-right: 16px">结膜充血</span><treeSelect
v-model="scope.row.os"
:props="treeProps"
style="display: inline-block;width: 60%"
: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)"
@remove="removeTree"
/>
</span>
<span v-if="scope.row.sort === 2">
<span style="margin-right: 16px">结膜分泌物</span><treeSelect
v-model="scope.row.os"
:props="treeProps"
style="display: inline-block;width: 60%"
: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)"
@remove="removeTree"
/>
</span>
<span v-if="scope.row.sort === 99">
<treeSelect v-model="scope.row.os" :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>
</div>
<el-dialog :title="title" :visible.sync="dialogFormVisible">
</template>
</el-table-column>
</el-table>
</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" />
@ -43,18 +152,20 @@
<el-button type="primary" @click="handSaveBtn"> </el-button>
</div>
</el-dialog>
<el-dialog title="保存模板" :visible.sync="templateFlag">
<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-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>
@ -69,15 +180,15 @@
<script>
import _ from 'lodash'
import eventBus from '@/page-subspecialty/utils/eventBus'
// import treeSelect from '@/components/360View/itemSelect'
import treeSelect from '@/components/360View/itemSelect'
import axios from 'axios'
import Cookies from 'js-cookie'
import ForeForm from '@/components/360View/medicalRecord/outPatientRecord/foreForm.vue'
const Base64 = require('js-base64').Base64
export default {
components: {
ForeForm
// treeSelect
ForeForm,
treeSelect
},
mixins: [],
props: {
@ -88,6 +199,10 @@ export default {
patientId: {
type: String,
default: ''
},
isSearch: {
type: String,
default: ''
}
},
inject: ['refresh'],
@ -264,25 +379,62 @@ export default {
const { data: res } = await this.$http.get('/case/getCase', {
params: {
patientId: this.patientId,
platform: 1,
platform: this.isSearch,
flag: flag // 1234
}
})
if (res.code === 0) {
this.tableData = res.data ? JSON.parse(res.data.jsonText) : []
this.tableData.forEach(item => {
item.flag = false
})
console.log(123, this.tableData)
this.collectId = res.data ? res.data.id : ''
} else {
this.$message.error(res.msg)
}
},
//
handleSelectionChange(val) {
this.multipleSelection = val
selection(selection, val) {
if (!val.id) {
const data = this.tableData.filter(item => item.name === val.name)
if (val.flag) {
data.forEach(row => {
row.flag = false
this.$refs.multipleTable.toggleRowSelection(row, false)
})
} else {
data.forEach(row => {
row.flag = true
this.$refs.multipleTable.toggleRowSelection(row, true)
})
}
} else {
const data = this.tableData.filter(item => item.id === val.id)
if (val.flag) {
data.forEach(row => {
row.flag = false
})
} else {
data.forEach(row => {
row.flag = true
})
}
}
},
// label
handleNode(index, type, event) {
if (type === 'os') {
this.tableData[index].osValue = event
} else {
this.tableData[index].odValue = event
}
},
//
addForeData() {
if (!this.multipleSelection.length) return this.$message.warning('请勾选数据!')
const data = this.multipleSelection.filter(item => {
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)
@ -297,7 +449,6 @@ export default {
}
})
Promise.all(treeList).then((result) => {
console.log(result)
if (result.length) {
result.forEach(item => {
item.forEach(row => {
@ -347,6 +498,49 @@ export default {
})
}
},
//
moveHandle(index, type, row) {
if (row.id) {
if (type === 1) {
this.tableData[index].od = row.os
this.tableData[index].odValue = row.osValue
} else {
this.tableData[index].os = row.od
this.tableData[index].osValue = row.odValue
}
const sort = this.tableData[index].sort
this.tableData[index].sort = ''
this.$nextTick(() => {
this.tableData[index].sort = sort
})
} else {
if (type === 1) {
this.tableData.forEach(item => {
if (item.name === 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 === row.name) {
item.os = item.od
item.osValue = item.odValue
const sort = item.sort
item.sort = ''
this.$nextTick(() => {
item.sort = sort
})
}
})
}
}
},
//
async saveFore() {
const params = {
@ -354,7 +548,7 @@ export default {
jsonText: JSON.stringify(this.tableData),
name: '前段检查',
patientId: this.patientId,
platform: '1'
platform: this.isSearch
}
let url = ''
if (this.collectId) {
@ -379,10 +573,13 @@ export default {
}
},
//
addTree() {
addTree(item, event) {
this.title = '新增子级'
this.addType = 1
this.form.name = ''
this.type = event.type
this.parentId = event.id
this.treeFlag = event.flag
this.dialogFormVisible = true
},
// -
@ -393,7 +590,7 @@ export default {
flag: this.treeFlag, // // 1,2
type: this.type,
parentId: this.parentId,
platform: 1
platform: this.isSearch
}
const { data: res } = await this.$http.post('/treetag/addTree', params)
if (res.code === 0) {
@ -406,7 +603,6 @@ export default {
},
//
removeTree(item) {
console.log(123, item)
this.type = item.type
this.deleteId = item.id
this.$confirm('确定删除该节点?', '提示', {
@ -458,7 +654,7 @@ export default {
params: {
doctorId: this.doctorId,
type: type,
platform: 1
platform: this.isSearch
}
}).then(res => {
if (res.data.code === 0) {
@ -478,7 +674,9 @@ export default {
//
this.$nextTick(() => {
this.tableData.forEach(item => {
if (item.flag) {
this.$refs.multipleTable.toggleRowSelection(item, true)
}
})
})
} else {
@ -498,7 +696,7 @@ export default {
},
//
async saveTreeTemplete() {
if (!this.treeId) return this.$message.warning('请选择节点!')
if (!this.treeId) return this.$message.warning('请选择目录!')
const params = {
caseJson: JSON.stringify(this.tableData),
doctorId: this.doctorId,
@ -530,7 +728,7 @@ export default {
name: this.form.name,
weight: this.weight,
parentId: this.parentId,
platform: 1
platform: this.isSearch
}
const { data: res } = await this.$http.post('/treetemplate/addTree', params)
if (res.code === 0) {
@ -576,26 +774,11 @@ export default {
this.$message.error(res.msg)
}
},
//
renderContent(h, { node, data, store }) {
return (
<span style='flex: 1; display: flex; align-items: center; justify-content: space-between; font-size: 14px; padding-right: 8px;'>
<span>
<span>{node.label}</span>
</span>
<span>
<el-button icon='el-icon-plus' style='font-size: 12px;color: black' type='text' on-click={ () => this.append(2, data) }>
</el-button>
<el-button icon='el-icon-delete' style='font-size: 12px;color: black' type='text' on-click={ () => this.remove(node, data) }>
</el-button>
</span>
</span>)
},
//
async queryTemplate() {
const { data: res } = await this.$http.get('/treetemplate/findTree', {
params: {
platform: 1,
platform: this.isSearch,
doctorId: this.doctorId
}
})
@ -623,7 +806,7 @@ export default {
const { data: res } = await this.$http.get('/treetemplate/findTreeCase', {
params: {
type: 2,
platform: 1,
platform: this.isSearch,
doctorId: this.doctorId
}
})
@ -640,8 +823,6 @@ export default {
.foreBox{
width: 100%;
height: 100%;
//padding: 16px;
box-sizing: border-box;
overflow-y: auto;
position: relative;
.btnBox{
@ -658,6 +839,9 @@ export default {
top: 40px;
z-index: 9;
}
.custom-tree-node{
width: 100%;
}
}
</style>
<style lang="scss">
@ -665,5 +849,8 @@ export default {
.el-form-item__content{
text-align: left;
}
.el-tree-node>.el-tree-node__children{
overflow-x: auto;
}
}
</style>

855
src/components/360View/forePart/index.vue.bak

@ -0,0 +1,855 @@
<template>
<div class="foreBox">
<div class="moveIcon">
<p @click="moveAll(1)"><i class="el-icon-back" /></p>
<p style="margin-top: 5px" @click="moveAll(2)"><i class="el-icon-back" style="transform: rotateY(180deg)" /></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" 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" icon="el-icon-plus" style="font-size: 12px;color: #409EFF" type="text" @click.stop="append(2, data)"></el-button>
<el-button icon="el-icon-delete" style="font-size: 12px;color: #F56C6C" type="text" @click.stop="remove(node, data)"></el-button>
</span>
</span>
</el-tree>
</div>
<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.sort === 1">
<span style="margin-right: 16px">结膜充血</span><treeSelect
v-model="scope.row.od"
:props="treeProps"
style="display: inline-block;width: 60%"
: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)"
@remove="removeTree"
/>
</span>
<span v-if="scope.row.sort === 2">
<span style="margin-right: 16px">结膜分泌物</span><treeSelect
v-model="scope.row.od"
:props="treeProps"
style="display: inline-block;width: 60%"
: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)"
@remove="removeTree"
/>
</span>
<span v-if="scope.row.sort === 99">
<treeSelect v-model="scope.row.od" :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>
</div>
</template>
</el-table-column>
<el-table-column
class="move"
align="center"
width="120"
>
<template slot-scope="scope">
<div>
<p @click="moveHandle(scope.$index,1, scope.row)"><i 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)" /></p>
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="OS"
width="300"
>
<template slot-scope="scope">
<div>
<span v-if="scope.row.sort === 1">
<span style="margin-right: 16px">结膜充血</span><treeSelect
v-model="scope.row.os"
:props="treeProps"
style="display: inline-block;width: 60%"
: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)"
@remove="removeTree"
/>
</span>
<span v-if="scope.row.sort === 2">
<span style="margin-right: 16px">结膜分泌物</span><treeSelect
v-model="scope.row.os"
:props="treeProps"
style="display: inline-block;width: 60%"
: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)"
@remove="removeTree"
/>
</span>
<span v-if="scope.row.sort === 99">
<treeSelect v-model="scope.row.os" :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>
</div>
</template>
</el-table-column>
</el-table>
</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 _ from 'lodash'
import eventBus from '@/page-subspecialty/utils/eventBus'
import treeSelect from '@/components/360View/itemSelect'
import axios from 'axios'
import Cookies from 'js-cookie'
import ForeForm from '@/components/360View/medicalRecord/outPatientRecord/foreForm.vue'
const Base64 = require('js-base64').Base64
export default {
components: {
treeSelect
},
mixins: [],
props: {
patientIdNumber: {
type: String,
default: ''
},
patientId: {
type: String,
default: ''
},
isSearch: {
type: String,
default: ''
}
},
inject: ['refresh'],
data() {
return {
userData: {},
title: '',
sourceData: [],
treeCaseList: [],
treeTemplate: [],
addType: '',
treeProps: {
value: 'id',
label: 'name',
children: 'child'
},
type: '',
doctorId: '',
deleteId: '',
treeId: '',
treeFlag: '',
treeName: '',
weight: '',
parentId: 0,
collectId: '',
form: {
name: ''
},
multipleSelection: [],
templateFlag: false,
dialogFormVisible: false,
tableData: [
{
name: '眼睑'
}, {
name: '眼睑',
sort: 99,
id: 1,
type: 'anion',
od: '',
os: ''
}, {
name: '结膜'
}, {
name: '结膜',
id: 2,
sort: 1,
type: 'jimmy',
od: '',
os: ''
}, {
name: '结膜',
id: 3,
sort: 2,
type: 'jimmy',
od: '',
os: ''
}, {
name: '泪器'
}, {
name: '泪器',
sort: 99,
id: 4,
type: 'liq',
od: '',
os: ''
}, {
name: '角膜'
}, {
name: '角膜',
sort: 99,
id: 5,
type: 'Giacomo',
od: '',
os: ''
}, {
name: '前房'
}, {
name: '前房',
sort: 99,
id: 6,
type: 'Jianfeng',
od: '',
os: ''
}, {
name: '虹膜'
}, {
name: '虹膜',
sort: 99,
id: 7,
type: 'mongo',
od: '',
os: ''
}, {
name: '瞳孔'
}, {
name: '瞳孔',
sort: 99,
id: 8,
type: 'tonguing',
od: '',
os: ''
}, {
name: '晶状体'
}, {
name: '晶状体',
sort: 99,
id: 9,
type: 'jingling',
od: '',
os: ''
}, {
name: '睫状体'
}, {
name: '睫状体',
sort: 99,
id: 10,
type: 'jingles',
od: '',
os: ''
}, {
name: '眼位'
}, {
name: '眼位',
sort: 99,
id: 11,
type: 'yawn',
od: '',
os: ''
}, {
name: '眼眶'
}, {
name: '眼眶',
sort: 99,
id: 12,
type: 'yanking',
od: '',
os: ''
}, {
name: '眼球运动'
}, {
name: '眼球运动',
sort: 99,
id: 13,
type: 'yang',
od: '',
os: ''
}]
}
},
watch: {
tableData: {
deep: true,
handler: (value) => {
if (value) {
eventBus.$emit('getForeData', value)
}
}
}
},
created() {
},
mounted() {
this.userData = JSON.parse(window.localStorage.getItem('qg-userData'))
this.doctorId = this.userData.id
this.getforeList('2').then(() => {
this.queryOptions()
})
//
this.queryTreeCase()
},
methods: {
async getforeList(flag) {
const { data: res } = await this.$http.get('/case/getCase', {
params: {
patientId: this.patientId,
platform: this.isSearch,
flag: flag // 1234
}
})
if (res.code === 0) {
this.tableData = res.data ? JSON.parse(res.data.jsonText) : []
this.tableData.forEach(item => {
item.flag = false
})
console.log(123, this.tableData)
this.collectId = res.data ? res.data.id : ''
} else {
this.$message.error(res.msg)
}
},
//
selection(selection, val) {
if (!val.id) {
const data = this.tableData.filter(item => item.name === val.name)
if (val.flag) {
data.forEach(row => {
row.flag = false
this.$refs.multipleTable.toggleRowSelection(row, false)
})
} else {
data.forEach(row => {
row.flag = true
this.$refs.multipleTable.toggleRowSelection(row, true)
})
}
} else {
const data = this.tableData.filter(item => item.id === val.id)
if (val.flag) {
data.forEach(row => {
row.flag = false
})
} else {
data.forEach(row => {
row.flag = true
})
}
}
},
// label
handleNode(index, type, event) {
if (type === 'os') {
this.tableData[index].osValue = event
} else {
this.tableData[index].odValue = event
}
},
//
addForeData() {
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 => {
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 = item.sort
item.sort = ''
this.$nextTick(() => {
item.sort = sort
})
}
})
})
})
}
this.sourceData = _.cloneDeep(this.tableData) || []
eventBus.$emit('getForeData', this.tableData)
}).catch((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(index, type, row) {
if (row.id) {
if (type === 1) {
this.tableData[index].od = row.os
this.tableData[index].odValue = row.osValue
} else {
this.tableData[index].os = row.od
this.tableData[index].osValue = row.odValue
}
const sort = this.tableData[index].sort
this.tableData[index].sort = ''
this.$nextTick(() => {
this.tableData[index].sort = sort
})
} else {
if (type === 1) {
this.tableData.forEach(item => {
if (item.name === 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 === row.name) {
item.os = item.od
item.osValue = item.odValue
const sort = item.sort
item.sort = ''
this.$nextTick(() => {
item.sort = sort
})
}
})
}
}
},
//
async saveFore() {
const params = {
flag: '2', // 1234
jsonText: JSON.stringify(this.tableData),
name: '前段检查',
patientId: this.patientId,
platform: this.isSearch
}
let url = ''
if (this.collectId) {
url = '/case/update'
params.id = this.collectId
} else {
url = '/case/save'
}
const { data: res } = await this.$http.post(url, params)
if (res.code === 0) {
this.$message.success('保存成功')
await this.getforeList('2')
} else {
this.$message.error(res.msg)
}
},
handSaveBtn() {
if (this.addType === 1) {
this.handleSaveTree()
} else {
this.handleSaveCase()
}
},
//
addTree(item, event) {
this.title = '新增子级'
this.addType = 1
this.form.name = ''
this.type = event.type
this.parentId = event.id
this.treeFlag = 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) {
// http://47.110.224.240:8036/xiangan-crf/treetag/findTree
// 47.110.224.240:8036
// 192.168.4.83:8036
return new Promise((resolve, reject) => {
axios.defaults.headers.common['token'] = Cookies.get('xa-token') || ''
axios.get('http://192.168.4.83:8036/xiangan-crf/treetag/findTree', {
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 = _.cloneDeep(this.sourceData)
}
},
//
handleTemplate() {
// if (!this.multipleSelection.length) return this.$message.warning('!')
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: 2, // 2 3
treeId: this.treeId
}
const { data: res } = await this.$http.post('/treetemplate/addTreeCase', params)
if (res.code === 0) {
this.templateFlag = false
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('删除成功')
this.queryTreeCase()
this.getforeList('2')
} 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: 2,
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>
.foreBox{
width: 100%;
height: 100%;
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% + 120px);
top: 40px;
z-index: 9;
}
.custom-tree-node{
width: 100%;
}
}
</style>
<style lang="scss">
.foreBox{
.el-form-item__content{
text-align: left;
}
.el-tree-node>.el-tree-node__children{
overflow-x: auto;
}
}
</style>

3
src/components/360View/img-reccrd.vue

@ -596,7 +596,8 @@ export default {
const params = {
searchType: this.examineType,
searchChild: this.searchChild,
patientId: this.patientInfo.patientId,
// patientId: this.patientInfo.patientId,
patientId: '2553716',
eyeType: this.eyeType,
fileType: this.fileType
}

6
src/components/360View/index1.vue

@ -46,7 +46,7 @@
<special :patient-id="patientId" :only-read="onlyRead" />
</el-tab-pane>
<el-tab-pane name="视光档案" label="视光档案" style="height: 100%" v-if="isSearch === '3'">
<opticalFile :patient-id="patientId" />
<opticalFile :patient-id="patientId" :only-read="onlyRead" />
</el-tab-pane>
<el-tab-pane name="诊断" label="诊断">
<el-table
@ -205,11 +205,12 @@
class="key-content"
v-bind="$attrs"
:patient-id="patientBaseData.patientId"
:patient-id-number="patientBaseData.patientIdNumber"
/>
<!-- 数据集-->
<dataInfo v-if="dataType === 2" :fore-list="foreList" :after-list="afterList" />
<!-- 病历收藏-->
<collection v-if="dataType === 3" />
<collection v-if="dataType === 3" :patient-id="patientBaseData.patientId" :platform="isSearch"/>
<!-- 常用业务-->
<business v-if="dataType === 4" />
</drawer>
@ -384,7 +385,6 @@ export default {
// }
});
window.open(href, '_blank');
// this.isActive = true
},
// 360
closePacs() {

9
src/components/360View/key-indicators.vue

@ -76,6 +76,10 @@ export default {
patientId: {
type: String,
default: ''
},
patientIdNumber: {
type: String,
default: ''
}
},
data() {
@ -170,7 +174,8 @@ export default {
const { data: res } = await this.$http.get('/patient/view/getKPIValue', {
params: {
id: obj.id,
patientId: this.patientId
patientId: this.patientId,
patientIdNumber: this.patientIdNumber
}
})
if (res.code === 0) {
@ -196,7 +201,7 @@ export default {
<style lang="scss" scoped>
.indicators {
width: 600px;
width: 650px;
padding: 12px 8px;
height: 100%;
background-color: white;

165
src/components/360View/medicalRecord/index.vue

@ -10,32 +10,10 @@
default-expand-all
:current-node-key="currentNodeKey"
node-key="id"
@node-click="handleMoveCopyNodeClick"
>
<span slot-scope="{ node, data }" class="custom-tree-node">
<span v-if="node.level === 1">{{ data.crfType ? data.crfType : 'H5问卷调查' }}</span>
<div
v-if="node.level !== 1"
class="tree-children"
:class="data.id === currentNodeKey ? 'CRFList-list-active' : ''"
@click="CRFListClick(data)"
>
<span
class="tree-date"
:class="data.id === currentNodeKey ? 'tree-date-active' : ''"
>{{ data.formDate }}</span>
<p class="tree-forname">{{ data.formName }}</p>
<el-button
type="text"
size="mini"
class="tree-button"
:class="data.id === currentNodeKey ? 'tree-button-active':''"
@click.stop="deleteCRFList(data)"
>
<i class="el-icon-delete" />
</el-button>
</div>
</span>
</el-tree>
<img v-if="noDataShow" src="@/assets/img/nodata.png" alt="" class="nodata">
@ -61,11 +39,9 @@
</div>
</div>
<div class="content-right">
<ourPatientRecord :patientId="patientId" :only-read="onlyRead"></ourPatientRecord>
<ourPatientRecord :patientId="patientId" :only-read="onlyRead" :is-search="isSearch"></ourPatientRecord>
</div>
</div>
<!-- 批量打印 -->
<!-- <add-print v-if="addPrintVisible" ref="addPrintRef" @closedDialog="addPrintVisible=false" />-->
</div>
</template>
<script>
@ -146,125 +122,6 @@ export default {
//
addRecord() {
},
// data Node
handleMoveCopyNodeClick(data) {
this.currentNodeKey = data.id
},
//
async getArchiveCaseList(archiveId, dataList) {
console.log(archiveId)
// this.crfIframeVisible = false
this.noDataShow = false
const { data: res } = await this.$http.get(`/medical/record/getList/${archiveId}`)
if (res.code === 0) {
this.archiveCaseCRFList = JSON.parse(JSON.stringify(res.data))
if (res.data.length > 0) {
dataList ? this.init(dataList) : this.init(res.data[0].list[0])
// this.archiveCaseCRFItem = res.data[0].list[0]
this.currentNodeKey = dataList ? dataList.id : res.data[0].list[0].id
this.noDataShow = false
} else {
this.crfIframeVisible = false
this.noDataShow = true
this.archiveCaseCRFItem = []
this.CRFLoading = false
return
}
} else {
this.$message.error(res.msg)
}
},
// crf
CRFListClick(item) {
// console.log(item)
// console.log(this.oldCRFListItem)
this.isClick = item.id !== this.oldCRFListItem.id
if (this.isClick) {
this.oldCRFListItem = item
console.log('点击crf列表', item)
this.isClick = false
item.isH5 === 1 ? this.$store.commit('initPlugin') : ''
this.init(item)
}
},
// 访
init(item) {
// console.log(item)questionList
item ? this.dataForm = { ...this.dataForm, ...item } : ''
this.crfIframeVisible = false
this.$nextTick(() => {
this.$http.get(`/visit/record/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
if (res.data) {
this.archiveCaseCRFItem = JSON.parse(JSON.stringify(res.data))
res.data.isH5 ? this.archiveCaseCRFItem.formContent = JSON.parse(this.archiveCaseCRFItem.formContent) : this.archiveCaseCRFItem = res.data
this.isEyeQuestionShow = true
this.dataForm = { ...this.dataForm, ...res.data }
this.dataForm.content = res.data.isH5 ? '' : Base64.decode(res.data.formContent)
this.crfIframeVisible = true
// console.log(this.dataForm)
this.dataForm.isWrite === 0 && (this.dataForm.crfDescription === '智能填充' || this.dataForm.crfDescription === '病历模板') ? this.getFirstFeedbackData('智能填充', this.dataForm.id) : this.CRFLoading = false
this.dataForm.crfDescription === '智能填充' ? this.getsaveOperaList(this.dataForm.id) : ''
}
}).catch(() => { })
})
},
// CRF
deleteCRFList(item) {
// console.log(item)
this.$confirmFun('你确定要删除此病例吗?').then(async() => {
const { data: res } = await this.$http.delete(`/medical/record/${item.id}`)
if (res.code === 0) {
this.getArchiveCaseList(this.currentArchiveList.id)
this.$message({
showClose: true,
message: '您已删除成功',
type: 'success'
})
} else {
this.$$message.error(res.msg)
}
})
},
// CRF
addOrUpdateHandle() {
this.$store.commit('destroyPlugin')
if (this.archiveCaseCRFItem.crfDescription === '病历模板') {
this.editFullCaseTemplateVisible = true
this.$nextTick(() => {
this.$refs.editFullCaseTemplateRef.dataForm.description = this.archiveCaseCRFItem.crfDescription
this.$refs.editFullCaseTemplateRef.dataForm.patientIdNumber = this.archiveCaseCRFItem.patientIdNumber
this.$refs.editFullCaseTemplateRef.dataForm.patientCentreId = this.archiveCaseCRFItem.patientCentreId
this.$refs.editFullCaseTemplateRef.dataForm.id = this.archiveCaseCRFItem.id
this.$refs.editFullCaseTemplateRef.dataForm.formDate = this.archiveCaseCRFItem.formDate
this.$refs.editFullCaseTemplateRef.init()
})
} else if (this.archiveCaseCRFItem.crfDescription === '智能填充') {
this.intelligentFullVisible = true
this.isJudgeSign = this.archiveCaseCRFItem.formName === '告知书'
console.log(this.archiveCaseCRFItem)
this.$nextTick(() => {
this.$refs.intelligentFullRef.dataForm.crfId = this.archiveCaseCRFItem.crfId
this.$refs.intelligentFullRef.dataForm.formId = this.archiveCaseCRFItem.id
this.$refs.intelligentFullRef.dataForm.formName = this.archiveCaseCRFItem.formName
this.$refs.intelligentFullRef.dataForm.isWrite = this.archiveCaseCRFItem.isWrite
this.$refs.intelligentFullRef.dataForm.patientIdNumber = this.archiveCaseCRFItem.patientIdNumber
this.$refs.intelligentFullRef.dataForm.formDate = this.archiveCaseCRFItem.formDate
this.$refs.intelligentFullRef.init()
})
} else {
this.followUpVisible = true
this.$nextTick(() => {
this.$refs.followUp.dataForm.crfId = this.archiveCaseCRFItem.crfId
this.$refs.followUp.dataForm.formId = this.archiveCaseCRFItem.id
this.$refs.followUp.dataForm.isWrite = this.archiveCaseCRFItem.isWrite
this.$refs.followUp.init()
})
}
},
//
comonFormListClick(index, item) {
@ -343,26 +200,6 @@ export default {
}
})
},
//
introduceClick(itemList) {
console.log(itemList)
this.$refs.crfEditorComponent.fullContent('右眼<input id="youyan" class="hminput border-1 " style="width: 120px; height: 18px; text-align: center;" title="" autocomplete="off" name="youyan" type="text" placeholder="" data-hm_id="youyan" data-hm_type="text" data-hm_required="false" data-hm_bd_id="DAT1_VA.OD_VAN" data-hm_bd_eye_type="" />左眼<input id="zuoyan" class="hminput border-1 " style="width: 120px; height: 18px; text-align: center;" title="" autocomplete="off" name="zuoyan" type="text" placeholder="" data-hm_id="zuoyan" data-hm_type="text" data-hm_required="false" data-hm_bd_id="DAT1_VA.OS_VAN" data-hm_bd_eye_type="" />')
},
async saveH5() {
const { data: res } = await this.$http.post('/visit/record/saveWriteVisit', {
formContent: JSON.stringify(this.archiveCaseCRFItem.formContent),
// inputDate: this.inputDate,
id: this.archiveCaseCRFItem.id
})
if (res.code === 0) {
this.$message({
message: '您已保存成功',
type: 'success'
})
} else {
this.$message.error(res.msg)
}
}
}
}
</script>

63
src/components/360View/opticalFile/index.vue

@ -19,7 +19,7 @@
</div>
<div class="record" @click="addRecord(1,'验光报告单')">
<p>验光报告单</p>
<img :src="require('@/assets/img/add.png')" alt="">
<img :src="require('@/assets/img/add.png')" alt="" v-if="!onlyRead">
</div>
<div class="comonForm-tab">
<el-radio-group v-model="formType" size="small">
@ -29,29 +29,27 @@
<div v-if="formType === '报告单'">
<div class="record">
<p>双眼视功能检查报告单</p>
<img :src="require('@/assets/img/add.png')" alt="" @click="addRecord(2,'双眼视功能检查报告单')">
<img v-if="!onlyRead" :src="require('@/assets/img/add.png')" alt="" @click="addRecord(2,'双眼视功能检查报告单')">
</div>
<div class="record">
<p>屈光发育档案</p>
<img :src="require('@/assets/img/add.png')" alt="" @click="addRecord(1,'屈光发育档案')">
<img v-if="!onlyRead" :src="require('@/assets/img/add.png')" alt="" @click="addRecord(1,'屈光发育档案')">
</div>
<div class="record" @click="addRecord(4,'三级视功能检查报告单')">
<p>三级视功能检查报告单</p>
<img :src="require('@/assets/img/add.png')" alt="" @click="addRecord(4,'三级视功能检查报告单')">
<img v-if="!onlyRead" :src="require('@/assets/img/add.png')" alt="" @click="addRecord(4,'三级视功能检查报告单')">
</div>
</div>
</div>
</div>
</div>
<div class="content-right">
<eyesVision v-if="name === '双眼视功能检查报告单'" ref="eyes" :form-content="eyesData" @save="updateForm" @del="deleteForm"/>
<optometryForm v-if="name === '验光报告单'" ref="optome" :form-content="optomeData" @save="updateForm" @del="deleteForm" />
<threeVision v-if="name === '三级视功能检查报告单'" ref="three" :form-content="threeData" @save="updateForm" @del="deleteForm" />
<deveopmentFile v-show="name === '屈光发育档案'" ref="deveope" :form-content="deveopData" @save="updateForm" @del="deleteForm" />
<eyesVision v-if="name === '双眼视功能检查报告单'" ref="eyes" :only-read="onlyRead" :form-content="eyesData" @save="updateForm" @del="deleteForm"/>
<optometryForm v-if="name === '验光报告单'" ref="optome" :only-read="onlyRead" :form-content="optomeData" @save="updateForm" @del="deleteForm" />
<threeVision v-if="name === '三级视功能检查报告单'" ref="three" :only-read="onlyRead" :form-content="threeData" @save="updateForm" @del="deleteForm" />
<deveopmentFile v-show="name === '屈光发育档案'" ref="deveope" :only-read="onlyRead" :form-content="deveopData" @save="updateForm" @del="deleteForm" />
</div>
</div>
<!-- 批量打印 -->
<!-- <add-print v-if="addPrintVisible" ref="addPrintRef" @closedDialog="addPrintVisible=false" />-->
</div>
</template>
<script>
@ -79,6 +77,10 @@ export default {
patientId: {
type: String,
default: ''
},
onlyRead: {
type: Boolean,
default: false
}
},
inject: ['refresh'],
@ -101,7 +103,6 @@ export default {
},
methods: {
handleForm(index, item) {
console.log(item)
this.curIndex = index
this.id = item.id
this.name = item.name
@ -173,8 +174,6 @@ export default {
}
},
async updateForm(data) {
console.log(data)
// const data = data
const params = {
flag: 6,
name: this.name,
@ -191,8 +190,7 @@ export default {
this.$message.error(res.msg)
}
},
async deleteForm(data) {
console.log(data)
async deleteForm() {
const params = {
id: this.id
}
@ -220,41 +218,6 @@ export default {
} else {
this.$message.error(res.msg)
}
},
// async getSingleForm() {
// const { data: res } = await this.$http.get('/case/getCase', {
// params: {
// patientId: this.patientId,
// platform: 2,
// flag: 6
// }
// })
// if (res.code === 0) {
// this.collectId = res.data ? res.data.id : ''
// } else {
// this.$message.error(res.msg)
// }
// },
//
// tab
handleClick(el) {
this.comonFormCurrentIndex = 0
},
// CRF
printerHandle() {
this.$refs.crfComponent.$el.contentWindow.print()
},
//
allPrintPreview() {
this.addPrintVisible = true
this.$nextTick(() => {
this.$refs.addPrintRef.archiveId = this.currentArchiveList.id
this.$refs.addPrintRef.init()
})
},
//
handlePrint() {
this.archiveCaseCRFItem.formName === '眼科病史问卷调查' ? this.printPage('eyeQuestionPrint') : this.printPage('beforeOperationPrint')
}
}
}

31
src/components/360View/overView/index.vue

@ -6,7 +6,7 @@
<span class="time">{{ item.createTime }}</span>
</div>
<div v-if="item.category === '门诊'" style="width: 100%;padding-right: 24px;display: flex;justify-content: space-between">
<div>
<div style="margin-right: 32px">
<p class="info">
<span class="mr16">主诉:</span>
<span>{{ item.zs }}</span>
@ -96,8 +96,7 @@ export default {
async getHistoryData() {
const { data: res } = await this.$http.get('/patient/view/getHistory', {
params: {
patientId: '797064'
// patientId: this.patientId
patientId: this.patientId
}
})
if (res.code === 0) {
@ -106,32 +105,6 @@ export default {
this.tableData = []
this.$message.error(res.msg)
}
},
handleSelectionChange(val) {
this.multipleSelection = val
},
//
handleRecord() {
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
if (rowIndex % 2 === 0) {
return {
rowspan: 2,
colspan: 1
}
} else {
return {
rowspan: 0,
colspan: 0
}
}
}
},
// data Node
handleMoveCopyNodeClick(data) {
this.currentNodeKey = data.id
}
}
}

11
src/components/360View/routine/index.vue

@ -24,9 +24,9 @@
/>
</el-select>
</div>
<div v-if="onlyRead">
<div v-if="!onlyRead">
<div size="small" style="display:inline-block;margin-left:10px;width: 32px;height: 32px;line-height:32px;text-align:center;background-color: #1e79ff;border-radius: 4px;vertical-align: middle" @click="addDataList">
<img :src="require('@/assets/img/data.png')" alt="" style="width: 17px;height: 16px;margin-bottom: 2px">
<img :src="require('@/assets/img/data.png')" alt="" style="width: 17px;height: 16px;margin-bottom: 4px">
</div>
</div>
</div>
@ -238,9 +238,6 @@ export default {
shiliLast: [],
yanyaLast: []
}
},
watch: {
},
created() {
@ -252,9 +249,9 @@ export default {
async getroutineDataData() {
const { data: res } = await this.$http.get('/patient/view/getVaAndIopAndRefAndLast', {
params: {
patientId: '797064',
patientId: this.patientId,
date: ''
// patientId: this.patientId
// patientId: this.patientId 797064
}
})
if (res.code === 0) {

101
src/components/360View/special/index.vue

@ -1,39 +1,44 @@
<template>
<div class="specialBox">
<el-table
:data="tableData"
style="width: 100%;margin-top: 16px"
>
<el-table-column
prop="examTime"
label="时间"
width="180"
/>
<el-table-column
prop="examineItem"
label="检查项目"
width="180"
/>
<el-table-column
prop="name"
label="检查报告"
width="180"
<div class="examineBox">
<el-table
:data="tableData"
style="width: 100%;margin-top: 16px"
>
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.prevent="handleRecord(scope.row)">
当次报告
</el-button>
<el-button type="text" size="small" @click.native.prevent="handleRecord(scope.row)">
所有报告
</el-button>
</template>
</el-table-column>
</el-table>
<div style="margin: 16px 0 0 16px">
<el-table-column
prop="examTime"
label="时间"
width="160"
/>
<el-table-column
prop="examineItem"
label="检查项目"
width="180"
/>
<el-table-column
prop="name"
label="检查报告"
width="200"
>
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.prevent="handleRecord(scope.row)">
当次报告
</el-button>
<el-button type="text" size="small" @click.native.prevent="handleRecord(scope.row)">
所有报告
</el-button>
<el-button type="text" size="small" @click.native.prevent="handleData(scope.row)">
提取数据
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="examineData">
<div style="display: flex;justify-content: space-between">
<span style="font-size: 16px;font-weight: 500;color: rgba(0, 0, 0, 0.88);margin-top: 4px">提取数据</span>
<div v-if="onlyRead" size="small" style="display:inline-block;margin-left:10px;width: 32px;height: 32px;line-height:32px;text-align:center;background-color: #1e79ff;border-radius: 4px;vertical-align: middle" @click="addDataList">
<img :src="require('@/assets/img/data.png')" alt="" style="width: 17px;height: 16px;margin-bottom: 2px">
<div v-if="!onlyRead" size="small" style="display:inline-block;margin-left:10px;width: 32px;height: 32px;line-height:32px;text-align:center;background-color: #1e79ff;border-radius: 4px;vertical-align: middle" @click="addDataList">
<img :src="require('@/assets/img/data.png')" alt="" style="width: 17px;height: 16px;margin-bottom: 4px">
</div>
</div>
<el-table
@ -97,12 +102,12 @@ export default {
onlyRead: {
type: Boolean,
default: false
},
}
},
inject: ['refresh'],
data() {
return {
date: '2017-06-20',
date: '',
examNo: '',
examineItem: '',
multipleSelection: [],
@ -124,8 +129,9 @@ export default {
async getSpecialItem() {
const { data: res } = await this.$http.get('/patient/view/getExamineItem', {
params: {
patientId: '1693275',
date: this.date
// patientId: '2553716'
patientId: '1693275'
// date: this.date
}
})
if (res.code === 0) {
@ -133,7 +139,7 @@ export default {
if (res.data.length) {
this.examNo = res.data[0].examNo
this.examineItem = res.data[0].examineItem
// this.getItemData()
this.getItemData()
}
} else {
this.tableData = []
@ -152,7 +158,7 @@ export default {
if (res.code === 0) {
this.extractData = res.data || []
} else {
this.$message.error(res.msg)
// this.$message.error(res.msg)
}
},
handleSelectionChange(val) {
@ -175,9 +181,14 @@ export default {
this.$message.error(res.msg)
}
},
//
handleData(item) {
this.examNo = item.examNo
this.examineItem = item.examineItem
this.getItemData()
},
//
handleRecord(item) {
console.log(item)
handleRecord() {
this.isActive = true
},
// 360
@ -186,7 +197,6 @@ export default {
},
//
addDataList() {
console.log(this.multipleSelection)
const data = this.multipleSelection
eventBus.$emit('sendForData', data)
}
@ -200,7 +210,16 @@ export default {
display: flex;
box-sizing: border-box;
overflow-y: auto;
.examineBox{
height: 100%;
overflow: auto;
}
.examineData{
padding: 16px 0 0 16px;
height: 100%;
overflow: auto;
box-sizing: border-box;
}
.header{
width: 100%;
display: flex;

59
src/components/360View/specialExamine/index.vue

@ -1,4 +1,5 @@
<template>
<!-- 专科检查-->
<div class="examineBox">
<div style="display: flex;margin-top: 32px">
<el-table
@ -127,6 +128,30 @@
</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<span
class="cell-cursor"
style="margin-left: 5px;"
:class="scope.$index === 0 ? 'table-column-disable' : ''"
@click="handleMove(scope, 'up', tableData)"
>上移</span>
<span
class="cell-cursor"
style="margin-left: 5px;"
:class="scope.$index === tableData.length - 1 ? 'table-column-disable' : ''"
@click="handleMove(scope, 'down', tableData)"
>下移</span>
<span
class="cell-cursor"
style="margin-left: 5px;color: #FF4D4F"
@click="handleDel(scope.$index, tableData)"
>
删除
<!-- <i class="el-icon-delete"></i>-->
</span>
</template>
</el-table-column>
</el-table>
</div>
</div>
@ -150,6 +175,10 @@ export default {
patientId: {
type: String,
default: ''
},
isSearch: {
type: String,
default: ''
}
},
inject: ['refresh'],
@ -174,7 +203,7 @@ export default {
const { data: res } = await this.$http.get('/case/getCase', {
params: {
patientId: this.patientId,
platform: 1,
platform: this.isSearch,
flag: 4
}
})
@ -192,7 +221,7 @@ export default {
jsonText: JSON.stringify(this.tableData),
name: '专科检查',
patientId: this.patientId,
platform: 1
platform: this.isSearch
}
let url = ''
if (this.collectId) {
@ -208,7 +237,26 @@ export default {
} else {
this.$message.error(res.msg)
}
},
//
handleMove(scope, moveType, list) {
const { $index } = scope
if (moveType === 'up') {
if ($index === 0) return
const isUp = list[$index - 1]
list.splice($index - 1, 1)
list.splice($index, 0, isUp)
} else {
if ($index === list.length - 1) return
const isDown = list[$index + 1]
list.splice($index + 1, 1)
list.splice($index, 0, isDown)
}
},
//
handleDel(index, list) {
list = list.splice(index, 1)
},
}
}
</script>
@ -233,6 +281,13 @@ export default {
top: 40px;
z-index: 9;
}
.cell-cursor {
cursor: pointer;
color: #1e79ff;
}
.table-column-disable {
color: #dddd;
}
}
</style>
<style lang="scss">

2
src/components/360View/time-line-follow-up.vue

@ -38,7 +38,7 @@
</div>
</div>
</div>
<div v-else class="empty"></div>
<div v-else class="empty"></div>
</div>
</template>

2
src/components/360View/time-line.vue

@ -4,7 +4,7 @@
<!-- <el-button slot="append" icon="el-icon-search"></el-button>-->
<!-- </el-input>-->
<div v-if="timeAxisData.length>0" :class="activeNames==1 ? 'scroll-father-open':'scroll-father-close'">
<el-scrollbar class="scrollbar-wrapper" style="height:100%;padding-bottom: 30px">
<el-scrollbar class="scrollbar-wrapper" style="height:100%;">
<div v-for="(item,index) in timeAxisData" :key="index">
<!-- 年份 -->
<div class="time-line-year">

41
src/page-subspecialty/views/modules/optometryManagement/dioptric/index.vue

@ -77,19 +77,19 @@
<el-table-column prop="mzDoctorName" label="门诊医师" header-align="center" align="center" />
<el-table-column prop="sgDoctorName" label="视光医师" header-align="center" align="center" />
<el-table-column prop="createDate" label="就诊时间" header-align="center" align="center" />
<!-- <el-table-column prop="callSort" label="分诊序号" header-align="center" align="center" />-->
<!-- <el-table-column prop="callStatus" label="叫号状态" header-align="center" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.callStatus | callStatus }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column prop="callSort" label="分诊序号" header-align="center" align="center" />-->
<!-- <el-table-column prop="callStatus" label="叫号状态" header-align="center" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.callStatus | callStatus }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column prop="operation" label="操作" header-align="center" align="center" width="180">
<template slot-scope="scope">
<!-- <span-->
<!-- style="color: #1890ff; padding-right: 8px"-->
<!-- class="operation-details"-->
<!-- @click="browseClick(scope.row)"-->
<!-- >叫号</span>-->
<!-- <span-->
<!-- style="color: #1890ff; padding-right: 8px"-->
<!-- class="operation-details"-->
<!-- @click="browseClick(scope.row)"-->
<!-- >叫号</span>-->
<!-- v-if="scope.row.callStatus !== '1' && scope.row.callStatus !== '3' && scope.row.callStatus !== '5'"-->
<span
style="color: #1890ff; padding-right: 8px"
@ -112,7 +112,7 @@
<!-- HIS引入弹框 -->
<his-add v-if="HisAddVisible" ref="HisAddRef" :is-search="'3'" />
<!-- 详情页 -->
<detail-view v-if="detailViewVisible" ref="viewRef" platform="3" :only-read="onlyRead" :is-search="'3'" :patient-id="patientId" :patient-id-number="patientIdNumber" @detailViewVisible="detailViewVisible=false" />
<detail-view v-if="detailViewVisible" ref="viewRef" :only-read="onlyRead" :isSearch="'3'" :patient-id="patientId" :patient-id-number="patientIdNumber" @detailViewVisible="detailViewVisible=false" />
</div>
</template>
<script>
@ -234,17 +234,6 @@ export default {
detailId: ''
}
},
watch: {
$route(val) {
//
this.isShowPatient = !(val.matched.length > 2)
}
},
created() {
this.isShowPatient = !(this.$route.matched.length > 2)
// this.getDoctorName()
// this.gettPatType()
},
methods: {
//
browseClick(scopeRow) {
@ -287,12 +276,6 @@ export default {
this.$refs.viewRef.getPatientData()
// // --
this.$refs.viewRef.getTimeAxisData()
// // tab
// this.$refs.viewRef.visible = true
// this.$refs.viewRef.drawer = true
// this.$refs.viewRef.isActive = 1
// this.$refs.viewRef.init()
// this.$refs.viewRef.setIndex()
})
},
// His

4
src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue

@ -90,12 +90,12 @@
<span
style="color: #1890ff; padding-right: 8px"
class="operation-details"
@click="browseClick(scope.row)"
@click="showDetail(scope.row, 1)"
>开始</span>
<span
style="color: #1890ff; padding-right: 8px"
class="operation-details"
@click="browseClick(scope.row)"
@click="showDetail(scope.row, 1)"
>结束</span>
<span
style="color: #1890ff; padding-right: 8px"

1
src/page-subspecialty/views/modules/seeDoctor/archives/index.vue

@ -751,7 +751,6 @@ export default {
.custom-tree-node {
flex: 1;
padding-top: 6px;
overflow: hidden;
}
.tree-forname {
white-space: nowrap;

Loading…
Cancel
Save