|
|
@@ -0,0 +1,628 @@
|
|
|
+<template>
|
|
|
+ <div class="institution">
|
|
|
+ <div class="institution-main">
|
|
|
+ <el-form label-position="left" label-width="auto">
|
|
|
+ <el-row :gutter="16">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="">
|
|
|
+ <el-input
|
|
|
+ v-model="formAccessibility.firstName"
|
|
|
+ placeholder="输入机构名称查找"
|
|
|
+ :prefix-icon="Search"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="">
|
|
|
+ <el-button type="primary">查询</el-button>
|
|
|
+ <el-button type="primary" plain @click="reset">重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <Table
|
|
|
+ :tableData="tableData"
|
|
|
+ :columns="columns"
|
|
|
+ :showIndex="false"
|
|
|
+ :showSelect="true"
|
|
|
+ :pageInfo="pageInfo"
|
|
|
+ @getList="getList"
|
|
|
+ :treeProps="{ children: 'children', hasChildren: 'hasChildren' }"
|
|
|
+ >
|
|
|
+ <template v-slot:table-title-btn>
|
|
|
+ <div>
|
|
|
+ <el-button type="primary" @click="add(ruleFormRef)">
|
|
|
+ <el-icon><Plus /></el-icon>添加机构</el-button
|
|
|
+ >
|
|
|
+ <el-dropdown placement="bottom-start">
|
|
|
+ <el-button>
|
|
|
+ 批量操作<el-icon class="el-icon--right">
|
|
|
+ <arrow-down />
|
|
|
+ </el-icon>
|
|
|
+ </el-button>
|
|
|
+ <template #dropdown>
|
|
|
+ <el-dropdown-menu>
|
|
|
+ <el-dropdown-item>删除</el-dropdown-item>
|
|
|
+ <el-dropdown-item>设置负责人</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </template>
|
|
|
+ </el-dropdown>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-slot:operation="scope">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ link
|
|
|
+ @click="addChild(scope.operationData.row)"
|
|
|
+ >
|
|
|
+ 添加子机构
|
|
|
+ </el-button>
|
|
|
+ <el-dropdown placement="bottom-start">
|
|
|
+ <span class="el-dropdown-link"> 更多 </span>
|
|
|
+ <template #dropdown>
|
|
|
+ <el-dropdown-menu>
|
|
|
+ <el-dropdown-item v-on:click="editor(scope.operationData.row)"
|
|
|
+ >编辑</el-dropdown-item
|
|
|
+ >
|
|
|
+ <el-dropdown-item v-on:click="del(scope.operationData.row)">
|
|
|
+ 删除
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item command="set">设置负责人</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </template>
|
|
|
+ </el-dropdown>
|
|
|
+ </template>
|
|
|
+ <template v-slot:search="scope">
|
|
|
+ {{ scope.slotData.label }}
|
|
|
+ </template>
|
|
|
+ </Table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <el-dialog v-model="dialogVisible" title="基本信息" width="800" draggable>
|
|
|
+ <el-form
|
|
|
+ label-position="top"
|
|
|
+ label-width="auto"
|
|
|
+ :rules="rules"
|
|
|
+ :model="form"
|
|
|
+ ref="ruleFormRef"
|
|
|
+ >
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="机构名称" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="form.name"
|
|
|
+ maxlength="50"
|
|
|
+ placeholder="输入机构名称"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="上级机构" prop="parentId">
|
|
|
+ <el-cascader
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="form.parentId"
|
|
|
+ :options="tableData"
|
|
|
+ :props="tableProps"
|
|
|
+ @change="handleChange"
|
|
|
+ />
|
|
|
+ <!-- <el-select v-model="form.parentId" placeholder="选择上级机构" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in tableData"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+
|
|
|
+ </el-select> -->
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="机构类型" prop="comType">
|
|
|
+ <el-select
|
|
|
+ v-model="form.comType"
|
|
|
+ placeholder="选择机构类型"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in comTypeList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="地区" prop="area">
|
|
|
+ <el-cascader
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="form.area"
|
|
|
+ :options="areaOptins"
|
|
|
+ :props="areaProps"
|
|
|
+ @change="handleChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="展业范围" prop="exhibitionScope">
|
|
|
+ <el-select
|
|
|
+ v-model="form.exhibitionScope"
|
|
|
+ placeholder="选择展业范围"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in exhibitionScopeTypeList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="机构地址" prop="address">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="form.address"
|
|
|
+ maxlength="50"
|
|
|
+ placeholder="请输入机构地址"
|
|
|
+ type="textarea"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="机构负责人" prop="leaderId">
|
|
|
+ <el-select
|
|
|
+ v-model="form.leaderId"
|
|
|
+ placeholder="选择机构负责人"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button @click="dialogVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="confirm(ruleFormRef)">
|
|
|
+ 保 存
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup lang="ts">
|
|
|
+import { ref, reactive, watch, onMounted } from "vue";
|
|
|
+import type { ComponentSize, FormInstance, FormRules } from "element-plus";
|
|
|
+import { Plus, Search } from "@element-plus/icons-vue";
|
|
|
+
|
|
|
+import type Node from "element-plus/es/components/tree/src/model/node";
|
|
|
+// import universalTable from "../"
|
|
|
+import { ElMessage, ElMessageBox, ElPopconfirm, ElTree } from "element-plus";
|
|
|
+import api from "@/api";
|
|
|
+import { h } from "vue";
|
|
|
+
|
|
|
+interface Tree {
|
|
|
+ [key: string]: any;
|
|
|
+}
|
|
|
+
|
|
|
+const filterText = ref("");
|
|
|
+const treeRef = ref<InstanceType<typeof ElTree>>();
|
|
|
+
|
|
|
+const defaultProps = {
|
|
|
+ children: "children",
|
|
|
+ label: "label",
|
|
|
+};
|
|
|
+
|
|
|
+watch(filterText, (val) => {
|
|
|
+ treeRef.value!.filter(val);
|
|
|
+});
|
|
|
+
|
|
|
+const formAccessibility = reactive({
|
|
|
+ fullName: "",
|
|
|
+ firstName: "",
|
|
|
+ lastName: "",
|
|
|
+ phone: "",
|
|
|
+});
|
|
|
+const ruleFormRef = ref<FormInstance>();
|
|
|
+let form = reactive({
|
|
|
+ name: "", //机构名称
|
|
|
+ parentId: "", //上级机构id
|
|
|
+ comType: "", //机构类型
|
|
|
+ exhibitionScope: "", //展业范围
|
|
|
+ address: "", //地址
|
|
|
+ leaderId: "", //负责人id
|
|
|
+ area: [], //地区
|
|
|
+});
|
|
|
+
|
|
|
+interface RuleForm {
|
|
|
+ name: string; //机构名称
|
|
|
+ parentId: string; //上级机构id
|
|
|
+ comType: string; //机构类型
|
|
|
+ exhibitionScope: string[]; //展业范围
|
|
|
+ address: string; //地址
|
|
|
+ leaderId: string; //负责人id
|
|
|
+ area: string[]; //地区
|
|
|
+ id: string;
|
|
|
+}
|
|
|
+interface PageInfo {
|
|
|
+ pageNum: number;
|
|
|
+ pageSize: number;
|
|
|
+ sizes: number[];
|
|
|
+ total: number;
|
|
|
+}
|
|
|
+const value = ref("");
|
|
|
+const dialogVisible = ref(false);
|
|
|
+const options = [
|
|
|
+ {
|
|
|
+ value: "Option1",
|
|
|
+ label: "Option1",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "Option2",
|
|
|
+ label: "Option2",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "Option3",
|
|
|
+ label: "Option3",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "Option4",
|
|
|
+ label: "Option4",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "Option5",
|
|
|
+ label: "Option5",
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+const rules = reactive<FormRules<RuleForm>>({
|
|
|
+ name: [
|
|
|
+ { required: true, message: "请输入机构名称", trigger: "blur" },
|
|
|
+ { min: 1, max: 50, message: "请输入机构名称", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ parentId: [{ required: true, message: "请选择上级机构", trigger: "change" }],
|
|
|
+ comType: [{ required: true, message: "请选择机构类型", trigger: "change" }],
|
|
|
+ exhibitionScope: [
|
|
|
+ { required: true, message: "请选择展业范围", trigger: "change" },
|
|
|
+ ],
|
|
|
+ address: [
|
|
|
+ { required: true, message: "请输入机构地址", trigger: "blur" },
|
|
|
+ { min: 1, max: 50, message: "请输入机构地址", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ area: [{ required: true, message: "请选择机构所在地区", trigger: "change" }],
|
|
|
+});
|
|
|
+// import Select from "@/components/select/selectMain.vue";
|
|
|
+// import TestTable from "@/components/Table/index.vue";
|
|
|
+//机构列表
|
|
|
+type tableType = {
|
|
|
+ id: string;
|
|
|
+ name: string;
|
|
|
+};
|
|
|
+const tableData = ref<tableType[]>([]);
|
|
|
+const typeformatter = (row: any, column: any, cellValue: any) => {
|
|
|
+ let comType = "";
|
|
|
+ comTypeList.value.map((ele) => {
|
|
|
+ if (ele.value == row.comType) {
|
|
|
+ comType = ele.label;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return () => h("div", {}, comType);
|
|
|
+};
|
|
|
+const columns = [
|
|
|
+ { prop: "name", label: "机构名称" },
|
|
|
+ { prop: "Phone", label: "人数" },
|
|
|
+ { prop: "comType", label: "机构类型", formatter: typeformatter },
|
|
|
+ {
|
|
|
+ prop: "comAttribute",
|
|
|
+ label: "展业范围",
|
|
|
+ formatter: (row: any, column: any, cellValue: any) => {
|
|
|
+ let comType = "";
|
|
|
+ exhibitionScopeTypeList.value.map((ele) => {
|
|
|
+ if (ele.value == row.exhibitionScope) {
|
|
|
+ comType = ele.label;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return () => h("div", {}, comType);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ { prop: "address", label: "所属地区" },
|
|
|
+ { prop: "status", label: "负责人" },
|
|
|
+];
|
|
|
+
|
|
|
+const pageInfo = {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ sizes: [10, 20, 30, 40, 50],
|
|
|
+ total: 100,
|
|
|
+};
|
|
|
+//分页列表功能
|
|
|
+const getList = (item: PageInfo) => {
|
|
|
+ pageInfo.pageNum = item.pageNum;
|
|
|
+ pageInfo.pageSize = item.pageSize;
|
|
|
+};
|
|
|
+//添加子机构
|
|
|
+
|
|
|
+const isDisabledId = ref("");
|
|
|
+const addChild = (item: any) => {
|
|
|
+ // form.id=item.id
|
|
|
+ form.parentId = item.id;
|
|
|
+ isDisabledId.value = item.id;
|
|
|
+ dialogVisible.value = true;
|
|
|
+ operationType.value = "add";
|
|
|
+ disabledTree(tableData.value);
|
|
|
+ // pageInfo.pageNum=item.pageNum
|
|
|
+ // pageInfo.pageSize=item.pageSize
|
|
|
+};
|
|
|
+const editor = (item: any) => {
|
|
|
+ console.log(item);
|
|
|
+ // form={...item}
|
|
|
+ for (let key in item) {
|
|
|
+ form[key] = item[key];
|
|
|
+ }
|
|
|
+ isDisabledId.value=''
|
|
|
+ // form.area=[item.province,item.city,item.area]
|
|
|
+ dialogVisible.value = true;
|
|
|
+ operationType.value = "edit";
|
|
|
+ disabledTree(tableData.value)
|
|
|
+
|
|
|
+ // pageInfo.pageNum=item.pageNum
|
|
|
+ // pageInfo.pageSize=item.pageSize
|
|
|
+};
|
|
|
+const del = (item: any) => {
|
|
|
+ // ElPopconfirm('是否确认')
|
|
|
+ ElMessageBox.confirm("确认要删除当前数据吗?", "提示", {
|
|
|
+ confirmButtonText: "确认",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ console.log(123);
|
|
|
+ api.institutionApi
|
|
|
+ .institutionDel({
|
|
|
+ id: item.id,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ ElMessage.success("操作成功");
|
|
|
+ getInstitutionList(); //机构列表
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ ElMessage.warning("用户取消操作");
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+//添加的弹框
|
|
|
+let operationType = ref("");
|
|
|
+const add = (formEl: FormInstance | undefined) => {
|
|
|
+ dialogVisible.value = true;
|
|
|
+ operationType.value = "add";
|
|
|
+
|
|
|
+ if (!formEl) return;
|
|
|
+ formEl.resetFields();
|
|
|
+ // pageInfo.pageNum=item.pageNum
|
|
|
+ // pageInfo.pageSize=item.pageSize
|
|
|
+};
|
|
|
+
|
|
|
+//保存功能
|
|
|
+
|
|
|
+interface institutionData {
|
|
|
+ name: string;
|
|
|
+ system: string;
|
|
|
+}
|
|
|
+const info = ref<institutionData>({
|
|
|
+ name: "",
|
|
|
+ system: "",
|
|
|
+});
|
|
|
+//获取全国省市区级联数据
|
|
|
+const areaOptins = ref([]);
|
|
|
+const areaProps = ref({
|
|
|
+ value: "areaCode",
|
|
|
+ label: "areaCname",
|
|
|
+ children: "child",
|
|
|
+});
|
|
|
+const tableProps = ref({
|
|
|
+ value: "id",
|
|
|
+ label: "name",
|
|
|
+ children: "children",
|
|
|
+ checkStrictly: true,
|
|
|
+});
|
|
|
+
|
|
|
+const getAreaList = () => {
|
|
|
+ api.areaApi.areaList({}).then((res) => {
|
|
|
+ areaOptins.value = res.data;
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+//获取机构类型字典值
|
|
|
+type comType = {
|
|
|
+ value: string;
|
|
|
+ label: string;
|
|
|
+};
|
|
|
+let comTypeList = ref<comType[]>([]);
|
|
|
+const getSystemList = () => {
|
|
|
+ api.areaApi
|
|
|
+ .systemList({
|
|
|
+ dictCode: "com_type",
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ comTypeList.value = res.data;
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+//展业范围
|
|
|
+type exhibitionScopeType = {
|
|
|
+ value: string;
|
|
|
+ label: string;
|
|
|
+};
|
|
|
+let exhibitionScopeTypeList = ref<exhibitionScopeType[]>([]);
|
|
|
+const getExhibitionScopeSystemList = () => {
|
|
|
+ api.areaApi
|
|
|
+ .systemList({
|
|
|
+ dictCode: "exhibition_scope",
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ exhibitionScopeTypeList.value = res.data;
|
|
|
+ });
|
|
|
+};
|
|
|
+const handleChange = (e: any) => {
|
|
|
+ console.log(e);
|
|
|
+};
|
|
|
+
|
|
|
+//禁用机构选择
|
|
|
+function disabledTree(list: tableType) {
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
+ const node = list[i];
|
|
|
+ if (isDisabledId.value) {
|
|
|
+ if (list[i].id != isDisabledId.value) {
|
|
|
+ list[i].disabled = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ list[i].disabled = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (node.children && node.children.length > 0) {
|
|
|
+ disabledTree(node.children);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//获取机构列表
|
|
|
+const getInstitutionList = () => {
|
|
|
+ // pageInfo.pageNum=item.pageNum
|
|
|
+ api.institutionApi.institutionList(info.value).then((res) => {
|
|
|
+ // if(res.code===200){
|
|
|
+
|
|
|
+ // }
|
|
|
+ tableData.value = res.data;
|
|
|
+ console.log(tableData.value);
|
|
|
+ });
|
|
|
+ // pageInfo.pageSize=item.pageSize
|
|
|
+};
|
|
|
+
|
|
|
+const confirm = async (formEl: FormInstance | undefined) => {
|
|
|
+ if (!formEl) return;
|
|
|
+ await formEl.validate((valid, fields) => {
|
|
|
+ if (valid) {
|
|
|
+ const obj = { ...form };
|
|
|
+ delete obj.area;
|
|
|
+
|
|
|
+ if (operationType.value == "add") {
|
|
|
+ api.institutionApi
|
|
|
+ .institutionAdd({
|
|
|
+ ...obj,
|
|
|
+ system: localStorage.getItem("login_system") || "",
|
|
|
+ province: form.area[0],
|
|
|
+ city: form.area[1],
|
|
|
+ area: form.area[2],
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ ElMessage.success("操作成功");
|
|
|
+ dialogVisible.value = false;
|
|
|
+ getInstitutionList(); //机构列表
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ api.institutionApi
|
|
|
+ .institutionEdit({
|
|
|
+ ...obj,
|
|
|
+ system: localStorage.getItem("login_system") || "",
|
|
|
+ province: form.area[0],
|
|
|
+ city: form.area[1],
|
|
|
+ area: form.area[2],
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ if (res.code === 200) {
|
|
|
+ ElMessage.success("操作成功");
|
|
|
+ dialogVisible.value = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+const remove = (node: Node, data: Tree) => {
|
|
|
+ const parent = node.parent;
|
|
|
+ const children: Tree[] = parent.data.children || parent.data;
|
|
|
+ const index = children.findIndex((d) => d.id === data.id);
|
|
|
+ children.splice(index, 1);
|
|
|
+ // dataSource.value = [...dataSource.value]
|
|
|
+};
|
|
|
+const reset = (item: any) => {
|
|
|
+ // ElMessage({})
|
|
|
+};
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ // 对 asyncRoutes 进行预处理并转换为树形结构
|
|
|
+ getInstitutionList(); //机构列表
|
|
|
+ getAreaList(); //省市区级联数据
|
|
|
+ getSystemList(); //机构类型字典
|
|
|
+ getExhibitionScopeSystemList(); //展业范围字段
|
|
|
+});
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+:deep(.table-title-btn) {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ > div {
|
|
|
+ display: flex;
|
|
|
+ }
|
|
|
+}
|
|
|
+.institution {
|
|
|
+ background: #fff;
|
|
|
+ width: 100%;
|
|
|
+ // height: 100%;
|
|
|
+ // padding: 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ .institution-tree {
|
|
|
+ flex: none;
|
|
|
+ width: 20%;
|
|
|
+ padding: 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-right: 1px solid #ccc;
|
|
|
+ }
|
|
|
+ .institution-main {
|
|
|
+ flex: 1;
|
|
|
+ // width: 80%;
|
|
|
+ padding: 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+}
|
|
|
+:deep(.el-dropdown-link) {
|
|
|
+ cursor: pointer;
|
|
|
+ color: var(--el-color-primary);
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-left: 15px;
|
|
|
+}
|
|
|
+.custom-tree-node {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ font-size: 14px;
|
|
|
+ padding-right: 8px;
|
|
|
+}
|
|
|
+</style>
|