From 21fa32646dc87f443b1c860a45b5905d5b7b3c44 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 05 一月 2024 14:36:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/views/modeling/original.vue |  216 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 146 insertions(+), 70 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/modeling/original.vue b/Source/UBCS-WEB/src/views/modeling/original.vue
index eaf8f50..5b1b1f8 100644
--- a/Source/UBCS-WEB/src/views/modeling/original.vue
+++ b/Source/UBCS-WEB/src/views/modeling/original.vue
@@ -1,22 +1,25 @@
-<template>
+  <template>
   <el-container>
     <el-main>
       <basic-container>
-        <avue-crud v-model="form" ref="crud" :option="option" :data="data" @on-load="onLoad" :page.sync="page"
-          @refresh-change="refreshChange" @row-click="rowClick">
+        <avue-crud v-model="form" ref="crud" :option="option" :data="data" @on-load="onLoad" :page.sync="page" :permission="permissionList"
+          @refresh-change="refreshChange" @row-click="rowClick" style="height: calc(100vh - 148px)">
           <template slot="radio" slot-scope="{row}">
             <el-radio v-model="selectRow" :label="row.$index">&nbsp;
             </el-radio>
           </template>
-          <template slot="menu">
-            <el-button icon="el-icon-edit" size="small" type="text" @click="updateSave">缂栬緫</el-button>
-            <el-button icon="el-icon-delete" size="small" type="text" @click="deleteSave">鍒犻櫎</el-button>
+          <template slot="menu" slot-scope="{row,index}">
+            <el-button icon="el-icon-edit" size="small" type="text" @click="updateSave(row,index)" v-if="permissionList.editBtn">缂栬緫</el-button>
+            <el-button icon="el-icon-delete" size="small" type="text" @click="deleteSave(row,index)" v-if="permissionList.delBtn">鍒犻櫎</el-button>
           </template>
-          <template slot="menuLeft">
-            <el-button size="small" type="primary" icon="el-icon-plus" @click="addSave">鏂�&nbsp;&nbsp;澧�
+            <template slot="menuLeft">
+            <el-button size="small" type="primary" icon="el-icon-plus" @click="addSave" v-if="permissionList.addBtn">鏂�&nbsp;&nbsp;澧�
             </el-button>
-            <el-button size="small" plain type="primary" icon="el-icon-zoom-in" @click="applyRangeOpen">鏌ョ湅浣跨敤鑼冨洿
+            <el-button size="small" plain type="primary" icon="el-icon-zoom-in" @click="applyRangeOpen" v-if="permissionList.apply">鏌ョ湅浣跨敤鑼冨洿
             </el-button>
+            <el-input placeholder="鎸夊睘鎬х紪鍙锋煡璇�" v-model="searchId" clearable prefix-icon="el-icon-search" class="attrSearch"
+              size="small" @change="doSearch" type="text"></el-input>
+            <el-button size="small" plain type="primary" icon="el-icon-search" @click="doSearch">&nbsp;鎼滅储</el-button>
           </template>
           <template slot="typeValue" slot-scope="{row}">
             <el-tag>{{ row.typeValue }}</el-tag>
@@ -32,7 +35,8 @@
     </el-main>
     <el-aside>
       <basic-container class="itemForm">
-        <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч」">
+      <div style="height: 44vh">
+        <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч」" >
           <el-descriptions-item>
             <template slot="label">
               灞炴�х紪鍙�
@@ -51,12 +55,12 @@
             </template>
             {{ itemForm.itemData.typeValue }}
           </el-descriptions-item>
-          <el-descriptions-item>
-            <template slot="label">
-              鏍囩
-            </template>
-            {{ itemForm.itemData.hashtag }}
-          </el-descriptions-item>
+          <!--          <el-descriptions-item>
+                      <template slot="label">
+                        鏍囩
+                      </template>
+                      {{ itemForm.itemData.hashtag }}
+                    </el-descriptions-item>-->
           <el-descriptions-item>
             <template slot="label">
               榛樿鍊�
@@ -67,7 +71,7 @@
             <template slot="label">
               鍏佽涓虹┖
             </template>
-            {{ itemForm.itemData.nullable }}
+            {{ 'true' == itemForm.itemData.nullable ? '鏄�' : '鍚�'}}
           </el-descriptions-item>
           <el-descriptions-item>
             <template slot="label">
@@ -82,51 +86,53 @@
             {{ itemForm.itemData.description }}
           </el-descriptions-item>
         </el-descriptions>
-        <div style="height:15px"></div>
-        <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч厤缃�"></el-descriptions>
-        <el-tabs v-model="itemForm.activeName" @tab-click="handleClick" stretch="true" style="height:235px">
-          <el-tab-pane label="鍙傜収" name="referTab">
-            <el-descriptions class="margin-top" :column="1" size="medium" border>
-              <el-descriptions-item>
-                <template slot="label">
-                  浣跨敤鍙傜収
-                </template>
-                {{ itemForm.itemData.referTypeValue ? '鏄�' : '鍚�' }}
-              </el-descriptions-item>
-              <el-descriptions-item>
-                <template slot="label">
-                  鍙傜収绫诲瀷
-                </template>
-                {{ itemForm.itemData.referTypeValue }}
-              </el-descriptions-item>
-              <el-descriptions-item>
-                <template slot="label">
-                  鍙傜収鍚嶇О
-                </template>
-                {{ itemForm.itemData.referToName }}
-              </el-descriptions-item>
-            </el-descriptions>
-          </el-tab-pane>
-          <el-tab-pane label="鏋氫妇" name="enumTab">
-            <el-descriptions class="margin-top" :column="1" :size="small" border>
-              <el-descriptions-item>
-                <template slot="label">
-                  浣跨敤鏋氫妇
-                </template>
-                {{ itemForm.itemData.usingDict ? '鏄�' : '鍚�' }}
-              </el-descriptions-item>
-              <el-descriptions-item>
-                <template slot="label">
-                  鏋氫妇绫诲瀷
-                </template>
-                {{ itemForm.itemData.dictCode }}
-              </el-descriptions-item>
-            </el-descriptions>
-          </el-tab-pane>
-        </el-tabs>
+      </div>
+        <div style="height: 40vh">
+          <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч厤缃�"></el-descriptions>
+          <el-tabs v-model="itemForm.activeName" @tab-click="handleClick" stretch="true" style="height:235px">
+            <el-tab-pane label="鍙傜収" name="referTab">
+              <el-descriptions class="margin-top" :column="1" size="medium" border>
+                <el-descriptions-item>
+                  <template slot="label">
+                    浣跨敤鍙傜収
+                  </template>
+                  {{ itemForm.itemData.referTypeValue ? '鏄�' : '鍚�' }}
+                </el-descriptions-item>
+                <el-descriptions-item>
+                  <template slot="label">
+                    鍙傜収绫诲瀷
+                  </template>
+                  {{ itemForm.itemData.referTypeValue }}
+                </el-descriptions-item>
+                <el-descriptions-item>
+                  <template slot="label">
+                    鍙傜収鍚嶇О
+                  </template>
+                  {{ itemForm.itemData.referToName }}
+                </el-descriptions-item>
+              </el-descriptions>
+            </el-tab-pane>
+            <el-tab-pane label="鏋氫妇" name="enumTab">
+              <el-descriptions class="margin-top" :column="1" :size="small" border>
+                <el-descriptions-item>
+                  <template slot="label">
+                    浣跨敤鏋氫妇
+                  </template>
+                  {{ itemForm.itemData.usingDict ? '鏄�' : '鍚�' }}
+                </el-descriptions-item>
+                <el-descriptions-item>
+                  <template slot="label">
+                    鏋氫妇绫诲瀷
+                  </template>
+                  {{ itemForm.itemData.dictValue }}
+                </el-descriptions-item>
+              </el-descriptions>
+            </el-tab-pane>
+          </el-tabs>
+        </div>
       </basic-container>
     </el-aside>
-    <originalAdd ref="originalAdd" :attribute="attribute" @refreshTable="refreshChange"></originalAdd>
+    <originalAdd ref="originalAdd" @refreshTable="refreshChange" :attribute="editAttribute"></originalAdd>
   </el-container>
 </template>
 
@@ -138,6 +144,8 @@
   update, getPage, getApplyRange
 } from "@/api/omd/OmdAttribute";
 import Versionpackage from "./Versionpackage.vue";
+import {getDictionary} from "@/api/omd/enum";
+import {mapGetters} from "vuex";
 
 export default {
   name: "original",
@@ -154,9 +162,11 @@
       attribute: {
         nullable: true
       },
+      editAttribute: {},
       applyRangeData: [],
       option: {
-        height: "550px",
+        height:'auto',
+        calcHeight:20,
         headerAlign: "center",
         border: true,
         index: true,
@@ -169,6 +179,7 @@
         addBtn: false,
         editBtn: false,
         delBtn: false,
+        columnBtn:false,
         column: [{
           label: "閫夋嫨",
           prop: "radio",
@@ -187,12 +198,12 @@
           prop: "name",
           align: "left",
           display: false
-        }, {
+        },/* {
           label: "鏍囩",
           prop: "hashtag",
           // hide: true,
           display: false
-        }, {
+        },*/ {
           label: "鏄惁浣跨敤鏋氫妇",
           prop: "usingDict",
           type: "switch",
@@ -245,9 +256,23 @@
       itemForm: {
         itemData: {},
         activeName: "referTab",
+        enumInitFlag:false,
+        referInitFlag: false,
         form: {}
-      }
+      },
+      searchId: '',
     };
+  },
+  computed:{
+    ...mapGetters(["permission"]),
+    permissionList(){
+      return{
+        addBtn:this.vaildData(this.permission.modeling_original.original_add,false),
+        apply:this.vaildData(this.permission.modeling_original.original_applyopen,false),
+        delBtn:this.vaildData(this.permission.modeling_original.original_delete,false),
+        editBtn:this.vaildData(this.permission.modeling_original.original_edit,false),
+      }
+    },
   },
   created() {
   },
@@ -257,15 +282,35 @@
     },
     addSave() {
       this.$refs.originalAdd.showSubmitDialog = true;
-      this.$refs.originalAdd.attribute = {};
+      const newAttr = {};
+      newAttr.nullable = true;
+      this.$refs.originalAdd.attribute = newAttr;
     },
-    updateSave() {
+    updateSave(row,index) {
+      this.selectRow = index;
+      var json = JSON.stringify(row);
+      this.editAttribute = JSON.parse(json);
+      this.editAttribute.nullable = row.nullable == 'true' ? true : false;
+      this.$refs.originalAdd.attribute = this.editAttribute;
       this.$refs.originalAdd.showSubmitDialog = true;
-      this.$refs.originalAdd.attribute = this.attribute;
+      this.checkUsingReferDict(row);
+      this.$refs.originalAdd.activeName = this.itemForm.activeName;
+      this.$refs.originalAdd.enumInitFlag = this.itemForm.enumInitFlag;
+      this.$refs.originalAdd.referInitFlag = this.itemForm.referInitFlag;
+      // this.refreshChange()
     },
-    deleteSave() {
-      remove(this.itemForm.itemData).then(res => {
-        this.$message.success("鍒犻櫎鎴愬姛");
+    deleteSave(row,index) {
+      this.$confirm("鍒犻櫎鍏冩暟鎹皢鏃犳硶琚仮澶�, 鏄惁缁х画?", "鎻愮ず", {
+        iconClass: 'el-icon-question',
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        showClose: true,
+        type: "warning"
+      }).then(() => {
+        remove(row.oid).then(res => {
+          this.$message.success("鍒犻櫎鎴愬姛");
+          this.refreshChange();
+        });
       });
     },
     onLoad(page, params = {}) {
@@ -283,6 +328,27 @@
       this.itemForm.itemData = row;
       this.selectRow = row.$index;
       this.attribute = row;
+      this.checkUsingReferDict(row);
+    },
+    checkUsingReferDict(row){
+      if (row.referToId !== null && row.referToId !== ""){
+        this.itemForm.activeName = 'referTab';
+        this.itemForm.referInitFlag = true;
+        this.itemForm.enumInitFlag = false;
+      }else if (row.usingDict === 'true'){
+        this.itemForm.activeName = 'enumTab';
+        this.itemForm.referInitFlag = false;
+        this.itemForm.enumInitFlag = true;
+        getDictionary({code: row.dictCode}).then(res => {
+          this.editAttribute.dictValue = res.data.data[0].label;
+          this.itemForm.itemData.dictValue = this.editAttribute.dictValue;
+          this.$refs.originalAdd.dictEnums = res.data.data;
+        })
+      }else {
+        this.itemForm.activeName = 'referTab';
+        this.itemForm.referInitFlag = true;
+        this.itemForm.enumInitFlag = false;
+      }
     },
     selectBtmType() {
       this.referType.display = true;
@@ -303,6 +369,10 @@
 
       });
     },
+    doSearch(){
+      var params = {"id_like":this.searchId};
+      this.onLoad(this.page,params);
+    }
   },
   components: { Versionpackage }
 }
@@ -312,4 +382,10 @@
 .applyRangeTable>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
   display: none !important;
 }
+.attrSearch {
+  width:201px;
+}
+.attrSearch > .el-input__inner {
+  width: 200px;
+}
 </style>

--
Gitblit v1.9.3