Browse Source

doctor

master
pengjun 2 years ago
parent
commit
8643f9e915
  1. 115
      src/components/doctorCheck/CheckItemList.vue
  2. 1
      src/components/patientRegister/PatientRegisterEdit.vue

115
src/components/doctorCheck/CheckItemList.vue

@ -1,24 +1,57 @@
<template>
<div>
<el-table :data="doctorCheck.checkItemList" style="width: 100%" :height="window.pageHeight < 600
? Math.floor(((420 - (isCheckPicture ? 110 : 0)) * 3) / 5)
: Math.floor(((window.pageHeight - 260 - (isCheckPicture ? 110 : 0)) * 3) / 5)
" border highlight-current-row @row-click="rowClick" size="small">
<el-table :data="doctorCheck.checkItemList" style="width: 100%" :height="tableHeight" border highlight-current-row
@row-click="rowClick" size="small">
<el-table-column prop="itemName" label="项目" width="180" />
<el-table-column prop="result" label="结果" min-width="200">
<template slot-scope="scope">
<el-autocomplete style="width: 100%;" type="textarea" v-model="scope.row.result"
:fetch-suggestions="querySearch" placeholder="请输入结果值" @select="handleSelect" :disabled="scope.row.isCalculationItem == 'Y' ||
doctorCheck.RegisterCheckEdit.completeFlag == '1' ||
doctorCheck.RegisterCheckEdit.completeFlag == '2'
" :autosize="{ minRows: 1, maxRows: 100 }" :data-lineModeFlag="scope.row.lineModeFlag"
@input="madeTooltips(scope.$index); computeFun(scope.$index)" v-bind:class="scope.row.class" />
<div style="display: flex;">
<el-input v-if="scope.row.lineModeFlag == '0'" style="width: 100%;" v-model="scope.row.result"
placeholder="请输入结果值" @select="handleSelect" :disabled="rowResultDisabled(scope.row)"
:data-lineModeFlag="scope.row.lineModeFlag" size="small"
@input="madeTooltips(scope.$index); computeFun(scope.$index)" v-bind:class="scope.row.class">
</el-input>
<el-input v-else style="width: 100%;" type="textarea" v-model="scope.row.result" placeholder="请输入结果值"
@select="handleSelect" :disabled="rowResultDisabled(scope.row)" :autosize="{ minRows: 2, maxRows: 100 }"
:data-lineModeFlag="scope.row.lineModeFlag" @input="madeTooltips(scope.$index); computeFun(scope.$index)"
v-bind:class="scope.row.class">
</el-input>
<el-button type="danger" style="min-width:23px;padding:2px;" icon="el-icon-caret-bottom"
@click="btnMoreResult(scope.row, scope.$index)" :disabled="rowResultDisabled(scope.row)"
size="small"></el-button>
</div>
</template>
</el-table-column>
<el-table-column prop="unit" label="单位" width="80" align="center" />
<el-table-column prop="referenceRangeValue" label="参考范围" width="80" align="center" />
<el-table-column prop="tooltips" label="提示" width="40" align="center" />
</el-table>
<!--弹窗-->
<div>
<!-- 体检人员登记 -->
<el-dialog title="结果录入模版" :visible.sync="dialogWinMoreResult" width="800px" :close-on-click-modal="false"
@close="close_dialogWinMoreResult">
<div style="margin-top: -10px;">
<div style="overflow-y:auto; height:300px;width:100%;display: flex;flex-wrap: wrap;align-content: flex-start;">
<div v-for="item in moreResult.data" :key="item.id" style="margin: 5px;cursor:pointer;"
@click="clickResult(item)" @dblclick="dblclickResult(item)">
<el-tag size="samll">
<i class="el-icon-star-off" style="padding-right: 10px;"></i>{{ item.result }}
</el-tag>
</div>
</div>
<div>录入结果</div>
<el-input style="width: 100%;" type="textarea" :autosize="{ minRows: 4, maxRows: 4 }"
v-model="moreResult.result" />
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="btnOkResult"> </el-button>
<el-button @click="dialogWinMoreResult = false">关闭</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
@ -53,6 +86,13 @@ export default {
restaurants: [], //
currentRow: -1, //
dialogWinMoreResult: false,
moreResult: {
data: [],
result: '',
index: 0, //
}, //
};
},
@ -65,6 +105,12 @@ export default {
computed: {
...mapState(["window", "dataTransOpts", "dict", "doctorCheck"]),
tableHeight() {
let temp = this.window.pageHeight < 600 ? 600 : this.window.pageHeight
return Math.floor((temp - 260 - (this.isCheckPicture ? 110 : 0)) * 3 / 5);
},
},
methods: {
@ -210,6 +256,11 @@ export default {
// console.log(`this.${tooltips}`,this[tooltips])
},
//
rowResultDisabled(row) {
return row.isCalculationItem == 'Y' || this.doctorCheck.RegisterCheckEdit.completeFlag == '1' || this.doctorCheck.RegisterCheckEdit.completeFlag == '2'
},
//
computeFun(index) {
let checkItem = this.doctorCheck.checkItemList[index]
@ -243,6 +294,50 @@ export default {
})
},
//
btnMoreResult(row, index) {
this.moreResult.data = deepCopy(row.itemResultTemplates)
this.moreResult.result = row.result
this.moreResult.index = index
// "itemId": "3a0c517f-cbdb-9fff-e300-1f76b3e47580",
// "result": "00000",
// "diagnosisId": "3a0ed8a2-72d9-ee50-78aa-5b1f474f2921",
// "isNameIntoSummary": "N",
// "isResultIntoSummary": "Y",
// "resultStatusId": "01",
// "simpleCode": "0"
this.dialogWinMoreResult = true
},
//
dblclickResult(item) {
this.moreResult.result = ''
this.clickResult(item)
this.btnOkResult()
},
//
clickResult(item) {
let result = []
if (this.moreResult.result) result = this.moreResult.result.split(';')
if (result.indexOf(item.result) > -1) return
result.push(item.result)
let ret = ''
result.forEach((e, i) => {
let splitStr = ';'
if (i == 0) splitStr = ''
ret += splitStr + e
});
this.moreResult.result = ret
},
btnOkResult() {
this.doctorCheck.checkItemList[this.moreResult.index].result = this.moreResult.result
this.madeTooltips(this.moreResult.index);
this.computeFun(this.moreResult.index)
this.dialogWinMoreResult = false
},
//
rowClick(row) {
this.doctorCheck.checkItem = row;

1
src/components/patientRegister/PatientRegisterEdit.vue

@ -1779,7 +1779,6 @@ export default {
}
});
});
});
},

Loading…
Cancel
Save