luobinjie 5 months ago
parent
commit
5fc8b951f3
  1. 48
      src/components/doctorCheck/CheckSumSug.vue
  2. 45
      src/components/doctorCheck/PatientRegisterBase.vue
  3. 7
      src/components/sumDoctorCheck/CheckDetails.vue
  4. 203
      src/components/sumDoctorCheck/SumSug.vue
  5. 395
      src/views/diagnosis/diagnosis.vue
  6. 3
      src/views/fee-settings/Asbitem.vue
  7. 10
      src/views/fee-settings/Item.vue

48
src/components/doctorCheck/CheckSumSug.vue

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<div style="display: flex;">
<div :style="`width:${sumWidth}px;`" @dblclick.prevent="blClick">
<div style="display: flex;" @contextmenu="onContextmenu">
<div :style="`width:${sumWidth}px;`" @dblclick="blClick">
<el-table id="tableSummary" row-key="id" :data="doctorCheck.checkSummaryList" size="samll" :height="sumHeight" <el-table id="tableSummary" row-key="id" :data="doctorCheck.checkSummaryList" size="samll" :height="sumHeight"
width="100%" border> width="100%" border>
<el-table-column width="30" align="center"> <el-table-column width="30" align="center">
@ -193,6 +193,14 @@ export default {
// //
mounted() { mounted() {
// Electron
if (this.$peisAPI) {
this.$peisAPI.onContextMenuAction((data) => {
this.onContextMenuDIY(data)
});
}
this.rowDrop(); this.rowDrop();
if(this.doctor_check_disp_suggestion == 'Y') this.rowDropSuggestion() if(this.doctor_check_disp_suggestion == 'Y') this.rowDropSuggestion()
@ -409,6 +417,42 @@ export default {
} }
this.btnMakeDiagnosis() this.btnMakeDiagnosis()
}, },
//
onContextmenu(event) {
if (!this.$peisAPI) {
return
}
let menus = [
// { type: 'separator' },
// { label: '', itemId: '', enabled: true },
// {
// label: '',
// submenu: [
// { label: '', itemId: '', enabled: true }
// ]
// }
]
this.$peisAPI.showContextMenu(menus)
.then(res => {
console.log('res', res)
})
.catch(err => {
console.log('err', err)
})
.finally(() => {
console.log('finally')
})
},
//
onContextMenuDIY(data){
this.$message({showClose:true,message:data})
}
}, },
// //

45
src/components/doctorCheck/PatientRegisterBase.vue

@ -1,5 +1,5 @@
<template> <template>
<div>
<div @contextmenu="onContextmenu">
<div style="display: flex; flex-wrap: wrap;height:70px; width: 100%;overflow-y: auto;"> <div style="display: flex; flex-wrap: wrap;height:70px; width: 100%;overflow-y: auto;">
<div> <div>
<span class="query">条码号</span> <span class="query">条码号</span>
@ -156,6 +156,13 @@ export default {
// //
mounted() { mounted() {
// Electron
if (this.$peisAPI) {
this.$peisAPI.onContextMenuAction((data) => {
this.onContextMenuDIY(data)
});
}
// //
this.enterToQuery() this.enterToQuery()
@ -476,6 +483,42 @@ export default {
}); });
}, },
//
onContextmenu(event) {
if (!this.$peisAPI) {
return
}
let menus = [
// { type: 'separator' },
// { label: '', itemId: '', enabled: true },
// {
// label: '',
// submenu: [
// { label: '', itemId: '', enabled: true }
// ]
// }
]
this.$peisAPI.showContextMenu(menus)
.then(res => {
console.log('res', res)
})
.catch(err => {
console.log('err', err)
})
.finally(() => {
console.log('finally')
})
},
//
onContextMenuDIY(data){
this.$message({showClose:true,message:data})
}
}, },
watch: { watch: {

7
src/components/sumDoctorCheck/CheckDetails.vue

@ -10,12 +10,13 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div :style="`overflow: scroll;padding-left:10px;width:${(window.pageWidth - 180 - 110 - 25)}px;height:${divHeight}px;`">
<div
:style="`overflow: scroll;padding-left:10px;width:${(window.pageWidth - 180 - 110 - 25)}px;height:${divHeight}px;`">
<table width="100%" border="1" cellspacing="0" bordercolor="#909399" <table width="100%" border="1" cellspacing="0" bordercolor="#909399"
style="font-size:14px;border-collapse:collapse;"> style="font-size:14px;border-collapse:collapse;">
<tr height="24"> <tr height="24">
<td width="200" class="tdCellClass">{{ details.asbitemNames }}</td> <td width="200" class="tdCellClass">{{ details.asbitemNames }}</td>
<td width="604" class="tdCellClass" colspan="7">{{ '检查日期:' + details.checkDate.substring(0, 10) + ' 检查医生:' +
<td width="604" class="tdCellClass" colspan="7">{{ '检查日期:' + details.checkDate + ' 检查医生:' +
details.checkDoctorName details.checkDoctorName
}}</td> }}</td>
</tr> </tr>
@ -126,6 +127,7 @@ export default {
mergeSummarys(array, itemKey) { mergeSummarys(array, itemKey) {
let ret = '' let ret = ''
if (Array.isArray(array) && array.length > 0) {
array.forEach((e, i) => { array.forEach((e, i) => {
//let splitStr = "<br>" //let splitStr = "<br>"
if (i == 0) { if (i == 0) {
@ -136,6 +138,7 @@ export default {
ret += ` ${Number(i) + 1}.${e[itemKey]}` ret += ` ${Number(i) + 1}.${e[itemKey]}`
} }
}) })
}
return ret return ret
}, },

203
src/components/sumDoctorCheck/SumSug.vue

@ -6,7 +6,7 @@
:style="`position: absolute; top: 0px; left: ${Math.floor((window.pageWidth - 120) / 2) - 110}px; display: flex;z-index: 3;`"> :style="`position: absolute; top: 0px; left: ${Math.floor((window.pageWidth - 120) / 2) - 110}px; display: flex;z-index: 3;`">
<div v-show="checkPagePriv(pagePriv.privs, '新增综述')"> <div v-show="checkPagePriv(pagePriv.privs, '新增综述')">
<el-button style="height: 28px;" class="commonbutton" @click="addSummary" <el-button style="height: 28px;" class="commonbutton" @click="addSummary"
:disabled="sumBtnDisabled('addSummary')">新增综述</el-button>
:disabled="sumBtnDisabledAddSummary">新增综述</el-button>
</div> </div>
</div> </div>
<div style="width:50%;background-color: #B9CEE9;"> <div style="width:50%;background-color: #B9CEE9;">
@ -24,13 +24,13 @@
<div> <div>
<div style="display: flex;"> <div style="display: flex;">
<el-input v-model="scope.row.summaryTitle" placeholder="请输入综述" :ref="scope.row.id" :id="scope.row.id" <el-input v-model="scope.row.summaryTitle" placeholder="请输入综述" :ref="scope.row.id" :id="scope.row.id"
:disabled="sumBtnDisabled('addSummary')"></el-input>
:disabled="sumBtnDisabledAddSummary"></el-input>
<el-button v-show="checkPagePriv(pagePriv.privs, '新增综述明细')" icon="el-icon-plus" <el-button v-show="checkPagePriv(pagePriv.privs, '新增综述明细')" icon="el-icon-plus"
style="min-width:21px;height:21px;padding:2px;" @click="addSum(scope.$index)" style="min-width:21px;height:21px;padding:2px;" @click="addSum(scope.$index)"
:disabled="sumBtnDisabled('addSummary')"></el-button>
:disabled="sumBtnDisabledAddSummary"></el-button>
<el-button v-show="checkPagePriv(pagePriv.privs, '删除综述')" type="danger" icon="el-icon-delete" <el-button v-show="checkPagePriv(pagePriv.privs, '删除综述')" type="danger" icon="el-icon-delete"
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;" @click="delSumHead(scope.$index)"
:disabled="sumBtnDisabled('addSummary')"></el-button>
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;background-color: red;" @click="delSumHead(scope.$index)"
:disabled="sumBtnDisabledAddSummary"></el-button>
</div> </div>
<el-table :id="scope.row.id" :row-key="scope.$index + scope.row.id" style="margin-left: 10px;" <el-table :id="scope.row.id" :row-key="scope.$index + scope.row.id" style="margin-left: 10px;"
:data="scope.row.details" border @row-click="rowClick" :show-header="false"> :data="scope.row.details" border @row-click="rowClick" :show-header="false">
@ -43,13 +43,13 @@
<template slot-scope="scope2"> <template slot-scope="scope2">
<div style="display: flex;"> <div style="display: flex;">
<el-input type="textarea" v-model="scope2.row.summaryContent" placeholder="请输入综述" <el-input type="textarea" v-model="scope2.row.summaryContent" placeholder="请输入综述"
:disabled="sumBtnDisabled('addSummary')" :id="scope2.row.id" :ref="scope2.row.id"
:disabled="sumBtnDisabledAddSummary" :id="scope2.row.id" :ref="scope2.row.id"
:autosize="{ minRows: 1, maxRows: 20 }"> :autosize="{ minRows: 1, maxRows: 20 }">
</el-input> </el-input>
<el-button v-show="checkPagePriv(pagePriv.privs, '删除综述明细')" type="danger" icon="el-icon-delete" <el-button v-show="checkPagePriv(pagePriv.privs, '删除综述明细')" type="danger" icon="el-icon-delete"
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;"
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;background-color: red;"
@click="delSug(scope.row.details, scope2.$index)" @click="delSug(scope.row.details, scope2.$index)"
:disabled="sumBtnDisabled('addSummary')"></el-button>
:disabled="sumBtnDisabledAddSummary"></el-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -63,13 +63,13 @@
<div style="position: absolute; top: 0px; right: 2px; display: flex;z-index: 3;"> <div style="position: absolute; top: 0px; right: 2px; display: flex;z-index: 3;">
<div style="margin-right: 5px;"> <div style="margin-right: 5px;">
<el-button style="height: 28px;" class="commonbutton" @click="btnCollapseAll" <el-button style="height: 28px;" class="commonbutton" @click="btnCollapseAll"
:disabled="sumBtnDisabled('collapse')">{{
:disabled="sumBtnDisabledCollapse">{{
collapse ? collapse ?
'展开' : '折叠' }}全部建议</el-button> '展开' : '折叠' }}全部建议</el-button>
</div> </div>
<div v-show="checkPagePriv(pagePriv.privs, '新增建议')"> <div v-show="checkPagePriv(pagePriv.privs, '新增建议')">
<el-button style="height: 28px;" class="commonbutton" @click="addSuggtion" <el-button style="height: 28px;" class="commonbutton" @click="addSuggtion"
:disabled="sumBtnDisabled()">新增建议</el-button>
:disabled="sumBtnDisabled">新增建议</el-button>
</div> </div>
</div> </div>
<div style="width:50%;background-color: #B9CEE9;"> <div style="width:50%;background-color: #B9CEE9;">
@ -93,32 +93,32 @@
<div> <div>
<div style="display: flex;" @dblclick="openSymbols(scope.$index, 'suggestionTitle', -1)"> <div style="display: flex;" @dblclick="openSymbols(scope.$index, 'suggestionTitle', -1)">
<el-input v-model="scope.row.suggestionTitle" placeholder="请输入建议标题" :ref="scope.row.id" <el-input v-model="scope.row.suggestionTitle" placeholder="请输入建议标题" :ref="scope.row.id"
:id="scope.row.id" :disabled="sumBtnDisabled()">
:id="scope.row.id" :disabled="sumBtnDisabled">
</el-input> </el-input>
<el-button type="danger" :icon="scope.row.collapse ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
style="min-width:21px;height:21px;padding:2px;"
<!-- <el-tooltip content="选择诊断" placement="top"></el-tooltip> -->
<el-button icon="el-icon-search" style="min-width:21px;height:21px;padding:2px;"
@click="btnChooseDiagnosis(scope.$index)" :disabled="sumBtnDisabled"></el-button>
<!-- <el-tooltip content="根据诊断搜索医学解释、常见原因及健康指导" placement="top"></el-tooltip>-->
<el-button icon="el-icon-cpu" style="margin-left: 2px;min-width:21px;height:21px;padding:2px;"
@click="btnAIdiagnosis(scope.row.diagnosisNames)" :disabled="sumBtnDisabled"></el-button>
<el-button :icon="scope.row.collapse ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;"
@click="btnCollapse(sumDoctorCheck.suggestionList, scope.$index, scope.row)" @click="btnCollapse(sumDoctorCheck.suggestionList, scope.$index, scope.row)"
:disabled="sumBtnDisabled('collapse')"></el-button>
:disabled="sumBtnDisabledCollapse"></el-button>
<el-button v-show="checkPagePriv(pagePriv.privs, '删除建议')" type="danger" icon="el-icon-delete" <el-button v-show="checkPagePriv(pagePriv.privs, '删除建议')" type="danger" icon="el-icon-delete"
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;" @click="delSugHead(scope.$index)"
:disabled="sumBtnDisabled()"></el-button>
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;background-color:red;" @click="delSugHead(scope.$index)"
:disabled="sumBtnDisabled"></el-button>
</div> </div>
<div v-show="!scope.row.collapse"> <div v-show="!scope.row.collapse">
<div style="display: flex;margin-top: 2px;">
<div style="display: flex;margin-top: 2px;" v-show="dispDiagnsis == 'Y' ? true:false">
<div style="width:60px;">诊断</div> <div style="width:60px;">诊断</div>
<el-input placeholder="请选择诊断" :value="`${scope.row.diagnosisNames}`" size="small" disabled> <el-input placeholder="请选择诊断" :value="`${scope.row.diagnosisNames}`" size="small" disabled>
</el-input> </el-input>
<el-tooltip content="选择诊断" placement="top">
<el-button icon="el-icon-search" style="min-width:21px;height:21px;padding:2px;"
@click="btnChooseDiagnosis(scope.$index)" :disabled="sumBtnDisabled()"></el-button>
</el-tooltip>
<el-tooltip content="根据诊断搜索医学解释、常见原因及健康指导" placement="top">
<el-button icon="el-icon-cpu" style="margin-left: 2px;min-width:21px;height:21px;padding:2px;"
@click="btnAIdiagnosis(scope.row.diagnosisNames)" :disabled="sumBtnDisabled()"></el-button>
</el-tooltip>
<!-- <!--
<el-select v-model="scope.row.diagnosisIds" multiple placeholder="请选择" style="width: 100%;" <el-select v-model="scope.row.diagnosisIds" multiple placeholder="请选择" style="width: 100%;"
:disabled="sumBtnDisabled()" @change="changeDiagnosis" filterable class="no-animation">
:disabled="sumBtnDisabled" @change="changeDiagnosis" filterable class="no-animation">
<el-option v-for="item in diagnosises" :key="item.id" :value="item.id" :label="item.displayName" <el-option v-for="item in diagnosises" :key="item.id" :value="item.id" :label="item.displayName"
:disabled="disabledDiagnosis(item.id, scope.$index)" /> :disabled="disabledDiagnosis(item.id, scope.$index)" />
</el-select> </el-select>
@ -127,12 +127,11 @@
<!--医学解释--> <!--医学解释-->
<div v-if="dispTermReason == 'Y'" style="display: flex;margin-top: 2px;"> <div v-if="dispTermReason == 'Y'" style="display: flex;margin-top: 2px;">
<div style="width:60px;">医学解释</div> <div style="width:60px;">医学解释</div>
<el-tooltip content="新增医学解释" placement="top">
<!-- <el-tooltip content="新增医学解释" placement="top"></el-tooltip> -->
<el-button v-show="checkPagePriv(pagePriv.privs, '新增医学解释')" type="success" icon="el-icon-plus" <el-button v-show="checkPagePriv(pagePriv.privs, '新增医学解释')" type="success" icon="el-icon-plus"
style="min-width:21px;height:21px;padding:2px;" @click="addSug(scope.$index, 0)" style="min-width:21px;height:21px;padding:2px;" @click="addSug(scope.$index, 0)"
:disabled="sumBtnDisabled()">
:disabled="sumBtnDisabled">
</el-button> </el-button>
</el-tooltip>
<el-table :id="'0_sug' + scope.row.id" row-key="displayOrder" style="margin-left: 5px;" <el-table :id="'0_sug' + scope.row.id" row-key="displayOrder" style="margin-left: 5px;"
:data="scope.row.medicalInterpretations" border @row-click="rowClickSug0" :show-header="false"> :data="scope.row.medicalInterpretations" border @row-click="rowClickSug0" :show-header="false">
<el-table-column width="30"> <el-table-column width="30">
@ -146,7 +145,7 @@
<template slot-scope="scope2"> <template slot-scope="scope2">
<div @dblclick="openSymbols(scope.$index, 'medicalInterpretations', scope2.$index)"> <div @dblclick="openSymbols(scope.$index, 'medicalInterpretations', scope2.$index)">
<el-input type="textarea" v-model="scope2.row.suggestionContent" placeholder="请输入建议内容" <el-input type="textarea" v-model="scope2.row.suggestionContent" placeholder="请输入建议内容"
:disabled="sumBtnDisabled()" :autosize="{ minRows: 1, maxRows: 10 }">
:disabled="sumBtnDisabled" :autosize="{ minRows: 1, maxRows: 10 }">
</el-input> </el-input>
</div> </div>
</template> </template>
@ -154,9 +153,9 @@
<el-table-column label="操作" width="25"> <el-table-column label="操作" width="25">
<template slot-scope="scope2"> <template slot-scope="scope2">
<el-button v-show="checkPagePriv(pagePriv.privs, '删除医学解释')" type="danger" <el-button v-show="checkPagePriv(pagePriv.privs, '删除医学解释')" type="danger"
style="min-width:21px;height:21px;padding:2px;" icon="el-icon-delete"
style="min-width:21px;height:21px;padding:2px; background-color:red;" icon="el-icon-delete"
@click="delSug(scope.row.medicalInterpretations, scope2.$index)" @click="delSug(scope.row.medicalInterpretations, scope2.$index)"
:disabled="sumBtnDisabled()" size="small"></el-button>
:disabled="sumBtnDisabled" size="small"></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -167,7 +166,7 @@
<el-tooltip content="新增常见原因" placement="top"> <el-tooltip content="新增常见原因" placement="top">
<el-button v-show="checkPagePriv(pagePriv.privs, '新增常见原因')" type="danger" icon="el-icon-plus" <el-button v-show="checkPagePriv(pagePriv.privs, '新增常见原因')" type="danger" icon="el-icon-plus"
style="min-width:21px;height:21px;padding:2px;" @click="addSug(scope.$index, 1)" style="min-width:21px;height:21px;padding:2px;" @click="addSug(scope.$index, 1)"
:disabled="sumBtnDisabled()">
:disabled="sumBtnDisabled">
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-table :id="'1_sug' + scope.row.id" row-key="displayOrder" style="margin-left: 5px;" <el-table :id="'1_sug' + scope.row.id" row-key="displayOrder" style="margin-left: 5px;"
@ -183,7 +182,7 @@
<template slot-scope="scope2"> <template slot-scope="scope2">
<div @dblclick="openSymbols(scope.$index, 'commonReasons', scope2.$index)"> <div @dblclick="openSymbols(scope.$index, 'commonReasons', scope2.$index)">
<el-input type="textarea" v-model="scope2.row.suggestionContent" placeholder="请输入建议内容" <el-input type="textarea" v-model="scope2.row.suggestionContent" placeholder="请输入建议内容"
:disabled="sumBtnDisabled()" :autosize="{ minRows: 1, maxRows: 10 }">
:disabled="sumBtnDisabled" :autosize="{ minRows: 1, maxRows: 10 }">
</el-input> </el-input>
</div> </div>
</template> </template>
@ -191,8 +190,8 @@
<el-table-column label="操作" width="25"> <el-table-column label="操作" width="25">
<template slot-scope="scope2"> <template slot-scope="scope2">
<el-button v-show="checkPagePriv(pagePriv.privs, '删除常见原因')" type="danger" <el-button v-show="checkPagePriv(pagePriv.privs, '删除常见原因')" type="danger"
style="min-width:21px;height:21px;padding:2px;" icon="el-icon-delete"
@click="delSug(scope.row.commonReasons, scope2.$index)" :disabled="sumBtnDisabled()"
style="min-width:21px;height:21px;padding:2px;background-color:red;" icon="el-icon-delete"
@click="delSug(scope.row.commonReasons, scope2.$index)" :disabled="sumBtnDisabled"
size="small"></el-button> size="small"></el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -204,7 +203,7 @@
<el-tooltip content="新增健康指导" placement="top"> <el-tooltip content="新增健康指导" placement="top">
<el-button v-show="checkPagePriv(pagePriv.privs, '新增健康指导')" type="danger" icon="el-icon-plus" <el-button v-show="checkPagePriv(pagePriv.privs, '新增健康指导')" type="danger" icon="el-icon-plus"
style="min-width:21px;height:21px;padding:2px;" @click="addSug(scope.$index, 2)" style="min-width:21px;height:21px;padding:2px;" @click="addSug(scope.$index, 2)"
:disabled="sumBtnDisabled()">
:disabled="sumBtnDisabled">
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-table :id="'2_sug' + scope.row.id" row-key="displayOrder" style="margin-left: 5px;" <el-table :id="'2_sug' + scope.row.id" row-key="displayOrder" style="margin-left: 5px;"
@ -220,7 +219,7 @@
<template slot-scope="scope2"> <template slot-scope="scope2">
<div @dblclick="openSymbols(scope.$index, 'healthGuidances', scope2.$index)"> <div @dblclick="openSymbols(scope.$index, 'healthGuidances', scope2.$index)">
<el-input type="textarea" v-model="scope2.row.suggestionContent" placeholder="请输入健康指导" <el-input type="textarea" v-model="scope2.row.suggestionContent" placeholder="请输入健康指导"
:disabled="sumBtnDisabled()" :autosize="{ minRows: 1, maxRows: 10 }">
:disabled="sumBtnDisabled" :autosize="{ minRows: 1, maxRows: 10 }">
</el-input> </el-input>
</div> </div>
</template> </template>
@ -228,8 +227,8 @@
<el-table-column label="操作" width="25"> <el-table-column label="操作" width="25">
<template slot-scope="scope2"> <template slot-scope="scope2">
<el-button v-show="checkPagePriv(pagePriv.privs, '删除健康指导')" type="danger" <el-button v-show="checkPagePriv(pagePriv.privs, '删除健康指导')" type="danger"
style="min-width:21px;height:21px;padding:2px;" icon="el-icon-delete"
@click="delSug(scope.row.healthGuidances, scope2.$index)" :disabled="sumBtnDisabled()"
style="min-width:21px;height:21px;padding:2px;background-color:red;" icon="el-icon-delete"
@click="delSug(scope.row.healthGuidances, scope2.$index)" :disabled="sumBtnDisabled"
size="small"></el-button> size="small"></el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -309,6 +308,7 @@ import { mapState } from 'vuex';
import Sortable from "sortablejs"; import Sortable from "sortablejs";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, deepCopy, arrayExistObj } from '../../utlis/proFunc'; import { getPagePriv, checkPagePriv, deepCopy, arrayExistObj } from '../../utlis/proFunc';
export default { export default {
components: {}, components: {},
props: ["patientRegisterId", "tabChoosed"], props: ["patientRegisterId", "tabChoosed"],
@ -329,7 +329,8 @@ export default {
collapse: false, // / collapse: false, // /
dispTermReason: 'N', //
dispTermReason: 'Y', //
dispDiagnsis:'Y', //
dialogWinSymbols: false, dialogWinSymbols: false,
selection: { // selection: { //
@ -361,7 +362,7 @@ export default {
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
// //
// ( 0-1-2-)
// ()
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'summary_check_disp_reas' }) postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'summary_check_disp_reas' })
.then(res => { .then(res => {
if (res.code > -1) { if (res.code > -1) {
@ -369,11 +370,27 @@ export default {
} }
}) })
// ()
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'summary_check_disp_diagnsis' })
.then(res => {
if (res.code > -1) {
this.dispDiagnsis = res.data || "Y"
}
})
this.AI.height = this.frameHeight this.AI.height = this.frameHeight
}, },
// //
async mounted() { async mounted() {
// Electron
if (this.$peisAPI) {
this.$peisAPI.onContextMenuAction((data) => {
this.onContextMenuDIY(data)
});
}
// this.rowDrop(); // this.rowDrop();
this.rowDropSuggestion(); this.rowDropSuggestion();
@ -405,7 +422,52 @@ export default {
// AIdiagnosisHeight // AIdiagnosisHeight
AIDH() { AIDH() {
return Math.floor((this.AI.height - 24 - 42 - 4) / 21.5) return Math.floor((this.AI.height - 24 - 42 - 4) / 21.5)
},
sumBtnDisabled(){
let patientRegister = this.dataTransOpts.tableS.patient_register
let ret = true
//' '
if (!patientRegister.id) return ret
// ''
if (patientRegister?.isLock == 'Y') return ret
// console.log('btnType', btnType, this.summary_check_default_summay_modifiable)
if (patientRegister.completeFlag && patientRegister.completeFlag != '3') ret = false
return ret
},
sumBtnDisabledAddSummary(){
let patientRegister = this.dataTransOpts.tableS.patient_register
let ret = true
//' '
if (!patientRegister.id) return ret
// ''
if (patientRegister?.isLock == 'Y') return ret
if (patientRegister.completeFlag && patientRegister.completeFlag != '3' && this.summary_check_default_summay_modifiable == 'Y') {
return false;
} else {
return true;
} }
},
sumBtnDisabledCollapse(){
let patientRegister = this.dataTransOpts.tableS.patient_register
let ret = true
//' '
if (!patientRegister.id) return ret
// ''
if (patientRegister?.isLock == 'Y') return ret
return false
},
}, },
methods: { methods: {
@ -417,6 +479,12 @@ export default {
// e.style.height = 'auto'; // // e.style.height = 'auto'; //
// }); // });
// }, // },
//
onContextMenuDIY(data){
this.$message({showClose:true,message:data})
},
// //
async dictInit() { async dictInit() {
@ -470,6 +538,7 @@ export default {
let pojo = { let pojo = {
id, id,
patientRegisterId: this.dataTransOpts.tableS.patient_register.id, patientRegisterId: this.dataTransOpts.tableS.patient_register.id,
suggestionTitle: '',
diagnosisIds: [], diagnosisIds: [],
medicalInterpretations: [ medicalInterpretations: [
{ {
@ -745,36 +814,6 @@ export default {
}); });
}, },
//
sumBtnDisabled(btnType) {
let patientRegister = this.dataTransOpts.tableS.patient_register
let ret = true
//' '
if (!patientRegister.id) return ret
// ''
if (patientRegister.isLock && patientRegister.isLock == 'Y') return ret
// console.log('btnType', btnType, this.summary_check_default_summay_modifiable)
switch (btnType) {
case 'collapse':
return false;
case 'addSummary':
if (patientRegister.completeFlag && patientRegister.completeFlag != '3' && this.summary_check_default_summay_modifiable == 'Y') {
return false;
} else {
return true;
}
default:
break;
}
if (patientRegister.completeFlag && patientRegister.completeFlag != '3') ret = false
return ret
},
// //
changeDiagnosis(v) { changeDiagnosis(v) {
// console.log('changeDiagnosis', v) // console.log('changeDiagnosis', v)
@ -1197,7 +1236,24 @@ export default {
return return
} }
console.log('this.$peisAPI.contextMenuForPeis()')
/*
let menus = [
{ label: '测试菜单', itemId: '测试菜单', enabled: true }
]
this.$peisAPI.showContextMenu(menus)
.then(res => {
console.log('res', res)
})
.catch(err => {
console.log('err', err)
})
.finally(() => {
console.log('finally')
})
*/
// console.log('this.$peisAPI.contextMenuForPeis()')
this.$peisAPI.contextMenuForPeis() this.$peisAPI.contextMenuForPeis()
.then(res => { .then(res => {
console.log('res', res) console.log('res', res)
@ -1361,5 +1417,6 @@ export default {
::v-deep .diagnosisSelect .el-select-dropdown__wrap { ::v-deep .diagnosisSelect .el-select-dropdown__wrap {
background-color: #FFF; background-color: #FFF;
max-height: 288px; max-height: 288px;
max-width: 780px;
} }
</style> </style>

395
src/views/diagnosis/diagnosis.vue

@ -4,15 +4,12 @@
<div class="middlebox"> <div class="middlebox">
<div class="contenttitle"> <div class="contenttitle">
基础资料 / 基础资料 /
<span class="contenttitleBold"
>诊断建议设置</span
>
<span class="contenttitleBold">诊断建议设置</span>
</div> </div>
<div class="seachinput"> <div class="seachinput">
<el-select v-model="diagnosis" placeholder="快速查找" size="small"
filterable :filter-method="filterMethod" value-key="id"
clearable @clear="quickTableData = deepCopy(tableData)"
@change="quickDiagnosis" default-first-option ref="elSelectKeyWords">
<el-select v-model="diagnosis" placeholder="快速查找" size="small" filterable :filter-method="filterMethod"
value-key="id" clearable @clear="quickTableData = deepCopy(tableData)" @change="quickDiagnosis"
default-first-option ref="elSelectKeyWords" popper-class="dddwSelect" :popper-append-to-body="false">
<!-- <!--
<el-option key='1' value="" label="1" /> <el-option key='1' value="" label="1" />
<el-option key='2' value="{id:'2',displayName:'n2'}" label="2" /> <el-option key='2' value="{id:'2',displayName:'n2'}" label="2" />
@ -25,14 +22,16 @@
</div> </div>
<div style="display: flex;margin-top: 7px;"> <div style="display: flex;margin-top: 7px;">
<!-- 类别树组件 --> <!-- 类别树组件 -->
<div :style="'width: 208px; height:' +(window.pageHeight < 600 ? 505 : window.pageHeight - 100) +'px;background-color: #fff; border-radius: 8px'">
<ItemTypeTree :refreshItemTypeId="refreshItemTypeId" :itemTypeId="query.itemTypeId"/>
<div
:style="'width: 208px; height:' + (window.pageHeight < 600 ? 505 : window.pageHeight - 100) + 'px;background-color: #fff; border-radius: 8px'">
<ItemTypeTree :refreshItemTypeId="refreshItemTypeId" :itemTypeId="query.itemTypeId" />
</div> </div>
<!-- 诊断与建议 --> <!-- 诊断与建议 -->
<div style="display: block;"> <div style="display: block;">
<!-- 诊断列表 --> <!-- 诊断列表 -->
<div style="margin-left:15px;display: flex;"> <div style="margin-left:15px;display: flex;">
<div :style="'width:' + (window.pageWidth - 200 - 110 - 50-14) + 'px;padding: 15px;background-color: #fff;border-radius: 8px;'">
<div
:style="'width:' + (window.pageWidth - 200 - 110 - 50 - 14) + 'px;padding: 15px;background-color: #fff;border-radius: 8px;'">
<div style="margin-left: 5px;display: flex; flex-wrap: wrap;"> <div style="margin-left: 5px;display: flex; flex-wrap: wrap;">
<div> <div>
<!-- <!--
@ -46,21 +45,16 @@
<el-table :data="tableData" id="elTableDiagnosis" row-key="id" <el-table :data="tableData" id="elTableDiagnosis" row-key="id"
:height="window.pageHeight < 600 ? 190 : Math.floor((window.pageHeight - 240) / 2)" :height="window.pageHeight < 600 ? 190 : Math.floor((window.pageHeight - 240) / 2)"
highlight-current-row @row-click="rowClick" size="small" ref="elTable"> highlight-current-row @row-click="rowClick" size="small" ref="elTable">
<el-table-column type="index" label="序号" width="40" align="center"/>
<el-table-column
v-for="(item, index) in headerCols"
:key="`col_${index}`"
:min-width="dropCol[index].minWidth"
:align="dropCol[index].align"
:label="item.label"
>
<el-table-column type="index" label="序号" width="40" align="center" />
<el-table-column v-for="(item, index) in headerCols" :key="`col_${index}`"
:min-width="dropCol[index].minWidth" :align="dropCol[index].align" :label="item.label">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="dropCol[index].prop == 'sn'" >
<div v-if="dropCol[index].prop == 'sn'">
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
</div> </div>
<div v-else-if ="dropCol[index].prop == 'isIll'
|| dropCol[index].prop == 'isSummaryTemplate'" >
{{ scope.row[dropCol[index].prop] == 'Y' ? '是':'否' }}
<div v-else-if="dropCol[index].prop == 'isIll'
|| dropCol[index].prop == 'isSummaryTemplate'">
{{ scope.row[dropCol[index].prop] == 'Y' ? '是' : '否' }}
</div> </div>
<!-- <!--
<div v-else-if="dropCol[index].prop == 'itemTypeId'" > <div v-else-if="dropCol[index].prop == 'itemTypeId'" >
@ -70,14 +64,14 @@
</el-cascader> </el-cascader>
</div> </div>
--> -->
<div v-else-if="dropCol[index].prop == 'diagnosisLevelId'" >
<div v-else-if="dropCol[index].prop == 'diagnosisLevelId'">
{{ dddw(dict.diagnosisLevel, "id", scope.row[dropCol[index].prop], "displayName") }} {{ dddw(dict.diagnosisLevel, "id", scope.row[dropCol[index].prop], "displayName") }}
</div> </div>
<div v-else-if="dropCol[index].prop == 'forSexId'" >
<div v-else-if="dropCol[index].prop == 'forSexId'">
{{ dddw(dict.forSex, "id", scope.row[dropCol[index].prop], "displayName") }} {{ dddw(dict.forSex, "id", scope.row[dropCol[index].prop], "displayName") }}
</div> </div>
<div v-else-if ="dropCol[index].prop == 'lastModificationTime'
|| dropCol[index].prop == 'creationTime'" >
<div v-else-if="dropCol[index].prop == 'lastModificationTime'
|| dropCol[index].prop == 'creationTime'">
{{ scope.row[dropCol[index].prop] ? moment(scope.row[dropCol[index].prop]).format('yyyy-MM-DD HH:mm:ss'):'' }} {{ scope.row[dropCol[index].prop] ? moment(scope.row[dropCol[index].prop]).format('yyyy-MM-DD HH:mm:ss'):'' }}
</div> </div>
<div v-else> <div v-else>
@ -87,23 +81,16 @@
</el-table-column> </el-table-column>
<el-table-column label="排序" width="40" align="center"> <el-table-column label="排序" width="40" align="center">
<template> <template>
<el-tag
class="move"
style="
<el-tag class="move" style="
cursor: move; cursor: move;
background-color: rgb(245, 245, 245); background-color: rgb(245, 245, 245);
border: none; border: none;
"
draggable="true"
>
<i
class="el-icon-d-caret"
style="
" draggable="true">
<i class="el-icon-d-caret" style="
width: 1rem; width: 1rem;
height: 1rem; height: 1rem;
color: rgb(113, 113, 113); color: rgb(113, 113, 113);
"
></i>
"></i>
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
@ -133,19 +120,16 @@
<!-- 诊断对应的建议列表 --> <!-- 诊断对应的建议列表 -->
<div style="margin-top:15px;"> <div style="margin-top:15px;">
<DiagnosisSug :formDiagnosis="form" :refreshSugs="refreshSugs" :refreshSuges="refreshSuges" :refreshSugess="refreshSugess"/>
<DiagnosisSug :formDiagnosis="form" :refreshSugs="refreshSugs" :refreshSuges="refreshSuges"
:refreshSugess="refreshSugess" />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!--新增/编辑--> <!--新增/编辑-->
<el-dialog
:title="form.id ? '编辑' : '新增'"
:visible.sync="dialogVisible"
width="800px" @close="closeDialog"
:close-on-click-modal="false"
>
<el-dialog :title="form.id ? '编辑' : '新增'" :visible.sync="dialogVisible" width="800px" @close="closeDialog"
:close-on-click-modal="false">
<el-form ref="form" :model="form" label-width="100px" :rules="rules"> <el-form ref="form" :model="form" label-width="100px" :rules="rules">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
@ -156,10 +140,8 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目类别" prop="itemTypeId"> <el-form-item label="项目类别" prop="itemTypeId">
<el-cascader :options="dict.itemTypeTree" v-model="form.itemTypeId" <el-cascader :options="dict.itemTypeTree" v-model="form.itemTypeId"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" popper-class="example"
ref="itemTypeIds"
@change="ischangsItemTypeId"
size="small">
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }"
popper-class="example" ref="itemTypeIds" @change="ischangsItemTypeId" size="small">
</el-cascader> </el-cascader>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -173,7 +155,7 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="建议名称" prop="suggestionName"> <el-form-item label="建议名称" prop="suggestionName">
<el-input v-model="form.suggestionName" size="small"/>
<el-input v-model="form.suggestionName" size="small" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -185,29 +167,18 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="适用性别" prop="forSexId"> <el-form-item label="适用性别" prop="forSexId">
<el-select v-model="form.forSexId" placeholder="请选择" size="small"> <el-select v-model="form.forSexId" placeholder="请选择" size="small">
<el-option
v-for="item in dict.forSex"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
<el-option v-for="item in dict.forSex" :key="item.id" :label="item.displayName" :value="item.id">
</el-option> </el-option>
</el-select> </el-form-item
></el-col>
</el-select> </el-form-item></el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="诊断级别" prop="diagnosisLevelId"> <el-form-item label="诊断级别" prop="diagnosisLevelId">
<el-select v-model="form.diagnosisLevelId" placeholder="请选择" size="small"> <el-select v-model="form.diagnosisLevelId" placeholder="请选择" size="small">
<el-option
v-for="item in dict.diagnosisLevel"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
<el-option v-for="item in dict.diagnosisLevel" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option> </el-option>
</el-select> </el-form-item
></el-col>
</el-select> </el-form-item></el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="启用" prop="isActive"> <el-form-item label="启用" prop="isActive">
<el-radio v-model="form.isActive" label="Y"></el-radio> <el-radio v-model="form.isActive" label="Y"></el-radio>
@ -224,51 +195,50 @@
</div> </div>
</template> </template>
<script> <script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import Sortable from "sortablejs";
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import Sortable from "sortablejs";
import ItemTypeTree from "../../components/common/ItemTypeTree.vue";
import DiagnosisSug from "./diagnosisSug.vue";
import { deepCopy, dddw, arrayExistObj, objCopy } from '@/utlis/proFunc';
import ItemTypeTree from "../../components/common/ItemTypeTree.vue";
import DiagnosisSug from "./diagnosisSug.vue";
import { deepCopy,dddw, arrayExistObj, objCopy } from '@/utlis/proFunc';
export default {
export default {
components: { components: {
ItemTypeTree, ItemTypeTree,
DiagnosisSug, DiagnosisSug,
}, },
data() { data() {
return { return {
query:{
triggerScroll:0, //
itemTypeFlag:true, //
itemTypeId:'',
keyWords:'',
query: {
triggerScroll: 0, //
itemTypeFlag: true, //
itemTypeId: '',
keyWords: '',
}, },
diagnosis: {}, //null, //{id:'',displayName:''} diagnosis: {}, //null, //{id:'',displayName:''}
tableData:[], //()
diagnosisAll:[], //
quickTableData:[], //
formInit:{},
form:{
id:'',
itemTypeId:'',
isIll:'Y',
displayName:'',
suggestionName:'',
forSexId:'A',
isSummaryTemplate:'N',
isActive:'Y',
diagnosisLevelId:1, //
medicalInterpretations:[],
healthGuidances:[],
commonReasons:[]
},
dialogVisible:false,
tableData: [], //()
diagnosisAll: [], //
quickTableData: [], //
formInit: {},
form: {
id: '',
itemTypeId: '',
isIll: 'Y',
displayName: '',
suggestionName: '',
forSexId: 'A',
isSummaryTemplate: 'N',
isActive: 'Y',
diagnosisLevelId: 1, //
medicalInterpretations: [],
healthGuidances: [],
commonReasons: []
},
dialogVisible: false,
rules: { rules: {
displayName: [{ required: true, message: "请输入诊断名称", trigger: "blur" }], displayName: [{ required: true, message: "请输入诊断名称", trigger: "blur" }],
itemTypeId: [{ required: true, message: "请输入项目类别", trigger: "blur" }], itemTypeId: [{ required: true, message: "请输入项目类别", trigger: "blur" }],
@ -281,16 +251,16 @@ export default {
dropCol: [ dropCol: [
//{ label: "",prop: "sn",minWidth: 40,align:"center"}, //{ label: "",prop: "sn",minWidth: 40,align:"center"},
// { label: "",prop: "itemTypeId",minWidth: 120,align:"center"}, // { label: "",prop: "itemTypeId",minWidth: 120,align:"center"},
{ label: "诊断级别",prop: "diagnosisLevelId",minWidth: 60,align:"center"},
{ label: "诊断名称",prop: "displayName",minWidth: 100,align:"center"},
{ label: "建议名称",prop: "suggestionName",minWidth: 100,align:"center"},
{ label: "疾病",prop: "isIll",minWidth: 40,align:"center"},
{ label: "适用性别",prop: "forSexId",minWidth: 60,align:"center"},
{ label: "总检模板",prop: "isSummaryTemplate",minWidth: 60,align:"center"},
{ label: "创建者",prop: "creatorName",minWidth: 60,align:"center"},
{ label: "创建时间",prop: "creationTime",minWidth: 130,align:"center"},
{ label: "修改者",prop: "lastModifierName",minWidth: 60,align:"center"},
{ label: "修改时间",prop: "lastModificationTime",minWidth: 130,align:"center"},
{ label: "诊断级别", prop: "diagnosisLevelId", minWidth: 60, align: "center" },
{ label: "诊断名称", prop: "displayName", minWidth: 100, align: "center" },
{ label: "建议名称", prop: "suggestionName", minWidth: 100, align: "center" },
{ label: "疾病", prop: "isIll", minWidth: 40, align: "center" },
{ label: "适用性别", prop: "forSexId", minWidth: 60, align: "center" },
{ label: "总检模板", prop: "isSummaryTemplate", minWidth: 60, align: "center" },
{ label: "创建者", prop: "creatorName", minWidth: 60, align: "center" },
{ label: "创建时间", prop: "creationTime", minWidth: 130, align: "center" },
{ label: "修改者", prop: "lastModifierName", minWidth: 60, align: "center" },
{ label: "修改时间", prop: "lastModificationTime", minWidth: 130, align: "center" },
], ],
}; };
}, },
@ -306,14 +276,14 @@ export default {
}, },
computed: { computed: {
...mapState(["customerOrg", "window","dict"]),
...mapState(["customerOrg", "window", "dict"]),
}, },
methods: { methods: {
moment,dddw,deepCopy,
moment, dddw, deepCopy,
init(){
this.formInit = Object.assign({},this.form)
init() {
this.formInit = Object.assign({}, this.form)
this.headerCols = deepCopy(this.dropCol) this.headerCols = deepCopy(this.dropCol)
// //
@ -335,9 +305,9 @@ export default {
}, },
// //
allDiagnosis(){
postapi('/api/app/diagnosis/getlistinsuggestion',{}).then(res =>{
if(res.code != -1){
allDiagnosis() {
postapi('/api/app/diagnosis/getlistinsuggestion', {}).then(res => {
if (res.code != -1) {
this.diagnosisAll = res.data this.diagnosisAll = res.data
this.quickTableData = res.data this.quickTableData = res.data
} }
@ -345,44 +315,44 @@ export default {
}, },
// //
refreshItemTypeId(itemTypeId){
refreshItemTypeId(itemTypeId) {
this.query.itemTypeId = itemTypeId this.query.itemTypeId = itemTypeId
this.query.triggerScroll++ this.query.triggerScroll++
}, },
// //
refreshSugs(sugs){
if(!this.form.id) return
refreshSugs(sugs) {
if (!this.form.id) return
this.form.medicalInterpretations = deepCopy(sugs) this.form.medicalInterpretations = deepCopy(sugs)
let lfind = arrayExistObj(this.tableData,'id',this.form.id)
if(lfind > -1) this.tableData[lfind] = Object.assign(this.tableData[lfind],this.form)
let lfind = arrayExistObj(this.tableData, 'id', this.form.id)
if (lfind > -1) this.tableData[lfind] = Object.assign(this.tableData[lfind], this.form)
}, },
refreshSuges(sugs){
if(!this.form.id) return
refreshSuges(sugs) {
if (!this.form.id) return
this.form.healthGuidances = deepCopy(sugs) this.form.healthGuidances = deepCopy(sugs)
let lfind = arrayExistObj(this.tableData,'id',this.form.id)
if(lfind > -1) this.tableData[lfind] = Object.assign(this.tableData[lfind],this.form)
let lfind = arrayExistObj(this.tableData, 'id', this.form.id)
if (lfind > -1) this.tableData[lfind] = Object.assign(this.tableData[lfind], this.form)
}, },
refreshSugess(sugs){
if(!this.form.id) return
refreshSugess(sugs) {
if (!this.form.id) return
this.form.commonReasons = deepCopy(sugs) this.form.commonReasons = deepCopy(sugs)
let lfind = arrayExistObj(this.tableData,'id',this.form.id)
if(lfind > -1) this.tableData[lfind] = Object.assign(this.tableData[lfind],this.form)
let lfind = arrayExistObj(this.tableData, 'id', this.form.id)
if (lfind > -1) this.tableData[lfind] = Object.assign(this.tableData[lfind], this.form)
}, },
async btnQuery(){
async btnQuery() {
let body = {} let body = {}
if(this.query.itemTypeFlag && this.query.itemTypeId){
if (this.query.itemTypeFlag && this.query.itemTypeId) {
body.itemTypeId = this.query.itemTypeId body.itemTypeId = this.query.itemTypeId
}else{
} else {
return return
} }
// if(this.query.keyWords) body.keyWords = this.query.keyWords // if(this.query.keyWords) body.keyWords = this.query.keyWords
postapi('/api/app/diagnosis/getlistinsuggestion',body).then(res =>{
if(res.code != -1){
postapi('/api/app/diagnosis/getlistinsuggestion', body).then(res => {
if (res.code != -1) {
this.tableData = res.data this.tableData = res.data
this.form = Object.assign({},this.formInit)
this.form = Object.assign({}, this.formInit)
} }
}) })
}, },
@ -408,17 +378,17 @@ export default {
quickDiagnosis(v) { quickDiagnosis(v) {
// value-key value console.log('quickDiagnosis',v) // value-key value console.log('quickDiagnosis',v)
let lfind = -1 let lfind = -1
if(!v.itemTypeId) return
if (!v.itemTypeId) return
this.query.itemTypeId = v.itemTypeId this.query.itemTypeId = v.itemTypeId
let body = { let body = {
itemTypeId:v.itemTypeId
itemTypeId: v.itemTypeId
} }
postapi('/api/app/diagnosis/getlistinsuggestion',body).then(res =>{
if(res.code != -1){
postapi('/api/app/diagnosis/getlistinsuggestion', body).then(res => {
if (res.code != -1) {
this.tableData = res.data this.tableData = res.data
this.form = Object.assign({},this.formInit)
this.form = Object.assign({}, this.formInit)
// lfind = arrayExistObj(this.tableData, 'id', v.id) // lfind = arrayExistObj(this.tableData, 'id', v.id)
// if (lfind > -1) { // if (lfind > -1) {
@ -446,31 +416,31 @@ export default {
this.$refs['elSelectKeyWords'].focus(); //total asbItemId this.$refs['elSelectKeyWords'].focus(); //total asbItemId
}); });
}, },
searchup(data,index) {
this.$nextTick(()=>{
if(index==0){
index=1
searchup(data, index) {
this.$nextTick(() => {
if (index == 0) {
index = 1
} }
const targetTop = this.$refs["elTable"].$el.querySelectorAll('.el-table__body tr')[index-1].getBoundingClientRect().top
const targetTop = this.$refs["elTable"].$el.querySelectorAll('.el-table__body tr')[index - 1].getBoundingClientRect().top
const containerTop = this.$refs["elTable"].$el.querySelector('.el-table__body').getBoundingClientRect().top const containerTop = this.$refs["elTable"].$el.querySelector('.el-table__body').getBoundingClientRect().top
const scrollParent = this.$refs["elTable"].$el.querySelector('.el-table__body-wrapper') const scrollParent = this.$refs["elTable"].$el.querySelector('.el-table__body-wrapper')
scrollParent.scrollTop = targetTop - containerTop scrollParent.scrollTop = targetTop - containerTop
}) })
}, },
// 1 // 1
triggerScroll(){
if(!this.query.itemTypeId) return
let lfind = arrayExistObj(this.tableData,'itemTypeId',this.query.itemTypeId)
if(lfind > -1){
triggerScroll() {
if (!this.query.itemTypeId) return
let lfind = arrayExistObj(this.tableData, 'itemTypeId', this.query.itemTypeId)
if (lfind > -1) {
this.scrollToRow(lfind) this.scrollToRow(lfind)
} }
}, },
scrollToRow(rowNum){
scrollToRow(rowNum) {
let dom = this.$refs['elTable'].bodyWrapper let dom = this.$refs['elTable'].bodyWrapper
this.$nextTick(() =>{
this.$nextTick(() => {
let tableHeight = this.window.pageHeight < 600 ? 200 : Math.floor((this.window.pageHeight - 200) / 2) let tableHeight = this.window.pageHeight < 600 ? 200 : Math.floor((this.window.pageHeight - 200) / 2)
let rowHeight = 36.96 let rowHeight = 36.96
dom.scrollTo(0, rowHeight * rowNum - tableHeight*rowNum/(2*this.tableData.length) )
dom.scrollTo(0, rowHeight * rowNum - tableHeight * rowNum / (2 * this.tableData.length))
}) })
}, },
@ -497,7 +467,7 @@ export default {
}); });
}, },
rowClick(row){
rowClick(row) {
this.form = deepCopy(row) this.form = deepCopy(row)
// //
@ -509,8 +479,8 @@ export default {
}, },
btnAdd(){
if(!this.query.itemTypeId){
btnAdd() {
if (!this.query.itemTypeId) {
this.$message.warning("请先选择项目类别!") this.$message.warning("请先选择项目类别!")
return return
} }
@ -519,28 +489,28 @@ export default {
this.dialogVisible = true this.dialogVisible = true
}, },
btnEdit(){
if(!this.form.id){
btnEdit() {
if (!this.form.id) {
this.$message.warning("请先选择要编辑的诊断记录!") this.$message.warning("请先选择要编辑的诊断记录!")
return return
} }
this.dialogVisible = true this.dialogVisible = true
}, },
ischangsItemTypeId(v){
if(v.length>1){
this.form.itemTypeId=this.form.itemTypeId.slice(-1)[0]
}else{
this.form.itemTypeId=this.form.itemTypeId[0]
ischangsItemTypeId(v) {
if (v.length > 1) {
this.form.itemTypeId = this.form.itemTypeId.slice(-1)[0]
} else {
this.form.itemTypeId = this.form.itemTypeId[0]
} }
this.$refs.itemTypeIds.toggleDropDownVisible(); this.$refs.itemTypeIds.toggleDropDownVisible();
}, },
inputDisplayName(v){
inputDisplayName(v) {
//console.log(v) //console.log(v)
this.form.suggestionName = v this.form.suggestionName = v
}, },
onSubmit(formName){
let msg='',body = {},itemTypeId=''
onSubmit(formName) {
let msg = '', body = {}, itemTypeId = ''
this.$refs[formName].validate((valid, fields) => { this.$refs[formName].validate((valid, fields) => {
if (!valid) { if (!valid) {
@ -549,14 +519,14 @@ export default {
} }
}) })
if(msg){
if (msg) {
this.$message.warning(msg); this.$message.warning(msg);
return return
} }
if(typeof this.form.itemTypeId == 'object'){
if (typeof this.form.itemTypeId == 'object') {
itemTypeId = this.form.itemTypeId[this.form.itemTypeId.length - 1] itemTypeId = this.form.itemTypeId[this.form.itemTypeId.length - 1]
}else{
} else {
itemTypeId = this.form.itemTypeId itemTypeId = this.form.itemTypeId
} }
@ -568,20 +538,20 @@ export default {
isSummaryTemplate: this.form.isSummaryTemplate, isSummaryTemplate: this.form.isSummaryTemplate,
forSexId: this.form.forSexId, forSexId: this.form.forSexId,
diagnosisLevelId: this.form.diagnosisLevelId, diagnosisLevelId: this.form.diagnosisLevelId,
isActive:this.form.isActive,
isActive: this.form.isActive,
} }
// console.log('this.form',this.form) // console.log('this.form',this.form)
if(this.form.id){
postapi(`/api/app/diagnosis/updatediagnosis?id=${this.form.id}`,body).then(res =>{
if(res.code != -1){
if (this.form.id) {
postapi(`/api/app/diagnosis/updatediagnosis?id=${this.form.id}`, body).then(res => {
if (res.code != -1) {
this.dialogVisible = false this.dialogVisible = false
//this.$message.success('') //this.$message.success('')
} }
}) })
}else{
postapi(`/api/app/diagnosis/creatediagnosis`,body).then(res =>{
if(res.code != -1){
this.form = Object.assign(this.form,res.data)
} else {
postapi(`/api/app/diagnosis/creatediagnosis`, body).then(res => {
if (res.code != -1) {
this.form = Object.assign(this.form, res.data)
this.dialogVisible = false this.dialogVisible = false
//this.$message.success('') //this.$message.success('')
} }
@ -589,46 +559,46 @@ export default {
} }
}, },
btnSort(){
if(this.tableData.length<2) return
btnSort() {
if (this.tableData.length < 2) return
let itemList = [] let itemList = []
this.tableData.forEach((e,index) =>{
this.tableData.forEach((e, index) => {
itemList.push({ itemList.push({
id:e.id,
displayOrder:index+1
id: e.id,
displayOrder: index + 1
}) })
}) })
putapi('/api/app/diagnosis/updatesortmany',{itemList}).then(res =>{
if(res.code != -1){
putapi('/api/app/diagnosis/updatesortmany', { itemList }).then(res => {
if (res.code != -1) {
//this.$message.success('') //this.$message.success('')
} }
}) })
}, },
closeDialog(){
if(!this.form.id) return
closeDialog() {
if (!this.form.id) return
let curRow = {} let curRow = {}
let lfind = arrayExistObj(this.tableData,'id',this.form.id)
if(lfind > -1){
curRow = Object.assign(this.tableData[lfind],this.form)
let lfind = arrayExistObj(this.tableData, 'id', this.form.id)
if (lfind > -1) {
curRow = Object.assign(this.tableData[lfind], this.form)
this.tableData[lfind] = curRow this.tableData[lfind] = curRow
}else{
} else {
lfind = this.tableData.length lfind = this.tableData.length
curRow = Object.assign({},this.form)
curRow = Object.assign({}, this.form)
this.tableData.push(curRow) this.tableData.push(curRow)
} }
if(lfind > -1){
if (lfind > -1) {
this.$refs['elTable'].setCurrentRow(curRow) this.$refs['elTable'].setCurrentRow(curRow)
this.$nextTick(() =>{
this.$nextTick(() => {
this.rowClick(curRow) this.rowClick(curRow)
}) })
} }
this.allDiagnosis() this.allDiagnosis()
}, },
btnDel(){
if(!this.form.id){
btnDel() {
if (!this.form.id) {
this.$message.warning("请先选中要删除的诊断记录!") this.$message.warning("请先选中要删除的诊断记录!")
return return
} }
@ -637,15 +607,15 @@ export default {
confirmButtonText: "是", confirmButtonText: "是",
cancelButtonText: "否", cancelButtonText: "否",
type: "warning", type: "warning",
cancelButtonClass:"difference",
confirmButtonClass:"commonbutton"
cancelButtonClass: "difference",
confirmButtonClass: "commonbutton"
}).then(() => { }).then(() => {
//console.log('{patientRegisterIds}',{patientRegisterIds}) //console.log('{patientRegisterIds}',{patientRegisterIds})
return postapi(`/api/app/diagnosis/deletediagnosis?id=${this.form.id}`); return postapi(`/api/app/diagnosis/deletediagnosis?id=${this.form.id}`);
}).then((res) => { }).then((res) => {
if(res.code != -1){
let lfind = arrayExistObj(this.tableData,'id',this.form.id)
if(lfind > -1) this.tableData.splice(lfind,1)
if (res.code != -1) {
let lfind = arrayExistObj(this.tableData, 'id', this.form.id)
if (lfind > -1) this.tableData.splice(lfind, 1)
this.form = deepCopy(this.formInit) this.form = deepCopy(this.formInit)
this.allDiagnosis() this.allDiagnosis()
//this.$message.success('') //this.$message.success('')
@ -670,18 +640,18 @@ export default {
// } // }
// } // }
// }, // },
"query.triggerScroll":{
"query.triggerScroll": {
immediate: true, // immediate: true, //
// deep: true, // // deep: true, //
handler(newVal,oldVal){
handler(newVal, oldVal) {
// console.log('watch:patientRegisterNo:',newVal,oldVal) // console.log('watch:patientRegisterNo:',newVal,oldVal)
if(newVal != oldVal){
if (newVal != oldVal) {
this.btnQuery(); this.btnQuery();
} }
} }
}, },
}, },
};
};
</script> </script>
<style scoped> <style scoped>
@import '../../assets/css/global_button.css'; @import '../../assets/css/global_button.css';
@ -696,35 +666,52 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
::v-deep .dddwSelect .el-select-dropdown__wrap {
background-color: #FFF;
max-height: 600px;
max-width: 350px;
}
/* form表单每一项的下边距 */ /* form表单每一项的下边距 */
:deep .el-form-item { :deep .el-form-item {
margin-bottom: 14px; margin-bottom: 14px;
} }
/* 去掉input textarea的手动扩张样式 */ /* 去掉input textarea的手动扩张样式 */
:deep(.el-textarea__inner) {
:deep .el-textarea__inner {
resize: none; resize: none;
} }
/* el-dialog的头部样式 */ /* el-dialog的头部样式 */
:deep .el-dialog__header { :deep .el-dialog__header {
padding: 11px 20px 11px; padding: 11px 20px 11px;
} }
/* el-dialog的主体样式 */ /* el-dialog的主体样式 */
:deep .el-dialog__body { :deep .el-dialog__body {
padding: 0px 20px 0px; padding: 0px 20px 0px;
} }
/* el-divider样式 */ /* el-divider样式 */
:deep .el-divider--horizontal { :deep .el-divider--horizontal {
margin: 0px 0 12px; margin: 0px 0 12px;
} }
/* el-dialog的底部样式 */ /* el-dialog的底部样式 */
:deep .el-dialog__footer { :deep .el-dialog__footer {
padding: 0px 20px 14px; padding: 0px 20px 14px;
} }
.seachinput { .seachinput {
width: 250px;
width: 350px;
margin-right: 110px; margin-right: 110px;
} }
:deep .seachinput .el-select { :deep .seachinput .el-select {
width: 100%; width: 100%;
} }
</style> </style>

3
src/views/fee-settings/Asbitem.vue

@ -544,6 +544,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="疾病筛查类别" prop="" label-width="100px"> <el-form-item label="疾病筛查类别" prop="" label-width="100px">
<el-select v-model="form.diseaseScreeningTypeId" placeholder="请选择" size="small" @change="quckRusetform"> <el-select v-model="form.diseaseScreeningTypeId" placeholder="请选择" size="small" @change="quckRusetform">
@ -2174,7 +2175,7 @@ export default {
} }
.seachinput { .seachinput {
width: 250px;
width: 350px;
margin-right: 110px; margin-right: 110px;
} }

10
src/views/fee-settings/Item.vue

@ -692,7 +692,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="诊断编号"> <el-form-item label="诊断编号">
<el-select v-model="rusetform.diagnosisId" placeholder="请选择" filterable :filter-method="remoteMethod" <el-select v-model="rusetform.diagnosisId" placeholder="请选择" filterable :filter-method="remoteMethod"
clearable @change="quckRusetforms" default-first-option size="small">
clearable @change="quckRusetforms" default-first-option size="small" popper-class="dddwSelect" :popper-append-to-body="false">
<el-option v-for="item in quickAsb" :key="item.id" :label="item.displayName" :value="item.id"> <el-option v-for="item in quickAsb" :key="item.id" :label="item.displayName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -2732,10 +2732,16 @@ export default {
} }
.seachinput { .seachinput {
width: 250px;
width: 350px;
margin-right: 110px; margin-right: 110px;
} }
::v-deep .dddwSelect .el-select-dropdown__wrap {
background-color: #FFF;
max-height: 600px;
max-width: 350px;
}
:deep .seachinput .el-select { :deep .seachinput .el-select {
width: 100%; width: 100%;
} }

Loading…
Cancel
Save