4 changed files with 1516 additions and 207 deletions
-
408src/request/commonapi.js
-
26src/router/index.js
-
686src/views/fee-settings/CriticalValue.vue
-
603src/views/fee-settings/CriticalValueCategory.vue
@ -0,0 +1,686 @@ |
|||
<template> |
|||
<div class="box"> |
|||
<div style="position: relative"> |
|||
<div class="middlebox"> |
|||
<div class="contenttitle"> |
|||
基础资料 / |
|||
<span class="contenttitleBold">危急值</span> |
|||
</div> |
|||
</div> |
|||
<div style="display: block; margin-top: 7px; margin-right: 110px"> |
|||
<div style="background-color: #fff; padding: 15px; border-radius: 8px"> |
|||
<div id="printTest"> |
|||
<el-table |
|||
:data="tableData" |
|||
:height="window.pageHeight < 600 ? 480 : 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=""> |
|||
<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> |
|||
<!-- 按钮区域 --> |
|||
<div |
|||
style=" |
|||
margin-left: 10px; |
|||
margin-top: 3%; |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0; |
|||
" |
|||
> |
|||
<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> |
|||
<!-- 新增或者编辑弹框 --> |
|||
<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: {}, |
|||
}; |
|||
}, |
|||
created() { |
|||
this.getlist(); |
|||
// this.getmedicalconclusionlist(); |
|||
}, |
|||
computed: { |
|||
...mapState(["window"]), |
|||
}, |
|||
mounted() { |
|||
this.rowDrop(); |
|||
this.typeid(); |
|||
}, |
|||
|
|||
methods: { |
|||
dddw, |
|||
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(); |
|||
}, |
|||
createFilter(queryString) { |
|||
return (tableData) => { |
|||
return ( |
|||
tableData.displayName |
|||
.toLowerCase() |
|||
.indexOf(queryString.toLowerCase()) != -1 |
|||
); |
|||
}; |
|||
}, |
|||
handleSelect(item) { |
|||
this.page.Filter = item.displayName; |
|||
this.item = item; |
|||
this.formid = item.id; |
|||
//console.log(item); |
|||
// quersmedicalid(item.id).then((res) => { |
|||
// console.log(res); |
|||
// this.form = res.data; |
|||
// }); |
|||
}, |
|||
querySearch(queryString, cb) { |
|||
var tableData = this.tableData; |
|||
var tableDatas = queryString |
|||
? tableData.filter(this.createFilter(queryString)) |
|||
: tableData; |
|||
// 调用 callback 返回建议列表的数据 |
|||
cb(tableDatas); |
|||
}, |
|||
|
|||
isselctvalue(v) { |
|||
this.form.medicalConclusionTypeId = v; |
|||
this.pages.TypeId = v; |
|||
this.getlist(); |
|||
}, |
|||
getmedicalconclusionlist() { |
|||
medicalconclusionlist().then((res) => { |
|||
if(res.code!=-1){ |
|||
this.Selectacategory = res.data; |
|||
} |
|||
}); |
|||
}, |
|||
// this.medicalconclusionlist() |
|||
//删除 |
|||
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.getlist(); |
|||
this.curRow=this.$options.data().curRow |
|||
} |
|||
}); |
|||
}) |
|||
.catch(() => {}); |
|||
} |
|||
}, |
|||
//取消排序 |
|||
cancellation() { |
|||
this.$message.info("取消操作"); |
|||
this.isshow = true; |
|||
this.getlist(); |
|||
}, |
|||
|
|||
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.getlist(); |
|||
//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.getlist(); |
|||
//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.getlist(); |
|||
//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(); |
|||
}); |
|||
medicalconclusionlist().then((res) => { |
|||
if(res.code!=-1){ |
|||
this.ars = res.data; |
|||
this.selars = this.form.medicalConclusionTypeId; |
|||
} |
|||
}); |
|||
} |
|||
}, |
|||
//点击列表通过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.getlist(); |
|||
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.getlist(); |
|||
this.dialogVisible = false; |
|||
//this.$message.success('修改成功') |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
}, |
|||
//新增弹框 |
|||
add() { |
|||
this.title = 1; |
|||
this.dialogVisible = true; |
|||
if (this.$refs.form !== undefined) { |
|||
this.$refs.form.resetFields(); |
|||
} |
|||
this.form=this.$options.data().form |
|||
this.selars = ""; |
|||
this.$nextTick(() => { |
|||
this.$refs.refinput.focus(); |
|||
}); |
|||
medicalconclusionlist().then((res) => { |
|||
if(res.code!=-1){ |
|||
this.ars = res.data; |
|||
} |
|||
}); |
|||
}, |
|||
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.tableData = res.data; |
|||
if (rowsid != null && rowsid != "") { |
|||
var row = this.tableData.filter((item) => item.id == rowsid); |
|||
this.$refs.tableData.setCurrentRow(row[0]); |
|||
quersmedicalid(rowsid).then((res) => { |
|||
this.form = res.data; |
|||
}); |
|||
} |
|||
} |
|||
}); |
|||
}, |
|||
selsearch(id, typeid) { |
|||
this.Selectvalue = typeid; |
|||
this.pages.TypeId = typeid; |
|||
this.getlistM(id); |
|||
}, |
|||
}, |
|||
}; |
|||
</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> |
|||
@ -0,0 +1,603 @@ |
|||
<template> |
|||
<div class="box"> |
|||
<div style="position: relative"> |
|||
<div class="contenttitle"> |
|||
基础资料 / |
|||
<span class="contenttitleBold">危急值类别</span> |
|||
</div> |
|||
<div style="display: block; margin-top: 7px; margin-right: 110px"> |
|||
<div style="background-color: #fff; border-radius: 8px; padding: 15px"> |
|||
<el-table |
|||
:data="tableData" |
|||
:height="window.pageHeight < 600 ? 450 : window.pageHeight - 130" |
|||
row-key="criticalFollowValueTypeId" |
|||
:key="tableKey" |
|||
default-expand-all |
|||
:tree-props="{ |
|||
children: 'treeChildren', |
|||
hasChildren: 'hasChildren', |
|||
}" |
|||
highlight-current-row |
|||
@row-click="treeclick" |
|||
ref="tableData" |
|||
class="el-table__body-wrapper tbody" |
|||
> |
|||
<el-table-column prop="displayName" label="类别"> |
|||
<template slot-scope="scope"> |
|||
<span> |
|||
<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="!scope.row.parentId" |
|||
/> |
|||
</span> |
|||
<span |
|||
:class=" |
|||
!scope.row.parentId ? 'maxtitle' : 'mintitle' |
|||
" |
|||
>{{ scope.row.displayName }}</span |
|||
> |
|||
</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="simpleCode" |
|||
label="拼音简码" |
|||
></el-table-column> |
|||
<el-table-column label="操作" width="" 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; |
|||
margin-top: 3%; |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0; |
|||
" |
|||
> |
|||
<!-- <el-button type="" @click="addll" class="commonbutton">新增</el-button> --> |
|||
<div |
|||
v-if="tableData.length == '0' ? true : false" |
|||
style="margin-bottom: 10px" |
|||
> |
|||
<el-button type="" class="commonbutton" @click="append" |
|||
>新增危急值类别</el-button |
|||
> |
|||
</div> |
|||
<div> |
|||
<el-button |
|||
type="" |
|||
@click="addll" |
|||
:disabled="isshow" |
|||
class="commonbutton" |
|||
>新增同级</el-button |
|||
> |
|||
</div> |
|||
<div style="margin-top: 10px"> |
|||
<el-button |
|||
type="" |
|||
@click="append" |
|||
:disabled="isshow" |
|||
class="commonbutton" |
|||
>新增子级</el-button |
|||
> |
|||
</div> |
|||
<div style="margin-top: 10px"> |
|||
<el-button |
|||
type="" |
|||
@click="rena" |
|||
:disabled="isshow" |
|||
class="commonbutton" |
|||
>编辑</el-button |
|||
> |
|||
</div> |
|||
<div style="margin-top: 10px"> |
|||
<el-button |
|||
type="" |
|||
@click="deleates" |
|||
:disabled="isshow" |
|||
class="deleteButton" |
|||
>删除</el-button |
|||
> |
|||
</div> |
|||
<div style="margin-top: 10px"> |
|||
<el-button |
|||
type="" |
|||
@click="assertion" |
|||
:disabled="isshows" |
|||
class="commonbutton" |
|||
>排序</el-button |
|||
> |
|||
</div> |
|||
<div style="margin-top: 10px"> |
|||
<el-button |
|||
type="" |
|||
:disabled="isshows" |
|||
@click="cancellation" |
|||
class="commonbutton" |
|||
>取消</el-button |
|||
> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<el-dialog |
|||
:title="title == 1 ? '新增' : '修改'" |
|||
:visible.sync="dialogVisible" |
|||
width="40%" |
|||
:close-on-click-modal="false" |
|||
> |
|||
|
|||
<el-form :model="form" label-width="80px" :rules="rules" ref="ruleForm"> |
|||
<el-row v-if="title == 2 ? true : false"> |
|||
<el-col :span="12"> |
|||
<el-form-item label="上级部门"> |
|||
<el-cascader |
|||
v-if="title == 2" |
|||
ref="depref" |
|||
@change="cascaderchang" |
|||
:show-all-levels="false" |
|||
v-model="departmentname" |
|||
style="margin-left: 10px" |
|||
:options="itemtypedata" |
|||
:props="{ |
|||
checkStrictly: true, |
|||
children: 'treeChildren', |
|||
label: 'displayName', |
|||
value: 'criticalFollowValueTypeId', |
|||
}" |
|||
clearable |
|||
size="small" |
|||
></el-cascader> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="12"> |
|||
<el-form-item label="名称" prop="displayName"> |
|||
<el-input |
|||
v-model="form.displayName" |
|||
ref="refinput" |
|||
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="" @click="addoredit" class="commonbutton" |
|||
>确 定</el-button |
|||
> |
|||
</span> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { |
|||
criticalFollowValueType , |
|||
pojectadd, |
|||
projecteditid, |
|||
projecttype, |
|||
projectedid, |
|||
} from "@/request/commonapi"; |
|||
import { basicsetings, physicalexaminationlist } from "@/request/systemapi"; |
|||
import { getapi, postapi, putapi } from "@/api/api"; |
|||
import { mapState } from "vuex"; |
|||
import { objCopy } from "@/utlis/proFunc"; |
|||
import Sortable from "sortablejs"; |
|||
export default { |
|||
data() { |
|||
return { |
|||
departmentname: "", |
|||
itemtypedata: [], |
|||
rules: { |
|||
displayName: [ |
|||
{ required: true, message: "请输入名称", trigger: "blur" }, |
|||
] |
|||
}, |
|||
defaultProps: { |
|||
children: "treeChildren", |
|||
label: "displayName", |
|||
}, |
|||
title: 1, |
|||
tableData: [], |
|||
tableHeight: window.innerHeight - 180, //表格动态高度 |
|||
screenHeight: window.innerHeight, //内容区域高度 |
|||
form: { |
|||
criticalFollowValueTypeId: "", |
|||
displayName: "", |
|||
parentId: "" |
|||
}, |
|||
dialogVisible: false, |
|||
guideoptions: [], |
|||
row: {}, |
|||
isshow: true, |
|||
activeRows: [], |
|||
message: true, |
|||
tableKey:'', |
|||
isshows:true |
|||
}; |
|||
}, |
|||
created() { |
|||
this.getlist(); |
|||
}, |
|||
mounted() { |
|||
this.rowDrop(); |
|||
}, |
|||
computed: { |
|||
...mapState(["window"]), |
|||
}, |
|||
methods: { |
|||
cascaderchang(v) { |
|||
this.departmentname = v[v.length - 1]; |
|||
}, |
|||
|
|||
treeToTable(tree, level, arr = []) { |
|||
tree.map((item, index) => { |
|||
this.$set(item, "level", level); |
|||
arr.push(item); |
|||
if (item.treeChildren && item.treeChildren != []) { |
|||
arr.push(...this.treeToTable(item.treeChildren, level + 1)); |
|||
} |
|||
}); |
|||
// 返回结果 |
|||
return arr; |
|||
}, |
|||
flatToTree(flatData, idProp, parentIdProp) { |
|||
const treeData = []; |
|||
const idMap = {}; |
|||
|
|||
// 将所有节点存储到 idMap 中,方便快速查找节点 |
|||
for (const node of flatData) { |
|||
idMap[node[idProp]] = node; |
|||
node.treeChildren = []; |
|||
} |
|||
|
|||
// 遍历所有节点,将它们添加到树形结构中 |
|||
for (const node of flatData) { |
|||
const parent = idMap[node[parentIdProp]]; |
|||
if (parent) { |
|||
parent.treeChildren.push(node); |
|||
} else { |
|||
treeData.push(node); |
|||
} |
|||
} |
|||
|
|||
return treeData; |
|||
}, |
|||
screenData(tree,row,increase,arr = []){ |
|||
if(increase){ |
|||
arr.push(row) |
|||
} |
|||
tree.map((item,index)=>{ |
|||
if(item.parentId===row.criticalFollowValueTypeId){ |
|||
arr.push(item) |
|||
if(item.treeChildren && item.treeChildren != []){ |
|||
arr.push(...this.screenData(item.treeChildren,item)); |
|||
} |
|||
} |
|||
}) |
|||
return arr; |
|||
}, |
|||
//初始化 |
|||
rowDrop() { |
|||
this.$nextTick(() => { |
|||
const tbody = document.querySelector(".el-table__body-wrapper tbody"); |
|||
const _this = this; |
|||
Sortable.create(tbody, { |
|||
handle: ".move", |
|||
animation: 300, |
|||
// onStart: () => { // 开始拖拽前把树形结构数据扁平化 |
|||
// _this.activeRows = _this.treeToTable(_this.tableData) // 把树形的结构转为列表再进行拖拽 |
|||
// }, |
|||
onMove({ dragged, related }) { |
|||
// if(dragged.rowIndex<related.rowIndex){ |
|||
// if (_this.message) { |
|||
// _this.$message.warning("不允许向下拖拽"); |
|||
// _this.message = false; |
|||
// } |
|||
// return false; |
|||
// } |
|||
const oldRow = _this.activeRows[dragged.rowIndex]; |
|||
const newRow = _this.activeRows[related.rowIndex]; |
|||
if ( |
|||
oldRow.level !== newRow.level || |
|||
oldRow.parentId !== newRow.parentId |
|||
) { |
|||
if (_this.message) { |
|||
_this.$message.warning("不允许跨级拖拽"); |
|||
_this.message = false; |
|||
} |
|||
return false; |
|||
} |
|||
}, |
|||
onChoose({newIndex,oldIndex }) { |
|||
_this.$refs['tableData'].setCurrentRow(_this.activeRows[oldIndex]); |
|||
_this.treeclick(_this.activeRows[oldIndex]); |
|||
// const oldRow = _this.activeRows[oldIndex]; |
|||
// const newRow = _this.activeRows[newIndex]; |
|||
// if(oldRow.level === newRow.level || |
|||
// oldRow.parentId === newRow.parentId){ |
|||
// _this.$refs['tableData'].setCurrentRow(_this.activeRows[newIndex]); |
|||
// } |
|||
}, |
|||
onEnd({ newIndex, oldIndex }) { |
|||
_this.message = true; |
|||
const oldRow = _this.activeRows[oldIndex] // 移动的那个元素 |
|||
const newRow = _this.activeRows[newIndex] // 新的元素 |
|||
if (oldIndex === newIndex || oldRow.parentId !== newRow.parentId || oldRow.level != newRow.level) return |
|||
if (oldIndex !== newIndex || oldRow.level === newRow.level || oldRow.parentId === newRow.parentId) { |
|||
let oldRowSuffixData=_this.screenData(_this.activeRows,oldRow,true) |
|||
let newRowSuffixData=_this.screenData(_this.activeRows,newRow,true) |
|||
const targetRows = _this.activeRows.splice(oldIndex, oldRowSuffixData.length) |
|||
if (oldIndex > newIndex) { |
|||
_this.activeRows.splice(newIndex, 0, ...targetRows) |
|||
} else if (oldIndex < newIndex) { |
|||
_this.activeRows.splice(newIndex + newRowSuffixData.length - oldRowSuffixData.length, 0, ...targetRows) |
|||
} |
|||
let data = _this.flatToTree( |
|||
_this.activeRows, |
|||
"criticalFollowValueTypeId", |
|||
"parentId" |
|||
); |
|||
_this.$set(_this,'tableData',data) |
|||
_this.isshows = false; |
|||
let beforeScrollTop = _this.$refs.tableData.$el.querySelector('div.el-table__body-wrapper').scrollTop |
|||
_this.tableKey = new Date().getTime() |
|||
_this.$nextTick(() => { |
|||
_this.$refs.tableData.doLayout() |
|||
_this.$refs["tableData"].setCurrentRow( |
|||
oldRow |
|||
); |
|||
_this.treeclick(oldRow); |
|||
setTimeout(() => { |
|||
_this.$refs.tableData.$el.querySelector('div.el-table__body-wrapper').scrollTop = beforeScrollTop |
|||
}, 0) |
|||
_this.rowDrop() |
|||
}); |
|||
} |
|||
} |
|||
}) |
|||
}); |
|||
}, |
|||
//确定排序 |
|||
assertion() { |
|||
const result = []; |
|||
this.activeRows.forEach((item, index) => { |
|||
result.push({ id: item.criticalFollowValueTypeId, displayOrder: index+1 }); |
|||
}); |
|||
postapi("/api/app/CriticalFollowValueType/UpdateSortMany",{ itemList: result }).then((res) => { |
|||
if (res.code != -1) { |
|||
this.isshows = true; |
|||
} |
|||
}); |
|||
}, |
|||
//取消按钮 |
|||
cancellation() { |
|||
this.getlist() |
|||
this.isshows=true |
|||
}, |
|||
//编辑弹框 |
|||
rena() { |
|||
this.departmentname = this.row.parentId; |
|||
this.title = 2; |
|||
this.dialogVisible = true; |
|||
if (this.$refs.ruleForm !== undefined) { |
|||
this.$refs.ruleForm.resetFields(); |
|||
} |
|||
postapi("/api/app/CriticalFollowValueType/Get",{ |
|||
criticalFollowValueTypeId:this.row.criticalFollowValueTypeId |
|||
}).then((res) => { |
|||
if (res.code != -1) { |
|||
objCopy(res.data, this.form); |
|||
this.form.criticalFollowValueTypeId=res.data.id |
|||
} |
|||
}); |
|||
// getapi(`/api/app/item/in-item-type/${data.id}`).then((res) => { |
|||
// this.itemtypedata = res.data; |
|||
// console.log(res, "222222222222222222"); |
|||
// }); |
|||
//获取项目类别数据结构数据 |
|||
criticalFollowValueType().then( |
|||
(res) => { |
|||
if (res.code != -1) { |
|||
this.itemtypedata = res.data; |
|||
} |
|||
} |
|||
); |
|||
}, |
|||
// 删除 |
|||
deleates() { |
|||
this.$confirm("是否删除, 是否继续?", "提示", { |
|||
confirmButtonText: "确定", |
|||
cancelButtonText: "取消", |
|||
type: "warning", |
|||
cancelButtonClass: "difference", |
|||
confirmButtonClass: "commonbutton", |
|||
}) |
|||
.then(() => { |
|||
postapi("/api/app/CriticalFollowValueType/Delete",{ |
|||
criticalFollowValueTypeId:this.row.criticalFollowValueTypeId |
|||
}).then((res) => { |
|||
if (res.code != -1) { |
|||
//this.$message.success("删除成功"); |
|||
this.row = this.$options.data().row; |
|||
this.getlist(); |
|||
this.isshow = true; |
|||
} |
|||
}); |
|||
}) |
|||
.catch(() => { |
|||
this.$message("取消成功"); |
|||
}); |
|||
}, |
|||
append() { |
|||
// this.form = {}; |
|||
// if(node&& data){ |
|||
// this.form.parentId = data.id; |
|||
// } |
|||
// Object.assign(this.$data.form, this.$options.data().form); |
|||
this.form = this.$options.data().form; |
|||
this.form.parentId = this.row.criticalFollowValueTypeId; |
|||
this.dialogVisible = true; |
|||
if (this.$refs.ruleForm !== undefined) { |
|||
this.$refs.ruleForm.resetFields(); |
|||
} |
|||
this.$nextTick(() => { |
|||
this.$refs.refinput.focus(); |
|||
}); |
|||
}, |
|||
//新增弹框 |
|||
addll() { |
|||
// this.form = {}; |
|||
// this.form.parentId = data.parentId; |
|||
// Object.assign(this.$data.form, this.$options.data().form); |
|||
this.form = this.$options.data().form; |
|||
this.form.parentId = this.row.parentId; |
|||
this.dialogVisible = true; |
|||
this.title = 1; |
|||
if (this.$refs.ruleForm !== undefined) { |
|||
this.$refs.ruleForm.resetFields(); |
|||
} |
|||
this.$nextTick(() => { |
|||
this.$refs.refinput.focus(); |
|||
}); |
|||
}, |
|||
//确定新增或者编辑 |
|||
addoredit() { |
|||
this.$refs.ruleForm.validate((v) => { |
|||
if (v) { |
|||
if (this.title == 1) { |
|||
if (this.tableData.length == 0) { |
|||
postapi("/api/app/CriticalFollowValueType/Create", { |
|||
displayName: this.form.displayName, |
|||
}).then((res) => { |
|||
if (res.code != -1) { |
|||
this.getlist(); |
|||
this.$refs["tableData"].setCurrentRow(""); |
|||
this.dialogVisible = false; |
|||
this.isshow = true; |
|||
} |
|||
}); |
|||
} else { |
|||
postapi("/api/app/CriticalFollowValueType/Create", { |
|||
parentId: this.form.parentId, |
|||
displayName: this.form.displayName |
|||
}).then((res) => { |
|||
if (res.code != -1) { |
|||
//this.$message.success("新增成功"); |
|||
this.getlist(); |
|||
this.$refs["tableData"].setCurrentRow(""); |
|||
this.dialogVisible = false; |
|||
this.isshow = true; |
|||
} |
|||
}); |
|||
} |
|||
|
|||
// console.log(this.form); |
|||
} else if (this.title == 2) { |
|||
postapi("/api/app/CriticalFollowValueType/Update",{ |
|||
criticalFollowValueTypeId: this.form.criticalFollowValueTypeId, |
|||
displayName: this.form.displayName |
|||
}).then((res) => { |
|||
if (res.code != -1) { |
|||
//this.$message.success("修改成功"); |
|||
this.getlist(); |
|||
this.$refs["tableData"].setCurrentRow(""); |
|||
this.dialogVisible = false; |
|||
this.isshow = true; |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
}); |
|||
}, |
|||
// 点击获取每一列 |
|||
treeclick(row) { |
|||
this.row = { ...row }; |
|||
this.isshow = false; |
|||
}, |
|||
getlist() { |
|||
criticalFollowValueType().then((res) => { |
|||
if (res.code != -1) { |
|||
this.tableData = [...res.data]; |
|||
this.activeRows = this.treeToTable(this.tableData, 1); |
|||
} |
|||
}); |
|||
}, |
|||
}, |
|||
}; |
|||
</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; |
|||
} |
|||
|
|||
.layeredleftright { |
|||
width: 100%; |
|||
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; |
|||
} |
|||
:deep .el-table tr { |
|||
height: 35px; |
|||
} |
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue