From 1e07cfd8ac6c3e31e94c0ea98dcff61db51e49d1 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期一, 09 一月 2023 16:54:39 +0800
Subject: [PATCH] fix: 单选框展示

---
 src/views/operate/baseSetting/illegalBuild/createUser/index.vue |  116 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 78 insertions(+), 38 deletions(-)

diff --git a/src/views/operate/baseSetting/illegalBuild/createUser/index.vue b/src/views/operate/baseSetting/illegalBuild/createUser/index.vue
index 5c0ddeb..c30a105 100644
--- a/src/views/operate/baseSetting/illegalBuild/createUser/index.vue
+++ b/src/views/operate/baseSetting/illegalBuild/createUser/index.vue
@@ -18,15 +18,20 @@
                     </el-form-item>
                     <!-- 鐖剁骇id -->
                     <el-form-item class="optionItem" label="鐖剁骇:" prop="parentId">
-                        <el-select v-model="things.parentId" placeholder="璇烽�夋嫨鎵�灞炵埗绾�">
-                            <el-option v-for="item in parentList" :key="item.id" :label="item.name" :value="item.id">
+                        <el-select v-model="things.parentId" placeholder="璇烽�夋嫨鎵�灞炵埗绾�" :disabled="things.level===1">
+                            <!-- <el-option v-for="item in parentList" :key="item.id" :label="item.name" :value="item.id">
+                            </el-option> -->
+                            <el-option :value="mylabel">
+                                <el-tree ref="tree" :check-strictly="true"  :data="parentList" :props="defaultProps" show-checkbox
+                                    @check-change="handleCheck" default-expand-all node-key="id">
+                                </el-tree>
                             </el-option>
                         </el-select>
                     </el-form-item>
                     <!-- 妗堢敱 -->
-                    <el-form-item class="optionItem" label="妗堢敱:" prop="type">
-                        <el-input type="textarea" autosize v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�"></el-input>
-                    </el-form-item>
+                    <!-- <el-form-item class="optionItem" label="妗堢敱:" prop="type">
+                        <el-input type="textarea" :rows="2"  v-model="things.type" placeholder="璇疯緭鍏ユ鐢辨弿杩板唴瀹�" :disabled="things.level!==2"></el-input>
+                    </el-form-item> -->
                     <el-form-item>
                         <div class="optionBtn">
                             <el-button type="primary" class="btn submit" @click.native.prevent="handleSubmit">纭
@@ -62,7 +67,6 @@
                 parentId:'',
                 level:'',
             },
-            parentList: [],
             createIll: {
                 name: [
                     { required: true, trigger: 'blur', validator: checkName }
@@ -75,7 +79,7 @@
             },
             levelList: [
                 {
-                    label: "杩濆缓涓被鍨�",
+                    label: "杩濆缓绫诲瀷",
                     value: 1,
                 },
                 {
@@ -83,53 +87,63 @@
                     value: 2,
                 },
             ],
+            parentList: [],
+            selectOrg: {
+                orgsid: []
+            },
+            defaultProps: {
+                children: 'children',
+                label: 'name'
+            },
+            mylabel:''
         }
     },
     created() {
     },
     methods: {
         // 鏌ヨ鎵�灞炵被鍨�
-        getTypeThird() {
-            this.$axios({
+        async getTypeThird() {
+            let arr = [];
+            await this.$axios({
                 method: 'get',
                 url: "sccg/illegal_building/query/type_first",
             })
                 .then(res => {
-                    this.parentList = res.data;
+                    arr = res.data;
                 })
+            return arr;
         },
         // 鏌ヨ鎵�灞炲ぇ绫�
-        getTypeSecond() {
-            this.$axios({
+        async getTypeSecond() {
+            let arr =[];
+            await this.$axios({
                 method: 'get',
                 url: "sccg/illegal_building/query/type_second",
             })
                 .then(res => {
-                    this.parentList = res.data;
+                    arr = res.data;
                 })
+            return arr;
         },
         // 鎻愪氦鏂板杩濊绫诲瀷
         handleSubmit() {
-            console.log(this.things);
             this.$refs.user.validate((valid) => {
-                console.log(valid);
                 if (valid) {
-                    const { things } = this;
+                    const { things,selectOrg } = this;
                     this.$axios({
                         method: 'post',
                         url: 'sccg/illegal_building/addition/type',
                         data: {
                             code: '1111',
-                            level: things.parentId === '' ? things.level : things.level + 1,
+                            level: things.level,
                             name: things.name,
-                            parentId: things.parentId === '' ? 0 : things.parentId,
+                            parentId: things.parentId === '' ? 0 : selectOrg.orgsid[0],
                             typeCode: '06',
                             typeName: '杩濆缓绫诲瀷',
                             remark: things.type,
                         }
                     })
                         .then(res => {
-                            console.log(res);
                             if (res.code === 200) {
                                 this.$message({
                                     type: 'success',
@@ -149,13 +163,40 @@
             })
         },
         // 妗堜欢绾у埆鍙樺寲
-        resetParentList(index) {
+        async resetParentList(index) {
             if (index === 1) {
-                this.getTypeThird();
-            }else {
-                this.getTypeSecond();
+                
+            }else{
+                this.parentList = await this.getTypeThird()
             }
-        }
+        },
+        handleCheck(data, checked) {
+            this.things.parentId = data.name;
+            // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮�
+            const indexs = this.selectOrg.orgsid.indexOf(data.id)
+            // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆�
+            if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) {
+                this.$message({
+                    message: '鍙兘閫夋嫨涓�涓尯鍩燂紒',
+                    type: 'warning',
+                    showClose: true
+                })
+                // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕�
+                this.$refs.tree.setChecked(data, false)
+            } else if (this.selectOrg.orgsid.length === 0 && checked) {
+                // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨
+                // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push
+                this.selectOrg.orgsid = []
+                this.selectOrg.orgsid.push(data.id)
+            } else if (
+                indexs >= 0 &&
+                this.selectOrg.orgsid.length === 1 &&
+                !checked
+            ) {
+                // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣�
+                this.selectOrg.orgsid = []
+            }
+        },
     },
     props: ['changeDialog']
 }
@@ -163,13 +204,12 @@
 <style lang="scss" scoped>
 .createUser {
     border-radius: 1px;
-    background-color: #09152f;
+    background-color: #fff;
 
     main {
-        // border: 1px solid #fff;
         text-align: left;
         padding: 0 55px;
-        background-color: #09152f;
+        background-color: #fff;
         padding-bottom: 50px;
 
         .mainContent {
@@ -210,18 +250,18 @@
         }
     }
 
-    &::v-deep .el-textarea__inner {
-        background-color: #09152f;
-        border: 1px solid #17324c;
-    }
+    // &::v-deep .el-textarea__inner {
+    //     // background-color: #09152f;
+    //     border: 1px solid #17324c;
+    // }
 
-    ::v-deep .el-form-item__label {
-        color: #4b9bb7;
-    }
+    // ::v-deep .el-form-item__label {
+    //     color: #4b9bb7;
+    // }
 
-    ::v-deep .el-input__inner {
-        background-color: #09152f;
-        border: 1px solid #17324c;
-    }
+    // ::v-deep .el-input__inner {
+    //     // background-color: #09152f;
+    //     border: 1px solid #17324c;
+    // }
 }
 </style>
\ No newline at end of file

--
Gitblit v1.8.0