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.
		
		
		
		
		
			
		
			
				
					
					
						
							435 lines
						
					
					
						
							14 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							435 lines
						
					
					
						
							14 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];
							 | 
						|
								      localStorage.setItem("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(this.departmentname);
							 | 
						|
								      this.departmentname = localStorage.getItem("departmentname");
							 | 
						|
								      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>
							 |