From ff49da5c8d236c416c88e295de29548e01b9d321 Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期五, 26 五月 2023 00:09:28 +0800
Subject: [PATCH] 动态表单

---
 Source/UBCS-WEB/src/views/modeling/original.vue |  129 +++++++++++++++++++++++++++++++++----------
 1 files changed, 99 insertions(+), 30 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/modeling/original.vue b/Source/UBCS-WEB/src/views/modeling/original.vue
index 8597d3e..fe46d55 100644
--- a/Source/UBCS-WEB/src/views/modeling/original.vue
+++ b/Source/UBCS-WEB/src/views/modeling/original.vue
@@ -4,15 +4,33 @@
       <basic-container>
         <avue-crud v-model="form" :option="option" :data="data" ref="crud" @on-load="onLoad" @row-save="rowSave"
           @row-update="rowUpdate" :before-open="beforeOpen" @row-del="rowDel" :page.sync="page"
-          @refresh-change="refreshChange" @row-click="rowClick">
+          @refresh-change="refreshChange" @row-click="rowClick"
+          @selection-change="selectChange">
           <template slot-scope="{row,index,type}" slot="selInputForm">
           <div style="margin-left: 75px">
             <el-input v-model="form.text" :size="size" style="width: 210px" :readonly="true" @focus="selectBtmType" :disabled="referType.disable"></el-input>
-            <!-- <el-button type="primary" style="margin-left: 10px" @click="addHandle">閫夋嫨</el-button> -->
-            <!-- <el-button type="info">鍙栨秷</el-button> -->
           </div>
         </template>
+        <template slot="radio"
+                slot-scope="{row}">
+                    <el-radio v-model="selectRow"
+                        :label="row.$index">&nbsp;
+                    </el-radio>
+                </template>
+         <template slot="menuLeft">
+            <el-button size="small"
+                       plain
+                       type="primary"
+                       icon="el-icon-zoom-in"
+                       @click="applyRangeOpen">鏌ョ湅浣跨敤鑼冨洿
+            </el-button>
+          </template>
         </avue-crud>
+        <el-dialog :visible.sync="applyRange.display" append-to-body :title="applyRange.title" width="600px"
+        @close="applyRangeClose">
+            <avue-crud v-model="applyRange.model" :option="applyRange.option" :data="applyRange.data" class="applyRangeTable"
+            ></avue-crud>
+        </el-dialog>
         <el-dialog :visible.sync="referType.display" append-to-body :title="referType.title" width="1000px">
           <original-range @rowchange="rowchange"></original-range>
           <span slot="footer" class="dialog-footer">
@@ -35,10 +53,10 @@
           <el-tab-pane label="灞炴�ч」" name="attrTab">
             <el-form ref="form" :model="itemData" label-width="80px" style="height: 656px;">
               <el-form-item label="灞炴�х紪鐮�">
-                <el-input v-model="itemData.key" :disabled="true"></el-input>
+                <el-input v-model="itemData.id" :disabled="true"></el-input>
               </el-form-item>
               <el-form-item label="灞炴�у悕绉�">
-                <el-input v-model="itemData.label" :disabled="true"></el-input>
+                <el-input v-model="itemData.name" :disabled="true"></el-input>
               </el-form-item>
               <el-form-item label="灞炴�х被鍨�">
                 <el-input v-model="itemData.typeValue" :disabled="true"></el-input>
@@ -91,10 +109,10 @@
   getList,
   remove,
   add,
-  update, getPage
+  update, getPage, getApplyRange
 } from "@/api/omd/OmdAttribute";
 
-import { getDictionary } from "@/api/omd/dict";
+import { getDictionary } from "@/api/omd/enum";
 
 export default {
   name: "original",
@@ -136,26 +154,34 @@
         currentPage: 1,
         total: 100
       },
+      selectRow: '',
       data: [
 
       ],
       option: {
         height: "550px",
-        selection: true,
         headerAlign: 'center',
         border: true,
         index: true,
         rowKey: 'id',
         tabs: true,
-        column: [
+        highlightCurrentRow: true,
+        column: [{
+            label: '閫夋嫨',
+            prop: 'radio',
+            width: 60,
+            hide: false,
+            display: false
+          },
           {
             label: '灞炴�х紪鍙�',
-            prop: 'key',
+            prop: 'id',
             align: 'left',
-            display: false
+            display: false,
+            width: 200
           }, {
             label: '灞炴�у悕绉�',
-            prop: 'label',
+            prop: 'name',
             align: 'left',
             display: false
           },
@@ -225,13 +251,13 @@
             prop: "index",
             column: [
               {
-                label: '灞炴�х紪鐮�',
-                prop: 'key',
+                label: '灞炴�х紪鍙�',
+                prop: 'id',
                 align: 'left',
               },
               {
                 label: '灞炴�у悕绉�',
-                prop: 'label',
+                prop: 'name',
                 align: 'left',
               },
               {
@@ -409,6 +435,36 @@
           }
         ]
       },
+      applyRange: {
+        model: "",
+        title: "搴旂敤鐨勪笟鍔$被鍨�",
+        option: {
+          height: 360,
+          addBtn: false,
+          refreshBtn: false,
+          columnBtn: false,
+          menu: false,
+          border: true,
+          reserveSelection: true,
+          searchMenuSpan:8,
+          searchShowBtn: false,
+          highlightCurrentRow: true,
+          column: [
+            {
+                label: '涓氬姟绫诲瀷缂栧彿',
+                prop: 'id',
+                align: 'left',
+              },
+              {
+                label: '涓氬姟绫诲瀷鍚嶇О',
+                prop: 'name',
+                align: 'left',
+              },
+          ]
+        },
+        data: [],
+        display: false,
+      }
     }
   },
 
@@ -454,7 +510,6 @@
       this.packageLinkBox = false
     },
     selectChange(val) {
-       console.log(val);
        this.referType.key = val.value
       if (val.value == 'businessType'){
         this.referType.value = '涓氬姟绫诲瀷'
@@ -465,7 +520,6 @@
       if(val.value){
         this.referType.disable = false
       }
-      console.log(this.referType.disable)
     },
     selchange(val) {
       this.banList = val
@@ -475,17 +529,7 @@
       this.onLoad(this.pageParent, this.query);
     },
     beforeOpen(done, type) {
-      if (['view', 'edit'].includes(type)) {
-        // 鏌ョ湅鍜岀紪杈戦�昏緫
-        console.log("缂栬緫")
-      } else {
-        //鏂板閫昏緫
-        console.log(this.Typelist)
-        console.log(this.banList)
-
-        console.log("鏂板")
-        console.log(this.typeSelectList)
-      }
+      
       done();
 
     },
@@ -543,14 +587,39 @@
       })
     },
     rowClick(row) {
-      this.itemData = row
+      this.itemData = row;
+      this.selectRow = row.$index;
+
     }
     ,selectBtmType(){
         this.referType.display = true;
         this.referType.title = "璇烽�夋嫨" + this.referType.value
+    },
+    applyRangeOpen(){
+        if (!this.selectRow){
+          this.$message({
+            type:"warning",
+            message: "璇峰厛閫夋嫨灞炴��"
+          })
+        }
+        var oid = this.data[this.selectRow].oid;
+        console.log(oid);
+        getApplyRange(oid).then(res => {
+            this.applyRange.data = res.data.data;
+        })
+        console.log("success");
+        this.applyRange.display = true;
+    },
+    applyRangeClose(){
+      this.applyRange.data = [];
+      this.applyRange.display = false;
     }
   },
 }
 </script>
 
-<style lang="scss"></style>
+<style lang="scss">
+.applyRangeTable > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu{
+    display: none !important;
+}
+</style>

--
Gitblit v1.9.3