Parcourir la source

信息系统清单完成

hm il y a 1 mois
Parent
commit
80cd066171

+ 2 - 2
.env.development

@@ -12,7 +12,7 @@ VUE_CLI_BABEL_TRANSPILE_MODULES = true
 
 # VUE_APP_BASE_API  = 'http://10.1.161.127:8080'
 # VUE_APP_BASE_API  = 'http://10.1.161.183:6661'
-VUE_APP_BASE_API  = 'http://192.168.136.163:6661'
-VUE_APP_BASE_API2  = 'http://192.168.136.163:5001'
+VUE_APP_BASE_API  = 'http://192.168.136.23:6661'
+# VUE_APP_BASE_API2  = 'http://192.168.136.23:'
 
 # VUE_APP_BASE_API  = 'http://10.1.162.158:6661'

+ 17 - 0
src/api/unified-resources/information-system/index.js

@@ -51,6 +51,23 @@ export function falseDeleteMis(data) {
   });
 }
 
+// 
+export function getDirectoryAllLevel(data) {
+  return request({
+    url: 'directory/getDirectoryAllLevel',
+    method: "post",
+    data
+  })
+}
+
+export function getResponsibilityList(data) {
+  return request({
+    url: '/responsibility/getResponsibilityList',
+    method: "post",
+    data
+  })
+}
+
 // // 查询数据
 export function addDatabase(data) {
   return request({

+ 27 - 26
src/assets/styles/index.scss

@@ -456,37 +456,38 @@ aside {
     .el-form-item__label {
       // margin-bottom: 13px !important;
     }
-  }
-
-  .el-input,
-  .el-select,
-  .el-date-editor,
-  .el-cascader {
-    width: 100% !important;
-    height: 38px !important;
-    --el-input-border-color: #4da6ff !important;
-  }
-  .el-input {
-    width: 100% !important;
-    height: 38px !important;
-    .el-input-group__append {
-      padding: 0 !important;
+    .el-form-item__content {
+      width: 100% !important;
+      .el-input,
+      .el-select,
+      .el-date-editor,
+      .el-cascader {
+        width: 100% !important;
+        height: 38px !important;
+        --el-input-border-color: #4da6ff !important;
+      }
+      .el-input {
+        width: 100% !important;
+        height: 38px !important;
+        .el-input-group__append {
+          padding: 0 !important;
+        }
+      }
+      .el-textarea {
+        --el-input-border-color: #4da6ff !important;
+      }
+      .el-radio {
+        --el-radio-input-border: 1px solid #4da6ff !important;
+      }
+      .el-color-picker__trigger {
+        border: 1px solid #4da6ff !important;
+      }
     }
   }
-  .el-textarea {
-    --el-input-border-color: #4da6ff !important;
-  }
-  .el-radio {
-    --el-radio-input-border: 1px solid #4da6ff !important;
-  }
-  .el-color-picker__trigger {
-    border: 1px solid #4da6ff !important;
-  }
   .textarea-row {
-    width: 93.5%;
+    width: 93.5% !important;
     margin-right: 0;
   }
-
   .upload-row {
     width: 100%;
   }

+ 3 - 1
src/utils/request2.js

@@ -15,7 +15,9 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
 // 创建axios实例
 const service = axios.create({
   // axios中请求配置有baseURL选项,表示请求URL公共部分
-  baseURL:  'http://192.168.136.163:5001',
+  // baseURL: process.env.VUE_APP_BASE_API2+'5001' ,
+  baseURL: 'http://192.168.136.23:5001' ,
+  
   // 超时
   timeout: 10000
 })

+ 19 - 26
src/views/login.vue

@@ -112,32 +112,25 @@ export default {
       register: false,
       redirect: undefined,
       announcements: [
-        {
-          title: "系统平台已接入,客户端软件登录后下载;",
-          qs: "2024-12-18系统平台已接入,客户端软件登录后下载:系统平台已接入,客户端系统平台已接入客",
-          date: "2024-01-25",
-          show: false,
-        },
-        {
-          title: "资源管理系统",
-          qs: "2024-12-18系统平台已接入,客户端软件登录后下载:系统平台已接入,客户端系统平台已接入客",
-          date: "2024-01-25",
-          show: false,
-        },
-        {
-          title: "邮件系统",
-          qs: "2024-12-18系统平台已接入,客户端软件登录后下载:系统平台已接入,客户端系统平台已接入客",
-          date: "2024-01-25",
-          show: false,
-        },
-        { title: "邮件系统1", date: "2024-01-25", show: false },
-        { title: "邮件系统2", date: "2024-01-25", show: false },
-        { title: "邮件系统3", date: "2024-01-25", show: false },
-        { title: "邮件系统4", date: "2024-01-25", show: false },
-        { title: "邮件系统5", date: "2024-01-25", show: false },
-        { title: "邮件系统6", date: "2024-01-25", show: false },
-        { title: "邮件系统7", date: "2024-01-25", show: false },
-        { title: "邮件系统8", date: "2024-01-25", show: false },
+        // {
+        //   title: "系统平台已接入,客户端软件登录后下载;",
+        //   qs: "2024-12-18系统平台已接入,客户端软件登录后下载:系统平台已接入,客户端系统平台已接入客",
+        //   date: "2024-01-25",
+        //   show: false,
+        // },
+        // {
+        //   title: "资源管理系统",
+        //   qs: "2024-12-18系统平台已接入,客户端软件登录后下载:系统平台已接入,客户端系统平台已接入客",
+        //   date: "2024-01-25",
+        //   show: false,
+        // },
+        // {
+        //   title: "邮件系统",
+        //   qs: "2024-12-18系统平台已接入,客户端软件登录后下载:系统平台已接入,客户端系统平台已接入客",
+        //   date: "2024-01-25",
+        //   show: false,
+        // },
+    
       ],
     };
   },

+ 336 - 88
src/views/unified-resources/information-system/dialog/InformationSystemDialog.vue

@@ -18,8 +18,8 @@
                             <el-input v-model="formData.misProjectName" placeholder="请输入信息系统项目名称"></el-input>
                             <el-select v-model="formData.misProjectName2" placeholder="请选择信息系统项目名称"
                                 @change="misProjectNameOptionsChange" :disabled="dialogTitle === '详情'">
-                                <el-option v-for="item in information_system" :key="item.value" :label="item.label"
-                                    :value="item.label" />
+                                <el-option v-for="item in dict.type.information_system" :key="item.value"
+                                    :label="item.label" :value="item.label" />
                             </el-select>
                         </div>
                     </el-form-item>
@@ -81,20 +81,20 @@
                     </el-form-item>
                     <el-form-item label="数据库" prop="database">
                         <el-select v-model="formData.database" placeholder="请选择数据库">
-                            <el-option v-for="item in database_type" :key="item.value" :label="item.label"
+                            <el-option v-for="item in dict.type.database_type" :key="item.value" :label="item.label"
                                 :value="item.value" />
                         </el-select>
                     </el-form-item>
                     <el-form-item label=" 开发环境" prop="environment">
                         <el-select v-model="formData.environment" placeholder="请选择开发环境">
-                            <el-option v-for="item in dev_env_type" :key="item.value" :label="item.label"
+                            <el-option v-for="item in dict.type.dev_env_type" :key="item.value" :label="item.label"
                                 :value="item.value" />
                         </el-select>
                     </el-form-item>
                     <el-form-item label="系统架构" prop="systemSchema">
                         <el-select v-model="formData.systemSchema" placeholder="请选择系统架构">
-                            <el-option v-for="item in system_architecture_type" :key="item.value" :label="item.label"
-                                :value="item.value" />
+                            <el-option v-for="item in dict.type.system_architecture_type" :key="item.value"
+                                :label="item.label" :value="item.value" />
                         </el-select>
                     </el-form-item>
                     <el-form-item label="所属单位机构名称" prop="belongDepartment">
@@ -107,7 +107,7 @@
                     </el-form-item>
                     <el-form-item label="信息系统类型" prop="systemType">
                         <el-select v-model="formData.systemType" placeholder="请选择信息系统类型">
-                            <el-option v-for="item in info_system_type" :key="item.value" :label="item.label"
+                            <el-option v-for="item in dict.type.info_system_type" :key="item.value" :label="item.label"
                                 :value="item.value" />
                         </el-select>
                     </el-form-item>
@@ -116,19 +116,19 @@
                     </el-form-item>
                     <el-form-item label=" 运行状态" prop="runType">
                         <el-select v-model="formData.runType" placeholder="请选择运行状态">
-                            <el-option v-for="item in run_type" :key="item.value" :label="item.label"
+                            <el-option v-for="item in dict.type.run_type" :key="item.value" :label="item.label"
                                 :value="item.value" />
                         </el-select>
                     </el-form-item>
                     <el-form-item label=" 网络环境" prop="internetEnvironment">
                         <el-select v-model="formData.internetEnvironment" placeholder="请选择网络环境">
-                            <el-option v-for="item in network_env_type" :key="item.value" :label="item.label"
+                            <el-option v-for="item in dict.type.network_env_type" :key="item.value" :label="item.label"
                                 :value="item.value" />
                         </el-select>
                     </el-form-item>
                     <el-form-item label="应用范围" prop="applyScope">
                         <el-select v-model="formData.applyScope" placeholder="请选择应用范围">
-                            <el-option v-for="item in application_scope" :key="item.value" :label="item.label"
+                            <el-option v-for="item in dict.type.application_scope" :key="item.value" :label="item.label"
                                 :value="item.value" />
                         </el-select>
                     </el-form-item>
@@ -191,8 +191,8 @@
                     </el-form-item>
                     <el-form-item label="支深业务类型" prop="businessType">
                         <el-select v-model="formData.businessType" placeholder="请选择支深业务类型">
-                            <el-option v-for="item in support_deep_business_type" :key="item.value" :label="item.label"
-                                :value="item.value" />
+                            <el-option v-for="item in dict.type.support_deep_business_type" :key="item.value"
+                                :label="item.label" :value="item.value" />
                         </el-select>
                     </el-form-item>
                     <el-form-item label="是否党纪工团系统" prop="isDjgtSystem">
@@ -291,14 +291,16 @@
             </el-table>
         </div>
         <div slot="footer" class="dialog-footer">
-            <el-button @click="handleCancel">取 消</el-button>
+            <el-button @click="beforeClose">取 消</el-button>
             <el-button type="primary" @click="handleConfirm">确 定</el-button>
         </div>
 
-        <!-- <el-dialog :title="diaTitle" v-model="dataSourceDialogVisible" :before-close="handleDialogClose">
+        <el-dialog :title="diaTitle" :visible.sync="dataSourceDialogVisible" :before-close="handleDialogClose"
+            :append-to-body="true" custom-class="inner-dialog">
             <div class="dialog-block-header">配置数据源信息</div>
-            <el-form :model="dataSourceForm" class="form-detail-inline-two" inline label-width="auto"
-                :disabled="dataSourceFormDisabled" ref="ruleFormRef1" :rules="diaFormRules">
+            <el-form :model="dataSourceForm" style="width: 100%" class="form-detail-inline-two" :inline="true"
+                label-width="auto" :label-position="'top'" :disabled="dataSourceFormDisabled" ref="ruleFormRef1"
+                :rules="diaFormRules">
                 <el-form-item label="数据源名称" prop="name">
                     <el-input v-model="dataSourceForm.name" placeholder="请输入数据源名称" />
                 </el-form-item>
@@ -307,9 +309,8 @@
                 </el-form-item>
                 <el-form-item label="数据源类型" class="textarea-row" prop="dbType">
                     <el-select v-model="dataSourceForm.dbType" placeholder="请选择数据源类型">
-                        <template v-for="item in dbTypeOptions" :key="item.value">
-                            <el-option :value="item.value" :label="item.label"></el-option>
-                        </template>
+                        <el-option :value="item.value" :label="item.label" v-for="item in dbTypeOptions"
+                            :key="item.value"></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="用途" class="textarea-row">
@@ -341,21 +342,32 @@
                     <el-input v-model="dataSourceForm.password" placeholder="请输入密码" />
                 </el-form-item>
             </el-form>
-
-            <div class="op-btn">
+            <div slot="footer" class="dialog-footer">
                 <el-button type="primary" @click="addDataSourceHandle" v-if="!dataSourceFormDisabled">保存</el-button>
                 <el-button type="primary" @click="handleDialogClose">关闭</el-button>
             </div>
-        </el-dialog> -->
+
+
+        </el-dialog>
+
     </el-dialog>
 </template>
 
 <script>
-import { addMis, updateMis, queryMisMsg, addDatabase, updateDatabase, deleteDatabase, queryDatabase, queryMisList } from '@/api/unified-resources/information-system/index.js'
+import { addMis, updateMis, queryMisMsg, addDatabase, updateDatabase, deleteDatabase, queryDatabase, queryMisList, getDirectoryAllLevel, getResponsibilityList } from '@/api/unified-resources/information-system/index.js'
 
 import MyForm from "@/components/MyForm";
 export default {
     name: "ConfigDialog",
+    dicts: ['database_type',
+        'dev_env_type',
+        'system_architecture_type',
+        'info_system_type',
+        'run_type',
+        'network_env_type',
+        'application_scope',
+        'support_deep_business_type',
+        'information_system'],
     components: {
         MyForm,
     },
@@ -477,12 +489,32 @@ export default {
             isDisabled: false,
             itemView: {},
             dialogTitle: "",
-            buildDepartmentOptions:[],
-            developmentDepartmetnOptions:[],
-            isRadio:[{ label: '是' }, { label: '否' }],
-            buildDepartmentOptions:[],
-            isselfDepartmentOptions:[],
-            otherDepartmentOptions:[],
+            buildDepartmentOptions: [],
+            developmentDepartmetnOptions: [],
+            isRadio: [{ label: '是' }, { label: '否' }],
+
+            isselfDepartmentOptions: [],
+            otherDepartmentOptions: [],
+            dataSourceArr: [],
+            diaTitle: '',
+            dataSourceDialogVisible: false,
+            dialogEditVisible: false,
+            dataSourceFormDisabled: false,
+            dataSourceForm: {},
+            isProdOptions: [
+                { label: '生产环境', value: 1 },
+                { label: '开发环境', value: 2 }
+            ],
+            dbTypeOptions: [
+                { label: 'sqlserver', value: 'sqlserver', type: 'DataSourceManage' },
+                { label: 'dm8', value: 'dm8', type: 'DataSourceManage' },
+                { label: 'kingbase', value: 'kingbase', type: 'DataSourceManage' },
+                { label: 'oracle', value: 'oracle', type: 'DataSourceManage' },
+                { label: 'postgreSQL', value: 'postgreSQL', type: 'DataSourceManage' },
+                { label: 'sftp', value: 'sftp', type: 'FileTransferAgent' }
+            ],
+            dataSourceForm: {},
+            tableData: [],
             formRules: {
                 identifier: [{ required: true, message: '请输入序号/标识符', trigger: 'blur' }],
                 misProjectName: [{ required: true, message: '请输入信息系统项目名称', trigger: 'blur' }],
@@ -500,6 +532,17 @@ export default {
                 isSecret: [{ required: true, message: '请选择是否涉密系统', trigger: 'change' }],
                 isHardwareInternet: [{ required: true, message: '请选择是否硬件网络', trigger: 'change' }],
                 businessType: [{ required: true, message: '请选择请选择支深业务类型', trigger: 'change' }]
+            },
+            diaFormRules: {
+                name: [{ required: true, message: '请输入数据源名称', trigger: 'blur' }],
+                level: [{ required: true, message: '请输入数据源层次', trigger: 'blur' }],
+                dbType: [{ required: true, message: '请选择数据源类型', trigger: 'change' }],
+                isProd: [{ required: true, message: '请选择环境', trigger: 'change' }],
+                serverIp: [{ required: true, message: '请输入主机', trigger: 'blur' }],
+                serverPort: [{ required: true, message: '请输入端口', trigger: 'blur' }],
+                dbName: [{ required: true, message: '请输入数据库名称', trigger: 'blur' }],
+                username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
+                password: [{ required: true, message: '请输入密码', trigger: 'blur' }]
             }
         };
     },
@@ -527,37 +570,58 @@ export default {
         },
     },
     mounted() {
-        if (this.dialogTitle === "查看") {
-            this.isDisabled = true;
-        } else {
-            this.isDisabled = false;
-        }
+        this.getTableListData()
+        this.getOrganizationalList()
+        this.getRessibilityList()
+        // if (this.dialogTitle === "查看") {
+        //     this.isDisabled = true;
+        // } else {
+        //     this.isDisabled = false;
+        // }
+
         if (this.dialogTitle !== "新增") {
-            this.getView(this.itemView.id);
+            queryMisMsg({ id: this.itemView.id }).then(res => {
+                if (+res.code === 200) {
+                    res.data[0].buildDepartment = res.data[0].buildDepartment ? res.data[0].buildDepartment?.split(',') : []
+                    res.data[0].manageDepartmetn = res.data[0].buildDepartment ? res.data[0].manageDepartmetn?.split(',') : []
+                    res.data[0].developmentDepartmetn = res.data[0].buildDepartment ? res.data[0].developmentDepartmetn?.split(',') : []
+                    res.data[0].maintainDepartmetn = res.data[0].buildDepartment ? res.data[0].maintainDepartmetn?.split(',') : []
+                    res.data[0].useSystemDepartment = res.data[0].buildDepartment ? res.data[0].useSystemDepartment?.split(',') : []
+                    res.data[0].belongDepartment = res.data[0].buildDepartment ? res.data[0].belongDepartment?.split(',') : []
+                    res.data[0].techDepartment = res.data[0].buildDepartment ? res.data[0].techDepartment?.split(',') : []
+                    this.formData = res.data[0]
+                    this.dataSourceArr = res.data[0].dataBaseList
+                }
+            })
+        }
+        if (this.dialogTitle === "新增" && JSON.parse(sessionStorage.getItem('system-form'))) {
+            this.formData = JSON.parse(sessionStorage.getItem('system-form'))
         }
+
+        this.formData.otherDepartment = '无'
+
     },
     methods: {
         getView(id) {
-            this.formData.forEach((item) => {
-                item.value = "";
-            });
-            viewTabAccessConfigById(id).then((res) => {
-                if (+res.code === 200) {
-                    this.formData.forEach((item) => {
-                        item.value = res.data[item.fieldName];
-                    });
-                }
-            });
+            // this.formData.forEach((item) => {
+            //     item.value = "";
+            // });
+            // viewTabAccessConfigById(id).then((res) => {
+            //     if (+res.code === 200) {
+            //         this.formData.forEach((item) => {
+            //             item.value = res.data[item.fieldName];
+            //         });
+            //     }
+            // });
         },
 
         misProjectNameOptionsChange(value) {
-            // let index = tableData.value.findIndex(item => item.misProjectName === formData.value.misProjectName2)
-            // console.log(index, 'index')
-            // if (index === -1) {
-            //     formData.value.misProjectName = formData.value.misProjectName2
-            // } else {
-            //     ElMessage.error('系统名称已存在')
-            // }
+            let index = this.tableData.findIndex(item => item.misProjectName === this.formData.misProjectName2)
+            if (index === -1) {
+                this.formData.misProjectName = this.formData.misProjectName2
+            } else {
+                this.$message.error('系统名称已存在')
+            }
         },
 
         handleUpdateVisible(val) {
@@ -567,27 +631,65 @@ export default {
         handleFormDataChange(newFormData) {
             this.formData = newFormData; // 同步表单数据
         },
-        beforeClose(done) {
-            this.visible = false;
-            this.formData.forEach((element) => {
-                element.value = "";
-            });
-            this.$emit("before-close", done);
+        beforeClose() {
+
+            if (this.dialogTitle === '新增') {
+                console.log('新增');
+                console.log(this.formData, 'this.formData');
+                // console.log(Object.keys(this.formData).length, 'Object.keys(this.formData).length');
+                console.log(Object.keys(this.formData).length, 'Object.keys(this.formData).length');
+
+                if (Object.keys(this.formData).length > 1) {
+                    this.$confirm('表单尚未提交,是否暂存已修改的内容?', '提示', {
+                        confirmButtonText: '确定',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }).then(() => {
+
+                        sessionStorage.setItem('system-form', JSON.stringify(this.formData))
+                        this.$message({
+                            type: 'success',
+                            message: '暂存成功!'
+                        });
+
+                        this.visible = false;
+                        this.$emit("before-close",);
+                    }).catch(() => {
+                        this.formData = {}
+                        sessionStorage.removeItem('system-form')
+                        this.visible = false;
+                        this.$emit("before-close",);
+                        this.$message({
+                            type: 'info',
+                            message: '取消成功'
+                        });
+                    });
+
+                } else {
+                    this.visible = false;
+                    this.$emit("before-close",);
+                }
+            } else {
+                this.visible = false;
+                this.$emit("before-close",);
+            }
+
+
+
+
         },
         // 取消按钮处理方法
         handleCancel() {
             this.visible = false;
-            this.formData.forEach((element) => {
-                element.value = "";
-            });
+
             this.$emit("before-close");
             // 可以在父组件监听 'cancel' 事件
         },
 
         // 确定按钮处理方法
-        handleConfirm() {
+        async handleConfirm() {
             // 调用子组件的 validateForm 方法进行校验
-            this.$refs.myFormComponent.validateForm().then((valid) => {
+            await this.$refs.ruleFormRef.validate((valid, fields)=>{
                 console.log(valid, "valid");
                 if (valid) {
                     // 校验通过,进行后续操作
@@ -597,8 +699,10 @@ export default {
                     this.$message.error("请完整填写表单");
                     console.log("表单校验失败");
                 }
-            });
-            // Promise.all([this.$refs.myFormComponent.validateForm()]).then((valid) => {
+            })
+            // Promise.all([this.$refs.
+            // 
+            // .validateForm()]).then((valid) => {
             //   if (valid.findIndex((val) => val === false) === -1) {
             //     this.handleSave();
             //   } else {
@@ -609,14 +713,39 @@ export default {
             // 可以在父组件监听 'confirm' 事件
         },
         handleSave() {
-            console.log(this.formData, "this.formData");
-            let pForm = {};
-            this.formData.forEach((i) => {
-                pForm[i.fieldName] = i.value;
-            });
+            let pForm = {}
+            pForm = { ...this.formData }
+            pForm.buildDepartment = pForm.buildDepartment ? pForm.buildDepartment?.join(',') : ''
+            pForm.manageDepartmetn = pForm.buildDepartment ? pForm.manageDepartmetn?.join(',') : ''
+            pForm.developmentDepartmetn = pForm.buildDepartment ? pForm.developmentDepartmetn?.join(',') : ''
+            pForm.maintainDepartmetn = pForm.buildDepartment ? pForm.maintainDepartmetn?.join(',') : ''
+            pForm.useSystemDepartment = pForm.buildDepartment ? pForm.useSystemDepartment?.join(',') : ''
+            pForm.belongDepartment = pForm.buildDepartment ? pForm.belongDepartment?.join(',') : ''
+            pForm.techDepartment = pForm.buildDepartment ? pForm.techDepartment?.join(',') : ''
             console.log(pForm, "pForm");
+
+            let arr = []
+            this.dataSourceArr?.forEach(element => {
+                arr.push(element.dbId)
+            })
+
             if (this.title === "新增") {
-                addTabAccessConfig({ ...pForm }).then((res) => {
+                addMis({ ...pForm, dbId: arr }).then(res => {
+                    if (+res.code === 200) {
+                        this.$message.success(res.msg)
+                        // handleClose()
+                        this.$emit("confirm");
+                        this.handleCancel();
+
+                        sessionStorage.removeItem('system-form')
+                    } else {
+                        this.$message.error(res.msg);
+                    }
+                })
+
+
+            } else if (this.title === "编辑") {
+                updateMis({ ...pForm, dbId: arr }).then(res => {
                     if (+res.code === 200) {
                         this.$message({
                             message: res.msg,
@@ -624,38 +753,157 @@ export default {
                         });
                         this.$emit("confirm");
                         this.handleCancel();
+                        sessionStorage.removeItem('system-form')
                     } else {
                         this.$message.error(res.msg);
                     }
-                });
-            } else if (this.title === "编辑") {
-                updateTabAccessConfigById({ ...pForm, id: this.itemView.id }).then(
-                    (res) => {
-                        if (+res.code === 200) {
-                            this.$message({
-                                message: res.msg,
-                                type: "success",
-                            });
-                            this.$emit("confirm");
-                            this.handleCancel();
-                        } else {
-                            this.$message.error(res.msg);
-                        }
+                })
+            }
+        },
+
+        // ===================
+        getOrganizationalList() {
+            getDirectoryAllLevel({ type: '组织机构' }).then(res => {
+                if (+res.code === 200) {
+                    if (res.data === null) {
+                        this.buildDepartmentOptions = []
+                    } else {
+                        this.removeListForLevel4(res.data[0].list)
+                        this.buildDepartmentOptions = res.data[0].list
+                        this.removeListForLevel4(res.data[1].list)
+                        this.developmentDepartmetnOptions = res.data[1].list
                     }
-                );
+                }
+            })
+        },
+
+        removeListForLevel4(data) {
+            data.forEach(item => {
+                // 如果是 level 4 的项,删除 list 属性
+                if (item.level === '4') {
+                    delete item.list;
+                }
+                // 如果当前项有子项(list),递归调用该函数
+                if (item.list && item.list.length > 0) {
+                    this.removeListForLevel4(item.list);
+                }
+            });
+        },
+
+        getRessibilityList() {
+            getResponsibilityList({
+                pageNumber: 1,
+                pageSize: 999999
+            }).then(res => {
+                if (+res.code === 200) {
+                    this.isselfDepartmentOptions = res.data
+                }
+            })
+        },
+        getTableListData() {
+            queryMisList({ pageNumber: 1, pageSize: 9999 }).then(res => {
+                if (res.data === null) {
+                    this.tableData = []
+                } else {
+                    this.tableData = res.data
+                }
+            })
+        },
+        addDataSource() {
+            this.diaTitle = '创建数据源'
+            this.dataSourceDialogVisible = true
+            this.dialogEditVisible = false
+            this.dataSourceFormDisabled = false
+        },
+        editDataSource(row, type) {
+            this.dataSourceForm = row
+
+            this.dataSourceDialogVisible = true
+            switch (type) {
+                case 'detail':
+                    this.diaTitle = '数据源详情'
+                    this.dataSourceFormDisabled = true
+                    break
+                case 'edit':
+                    this.diaTitle = '编辑数据源'
+                    this.dataSourceFormDisabled = false
+                    break
+
+                default:
+                    break
             }
+            // dialogEditVisible.value = false
+        },
+        delDataSource(row, index) {
+            deleteDatabase({ dbIds: row.dbId }).then(res => {
+                if (+res.code === 200) {
+                    this.$message.success(res.msg)
+                    this.dataSourceArr.splice(index, 1)
+                }
+            })
+        },
+        addDataSourceHandle() {
+            this.diaFormValidate()
+
         },
+        async diaFormValidate() {
+            await this.$refs.ruleFormRef1.validate((valid, fields) => {
+                let res1
+                if (valid) {
+                    res1 = valid
+                    if (this.diaTitle === '创建数据源') {
+                        addDatabase({ ...this.dataSourceForm }).then(res => {
+                            if (+res.code === 200) {
+                                this.dataSourceArr.push({ dbId: res.data.maskId, ...this.dataSourceForm })
+                                this.handleDialogClose()
+                            }
+                        })
+                    } else {
+                        updateDatabase({ ...this.dataSourceForm }).then(res => {
+                            if (+res.code === 200) {
+                                this.$message.success(res.msg)
+                                this.dataSourceArr.forEach(element => {
+                                    if (element.id === this.dataSourceForm.id) {
+                                        element = this.dataSourceForm
+                                    }
+                                })
+                                this.handleDialogClose()
+                            }
+                        })
+                    }
+                } else {
+                    this.$message.error('请完整输入表单项')
+                    return
+                }
+                return res1
+            })
+        },
+        handleDialogClose() {
+            this.dataSourceDialogVisible = false
+            this.dataSourceForm = {}
+        },
+
     },
 };
 </script>
 
 <style scoped lang="scss">
 /* 你可以根据需要为弹窗添加样式 */
+.block-title {
+    margin-bottom: 20px;
+    font-size: 18px;
+}
+
 .flex-box {
-  display: flex;
+    display: flex;
 }
 
 .el-select__popper.el-popper {
-  width: 100% !important;
+    width: 100% !important;
+}
+
+.inner-dialog {
+    z-index: 2002 !important;
+    /* 设置一个比外层更高的值 */
 }
 </style>

+ 1 - 1
src/views/unified-resources/information-system/index.vue

@@ -88,7 +88,7 @@
         :title="title"
         :rowObj="rowObj"
         @confirm="getList"
-        @before-close=""
+        @before-close="beforeClose"
       ></InformationSystemDialog>
     </div>
   </el-container>