From 6c4d4b494ef9c8fb134ece79e3993038a0358639 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 14 四月 2023 18:29:03 +0800
Subject: [PATCH] 对象建模更新

---
 Source/UBCS-WEB/src/views/modeling/Business.vue |  513 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 418 insertions(+), 95 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/modeling/Business.vue b/Source/UBCS-WEB/src/views/modeling/Business.vue
index a9ef549..189885b 100644
--- a/Source/UBCS-WEB/src/views/modeling/Business.vue
+++ b/Source/UBCS-WEB/src/views/modeling/Business.vue
@@ -1,111 +1,434 @@
 <template>
-  <div>
-    <avue-form :model="form" :rules="rules">
-      <avue-form-item label="濮撳悕" prop="name">
-        <el-input v-model="form.name"></el-input>
-      </avue-form-item>
-      <avue-form-item label="瀛﹀巻" prop="education">
-        <el-select v-model="form.education" placeholder="璇烽�夋嫨">
-          <el-option label="鍗氬+" value="鍗氬+"></el-option>
-          <el-option label="纭曞+" value="纭曞+"></el-option>
-          <el-option label="鏈" value="鏈"></el-option>
-          <el-option label="澶т笓" value="澶т笓"></el-option>
-          <el-option label="涓笓" value="涓笓"></el-option>
-        </el-select>
-      </avue-form-item>
-      <avue-form-item label="宸ヤ綔缁忓巻">
-        <table class="table">
-          <thead>
-          <tr>
-            <th>鍏徃</th>
-            <th>鑱屼綅</th>
-            <th>璧锋鏃堕棿</th>
-          </tr>
-          </thead>
-          <tbody>
-          <tr v-for="(item, index) in form.workExperience" :key="index">
-            <td>
-              <el-input v-model="item.company"></el-input>
-            </td>
-            <td>
-              <el-input v-model="item.position"></el-input>
-            </td>
-            <td>
-              <el-date-picker
-                v-model="item.dateRange"
-                range-separator="鑷�"
-                type="daterange"
-                start-placeholder="寮�濮嬫棩鏈�"
-                end-placeholder="缁撴潫鏃ユ湡"
-                format="yyyy-MM-dd"
-              ></el-date-picker>
-            </td>
-          </tr>
-          </tbody>
-        </table>
-      </avue-form-item>
-    </avue-form>
-  </div>
+
+  <el-container>
+    <el-aside width="240px">
+      <basic-container>
+        <avue-tree id="basic" :data="treeData" :option="treeOption" @node-click="nodeClick">
+        </avue-tree>
+      </basic-container>
+    </el-aside>
+    <el-main>
+      <!--        鍩烘湰淇℃伅-->
+      <basic-container>
+        <p style="margin-top: 10px;font-weight: 570;font-size: 19px">鍩烘湰淇℃伅</p>
+        <avue-crud
+          v-model="objs"
+          :data="basicData"
+          :option="basicOption"
+          @row-save="basicSave"
+        >
+          <!--           鐗堟湰瑙勫垯-->
+          <template slot="rulesForm" slot-scope="{disabled,size}">
+            <div>
+              <el-input v-if="rulesFalg==false" v-model="objs.tex" :size="size" placeholder="璇疯緭鍏ョ増鏈彿瑙勫垯"
+                        style="width: 290px"></el-input>
+              <el-select v-if="rulesFalg" v-model="objs.select" placeholder="璇烽�夋嫨鐗堟湰鍙疯鍒�" style="max-width: 300px">
+                <el-option label="娴嬭瘯1" value="1"></el-option>
+                <el-option label="娴嬭瘯2" value="2"></el-option>
+                <el-option label="娴嬭瘯3" value="3"></el-option>
+              </el-select>
+              <el-button style="margin-bottom: 5px;margin-left: 10px" type="primary" @click="handelRules">
+                {{ rulesFalg == false ? "閫夋嫨鐗堟湰鍙疯鍒�" : "鎵嬪姩杈撳叆" }}
+              </el-button>
+            </div>
+          </template>
+          <!--            鐢熷懡鍛ㄦ湡-->
+          <template slot="lifeCycleForm">
+            <el-select v-model="objs.select" placeholder="璇烽�夋嫨鐢熷懡鍛ㄦ湡" style="max-width: 300px">
+              <el-option label="娴嬭瘯1" value="1"></el-option>
+              <el-option label="娴嬭瘯2" value="2"></el-option>
+              <el-option label="娴嬭瘯3" value="3"></el-option>
+            </el-select>
+            <el-button style="margin-bottom: 5px;display: inline-block;margin-left: 10px" type="primary"
+                       @click="handelLife">鐢熷懡鍛ㄦ湡鍒楄〃
+            </el-button>
+          </template>
+        </avue-crud>
+        <el-dialog :visible.sync="packageLifeBox"
+                   append-to-body
+                   title="鏌ョ湅浣跨敤鑼冨洿"
+                   width="1000px">
+          <Businpackage></Businpackage>
+          <span slot="footer" class="dialog-footer">
+            <el-button @click="dialoghandelfalse">鍙� 娑�</el-button>
+            <el-button type="primary" @click="dialoghandeltrue">纭� 瀹�</el-button>
+  </span>
+        </el-dialog>
+      </basic-container>
+      <!--        灞炴�у垪琛�-->
+      <basic-container>
+        <p style="margin-top: 10px;font-weight: 570;font-size: 19px">灞炴�у垪琛�</p>
+        <avue-crud
+          v-model="obj"
+          :data="loadData"
+          :option="loadOption"
+          @row-save="loadSave"
+        ></avue-crud>
+      </basic-container>
+    </el-main>
+  </el-container>
 </template>
-
 <script>
-
-
-
 export default {
   name: "Business",
-
-  data(){
+  data() {
     return {
-      form: {
-        name: "",
-        education: "",
-        workExperience: [
-          { company: "", position: "", dateRange: [] },
-          { company: "", position: "", dateRange: [] },
-        ],
+      //鐢熷懡鍛ㄦ湡瀵硅瘽妗嗙姸鎬�
+      packageLifeBox: false,
+      //鐗堟湰瑙勫垯鐘舵��
+      rulesFalg: false,
+      obj: {},
+      treeData: [{
+        value: 0,
+        label: '涓氬姟绫诲瀷鏍�',
+        children: [
+          {
+            value: 1,
+            label: 'A',
+          },
+          {
+            value: 2,
+            label: 'B',
+          },
+          {
+            value: 3,
+            label: 'C',
+          },
+          {
+            value: 4,
+            label: 'D',
+          },
+          {
+            value: 5,
+            label: 'E',
+          }
+        ]
+      }],
+      treeOption: {
+        defaultExpandAll: true,
       },
-      rules: {
-        name: [{ required: true, message: "璇疯緭鍏ュ鍚�", trigger: "blur" }],
-        education: [{ required: true, message: "璇烽�夋嫨瀛﹀巻", trigger: "change" }],
-        "workExperience.0.company": [
-          { required: true, message: "璇疯緭鍏ュ叕鍙稿悕绉�", trigger: "blur" },
-        ],
-        "workExperience.0.position": [
-          { required: true, message: "璇疯緭鍏ヨ亴浣嶅悕绉�", trigger: "blur" },
-        ],
-        "workExperience.0.dateRange": [
-          { required: true, message: "璇烽�夋嫨璧锋鏃堕棿", trigger: "change" },
-        ],
-        "workExperience.1.company": [
-          { required: true, message: "璇疯緭鍏ュ叕鍙稿悕绉�", trigger: "blur" },
-        ],
-        "workExperience.1.position": [
-          { required: true, message: "璇疯緭鍏ヨ亴浣嶅悕绉�", trigger: "blur" },
-        ],
-        "workExperience.1.dateRange": [
-          { required: true, message: "璇烽�夋嫨璧锋鏃堕棿", trigger: "change" },
-        ],
+      loadData: [],
+      loadData1: [
+        {
+          name: '寮犱笁',
+          business: '娴嬭瘯',
+          attrType: "娴嬭瘯",
+          default: "娴嬭瘯",
+          explain: "娴嬭瘯璇存槑"
+        },
+        {
+          name: '鏉庡洓',
+          business: '娴嬭瘯',
+          attrType: "娴嬭瘯",
+          default: "娴嬭瘯",
+          explain: "娴嬭瘯璇存槑"
+        }
+      ],
+      loadData2: [
+        {
+          name: '鐜嬩簲',
+          business: '娴嬭瘯',
+          attrType: "娴嬭瘯",
+          default: "娴嬭瘯",
+          explain: "娴嬭瘯璇存槑"
+        },
+        {
+          name: '瀹嬪叚',
+          business: '娴嬭瘯',
+          attrType: "娴嬭瘯",
+          default: "娴嬭瘯",
+          explain: "娴嬭瘯璇存槑"
+        }
+      ],
+      loadOption: {
+        border: true,
+        height: 422,
+        editBtn: false,
+        column: [
+          {
+            label: '灞炴�у悕',
+            prop: 'name'
+          },
+          {
+            label: '涓氬姟绫诲瀷',
+            prop: 'business'
+          },
+          {
+            label: "灞炴�х被鍨�",
+            prop: "attrType"
+          },
+          {
+            label: "榛樿鍊�",
+            prop: "default",
+          },
+          {
+            label: "璇存槑",
+            prop: "explain"
+          }
+        ]
       },
+      //鍩烘湰淇℃伅
+      objs: {
+        tex: "",
+        select: "",
+        lifeTex: ""
+      },
+      basicData: [],
+      basicData1: [
+        {
+          typeName: "娴嬭瘯1",
+          tag: "瀹㈡埛",
+          inherit: "娴嬭瘯",
+          implement: "娴嬭瘯",
+          lifeCycle: "鍛ㄦ湡",
+          desc: "杩欐槸涓�涓弿杩�"
+        }
+      ],
+      basicData2: [
+        {
+          typeName: "娴嬭瘯2",
+          tag: "瀹㈡埛",
+          inherit: "娴嬭瘯",
+          implement: "娴嬭瘯",
+          lifeCycle: "鍛ㄦ湡",
+          desc: "杩欐槸涓�涓弿杩�"
+        }
+      ],
+      basicOption: {
+        border: true,
+        height: 88,
+        tabs: true,
+        column: [
+          {
+            label: "绫诲瀷鍚嶇О",
+            prop: "typeName",
+            display: false
+          },
+          {
+            label: "鏍囩",
+            prop: "tag",
+            display: false
+          },
+          {
+            label: "缁ф壙鑷�",
+            prop: "inherit",
+            display: false
+          },
+          {
+            label: "瀹炵幇绫�",
+            prop: "implement",
+            display: false
+          },
+          {
+            label: "鎻忚堪",
+            prop: "desc",
+            display: false
+          }
+        ],
+        group: [
+          {
+            label: "鍩烘湰淇℃伅",
+            column: [
+              {
+                label: "绫诲瀷鍚嶇О",
+                prop: "typeName"
+              },
+              {
+                label: "鏍囩",
+                prop: "tag"
+              },
+              {
+                label: "缁ф壙鑷�",
+                prop: "inherit"
+              },
+              {
+                label: "鏄惁瀹炰緥鍖�",
+                prop: "case",
+                type: "switch",
+                align: "center",
+                hide: true,
+                labelWidth: 90,
+                dicData: [
+                  {
+                    label: "鍚�",
+                    value: 0
+                  },
+                  {
+                    label: "鏄�",
+                    value: 1
+                  }
+                ],
+              },
+              {
+                label: "鎻忚堪",
+                prop: "desc",
+                type: "textarea"
+              },
+              {
+                label: "瀹炵幇绫�",
+                prop: "implement"
+              },
+
+            ]
+          },
+          {
+            label: "鐗堟湰瑙勫垯",
+            column: [
+              {
+                label: '鐗堟湰瑙勫垯',
+                prop: 'radio',
+                type: 'radio',
+                button: true,
+                change: this.radioChange,
+                value: 0,
+                dicData: [{
+                  label: '涓嶅彲淇',
+                  value: 0
+                }, {
+                  label: '閲囩敤涓�绾х増鏈鐞�',
+                  value: 1
+                }, {
+                  label: '閲囩敤浜岀骇鐗堟湰绠$悊',
+                  value: 2
+                }]
+              },
+              {
+                label: "鐗堟湰鍙疯鍒�",
+                prop: "rules",
+                display: true,
+                formslot: true,
+              },
+              {
+                label: "鍒嗛殧绗�",
+                prop: "interval",
+                type: "select",
+                display: true,
+                dicData: [
+                  {
+                    label: ".",
+                    value: 0
+                  },
+                  {
+                    label: "-",
+                    value: 1
+                  },
+                  {
+                    label: " ",
+                    value: 2
+                  }
+                ]
+              },
+              {
+                label: '鐗堟鍙疯鍒�',
+                prop: 'radioRules',
+                type: 'radio',
+                display: true,
+                dicData: [{
+                  label: '1.2.3...',
+                  value: 0
+                }, {
+                  label: 'a.b.c...',
+                  value: 1
+                }, {
+                  label: '0.1.2...',
+                  value: 2
+                }]
+              },
+            ]
+          },
+          {
+            label: "鐢熷懡鍛ㄦ湡",
+            column: [
+              {
+                label: "鐢熷懡鍛ㄦ湡",
+                prop: "lifeCycle"
+              }
+            ]
+          }
+        ]
+      },
+
     }
+  },
+  created() {
+    this.loadData = this.loadData1;
+    this.basicData = this.basicData1
+  },
+  methods: {
+    //鐢熷懡鍛ㄦ湡瀵硅瘽妗嗗彇娑堢偣鍑讳簨浠�
+    dialoghandelfalse() {
+      this.packageLifeBox = false
+    },
+    //鐢熷懡鍛ㄦ湡瀵硅瘽妗嗙‘瀹氱偣鍑讳簨浠�
+    dialoghandeltrue() {
+      this.packageLifeBox = false
+    },
+    //閫夋嫨鐢熷懡鍛ㄦ湡瀵硅瘽妗�
+    handelLife() {
+      this.packageLifeBox = true
+    },
+    //鐗堟湰瑙勫垯鎵嬪姩杈撳叆鍜岄�夋嫨妗嗙殑鐘舵�佸彇鍙�
+    handelRules() {
+      this.rulesFalg = !this.rulesFalg
+    },
+    //鐗堟湰瑙勫垯涓変釜鎸夐挳鐨勬樉绀洪殣钘�
+    radioChange(val) {
+      if (val.value == 0) {
+        this.basicOption.group[1].column[1].display = false;
+        this.basicOption.group[1].column[2].display = false;
+        this.basicOption.group[1].column[3].display = false;
+      } else if (val.value == 1) {
+        this.basicOption.group[1].column[1].display = true;
+        this.basicOption.group[1].column[2].display = true;
+        this.basicOption.group[1].column[3].display = false;
+      } else if (val.value == 2) {
+        this.basicOption.group[1].column[1].display = true;
+        this.basicOption.group[1].column[2].display = true;
+        this.basicOption.group[1].column[3].display = true;
+      }
+    },
+    nodeClick(data) {
+      if (data.value == 1) {
+        this.loadData = this.loadData1;
+        this.basicData = this.basicData1
+      } else if (data.value == 2) {
+        this.loadData = this.loadData2;
+        this.basicData = this.basicData2
+      }
+      this.$message.success(JSON.stringify(data))
+    }
+  },
+//  鍩烘湰淇℃伅娣诲姞
+  basicSave(row, done, loading) {
+    add(Object.assign({
+      createUser: this.userInfo.name
+    }, row)).then(() => {
+      this.$message.success('鏂板鎴愬姛')
+      done();
+      this.getList();
+    }).catch(() => {
+      loading()
+    })
+  },
+  //灞炴�ф坊鍔�
+  loadSave(row, done, loading) {
+    add(Object.assign({
+      createUser: this.userInfo.name
+    }, row)).then(() => {
+      this.$message.success('鏂板鎴愬姛')
+      done();
+      this.getList();
+    }).catch(() => {
+      loading()
+    })
   }
 }
 </script>
 
-<style scoped>
-.table {
-  width: 100%;
-  border-collapse: collapse;
+<style lang="scss">
+#basic {
+  height: 770px;
+  border-radius: 10px;
 }
 
-.table th,
-.table td {
-  padding: 10px;
-  border: 1px solid #ccc;
-}
-
-.table th {
-  background-color: #f0f0f0;
-  font-weight: bold;
-}
 </style>

--
Gitblit v1.9.3