|
|
<template> <div class="box"> <div style="position: relative"> <div class="middlebox"> <div class="contenttitle"> 基础资料 / <span class="contenttitleBold">危急值</span> </div> <div class="seachinput"> <el-select v-model="department" placeholder="请选择危急值" filterable :filter-method="remoteMethodes" default-first-option @change="quckDepartments" clearable size="small" > <el-option v-for="item in quckDepartment" :key="item.id" :label="item.displayName" :value="item.id" > </el-option> </el-select> </div> </div> <div style="display: flex; margin-top: 7px"> <div :style=" 'width: 208px;overflow: scroll;height:' + (window.pageHeight < 600 ? 480 : window.pageHeight - 100) + 'px;background-color: #fff; border-radius: 8px' " > <div style="margin-top: 10px"> <el-tree :data="criticalFollowValueTypeId" :props="treeprops" @node-click="treeclick" node-key="criticalFollowValueTypeId" ref="itemType" highlight-current auto-expand-parent > <span class="custom-tree-node" slot-scope="{ node, data }"> <div> <span class="treeicons"> <!-- <i class="el-icon-document-remove" v-if="data.parentId == null" ></i> --> <img style="width: 20px; height: 20px; vertical-align: sub" src="@/assets/images/order.png" v-if="!data.parentId" /> </span> <span :class="!data.parentId ? 'maxtitle' : 'mintitle'">{{ node.label }}</span> </div> </span> </el-tree> </div> </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> <el-table :data="tableData" :height=" window.pageHeight < 600 ? 450 : window.pageHeight - 130 " row-key="id" class="el-table__body-wrapper tbody" @row-click="rowclick" highlight-current-row ref="tableData" > <el-table-column prop="id" label="编号" width="300"> </el-table-column> <el-table-column prop="displayName" label="名称" width=""> </el-table-column> <el-table-column prop="criticalFollowValueTypeId" label="危急值类别" width="" > <template slot-scope="scope"> <div> {{ getTreeName( criticalFollowValueTypeId, scope.row.criticalFollowValueTypeId ) }} </div> </template> </el-table-column> <el-table-column prop="criticalFollowValueFlag" label="危急随访值标志" width="120" > <template slot-scope="scope"> <div> {{ dddw( criticalFollowValueFlag, "id", scope.row.criticalFollowValueFlag, "displayName" ) }} </div> </template> </el-table-column> <el-table-column prop="creatorName" label="创建者" width=""> </el-table-column> <el-table-column prop="creationTime" label="创建时间" width="200" > <template slot-scope="scope"> {{ scope.row.creationTime | dateFormat }} </template> </el-table-column> <el-table-column prop="lastModifierName" label="修改者" width="" > </el-table-column> <el-table-column prop="lastModificationTime" label="修改时间" width="200" > <template slot-scope="scope"> {{ scope.row.lastModificationTime | dateFormat }} </template> </el-table-column> <el-table-column label="操作" 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"> <el-button type="" @click="add" class="commonbutton" >新增</el-button > <div style="margin-top: 10px"> <el-button type="" @click="editpopup" class="commonbutton" >编辑</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="delsrts" class="deleteButton" >删除</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="topping" class="commonbutton" >置顶</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="toppings" class="commonbutton" >置底</el-button > </div> <div style="margin-top: 10px"> <el-button type="" :disabled="isshow" @click="assertion" class="commonbutton" >排序</el-button > </div> <div style="margin-top: 10px"> <el-button type="" :disabled="isshow" @click="cancellation" class="commonbutton" >取消</el-button > </div> </div> </div> </div> </div> </div> <!-- 新增或者编辑弹框 --> <el-dialog :title="title == 1 ? '新增' : '编辑'" :visible.sync="dialogVisible" width="75%" :close-on-click-modal="false" > <el-form ref="form" :model="form" label-width="110px"> <el-row> <el-col :span="9"> <el-form-item label="编号"> <el-input v-model="form.id" style="width: 90%" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="名称"> <el-input ref="refinput" v-model="form.displayName" style="width: 80%" size="small" ></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="危急值类别" prop="criticalFollowValueTypeId"> <el-cascader v-model="form.criticalFollowValueTypeId" :options="criticalFollowValueTypeId" popper-class="example" ref="criticalFollowValueTypeId" @change="onchange" :props="{ value: 'criticalFollowValueTypeId', label: 'displayName', children: 'treeChildren', checkStrictly: true, expandTrigger: 'hover', }" size="small" ></el-cascader> <!-- <el-select v-model="form.itemTypeId" placeholder="请选择" style="width: 100%" > <el-option v-for="item in itemTypeId" :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="危急随访值标志"> <el-select v-model="form.criticalFollowValueFlag" placeholder="危急随访值标志" size="small" > <el-option v-for="item in criticalFollowValueFlag" :key="item.id" :label="item.displayName" :value="item.id" ></el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-divider></el-divider> <el-col :span="4" style="margin-left: 15px"> <el-form-item label="创建者"> <el-input v-model="form.creatorName" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="创建时间"> <el-input :value="form.creationTime | dateFormat" disabled style="width: 95%" size="small" ></el-input> </el-form-item> </el-col> <el-col :span="4"> <el-form-item label="修改者"> <el-input v-model="form.lastModifierName" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="修改时间"> <el-input :value="form.lastModificationTime | dateFormat" disabled style="width: 95%" size="small" ></el-input> </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="addoredit" class="commonbutton" >确 定</el-button > </span> </el-dialog> </div></template><script>import { rowDrop, assertions } from "@/components/publicjs/public";import Sortable from "sortablejs";import { getapi, postapi, putapi } from "@/api/api";import { mapState } from "vuex";import { dddw } from "../../utlis/proFunc";import { physicallist, medicalconclusionlist, addconclusion, quersmedicalid, updateconlus, bottomtops, conlusiondraganddrop, tijiandetid, diagnosticediting, xiugaijielun, conclusionacquisition,} from "../../request/systemapi";import { criticalFollowValueType } from "@/request/commonapi";export default { data() { return { isshow: true, dialogVisible: false, form: { displayName: "", criticalFollowValueTypeId: "", criticalFollowValueFlag: "", }, Selectacategory: [], Selectvalue: "", selars: "", value: "", criticalFollowValueTypeId: [], criticalFollowValueFlag: [ { id: "0", displayName: "危急值", }, { id: "1", displayName: "随访值", }, ], title: 1, pages: { TypeId: "", SkipCount: 0, MaxResultCount: 100, Sorting: "displayOrder desc", }, page: { Filter: "", SkipCount: 0, MaxResultCount: 100, Sorting: "displayOrder desc", }, tableData: [], initTableData: [], item: {}, curRow: {}, treeprops: { label: "displayName", value: "id", children: "treeChildren", }, criticalFollowTypeId:"", department:"", quckDepartment:"" }; }, created() { this.getlist(); }, computed: { ...mapState(["window"]), }, mounted() { this.rowDrop(); this.typeid(); },
methods: { dddw, treeclick(data) { if(data){ this.criticalFollowTypeId = data.criticalFollowValueTypeId; } postapi("/api/app/CriticalFollowValue/GetList",{ criticalFollowValueTypeId:this.criticalFollowTypeId }).then((res) => { if (res.code != -1) { this.tableData = res.data; } }); }, remoteMethodes(keyWords) { if (keyWords) { this.quckDepartment = []; this.initTableData.forEach((item) => { if ( item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > -1 // ||
// item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > -1
// || item.shortName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
) { this.quckDepartment.push(item); } }); } else { this.quckDepartment = deepCopy(this.initTableData); } }, quckDepartments(e) { if (e) { let currentKey = ""; this.quckDepartment.forEach((item) => { if (e == item.id) { currentKey = item.criticalFollowValueTypeId; this.initItemTypeId = item.criticalFollowValueTypeId; } }); this.$refs["itemType"].setCurrentKey(currentKey); let selected = this.$refs["itemType"].getCurrentNode(); if ( this.$refs["itemType"].getNode(selected) && this.$refs["itemType"].getNode(selected).parent ) { this.expandParents(this.$refs["itemType"].getNode(selected).parent); } postapi("/api/app/CriticalFollowValue/GetList",{ criticalFollowValueTypeId:currentKey }).then((res) => { if (res.code != -1) { this.tableData = res.data; this.tableData.forEach((item, index) => { if (e == item.id) { this.$refs["tableData"].setCurrentRow(item); this.rowclick(item); this.tableScrollToRow(this.$refs.tableData, index); this.searchup(item, index) } }); } }); } else { this.remoteMethodes(); } }, tableScrollToRow(tableElement, rowIndex) { let theTableRows = tableElement.bodyWrapper.querySelectorAll( ".el-table__body tbody .el-table__row" ); let scrollTop = 0; for (let i = 0; i < theTableRows.length; i++) { if (i === rowIndex) { break; } scrollTop += theTableRows[i].offsetHeight; } tableElement.bodyWrapper.scrollTop = scrollTop; }, searchup(data, index) { this.$nextTick(() => { if (index == 0) { index = 1 } const targetTop = this.$refs["tableData"].$el.querySelectorAll('.el-table__body tr')[index - 1].getBoundingClientRect().top const containerTop = this.$refs["tableData"].$el.querySelector('.el-table__body').getBoundingClientRect().top const scrollParent = this.$refs["tableData"].$el.querySelector('.el-table__body-wrapper') scrollParent.scrollTop = targetTop - containerTop }) }, expandParents(node) { node.expanded = true; if (node.parent) { this.expandParents(node.parent); } }, getTreeName(list, id) { for (let i = 0; i < list.length; i++) { if (list[i].criticalFollowValueTypeId === id) { return list[i].displayName; } else if (list[i].treeChildren && list[i].treeChildren.length > 0) { let res = this.getTreeName(list[i].treeChildren, id); if (res) { return res; } } } }, typeid() { criticalFollowValueType().then((res) => { if (res.code != -1) { this.criticalFollowValueTypeId = res.data; this.criticalFollowValueTypeId = this.formatData( this.criticalFollowValueTypeId ); console.log(this.criticalFollowValueTypeId); } }); }, formatData(dataList) { for (let i = 0; i < dataList.length; i++) { if (dataList[i].treeChildren.length < 1) { dataList[i].treeChildren = undefined; } else { this.formatData(dataList[i].treeChildren); } } return dataList; }, onchange(v) { if (v.length > 1) { this.form.criticalFollowValueTypeId = this.form.criticalFollowValueTypeId.slice(-1)[0]; } else { this.form.criticalFollowValueTypeId = this.form.criticalFollowValueTypeId[0]; } this.$refs.criticalFollowValueTypeId.toggleDropDownVisible(); }, //删除
delsrts() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请选择删除的数据"); } else { this.$confirm("是否确认删除,是否继续?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", cancelButtonClass: "difference", confirmButtonClass: "commonbutton", }) .then(() => { postapi("/api/app/CriticalFollowValue/Delete", { criticalFollowValueId: this.form.id, }).then((res) => { if (res.code != -1) { //this.$message.success('删除成功')
this.treeclick(); this.curRow = this.$options.data().curRow; } }); }) .catch(() => {}); } }, //取消排序
cancellation() { this.$message.info("取消操作"); this.isshow = true; this.treeclick(); },
assertiona() { assertions(this.tableData, this.initTableData); }, //确定拖拽
assertion() { const result = []; this.tableData.forEach((item, index) => { // index 从0开始的, displayOrder从大到小排
// const currentDisplayOrder = this.tableData.length -1
// const currentDisplayOrder = this.initTableData[index].displayOrder;
// if (item.displayOrder != currentDisplayOrder) {
// 如果它的displayOrder和它当前所在的位置不同代表挪动过位置
// result.push({ id: item.id, displayOrder: currentDisplayOrder });
// }
result.push({ id: item.id, displayOrder: index + 1 }); }); postapi("/api/app/CriticalFollowValue/UpdateSortMany", { itemList: result, }).then((res) => { if (res.code != -1) { this.isshow = true; this.treeclick(); //this.$message.success('操作成功')
} }); }, //初始化
rowDrop() { this.$nextTick(() => { const tbody = document.querySelector(".el-table__body-wrapper tbody"); const _this = this; Sortable.create(tbody, { handle: ".move", animation: 300, onChoose({ oldIndex }) { _this.$refs["tableData"].setCurrentRow(_this.tableData[oldIndex]); _this.rowclick(_this.tableData[oldIndex], false); }, onEnd({ newIndex, oldIndex }) { _this.isshow = false; const currRow = _this.tableData.splice(oldIndex, 1)[0]; _this.tableData.splice(newIndex, 0, currRow); _this.tableData.map((item, index) => { if (index == newIndex && index == oldIndex) { // console.log(item, "新数据");
} else if (index == oldIndex) { } else if (index == newIndex) { } }); }, }); }); }, //置低
toppings() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.error("请点击选择操作的数据"); } else { postapi("/api/app/CriticalFollowValue/UpdateManySort", { criticalFollowValueId: this.form.id, sortType: 2, }).then((res) => { if (res.code != -1) { this.treeclick(); //this.$message.success('操作成功')
} }); } }, //置顶
topping() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.error("请点击选择操作的数据"); } else { postapi("/api/app/CriticalFollowValue/UpdateManySort", { criticalFollowValueId: this.form.id, sortType: 1, }).then((res) => { if (res.code != -1) { this.treeclick(); //this.$message.success('操作成功')
} }); } }, //编辑弹框
editpopup() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请点击选择操作的数据"); } else { this.dialogVisible = true; this.title = 2; if (this.$refs.form !== undefined) { this.$refs.form.resetFields(); } this.$nextTick(() => { this.$refs.refinput.focus(); }); } }, //点击列表通过id查询
rowclick(row) { this.curRow = { ...row }; // quersmedicalid(row.id).then((res) => {
// if(res.code!=-1){
// this.curRow = { ...res.data };
// }
// });
}, //确定新增或者编辑
addoredit() { if (this.form.displayName == "") { this.$message.warning("请输入名称"); } else if (this.form.criticalFollowValueTypeId == "") { this.$message.warning("请选择危急值类别"); } else if (this.form.criticalFollowValueFlag == "") { this.$message.warning("危急随访值标志"); } else { if (this.title == 1) { postapi("/api/app/CriticalFollowValue/Create", { displayName: this.form.displayName, criticalFollowValueTypeId: this.form.criticalFollowValueTypeId, criticalFollowValueFlag: this.form.criticalFollowValueFlag, }).then((res) => { if (res.code != -1) { this.treeclick(); this.dialogVisible = false; //this.$message.success('新增成功')
} }); } else if (this.title == 2) { //diagnosticediting updateconlus
postapi("/api/app/CriticalFollowValue/Update", { criticalFollowValueId: this.form.id, displayName: this.form.displayName, criticalFollowValueTypeId: this.form.criticalFollowValueTypeId, criticalFollowValueFlag: this.form.criticalFollowValueFlag, }).then((res) => { if (res.code != -1) { this.treeclick(); this.dialogVisible = false; //this.$message.success('修改成功')
} }); } } }, //新增弹框
add() { if (this.criticalFollowTypeId == undefined || this.criticalFollowTypeId == "") { this.$message.warning("请选择危急类别"); } else { this.title = 1; this.dialogVisible = true; if (this.$refs.form !== undefined) { this.$refs.form.resetFields(); } this.form = this.$options.data().form; this.form.criticalFollowValueTypeId = this.criticalFollowTypeId; this.$nextTick(() => { this.$refs.refinput.focus(); }); } }, getlist() { // conclusionacquisition(this.pages).then((res) => {
// console.log(res);
// this.initTableData = [...res.data.items];
// this.tableData = res.data.items;
// });
this.getlistM(); }, getlistM(rowsid) { postapi("/api/app/CriticalFollowValue/GetList").then((res) => { if (res.code != -1) { this.initTableData = [...res.data]; this.quckDepartment = res.data; } }); }, },};</script><style scoped>@import "../../assets/css/global_button.css";@import "../../assets/css/global_dialog.css";@import "../../assets/css/global_table.css";@import "../../assets/css/global_form.css";@import "../../assets/css/global_input.css";@import "../../assets/css/global.css";.box { display: flex; flex-direction: column;}:deep .el-form-item { margin-bottom: 14px;}/* 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>
|