Procházet zdrojové kódy

1.0.94 查询窗口优化、增加新建同类资产标识

liuyanpeng před 1 rokem
rodič
revize
6e4a04a815

+ 4 - 1
examples/info/InfoWindowExample.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div>
   <div>
-    <InfoWindow :info-window-no="infoWindowNo" :multiple="true" :is-search-widget="false" />
+    <InfoWindow :info-window-no="infoWindowNo" :multiple="true" :is-search-widget="true" :is-new-similar-assets="true" @get-select-model-data="getSelectModelData" />
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
@@ -45,6 +45,9 @@ export default {
         }
         }
       }
       }
     },
     },
+    getSelectModelData: function (selected) {
+      console.log(selected,'同类资产数据---');
+    },
   },
   },
 };
 };
 
 

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "pc-component-v3",
   "name": "pc-component-v3",
-  "version": "1.0.93",
+  "version": "1.0.94",
   "description": "",
   "description": "",
   "main": "dist/pc-component-v3.js",
   "main": "dist/pc-component-v3.js",
   "scripts": {
   "scripts": {

+ 7 - 1
packages/info/src/InfoWindow.vue

@@ -9,11 +9,13 @@
       :info-window="infoWindowDto"
       :info-window="infoWindowDto"
       :where-clause-source="whereClauseSource" 
       :where-clause-source="whereClauseSource" 
       :is-search-widget="isSearchWidget" 
       :is-search-widget="isSearchWidget" 
+      :is-new-similar-assets="isNewSimilarAssets" 
       :parent-model-data="parentModelData"
       :parent-model-data="parentModelData"
       :model-data="modelData" 
       :model-data="modelData" 
       :multiple="multiple" 
       :multiple="multiple" 
       :window-no="infoWindowNo"
       :window-no="infoWindowNo"
       :icon-src="iconSrc"
       :icon-src="iconSrc"
+      @get-select-model-data="$emit('getSelectModelData', $event)"
       @data-selected="dataSelected"
       @data-selected="dataSelected"
       @delete-selected="deleteSelected"
       @delete-selected="deleteSelected"
     />
     />
@@ -52,6 +54,10 @@ export default defineComponent({
       type: Boolean,
       type: Boolean,
       default: false,
       default: false,
     },
     },
+    'isNewSimilarAssets': {
+      type: Boolean,
+      default: false,
+    },
     'parentModelData': {
     'parentModelData': {
       type: Object,
       type: Object,
       default(){
       default(){
@@ -86,7 +92,7 @@ export default defineComponent({
     },
     },
   },
   },
 
 
-  emits: ['dataSelected', 'valueChanged', 'deleteSelected'],
+  emits: ['dataSelected', 'valueChanged', 'deleteSelected','getSelectModelData'],
 
 
   data: function () {
   data: function () {
     return {
     return {

+ 22 - 6
packages/info/src/QueryPage.vue

@@ -37,7 +37,12 @@
           </a-flex>
           </a-flex>
         </div>
         </div>
       </div>
       </div>
-
+      <a-button v-if="isNewSimilarAssets" style="margin-top: 6px;" @click="newSimilarAssets">
+        <template #icon>
+          <PlusCircleTwoTone />
+        </template>
+        确认添加
+      </a-button>
       <div v-if="!isSearchWidget" style="display: inline-block">
       <div v-if="!isSearchWidget" style="display: inline-block">
         <QueryPageButton
         <QueryPageButton
           :info-buttons="infoWindowDto.infoButtons" :info-window-no="infoWindowDto.no" :select-info-data="selectInfoData" :icon-src="iconSrc"
           :info-buttons="infoWindowDto.infoButtons" :info-window-no="infoWindowDto.no" :select-info-data="selectInfoData" :icon-src="iconSrc"
@@ -156,6 +161,7 @@ import {
   DownloadOutlined,
   DownloadOutlined,
   TableOutlined,
   TableOutlined,
   ExclamationCircleOutlined,
   ExclamationCircleOutlined,
+  PlusCircleTwoTone,
 } from '@ant-design/icons-vue';
 } from '@ant-design/icons-vue';
 
 
 import CssUtil from '../../common/CssUtil.js';
 import CssUtil from '../../common/CssUtil.js';
@@ -177,7 +183,7 @@ export default {
     SyncOutlined,
     SyncOutlined,
     DownloadOutlined,
     DownloadOutlined,
     QueryPageButton,
     QueryPageButton,
-    ExclamationCircleOutlined,
+    ExclamationCircleOutlined,PlusCircleTwoTone,
   },
   },
 
 
   props: {
   props: {
@@ -191,6 +197,11 @@ export default {
       type: Boolean,
       type: Boolean,
       default: false,
       default: false,
     },
     },
+    // 用于新增同类资产,其他可以忽略
+    isNewSimilarAssets: {
+      type: Boolean,
+      default: false,
+    },
     parentModelData: {
     parentModelData: {
       type: Object,
       type: Object,
       default() {
       default() {
@@ -231,7 +242,7 @@ export default {
     },
     },
   },
   },
 
 
-  emits: ['dataSelected', 'deleteSelected'],
+  emits: ['dataSelected', 'deleteSelected','getSelectModelData'],
 
 
   data: function () {
   data: function () {
     this.Language = Language;
     this.Language = Language;
@@ -990,8 +1001,13 @@ export default {
     },
     },
 
 
     // 获取表格选择的数据
     // 获取表格选择的数据
-    infoSelected: function (selected) {
-      this.selectInfoData = selected;
+    infoSelected: function () {
+      this.selectInfoData = this.infoWindowDataInstance.getSelected();
+    },
+
+    // 获取需要新增同类资产数据
+    newSimilarAssets: function(){
+      this.$emit('getSelectModelData',this.selectInfoData);
     },
     },
   },
   },
 };
 };
@@ -1007,7 +1023,7 @@ export default {
   margin-left: 15px;
   margin-left: 15px;
 }
 }
 
 
-.mulitiple-select {
+:deep(.mulitiple-select) {
   background-color: #6699cc !important;
   background-color: #6699cc !important;
 }
 }
 
 

+ 6 - 1
packages/info/src/QueryPageDashboard.vue

@@ -207,7 +207,7 @@ export default {
     },
     },
   },
   },
 
 
-  emits: ['dataSelected', 'deleteSelected'],
+  emits: ['dataSelected', 'deleteSelected','infoSelected'],
   
   
   data: function () {
   data: function () {
     return {
     return {
@@ -239,12 +239,15 @@ export default {
         if (_self.isSelectAll) {
         if (_self.isSelectAll) {
           if (val) {
           if (val) {
             _self.infoWindowDataInstance.setAllSelect();
             _self.infoWindowDataInstance.setAllSelect();
+            _self.$emit('infoSelected');
           }
           }
         } else {
         } else {
           _self.infoWindowDataInstance.setAllUnSelect();
           _self.infoWindowDataInstance.setAllUnSelect();
+          _self.$emit('infoSelected');
         }
         }
       } else {
       } else {
         _self.isSelectAll = false;
         _self.isSelectAll = false;
+        _self.$emit('infoSelected');
       }
       }
     },
     },
 
 
@@ -279,8 +282,10 @@ export default {
 
 
       if (modelData.select === true) {
       if (modelData.select === true) {
         _self.$emit('dataSelected', modelData);
         _self.$emit('dataSelected', modelData);
+        _self.$emit('infoSelected');
       } else {
       } else {
         _self.$emit('deleteSelected', modelData);
         _self.$emit('deleteSelected', modelData);
+        _self.$emit('infoSelected');
       }
       }
     },
     },
 
 

+ 6 - 8
packages/info/src/QueryPageTable.vue

@@ -197,12 +197,16 @@ export default {
         if (_self.isSelectAll) {
         if (_self.isSelectAll) {
           if (val) {                        
           if (val) {                        
             _self.infoWindowDataInstance.setAllSelect();                       
             _self.infoWindowDataInstance.setAllSelect();                       
+            _self.$emit('infoSelected');
           }
           }
         } else {
         } else {
           _self.infoWindowDataInstance.setAllUnSelect();
           _self.infoWindowDataInstance.setAllUnSelect();
+          _self.$emit('infoSelected');
         }
         }
       } else {
       } else {
         _self.isSelectAll = false;
         _self.isSelectAll = false;
+        _self.$emit('infoSelected');
+
       }
       }
     },
     },
     multiple: {
     multiple: {
@@ -317,16 +321,10 @@ export default {
 
 
       if (modelData.select === true) {
       if (modelData.select === true) {
         _self.$emit('dataSelected', modelData);
         _self.$emit('dataSelected', modelData);
-        _self.modelDatas.push(modelData);
-        _self.$emit('infoSelected', _self.modelDatas);
+        _self.$emit('infoSelected');
       } else {
       } else {
         _self.$emit('deleteSelected', modelData);
         _self.$emit('deleteSelected', modelData);
-        _self.modelDatas.forEach((item,index) =>{
-          if(item.id=== modelData.id) {
-            _self.modelDatas.splice(index,1);
-          }
-        });
-        _self.$emit('infoSelected', _self.modelDatas);
+        _self.$emit('infoSelected');
       }
       }
     },
     },