You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
730 lines
25 KiB
730 lines
25 KiB
<template>
|
|
<div class="box">
|
|
<div>
|
|
<div class="middlebox">
|
|
<div class="contenttitle">
|
|
基础资料 /
|
|
<span class="contenttitleBold"
|
|
>诊断建议设置</span
|
|
>
|
|
</div>
|
|
<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-option key='1' value="" label="1" />
|
|
<el-option key='2' value="{id:'2',displayName:'n2'}" label="2" />
|
|
-->
|
|
<!-- -->
|
|
<el-option v-for="item in quickTableData" :key="item.id" :value="item" :label="item.displayName" />
|
|
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
<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>
|
|
<!-- 诊断与建议 -->
|
|
<div style="display: block;">
|
|
<!-- 诊断列表 -->
|
|
<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="margin-left: 5px;display: flex; flex-wrap: wrap;">
|
|
<div>
|
|
<!--
|
|
<el-checkbox v-model="query.itemTypeFlag">项目类别作为查询条件</el-checkbox>
|
|
<el-input placeholder="查询关键字" v-model="query.keyWords" size="small" clearable style="width: 200px" />
|
|
-->
|
|
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<el-table :data="tableData" id="elTableDiagnosis" row-key="id"
|
|
:height="window.pageHeight < 600 ? 190 : Math.floor((window.pageHeight - 240) / 2)"
|
|
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"
|
|
>
|
|
<template slot-scope="scope">
|
|
<div v-if="dropCol[index].prop == 'sn'" >
|
|
{{ scope.$index + 1 }}
|
|
</div>
|
|
<div v-else-if ="dropCol[index].prop == 'isIll'
|
|
|| dropCol[index].prop == 'isSummaryTemplate'" >
|
|
{{ scope.row[dropCol[index].prop] == 'Y' ? '是':'否' }}
|
|
</div>
|
|
<!--
|
|
<div v-else-if="dropCol[index].prop == 'itemTypeId'" >
|
|
<el-cascader :options="dict.itemTypeTree" v-model="scope.row[dropCol[index].prop]"
|
|
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :show-all-levels="false"
|
|
disabled size="small">
|
|
</el-cascader>
|
|
</div>
|
|
-->
|
|
<div v-else-if="dropCol[index].prop == 'diagnosisLevelId'" >
|
|
{{ dddw(dict.diagnosisLevel, "id", scope.row[dropCol[index].prop], "displayName") }}
|
|
</div>
|
|
<div v-else-if="dropCol[index].prop == 'forSexId'" >
|
|
{{ dddw(dict.forSex, "id", scope.row[dropCol[index].prop], "displayName") }}
|
|
</div>
|
|
<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'):'' }}
|
|
</div>
|
|
<div v-else>
|
|
{{ scope.row[dropCol[index].prop] }}
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="排序" width="40" align="center">
|
|
<template>
|
|
<el-tag
|
|
class="move"
|
|
style="
|
|
cursor: move;
|
|
background-color: rgb(245, 245, 245);
|
|
border: none;
|
|
"
|
|
draggable="true"
|
|
>
|
|
<i
|
|
class="el-icon-d-caret"
|
|
style="
|
|
width: 1rem;
|
|
height: 1rem;
|
|
color: rgb(113, 113, 113);
|
|
"
|
|
></i>
|
|
</el-tag>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
<!--按钮-->
|
|
<div style="margin-left: 10px;">
|
|
<!---->
|
|
<div>
|
|
<el-button class="commonbutton" @click="btnQuery">刷新</el-button>
|
|
</div>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="primary" class="commonbutton" @click="btnAdd">新增</el-button>
|
|
</div>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="success" class="commonbutton" @click="btnEdit">编辑</el-button>
|
|
</div>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="danger" class="deleteButton" @click="btnDel">删除</el-button>
|
|
</div>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="danger" class="commonbutton" @click="btnSort">保存排序</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 诊断对应的建议列表 -->
|
|
<div style="margin-top:15px;">
|
|
<DiagnosisSug :formDiagnosis="form" :refreshSugs="refreshSugs" :refreshSuges="refreshSuges" :refreshSugess="refreshSugess"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!--新增/编辑-->
|
|
<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-row>
|
|
<el-col :span="8">
|
|
<el-form-item label="名称" prop="displayName">
|
|
<el-input v-model="form.displayName" size="small" @input="inputDisplayName" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="项目类别" prop="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">
|
|
</el-cascader>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="疾病" prop="isIll">
|
|
<el-radio v-model="form.isIll" label="Y">是</el-radio>
|
|
<el-radio v-model="form.isIll" label="N">否</el-radio>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="8">
|
|
<el-form-item label="建议名称" prop="suggestionName">
|
|
<el-input v-model="form.suggestionName" size="small"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="总检模板" prop="isSummaryTemplate">
|
|
<el-radio v-model="form.isSummaryTemplate" label="Y">是</el-radio>
|
|
<el-radio v-model="form.isSummaryTemplate" label="N">否</el-radio>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="适用性别" prop="forSexId">
|
|
<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>
|
|
</el-select> </el-form-item
|
|
></el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="8">
|
|
<el-form-item label="诊断级别" prop="diagnosisLevelId">
|
|
<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>
|
|
</el-select> </el-form-item
|
|
></el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="启用" prop="isActive">
|
|
<el-radio v-model="form.isActive" label="Y">是</el-radio>
|
|
<el-radio v-model="form.isActive" label="N">否</el-radio>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogVisible = false" class="difference">取 消</el-button>
|
|
<el-button type="primary" @click="onSubmit('form')" class="commonbutton">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
|
|
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';
|
|
|
|
|
|
|
|
export default {
|
|
components: {
|
|
ItemTypeTree,
|
|
DiagnosisSug,
|
|
},
|
|
data() {
|
|
return {
|
|
query:{
|
|
triggerScroll:0, //触发按类别定
|
|
itemTypeFlag:true, //项目类别是否 作为查询条件
|
|
itemTypeId:'',
|
|
keyWords:'',
|
|
},
|
|
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,
|
|
rules: {
|
|
displayName: [{ required: true, message: "请输入诊断名称", trigger: "blur" }],
|
|
itemTypeId: [{ required: true, message: "请输入项目类别", trigger: "blur" }],
|
|
},
|
|
|
|
//动态列(预留)
|
|
headerCols: [],
|
|
|
|
//拖动列(预留)
|
|
dropCol: [
|
|
//{ label: "序号",prop: "sn",minWidth: 40,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"},
|
|
],
|
|
};
|
|
},
|
|
|
|
created() {
|
|
this.init()
|
|
},
|
|
|
|
//挂载完成
|
|
mounted() {
|
|
this.rowDrop('elTableDiagnosis')
|
|
// this.btnQuery()
|
|
},
|
|
|
|
computed: {
|
|
...mapState(["customerOrg", "window","dict"]),
|
|
},
|
|
|
|
methods: {
|
|
moment,dddw,deepCopy,
|
|
|
|
init(){
|
|
this.formInit = Object.assign({},this.form)
|
|
this.headerCols = deepCopy(this.dropCol)
|
|
|
|
//适用性别(查询)
|
|
getapi("/api/app/for-sex").then((res) => {
|
|
if (res.code != -1) {
|
|
this.dict.forSex = res.data;
|
|
}
|
|
});
|
|
|
|
//诊断级别
|
|
getapi("/api/app/diagnosis-level/in-filter").then((res) => {
|
|
if (res.code != -1) {
|
|
this.dict.diagnosisLevel = res.data;
|
|
}
|
|
});
|
|
|
|
this.allDiagnosis()
|
|
|
|
},
|
|
|
|
//查询所有 诊断记录
|
|
allDiagnosis(){
|
|
postapi('/api/app/diagnosis/getlistinsuggestion',{}).then(res =>{
|
|
if(res.code != -1){
|
|
this.diagnosisAll = res.data
|
|
this.quickTableData = res.data
|
|
}
|
|
})
|
|
},
|
|
|
|
// 供树节点组件调用,更新当前所选的项目类别
|
|
refreshItemTypeId(itemTypeId){
|
|
this.query.itemTypeId = itemTypeId
|
|
this.query.triggerScroll++
|
|
},
|
|
|
|
// 供明建议组件调用,更新所选建议
|
|
refreshSugs(sugs){
|
|
if(!this.form.id) return
|
|
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)
|
|
},
|
|
refreshSuges(sugs){
|
|
if(!this.form.id) return
|
|
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)
|
|
},
|
|
refreshSugess(sugs){
|
|
if(!this.form.id) return
|
|
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)
|
|
},
|
|
|
|
async btnQuery(){
|
|
let body = {}
|
|
if(this.query.itemTypeFlag && this.query.itemTypeId){
|
|
body.itemTypeId = this.query.itemTypeId
|
|
}else{
|
|
return
|
|
}
|
|
// if(this.query.keyWords) body.keyWords = this.query.keyWords
|
|
|
|
postapi('/api/app/diagnosis/getlistinsuggestion',body).then(res =>{
|
|
if(res.code != -1){
|
|
this.tableData = res.data
|
|
this.form = Object.assign({},this.formInit)
|
|
}
|
|
})
|
|
},
|
|
|
|
//快速查找诊断时,调整可按拼间简码及简称查找
|
|
filterMethod(keyWords) {
|
|
//console.log('filterMethod',this.dict.asbItemQuick)
|
|
if (keyWords) {
|
|
this.quickTableData = [];
|
|
this.diagnosisAll.forEach(item => {
|
|
if (item.displayName.indexOf(keyWords) > - 1
|
|
|| item.simpleCode.indexOf(keyWords.toUpperCase()) > - 1
|
|
|| item.suggestionName.indexOf(keyWords) > - 1) {
|
|
this.quickTableData.push(item);
|
|
}
|
|
});
|
|
} else {
|
|
this.quickTableData = deepCopy(this.diagnosisAll);
|
|
}
|
|
},
|
|
|
|
//快速查找诊断
|
|
quickDiagnosis(v) {
|
|
//远程查询时,设置了 value-key 也不管用,只能取到value console.log('quickDiagnosis',v)
|
|
let lfind = -1
|
|
if(!v.itemTypeId) return
|
|
|
|
this.query.itemTypeId = v.itemTypeId
|
|
let body = {
|
|
itemTypeId:v.itemTypeId
|
|
}
|
|
|
|
postapi('/api/app/diagnosis/getlistinsuggestion',body).then(res =>{
|
|
if(res.code != -1){
|
|
this.tableData = res.data
|
|
this.form = Object.assign({},this.formInit)
|
|
|
|
// lfind = arrayExistObj(this.tableData, 'id', v.id)
|
|
// if (lfind > -1) {
|
|
// this.$refs['elTable'].setCurrentRow(this.tableData[lfind])
|
|
// this.rowClick(this.tableData[lfind])
|
|
// this.scrollToRow(lfind)
|
|
// }
|
|
this.tableData.forEach((item, index) => {
|
|
if (v.id == item.id) {
|
|
this.$refs["elTable"].setCurrentRow(item);
|
|
this.rowClick(item);
|
|
this.scrollToRow(item)
|
|
this.searchup(item, index)
|
|
}
|
|
});
|
|
}
|
|
})
|
|
|
|
//console.log('v,query.diagnosis',v,this.query.diagnosis)
|
|
this.$refs['elSelectKeyWords'].focus(); //asbItemId
|
|
this.$nextTick(() => {
|
|
this.$refs['elSelectKeyWords'].blur(); //total asbItemId
|
|
// this.query.keyWords = ''
|
|
this.quickTableData = deepCopy(this.diagnosisAll)
|
|
this.$refs['elSelectKeyWords'].focus(); //total asbItemId
|
|
});
|
|
},
|
|
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 containerTop = this.$refs["elTable"].$el.querySelector('.el-table__body').getBoundingClientRect().top
|
|
const scrollParent = this.$refs["elTable"].$el.querySelector('.el-table__body-wrapper')
|
|
scrollParent.scrollTop = targetTop - containerTop
|
|
})
|
|
},
|
|
// 选体检类别时,定位到相应类别的第1行
|
|
triggerScroll(){
|
|
if(!this.query.itemTypeId) return
|
|
let lfind = arrayExistObj(this.tableData,'itemTypeId',this.query.itemTypeId)
|
|
if(lfind > -1){
|
|
this.scrollToRow(lfind)
|
|
}
|
|
},
|
|
scrollToRow(rowNum){
|
|
let dom = this.$refs['elTable'].bodyWrapper
|
|
this.$nextTick(() =>{
|
|
let tableHeight = this.window.pageHeight < 600 ? 200 : Math.floor((this.window.pageHeight - 200) / 2)
|
|
let rowHeight = 36.96
|
|
dom.scrollTo(0, rowHeight * rowNum - tableHeight*rowNum/(2*this.tableData.length) )
|
|
})
|
|
},
|
|
|
|
|
|
//拖拽
|
|
rowDrop(elId) {
|
|
this.$nextTick(() => {
|
|
let el = document.querySelector(`#${elId} tbody`);
|
|
//console.log('tbody', el)
|
|
let that = this;
|
|
Sortable.create(el, {
|
|
handle: ".move", // 选中class='move'的元素按住,方可拖动
|
|
animation: 150, // ms, number 单位:ms,定义排序动画的时间
|
|
//拖拽结束
|
|
onChoose({ oldIndex }) {
|
|
that.$refs["elTable"].setCurrentRow(that.tableData[oldIndex]);
|
|
that.rowClick(that.tableData[oldIndex]);
|
|
},
|
|
onEnd({ newIndex, oldIndex }) {
|
|
let currRow = that.tableData.splice(oldIndex, 1)[0];
|
|
that.tableData.splice(newIndex, 0, currRow);
|
|
},
|
|
});
|
|
});
|
|
},
|
|
|
|
rowClick(row){
|
|
this.form = deepCopy(row)
|
|
|
|
//用于选择树节点
|
|
// if(typeof row.itemTypeId == 'string'){
|
|
// this.query.itemTypeId = row.itemTypeId
|
|
// }else{
|
|
// this.query.itemTypeId = row.itemTypeId[row.itemTypeId.length - 1]
|
|
// }
|
|
|
|
},
|
|
|
|
btnAdd(){
|
|
if(!this.query.itemTypeId){
|
|
this.$message.warning("请先选择项目类别!")
|
|
return
|
|
}
|
|
this.form = deepCopy(this.formInit)
|
|
this.form.itemTypeId = this.query.itemTypeId
|
|
this.dialogVisible = true
|
|
},
|
|
|
|
btnEdit(){
|
|
if(!this.form.id){
|
|
this.$message.warning("请先选择要编辑的诊断记录!")
|
|
return
|
|
}
|
|
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]
|
|
}
|
|
this.$refs.itemTypeIds.toggleDropDownVisible();
|
|
},
|
|
inputDisplayName(v){
|
|
//console.log(v)
|
|
this.form.suggestionName = v
|
|
},
|
|
|
|
onSubmit(formName){
|
|
let msg='',body = {},itemTypeId=''
|
|
|
|
this.$refs[formName].validate((valid, fields) => {
|
|
if (!valid) {
|
|
msg = fields[Object.keys(fields)[0]][0].message;
|
|
return false;
|
|
}
|
|
})
|
|
|
|
if(msg){
|
|
this.$message.warning(msg);
|
|
return
|
|
}
|
|
|
|
if(typeof this.form.itemTypeId == 'object'){
|
|
itemTypeId = this.form.itemTypeId[this.form.itemTypeId.length - 1]
|
|
}else{
|
|
itemTypeId = this.form.itemTypeId
|
|
}
|
|
|
|
body = {
|
|
displayName: this.form.displayName,
|
|
itemTypeId,
|
|
suggestionName: this.form.suggestionName,
|
|
isIll: this.form.isIll,
|
|
isSummaryTemplate: this.form.isSummaryTemplate,
|
|
forSexId: this.form.forSexId,
|
|
diagnosisLevelId: this.form.diagnosisLevelId,
|
|
isActive:this.form.isActive,
|
|
}
|
|
// 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){
|
|
this.dialogVisible = false
|
|
//this.$message.success('操作成功!')
|
|
}
|
|
})
|
|
}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.$message.success('操作成功!')
|
|
}
|
|
})
|
|
}
|
|
},
|
|
|
|
btnSort(){
|
|
if(this.tableData.length<2) return
|
|
let itemList = []
|
|
this.tableData.forEach((e,index) =>{
|
|
itemList.push({
|
|
id:e.id,
|
|
displayOrder:index+1
|
|
})
|
|
})
|
|
|
|
putapi('/api/app/diagnosis/updatesortmany',{itemList}).then(res =>{
|
|
if(res.code != -1){
|
|
//this.$message.success('操作成功!')
|
|
}
|
|
})
|
|
},
|
|
|
|
closeDialog(){
|
|
if(!this.form.id) return
|
|
let curRow = {}
|
|
let lfind = arrayExistObj(this.tableData,'id',this.form.id)
|
|
if(lfind > -1){
|
|
curRow = Object.assign(this.tableData[lfind],this.form)
|
|
this.tableData[lfind] = curRow
|
|
}else{
|
|
lfind = this.tableData.length
|
|
curRow = Object.assign({},this.form)
|
|
this.tableData.push(curRow)
|
|
}
|
|
if(lfind > -1){
|
|
this.$refs['elTable'].setCurrentRow(curRow)
|
|
this.$nextTick(() =>{
|
|
this.rowClick(curRow)
|
|
})
|
|
}
|
|
this.allDiagnosis()
|
|
},
|
|
|
|
btnDel(){
|
|
if(!this.form.id){
|
|
this.$message.warning("请先选中要删除的诊断记录!")
|
|
return
|
|
}
|
|
|
|
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
|
|
confirmButtonText: "是",
|
|
cancelButtonText: "否",
|
|
type: "warning",
|
|
cancelButtonClass:"difference",
|
|
confirmButtonClass:"commonbutton"
|
|
}).then(() => {
|
|
//console.log('{patientRegisterIds}',{patientRegisterIds})
|
|
return postapi(`/api/app/diagnosis/deletediagnosis?id=${this.form.id}`);
|
|
}).then((res) => {
|
|
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.allDiagnosis()
|
|
//this.$message.success('操作成功!')
|
|
}
|
|
}).catch((err) => {
|
|
if (err == "cancel") {
|
|
this.$message.info("已取消操作");
|
|
}
|
|
});
|
|
},
|
|
|
|
},
|
|
|
|
watch: {
|
|
// "query.itemTypeId":{
|
|
// immediate: true, // 立即执行
|
|
// // deep: true, // 深度监听复杂类型内变化
|
|
// handler(newVal,oldVal){
|
|
// // console.log('watch:patientRegisterNo:',newVal,oldVal)
|
|
// if(newVal != oldVal){
|
|
// this.btnQuery();
|
|
// }
|
|
// }
|
|
// },
|
|
"query.triggerScroll":{
|
|
immediate: true, // 立即执行
|
|
// deep: true, // 深度监听复杂类型内变化
|
|
handler(newVal,oldVal){
|
|
// console.log('watch:patientRegisterNo:',newVal,oldVal)
|
|
if(newVal != oldVal){
|
|
this.btnQuery();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style scoped>
|
|
@import '../../assets/css/global_button.css';
|
|
@import '../../assets/css/global_card.css';
|
|
@import '../../assets/css/global_dialog.css';
|
|
@import '../../assets/css/global_form.css';
|
|
@import '../../assets/css/global_input.css';
|
|
@import '../../assets/css/global_table.css';
|
|
@import '../../assets/css/global.css';
|
|
|
|
.box {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
/* form表单每一项的下边距 */
|
|
:deep .el-form-item {
|
|
margin-bottom: 14px;
|
|
}
|
|
/* 去掉input textarea的手动扩张样式 */
|
|
:deep(.el-textarea__inner) {
|
|
resize: none;
|
|
}
|
|
/* el-dialog的头部样式 */
|
|
:deep .el-dialog__header {
|
|
padding: 11px 20px 11px;
|
|
}
|
|
/* el-dialog的主体样式 */
|
|
:deep .el-dialog__body {
|
|
padding: 0px 20px 0px;
|
|
}
|
|
/* el-divider样式 */
|
|
:deep .el-divider--horizontal {
|
|
margin: 0px 0 12px;
|
|
}
|
|
/* el-dialog的底部样式 */
|
|
:deep .el-dialog__footer {
|
|
padding: 0px 20px 14px;
|
|
}
|
|
.seachinput {
|
|
width: 250px;
|
|
margin-right: 110px;
|
|
}
|
|
:deep .seachinput .el-select {
|
|
width: 100%;
|
|
}
|
|
</style>
|