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.
432 lines
13 KiB
432 lines
13 KiB
<template>
|
|
<div>
|
|
<el-card style="height: 600px">
|
|
<!-- <el-button type="primary" @click="addorginiztiom">新增组织</el-button> -->
|
|
<div class="publicfontsize">科室设置</div>
|
|
<div class="allC">
|
|
<!-- <i
|
|
class="el-icon-link"
|
|
v-if="natureoptions.length == '0' ? false : true"
|
|
></i
|
|
><span>组织架构</span> -->
|
|
<div
|
|
v-if="natureoptions.length == '0' ? true : false"
|
|
@click="append(node, data)"
|
|
>
|
|
<i class="el-icon-link" @click="append"></i><span> 添加组织</span>
|
|
</div>
|
|
<el-tree
|
|
:default-expand-all="true"
|
|
:expand-on-click-node="false"
|
|
:data="natureoptions"
|
|
:props="defaultProps"
|
|
:show-checkbox="false"
|
|
ref="tree"
|
|
node-key="id"
|
|
style="width: 30%; margin-top: 20px"
|
|
@check="check"
|
|
>
|
|
<span slot-scope="{ node, data }">
|
|
<span>{{ node.label }}</span>
|
|
<span>
|
|
<!-- <i
|
|
v-if="data.id !== 0"
|
|
class="el-icon-plus"
|
|
@click="append(node, data)"
|
|
style="font-size:15px"
|
|
></i> -->
|
|
<el-button
|
|
type="primary"
|
|
size="small"
|
|
style="padding: 3px; font-size: 15px; margin-left: 5%"
|
|
@click="() => addorginiztiom(node, data)"
|
|
>新增同级</el-button
|
|
>
|
|
<el-button
|
|
type="primary"
|
|
size="mini"
|
|
style="padding: 3px; font-size: 15px"
|
|
@click="append(node, data)"
|
|
>新增子级</el-button
|
|
>
|
|
<!-- <i class="el-icon-delete" @click="() => deleates(node, data)" style="font-size:15px"></i> -->
|
|
<el-button
|
|
type="danger"
|
|
size="mini"
|
|
style="padding: 3px; font-size: 15px"
|
|
@click="() => deleates(node, data)"
|
|
>删除</el-button
|
|
>
|
|
|
|
<!-- <i class="el-icon-edit" @click="() => rena(node, data)" style="font-size:15px">编辑</i> -->
|
|
<el-button
|
|
type="primary"
|
|
size="small"
|
|
style="padding: 3px; font-size: 15px"
|
|
@click="() => rena(node, data)"
|
|
>编辑</el-button
|
|
>
|
|
</span>
|
|
</span>
|
|
</el-tree>
|
|
<!-- 弹框 -->
|
|
<!-- <el-button type="primary" @click="addorginiztiom" style="height: 40px"
|
|
>新增组织</el-button
|
|
> -->
|
|
</div>
|
|
<!-- 新增组织弹框 -->
|
|
<el-dialog
|
|
:title="title == 2 ? '修改组织' : '新增组织'"
|
|
:visible.sync="dialogVisible"
|
|
width="50%"
|
|
@close="closethiebox"
|
|
:close-on-click-modal="false"
|
|
>
|
|
<div v-if="title == 2">
|
|
当前选中的科室<span
|
|
style="margin-left: 20px; font-size: 18px; margin-top: -20px"
|
|
>{{ departmentname }}</span
|
|
>
|
|
</div>
|
|
<div v-if="title == 2">
|
|
<span>上级部门</span>
|
|
<el-cascader
|
|
ref="depref"
|
|
@change="cascaderchang"
|
|
:show-all-levels="false"
|
|
:options="selecttable"
|
|
:props="{
|
|
checkStrictly: true,
|
|
children: 'treeChildren',
|
|
label: 'displayName',
|
|
value: 'displayName',
|
|
}"
|
|
clearable
|
|
></el-cascader>
|
|
<!-- <el-tree
|
|
:data="title == 1 ? treedata : selecttable"
|
|
:props="defaultProp"
|
|
@node-click="treeclick"
|
|
>
|
|
</el-tree> -->
|
|
</div>
|
|
<el-row>
|
|
<el-col :span="8" style="line-height: 40px">
|
|
是否为体检中心
|
|
<el-radio-group v-model="form.isPeis">
|
|
<el-radio label="Y">是</el-radio>
|
|
<el-radio label="N">否</el-radio>
|
|
</el-radio-group>
|
|
<!-- <el-radio v-model="form.isPeis" label="Y">是</el-radio>
|
|
<el-radio v-model="form.isPeis" label="N">否</el-radio> -->
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form :model="form">
|
|
<el-form-item label="名称" label-width="80px">
|
|
<el-input v-model="form.displayName"></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-col>
|
|
</el-row>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
<el-button type="primary" @click="organizationtreeaddoredit"
|
|
>确 定</el-button
|
|
>
|
|
</span>
|
|
</el-dialog>
|
|
</el-card>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import {
|
|
organizationtree,
|
|
organizationcaeatre,
|
|
deleteschema,
|
|
modifyedit,
|
|
} from "../../request/ruquset";
|
|
import { postapi, putapi, getapi } from "@/api/api";
|
|
export default {
|
|
data() {
|
|
return {
|
|
showcheckbox: false,
|
|
defaultKeys: [],
|
|
selecttable: [], //科室的选择选中
|
|
form: {
|
|
parentId: "",
|
|
displayName: "",
|
|
isPeis: "N",
|
|
departmentname: "",
|
|
},
|
|
title: 1,
|
|
dialogVisible: false,
|
|
natureoptions: [],
|
|
defaultProp: {
|
|
children: "treeChildren",
|
|
label: "displayName",
|
|
value: "displayName",
|
|
},
|
|
defaultProps: {
|
|
children: "treeChildren",
|
|
label: "displayName",
|
|
},
|
|
checked: false,
|
|
parent: 1,
|
|
treedata: [],
|
|
departmentname: "", //科室名称
|
|
};
|
|
},
|
|
mounted() {
|
|
this.getonorganization();
|
|
},
|
|
methods: {
|
|
cascaderchang(v) {
|
|
console.log(this.departmentname);
|
|
this.departmentname = v[v.length - 1];
|
|
// console.log(v[v.length-1]);
|
|
// v.forEach((item) => {
|
|
// this.departmentname = item;
|
|
// });
|
|
// let a=this.depref.value.togglePoppervisible()
|
|
// console.log(a);
|
|
},
|
|
//选中的组织
|
|
treeclick(data) {
|
|
this.departmentname = data.displayName;
|
|
console.log(data);
|
|
},
|
|
//close弹框关闭事件
|
|
closethiebox() {
|
|
this.departmentname = "";
|
|
},
|
|
//关闭弹框
|
|
closethebulletbox() {
|
|
this.dialogVisible = false;
|
|
this.form = {};
|
|
this.form.isPeis = "N";
|
|
},
|
|
//确定新增或者编辑
|
|
organizationtreeaddoredit() {
|
|
if (this.title == 1) {
|
|
if (this.form.displayName != "") {
|
|
console.log(this.form.parentId);
|
|
if (this.form.parentId == "") {
|
|
postapi("/api/app/organization-units/creatre", {
|
|
displayName: this.form.displayName,
|
|
isPeis: this.form.isPeis,
|
|
}).then((res) => {
|
|
if (res.code == 0) {
|
|
this.$message.success("新增成功");
|
|
this.dialogVisible = false;
|
|
this.form.displayName = "";
|
|
this.getonorganization();
|
|
}
|
|
});
|
|
} else {
|
|
postapi("/api/app/organization-units/creatre", {
|
|
displayName: this.form.displayName,
|
|
isPeis: this.form.isPeis,
|
|
parentId: this.form.parentId,
|
|
}).then((res) => {
|
|
if (res.code == 0) {
|
|
this.$message.success("新增成功11");
|
|
this.dialogVisible = false;
|
|
this.form.displayName = "";
|
|
this.getonorganization();
|
|
}
|
|
});
|
|
}
|
|
} else {
|
|
this.$message.warning("请输入名称");
|
|
}
|
|
} else if (this.title == 2) {
|
|
putapi(
|
|
`/api/app/organization-units?Id=${this.form.id}&DisplayName=${this.form.displayName}&IsPeis=${this.form.isPeis}`
|
|
).then((res) => {
|
|
if (res.code == 0) {
|
|
this.$message.success("编辑成功");
|
|
this.dialogVisible = false;
|
|
this.getonorganization();
|
|
}
|
|
});
|
|
} else if (this.title == 3) {
|
|
if (this.form.displayName == "") {
|
|
this.$message.warning("请输入名称");
|
|
} else {
|
|
postapi("/api/app/organization-units/creatre", {
|
|
displayName: this.form.displayName,
|
|
isPeis: this.form.isPeis,
|
|
parentId: this.form.parentId,
|
|
}).then((res) => {
|
|
this.$message.success("新增成功");
|
|
this.dialogVisible = false;
|
|
// this.form = {};
|
|
this.form.displayName = "";
|
|
this.form.isPeis = "N";
|
|
this.getonorganization();
|
|
});
|
|
}
|
|
}
|
|
},
|
|
check(data) {
|
|
console.log(data);
|
|
localStorage.setItem("dataidkes", data.id);
|
|
// this.$refs.tree.getCheckedKeys()
|
|
},
|
|
getonorganization() {
|
|
organizationtree().then((res) => {
|
|
this.natureoptions = res.data;
|
|
console.log(res);
|
|
});
|
|
},
|
|
//添加父级组织
|
|
addorginiztiom(node, data) {
|
|
// this.$prompt("组织名称", "新增组织", {
|
|
// confirmButtonText: "确定",
|
|
// cancelButtonText: "取消",
|
|
// inputPattern: /^[\u4e00-\u9fa5]{0,}$/, //匹配全中文
|
|
// inputErrorMessage: "请输入中文", //不符合正则匹配的提示语句
|
|
// }).then(({ value }) => {
|
|
// //parentId:data.id
|
|
// organizationcaeatre({ displayName: value }).then((res) => {
|
|
// this.getonorganization();
|
|
// this.$message.success("新增成功");
|
|
// });
|
|
// });
|
|
|
|
getapi("/api/app/organization-units/by-code-all").then((res) => {
|
|
this.treedata = res.data;
|
|
console.log(res);
|
|
});
|
|
this.selecttable = [];
|
|
this.dialogVisible = true;
|
|
this.title = 1;
|
|
if (this.title == 1) {
|
|
this.form.parentId = data.parentId;
|
|
console.log(this.form.parentId);
|
|
}
|
|
// this.form.parentId = "";
|
|
console.log(this.form);
|
|
this.form.displayName = "";
|
|
},
|
|
//新增组织组织
|
|
append(node, data) {
|
|
this.form.displayName = "";
|
|
this.title = 3;
|
|
if (this.title == 3) {
|
|
this.dialogVisible = true;
|
|
this.form.parentId = data.id;
|
|
console.log(this.form.parentId);
|
|
console.log(this.form);
|
|
}
|
|
|
|
// if(this.natureoptions)
|
|
// console.log(node, data);
|
|
// if (this.natureoptions.length == 0) {
|
|
// this.$prompt("组织名称", "增加组织", {
|
|
// confirmButtonText: "确定",
|
|
// cancelButtonText: "取消",
|
|
// inputPattern: /^[\u4e00-\u9fa5]{0,}$/, //匹配全中文
|
|
// inputErrorMessage: "请输入中文", //不符合正则匹配的提示语句
|
|
// }).then(({ value }) => {
|
|
// //parentId:data.id
|
|
// organizationcaeatre({ displayName: value }).then((res) => {
|
|
// this.getonorganization();
|
|
// this.$message.success("新增成功");
|
|
// });
|
|
// });
|
|
// } else {
|
|
// this.$prompt("组织名称", "增加组织", {
|
|
// confirmButtonText: "确定",
|
|
// cancelButtonText: "取消",
|
|
// inputPattern: /^[\u4e00-\u9fa5]{0,}$/, //匹配全中文
|
|
// inputErrorMessage: "请输入中文", //不符合正则匹配的提示语句
|
|
// }).then(({ value }) => {
|
|
// //parentId:data.id
|
|
// organizationcaeatre({ displayName: value, parentId: data.id }).then(
|
|
// (res) => {
|
|
// this.getonorganization();
|
|
// this.$message.success("新增成功");
|
|
// }
|
|
// );
|
|
// });
|
|
// }
|
|
},
|
|
//删除组织
|
|
deleates(data) {
|
|
this.$confirm("是否确定删除, 是否继续?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning",
|
|
}).then((res) => {
|
|
deleteschema(data.data.id).then((res) => {
|
|
if (res.code == 0) {
|
|
console.log(res);
|
|
this.$message.success("删除成功");
|
|
this.getonorganization();
|
|
}
|
|
});
|
|
console.log(data);
|
|
});
|
|
},
|
|
//编辑组织
|
|
rena(node, data) {
|
|
console.log(data, "data");
|
|
this.dialogVisible = true;
|
|
this.title = 2;
|
|
console.log(this.form.isPeis);
|
|
// this.selecttable.push(data);
|
|
this.showcheckbox = true;
|
|
this.form = data;
|
|
this.form.isPeis = "N";
|
|
// console.log(this.selecttable, 5555);
|
|
getapi(
|
|
`/api/app/organizationunit/getbycodeparent?OrganizationUnitId=${data.id}`
|
|
).then((res) => {
|
|
this.selecttable = res.data;
|
|
console.log(res, "res");
|
|
});
|
|
// getapi(`/api/app/organization-units?Id=${data.id}`).then((res) => {
|
|
// this.form = res.data;
|
|
|
|
// console.log(res);
|
|
// });
|
|
|
|
// this.form = data;
|
|
// console.log(this.form);
|
|
// console.log(data);
|
|
// this.$prompt("组织名称", "修改组织", {
|
|
// confirmButtonText: "确定",
|
|
// cancelButtonText: "取消",
|
|
// // inputPattern: /^[\u4e00-\u9fa5]{0,}$/, //匹配全中文
|
|
// // inputErrorMessage: "请输入中文", //不符合正则匹配的提示语句
|
|
// }).then(({ value }) => {
|
|
// console.log(value);
|
|
// modifyedit(data.id, value).then((res) => {
|
|
// this.getonorganization();
|
|
// // console.log(res)
|
|
// this.$message.success("修改成功");
|
|
// });
|
|
// });
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style scoped>
|
|
.publicfontsize {
|
|
font-size: 18px;
|
|
}
|
|
|
|
.el-icon-plus {
|
|
margin-left: 10%;
|
|
}
|
|
.el-icon-delete {
|
|
margin-left: 5%;
|
|
}
|
|
.el-icon-edit {
|
|
margin-left: 5%;
|
|
}
|
|
.allC {
|
|
display: flex;
|
|
}
|
|
</style>
|