瀏覽代碼

恢复 window 增加window1测试

liuyanpeng 1 年之前
父節點
當前提交
409b3210b7

+ 6 - 0
src/index.js

@@ -74,6 +74,9 @@ import CreateIdentity  from '../src/identity/CreateIdentity.vue';
 import SamlLogin  from './client/SamlLogin.vue';
 import CasLogin  from './client/CasLogin.vue';
 import PrinterConfiguration from '../src/printer/PrinterConfiguration.vue';
+import window1 from './window/Window.vue';
+import TabFormEdit1 from './window/tabFormView/TabFormEdit.vue';
+import TabFormView1 from './window/tabFormView/TabFormView.vue';
 
 export {
   App,
@@ -138,4 +141,7 @@ export {
   IdentityManager,
   CreateIdentity,
   PrinterConfiguration,
+  window1,
+  TabFormEdit1,
+  TabFormView1,
 };

+ 25 - 0
src/routes/main_routes.js

@@ -3,6 +3,11 @@ import Desktop from '../client/Desktop.vue';
 const Dashboard = () => import(/* webpackChunkName: "component-1" */ '../dashboard/Dashboard.vue');
 const Window = () => import(/* webpackChunkName: "component-2" */ '../window/Window.vue');
 
+const Window1 = () => import(/* webpackChunkName: "component-2" */ '../window1/Window.vue');
+const TabFormEdit1 = () => import(/* webpackChunkName: "component-4" */ '../window1/tabFormView/TabFormEdit.vue');
+const TabFormView1 = () => import(/* webpackChunkName: "component-5" */ '../window1/tabFormView/TabFormView.vue');
+
+
 const SheetWindow = () => import(/* webpackChunkName: "component-3" */ '../sheetWindow/SheetWindow.vue');
 const TabFormEdit = () => import(/* webpackChunkName: "component-4" */ '../window/tabFormView/TabFormEdit.vue');
 const TabFormView = () => import(/* webpackChunkName: "component-5" */ '../window/tabFormView/TabFormView.vue');
@@ -146,6 +151,26 @@ export default [
       // 查询窗口
       { path: 'info/:infoWindowNo', component: InfoWindowPage },
 
+
+      // 窗口
+      { path: 'window1/:windowNo', component: Window1 },
+
+      // CRUD编辑窗口
+      // eslint-disable-next-line
+      { path: 'window1/window-edit/:type/:uuid', component: TabFormEdit1 },
+      // eslint-disable-next-line
+      { path: 'window1/window-edit/:type/:windowNo/:tabIndex', component: TabFormEdit1 },
+      // eslint-disable-next-line
+      { path: 'window1/window-edit/:type/:windowNo/:tabIndex/:recordId', component: TabFormEdit1 },
+
+      // CRUD不可编辑窗口
+      // eslint-disable-next-line
+      { path: 'window1/window-read/:type/:uuid', component: TabFormView1 },
+      // eslint-disable-next-line
+      { path: 'window1/window-read/:type/:windowNo/:tabIndex/:recordId', component: TabFormView1 },
+
+
+
       // 流程和报口
       { path: 'process-report/:no', component: ProcessReport },
       // 审批

+ 3 - 18
src/window/filter/SimpleFilterPanel.vue

@@ -1,5 +1,5 @@
 <template>
-  <div :key="'simple-filter-panel-' + windowNo + '-tabIndex-' + tabIndex" style="width: 320px;">
+  <div :key="'simple-filter-panel-' + windowNo + '-tabIndex-' + tabIndex">
     <div>
       <div class="input-group">
         <div class="input-group-addon m-input-group-addon" @click="clearSearchCondition">
@@ -21,21 +21,18 @@
           @keydown.enter="commonSearchOk"
           @focus="showHistoryQueryCondition=true"
         />
-        <!-- <div
+        <div
           class="input-group-addon m-input-group-addon1"
           @click="$emit('showComplexFilterPanel')"
         >
           <span class="glyphicon glyphicon-list-alt" />
-        </div> -->
+        </div>
         <div
           class="input-group-addon m-input-group-addon"
           @click="commonSearchOk"
         >
           <span class="glyphicon glyphicon-search" />
         </div>
-        <div class="input-group-addon m-input-group-addon searchMore">
-          <a @click="$emit('showComplexFilterPanel')">更多筛选条件</a>
-        </div>
       </div>
 
       <div style="position:relative">
@@ -350,16 +347,4 @@ export default {
 .btn-clear-records {
   cursor: pointer;
 }
-.searchMore{
-  border: none;
-  background: #ffffff;
-}
-.searchMore > a{
-  color: #277fd0;
-  text-decoration: none;
-}
-.searchMore > a:hover {
-  color: #2a3f54;
-  text-decoration: none;
-}
 </style>

+ 3 - 17
src/window/tabGridView/GridColumnDef.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="btn-group">
-    <!-- <button
+    <button
       type="button"
       class="btn btn-default dropdown-toggle"
       aria-haspopup="true"
@@ -8,11 +8,7 @@
       @click="reverseShow"
     >
       <span class="fa fa-bars" />
-    </button> -->
-    <div class="table_style" @click="reverseShow">
-      <ProfileTwoTone style="font-size: 16px;" /> 
-      <span style="color: black;">表格过滤</span>
-    </div>
+    </button>
     <Modal v-model:show="modal">
       <template #header>
         {{ $t("lang.gridColumnDef.gridField") }}
@@ -51,14 +47,13 @@ import GridColumnDef from './GridColumnDef.js';
 import Language from '../../common/Language.js';
 
 import vuedraggable from 'vuedraggable';
-import { ProfileTwoTone } from '@ant-design/icons-vue';
+
 
 export default {
 
 
   components: {
     vuedraggable,
-    ProfileTwoTone,
   },
   /**
      * 页签表单字段
@@ -183,13 +178,4 @@ export default {
 ul label {
     cursor: pointer;
 }
-.table_style{
-  margin-left: 4px;
-  cursor: pointer;
-  padding: 1px 6px;
-}
-.table_style:hover{
-  border: 1px solid #ddd;
-  border-radius: 4px;
-}
 </style>

文件差異過大導致無法顯示
+ 198 - 369
src/window/tabGridView/TabGridEdit.vue


+ 119 - 248
src/window/tabView/TabButton.vue

@@ -1,11 +1,7 @@
 <template>
   <div class="btn-group" role="group">
     <template
-      v-if="
-        showTabDto != undefined &&
-          showTabDto.tabGridView &&
-          tabButtons != undefined
-      "
+      v-if="showTabDto != undefined && showTabDto.tabGridView && tabButtons != undefined"
     >
       <template v-for="item in tabButtons" :key="item.id">
         <button
@@ -25,50 +21,50 @@
       </template>
     </template>
 
-    <a-breadcrumb separator="|" style="color: #1890ff">
-      <a-breadcrumb-item v-if="'EditForm' != viewType" @click="exportConfirm">
-        <span class="glyphicon glyphicon-export" aria-hidden="true" />
-        <span class="tab_button">{{ $t("lang.tabButton.export") }}</span>
-      </a-breadcrumb-item>
-      <a-breadcrumb-item
-        v-if="mWindow && mWindow.dataTemplateIds != undefined"
-        @click="importData"
-      >
-        <span class="glyphicon glyphicon-import" aria-hidden="true" />
-        <span class="tab_button">
+    <button
+      type="button"
+      class="btn btn-default dropdown-toggle"
+      data-toggle="dropdown"
+      aria-haspopup="true"
+      aria-expanded="false"
+    >
+      {{ $t("lang.tabButton.other") }}
+      <span class="caret" />
+    </button>
+    <ul class="dropdown-menu floatTop">
+      <li v-if="'EditForm' != viewType">
+        <a type="button" @click="exportConfirm">
+          <span class="glyphicon glyphicon-export" aria-hidden="true" />
+          {{ $t("lang.tabButton.export") }}
+        </a>
+      </li>
+
+      <li v-if="mWindow && mWindow.dataTemplateIds != undefined">
+        <a type="button" @click="importData">
+          <span class="glyphicon glyphicon-export" aria-hidden="true" />
           {{ $t("lang.tabButton.import") }}
-        </span>
-      </a-breadcrumb-item>
-      <a-breadcrumb-item
-        v-if="'Form' == viewType || 'Grid' == viewType"
-        @click="notify"
-      >
-        <span class="fa fa-bell" aria-hidden="true" />
-        <span class="tab_button">
+        </a>
+      </li>
+      <li v-if="'Form' == viewType || 'Grid' == viewType">
+        <a type="button" @click="notify">
+          <span class="fa fa-bell" aria-hidden="true" />
           {{ $t("lang.tabButton.notice") }}
-        </span>
-      </a-breadcrumb-item>
-      <a-breadcrumb-item
-        v-if="'EditForm' != viewType && isOpen"
-        @click="documentOpen"
-      >
-        <span class="glyphicon glyphicon-folder-open" aria-hidden="true" />
-        <span class="tab_button">
+        </a>
+      </li>
+      <li v-if="'EditForm' != viewType && isOpen">
+        <a type="button" @click="documentOpen">
+          <span class="glyphicon glyphicon-folder-open" aria-hidden="true" />
           {{ $t("lang.tabButton.open") }}
-        </span>
-      </a-breadcrumb-item>
-      <a-breadcrumb-item
-        v-if="'EditForm' != viewType && isClose"
-        @click="documentClose"
-      >
-        <span class="glyphicon glyphicon-folder-close" aria-hidden="true" />
-        <span class="tab_button">
+        </a>
+      </li>
+      <li v-if="'EditForm' != viewType && isClose">
+        <a type="button" @click="documentClose">
+          <span class="glyphicon glyphicon-folder-close" aria-hidden="true" />
           {{ $t("lang.tabButton.close") }}
-        </span>
-      </a-breadcrumb-item>
-
+        </a>
+      </li>
       <template v-for="item in tabButtons" :key="item.id">
-        <a-breadcrumb-item
+        <li
           v-if="
             showTabDto.tabGridView &&
               item.subMenu == true &&
@@ -77,13 +73,13 @@
                 (viewType == 'Form' && item.editMode != true)) &&
               item.invisible == false
           "
-          style="color: black"
-          @click="execute(item)"
         >
-          {{ Language.getNameTrl($i18n.locale, item) }}
-        </a-breadcrumb-item>
+          <a type="button" @click="execute(item)">{{
+            Language.getNameTrl($i18n.locale, item)
+          }}</a>
+        </li>
       </template>
-    </a-breadcrumb>
+    </ul>
 
     <Modal v-model:show="modal" :full="true">
       <ProcessReportResultPreview
@@ -101,11 +97,7 @@
       </template>
     </Modal>
 
-    <Modal
-      v-model:show="notificationModal"
-      :show-canel-button="false"
-      :show-ok-button="false"
-    >
+    <Modal v-model:show="notificationModal" :show-canel-button="false" :show-ok-button="false">
       <template #header>
         {{ $t("lang.tabButton.sendNotice") }}
       </template>
@@ -114,11 +106,7 @@
         <button type="button" class="btn btn-default" @click="sendNotification">
           {{ $t("lang.tabButton.send") }}
         </button>
-        <button
-          type="button"
-          class="btn btn-default"
-          @click="cancelNotification"
-        >
+        <button type="button" class="btn btn-default" @click="cancelNotification">
           {{ $t("lang.tabButton.cancel") }}
         </button>
       </template>
@@ -131,6 +119,8 @@
 <script>
 import Common from '../../common/Common.js';
 
+
+
 import DownloadService from '../../resource/file/DownloadService.js';
 import CustomerWindowResource from '../../api/dic/CustomerWindowResource.js';
 import HtmlWindowResource from '../../api/dic/HtmlWindowResource.js';
@@ -140,6 +130,7 @@ import Language from '../../common/Language.js';
 import { Notify, Uuid } from 'pc-component-v3';
 import dayjs from 'dayjs';
 
+
 import NotificationPanel from '../../customer/NotificationPanel.vue';
 import { IFrameUtil } from 'pc-component-v3';
 
@@ -148,68 +139,70 @@ export default {
     NotificationPanel,
   },
 
+  
   props: {
+    
     showTabDto: {
       type: Object,
-      default: function () {
+      default : function(){
         return null;
       },
     },
     parentModelData: {
       type: Object,
-      default: function () {
+      default : function(){
         return null;
       },
     },
     modelData: {
       type: Object,
-      default: function () {
+      default : function(){
         return null;
       },
     },
     modelDatas: {
       type: Array,
-      default: function () {
+      default : function(){
         return null;
       },
     },
     uuid: {
       type: String,
-      default: null,
+      default : null,
     },
     viewType: {
       type: String,
-      default: null,
+      default : null,
     },
     type: {
       type: String,
-      default: null,
+      default : null,
     },
     simpleFilterParams: {
       type: String,
-      default: null,
+      default : null,
     },
     complexFilterParams: {
       type: Array,
-      default: () => {
+      default:()=>{
         return [];
       },
     },
     mWindow: {
       type: Object,
-      default: function () {
+      default : function(){
         return null;
       },
     },
     tabButtons: {
       type: Array,
-      default: function () {
+      default : function(){
         return null;
       },
     },
     curdWindowFunctionAccess: {
       type: Object,
-      default: function () {
+      default : function(){
         return null;
       },
     },
@@ -249,8 +242,7 @@ export default {
         if (
           _self.parentModelData.data != undefined &&
           _self.parentModelData.data.documentStatus != undefined &&
-          _self.parentModelData.data.documentStatus.displayValue[0] ==
-            'APPROVED' &&
+          _self.parentModelData.data.documentStatus.displayValue[0] == 'APPROVED' &&
           _self.parentModelData.data.closeDate != undefined
         ) {
           return true;
@@ -283,8 +275,7 @@ export default {
         if (
           _self.parentModelData.data != undefined &&
           _self.parentModelData.data.documentStatus != undefined &&
-          _self.parentModelData.data.documentStatus.displayValue[0] ==
-            'APPROVED' &&
+          _self.parentModelData.data.documentStatus.displayValue[0] == 'APPROVED' &&
           _self.parentModelData.data.closeDate != undefined
         ) {
           return true;
@@ -327,11 +318,7 @@ export default {
       } else if (tabIndex == 1) {
         recordId = _self.parentModelData.id;
         if (_self.modelDatas == undefined || _self.modelDatas.length == 0) {
-          Notify.error(
-            _self.$t('lang.Notify.error'),
-            _self.$t('lang.tabButton.describe1'),
-            false,
-          );
+          Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe1'), false);
           return;
         } else {
           _self.modelDatas.forEach(function (item) {
@@ -340,11 +327,7 @@ export default {
             }
           });
           if (closeRecordIds.length == 0) {
-            Notify.error(
-              _self.$t('lang.Notify.error'),
-              _self.$t('lang.tabButton.describe2'),
-              false,
-            );
+            Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe2'), false);
             return;
           }
         }
@@ -393,11 +376,7 @@ export default {
       } else if (tabIndex == 1) {
         recordId = _self.parentModelData.id;
         if (_self.modelDatas == undefined || _self.modelDatas.length == 0) {
-          Notify.error(
-            _self.$t('lang.Notify.error'),
-            _self.$t('lang.tabButton.describe1'),
-            false,
-          );
+          Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe1'), false);
           return;
         } else {
           _self.modelDatas.forEach(function (item) {
@@ -406,11 +385,7 @@ export default {
             }
           });
           if (openRecordIds.length == 0) {
-            Notify.error(
-              _self.$t('lang.Notify.error'),
-              _self.$t('lang.tabButton.describe2'),
-              false,
-            );
+            Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe2'), false);
             return;
           }
         }
@@ -445,22 +420,13 @@ export default {
     //跳转或执行流程
     execute: function (tabButton) {
       var _self = this;
-      if (
-        tabButton.customerWindowNo != undefined &&
-        tabButton.customerWindowNo != ''
-      ) {
+      if (tabButton.customerWindowNo != undefined && tabButton.customerWindowNo != '') {
         CustomerWindowResource.uniqueByNo(tabButton.customerWindowNo).then(
           successData => {
             tabButton.customerWindowRouteUrl = successData.routeUrl;
-            if (tabButton.customerWindowNo == '20221101_151823') {
-              localStorage.setItem(
-                'AssetInstance_ComplexFilterParams',
-                JSON.stringify(_self.complexFilterParams),
-              );
-              localStorage.setItem(
-                'AssetInstance_SimpleFilterParams',
-                _self.simpleFilterParams,
-              );
+            if(tabButton.customerWindowNo == '20221101_151823'){
+              localStorage.setItem('AssetInstance_ComplexFilterParams',JSON.stringify(_self.complexFilterParams));
+              localStorage.setItem('AssetInstance_SimpleFilterParams', _self.simpleFilterParams);
             }
             //跳转到tabButton.routeUrl
             if (this.viewType == 'Form' || this.viewType == 'EditForm') {
@@ -479,10 +445,7 @@ export default {
       ) {
         // 判断流程报表是否有参数
         // 如果有参数则直接跳转到流程和报表的界面。
-        if (
-          tabButton.routerRedirect == undefined ||
-          tabButton.routerRedirect == false
-        ) {
+        if (tabButton.routerRedirect == undefined || tabButton.routerRedirect == false) {
           this.executeProcess(tabButton);
         } else {
           this.$router.push({
@@ -517,53 +480,27 @@ export default {
                         });
                       }
                       if (recordIds != null && recordIds.length > 0) {
-                        recordIds = recordIds.substring(
-                          0,
-                          recordIds.length - 1,
-                        );
+                        recordIds = recordIds.substring(0, recordIds.length - 1);
                       } else {
-                        Notify.error(
-                          _self.$t('lang.Notify.error'),
-                          _self.$t('lang.tabButton.describe3'),
-                          true,
-                        );
+                        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe3'), true);
                         return;
                       }
-                      htmlWindowUrl = htmlWindowUrl.replace(
-                        '{RecordIds}',
-                        recordIds,
-                      );
+                      htmlWindowUrl = htmlWindowUrl.replace('{RecordIds}', recordIds);
                     } else {
                       var recordId = _self.modelData.id;
-                      htmlWindowUrl = htmlWindowUrl.replace(
-                        '{RecordIds}',
-                        recordId,
-                      );
+                      htmlWindowUrl = htmlWindowUrl.replace('{RecordIds}', recordId);
                     }
                   } else if (tempResult == '{Token}') {
-                    htmlWindowUrl = htmlWindowUrl.replace(
-                      '{Token}',
-                      Common.getToken(),
-                    );
+                    htmlWindowUrl = htmlWindowUrl.replace('{Token}', Common.getToken());
                   } else {
                     if (_self.selectedModelDatas.length == 0) {
-                      Notify.error(
-                        _self.$t('lang.Notify.error'),
-                        _self.$t('lang.tabButton.describe3'),
-                        true,
-                      );
+                      Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe3'), true);
                       return;
                     } else if (_self.selectedModelDatas.length > 1) {
-                      Notify.error(
-                        _self.$t('lang.Notify.error'),
-                        _self.$t('lang.tabButton.describe2'),
-                        true,
-                      );
+                      Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe2'), true);
                       return;
                     }
-                    var tempResult1 = tempResult
-                      .replace('{', '')
-                      .replace('}', '');
+                    var tempResult1 = tempResult.replace('{', '').replace('}', '');
                     htmlWindowUrl = htmlWindowUrl.replace(
                       tempResult,
                       _self.getFirstSelectModelDataFieldValue(tempResult1),
@@ -602,10 +539,7 @@ export default {
      */
     exportConfirm: function () {
       var _self = this;
-      if (
-        _self.curdWindowFunctionAccess.canExport != null &&
-        _self.curdWindowFunctionAccess.canExport === true
-      ) {
+      if(_self.curdWindowFunctionAccess.canExport != null && _self.curdWindowFunctionAccess.canExport === true){
         BootstrapDialog.show({
           title: _self.$t('lang.TabButton.dataExport'), //title
           message: _self.$t('lang.TabButton.DataExport'),
@@ -632,12 +566,8 @@ export default {
             },
           ],
         });
-      } else {
-        Notify.error(
-          _self.$t('lang.tabButton.describe4'),
-          _self.$t('lang.tabButton.describe5'),
-          false,
-        );
+      }else{
+        Notify.error(_self.$t('lang.tabButton.describe4'), _self.$t('lang.tabButton.describe5'), false);
       }
     },
     /**
@@ -688,10 +618,7 @@ export default {
     importData: function () {
       var _self = this;
       var uuid = _self.uuid;
-      if (
-        _self.mWindow != undefined &&
-        _self.mWindow.dataTemplateIds != undefined
-      ) {
+      if (_self.mWindow != undefined && _self.mWindow.dataTemplateIds != undefined) {
         var data = JSON.stringify(_self.mWindow.dataTemplateIds);
         this.$router.push({
           path: '/desktop/data-import-panel',
@@ -729,27 +656,11 @@ export default {
       console.log(modelData);
       localStorage.setItem(_self.uuid + '#GenerateDocumentTool', modelData);
 
-      var iWidth = 1280; //弹出窗口的宽度;
+      var iWidth = 1280;//弹出窗口的宽度;
       var iHeight = 720; //弹出窗口的高度;
-      var iTop = (window.screen.availHeight - 30 - iHeight) / 2; //获得窗口的垂直位置;
-      var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //获得窗口的水平位置;
-      window.open(
-        frameUrl,
-        '_blank',
-        'height=' +
-          iHeight +
-          ',innerHeight=' +
-          iHeight +
-          ',width=' +
-          iWidth +
-          ',innerWidth=' +
-          iWidth +
-          ',top=' +
-          iTop +
-          ',left=' +
-          iLeft +
-          ',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no',
-      );
+      var iTop = (window.screen.availHeight-30-iHeight)/2;//获得窗口的垂直位置;
+      var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置;
+      window.open(frameUrl,'_blank','height='+iHeight+',innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no');
       // window.open(frameUrl);
     },
 
@@ -768,11 +679,7 @@ export default {
       var _self = this;
       //执行流程
       if (_self.modelData.id == undefined) {
-        Notify.error(
-          _self.$t('lang.tabButton.describe6'),
-          _self.$t('lang.tabButton.describe7'),
-          false,
-        );
+        Notify.error(_self.$t('lang.tabButton.describe6'), _self.$t('lang.tabButton.describe7'), false);
         return;
       }
 
@@ -781,7 +688,7 @@ export default {
         processReportId: tabButton.processReportId,
         modelData: _self.modelData,
       };
-      _self.loading = true;
+      _self.loading=true;
 
       $.ajax({
         url: Common.getApiURL('ProcessReportResource/runProcess'),
@@ -793,24 +700,21 @@ export default {
         contentType: 'application/json',
         data: JSON.stringify(processResultData),
         success: function (successData) {
-          if (successData.errorCode == 0) {
+          if(successData.errorCode == 0) {
             _self.modal = true;
-            _self.loading = false;
+            _self.loading=false;
             _self.processReportResult = successData.data;
 
             if (
               _self.processReportResult.reportResults != undefined &&
               _self.processReportResult.reportResults.length > 0
             ) {
-              _self.processReportResult.reportResults.forEach(function (
-                item,
-                index,
-              ) {
-                item.previewIndex = 1;
+              _self.processReportResult.reportResults.forEach(function (item, index) {
+                item.previewIndex=1;
                 if (index == 0) {
-                  item.showPreview = true;
+                  item.showPreview=true;
                 } else {
-                  item.showPreview = false;
+                  item.showPreview=false;
                 }
               });
             }
@@ -818,7 +722,7 @@ export default {
           }
         },
         error: function (XMLHttpRequest, textStatus, errorThrown) {
-          _self.loading = false;
+          _self.loading=false;
           Common.processException(XMLHttpRequest, textStatus, errorThrown);
         },
       });
@@ -856,34 +760,28 @@ export default {
       } else if (_self.modelData) {
         ids.push(_self.modelData.id);
       }
-      _self.loading = true;
+      _self.loading=true;
 
-      ProcessReportResource.runProcessByIds(
-        tabButton.processReportNo,
-        ids,
-      ).then(
+      ProcessReportResource.runProcessByIds(tabButton.processReportNo, ids).then(
         successData => {
           _self.modal = true;
-          _self.loading = false;
+          _self.loading=false;
           _self.processReportResult = successData;
 
           if (
             _self.processReportResult.reportResults != undefined &&
             _self.processReportResult.reportResults.length > 0
           ) {
-            _self.processReportResult.reportResults.forEach(function (
-              item,
-              index,
-            ) {
-              if (item.reportDefinitionType !== 'ExcelReport') {
-                item.previewIndex = 1;
-              } else {
-                item.previewIndex = 2;
+            _self.processReportResult.reportResults.forEach(function (item, index) {
+              if(item.reportDefinitionType!=='ExcelReport'){
+                item.previewIndex=1;
+              }else{
+                item.previewIndex=2;
               }
               if (index == 0) {
-                item.showPreview = true;
+                item.showPreview=true;
               } else {
-                item.showPreview = false;
+                item.showPreview=false;
               }
             });
           }
@@ -891,7 +789,7 @@ export default {
           _self.$emit('processExecuteFinish');
         },
         errorData => {
-          _self.loading = false;
+          _self.loading=false;
           Common.processException(errorData);
         },
       );
@@ -920,35 +818,19 @@ export default {
         recordIds.push(_self.$route.params.recordId);
       }
       if (recordIds.length == 0) {
-        Notify.error(
-          _self.$t('lang.Notify.error'),
-          _self.$t('lang.tabButton.describe7'),
-          true,
-        );
+        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe7'), true);
         return;
       }
       if (notification.userIds == null || notification.userIds.length == 0) {
-        Notify.error(
-          _self.$t('lang.Notify.error'),
-          _self.$t('lang.tabButton.describe8'),
-          true,
-        );
+        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe8'), true);
         return;
       }
       if (notification.theme == null || notification.theme.trim() == '') {
-        Notify.error(
-          _self.$t('lang.Notify.error'),
-          _self.$t('lang.tabButton.describe9'),
-          true,
-        );
+        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe9'), true);
         return;
       }
       if (notification.content == null || notification.content.trim() == '') {
-        Notify.error(
-          _self.$t('lang.Notify.error'),
-          _self.$t('lang.tabButton.describe10'),
-          true,
-        );
+        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe10'), true);
         return;
       }
       var windowNo = _self.$route.params.windowNo;
@@ -958,7 +840,7 @@ export default {
       notification.recordIds = recordIds;
       notification.className = _self.showTabDto.className;
 
-      _self.loading = true;
+      _self.loading=true;
       $.ajax({
         url: Common.getApiURL('notificationResource/send'),
         type: 'post',
@@ -968,16 +850,12 @@ export default {
         contentType: 'application/json',
         data: JSON.stringify(notification),
         success: function (data) {
-          _self.loading = false;
+          _self.loading=false;
           _self.notificationModal = false;
-          Notify.success(
-            _self.$t('lang.tabButton.describe11'),
-            _self.$t('lang.tabButton.describe12'),
-            true,
-          );
+          Notify.success(_self.$t('lang.tabButton.describe11'), _self.$t('lang.tabButton.describe12'), true);
         },
         error: function (XMLHttpRequest, textStatus, errorThrown) {
-          _self.loading = false;
+          _self.loading=false;
           Common.processException(XMLHttpRequest, textStatus, errorThrown);
         },
       });
@@ -994,11 +872,4 @@ export default {
 .floatTop {
   z-index: 1002;
 }
-:deep(.btn-group > .btn:first-child) {
-  margin: -2px;
-}
-.tab_button {
-  color: black;
-  margin-left: 4px;
-}
 </style>

+ 18 - 3
src/window1/filter/SimpleFilterPanel.vue

@@ -1,5 +1,5 @@
 <template>
-  <div :key="'simple-filter-panel-' + windowNo + '-tabIndex-' + tabIndex">
+  <div :key="'simple-filter-panel-' + windowNo + '-tabIndex-' + tabIndex" style="width: 320px;">
     <div>
       <div class="input-group">
         <div class="input-group-addon m-input-group-addon" @click="clearSearchCondition">
@@ -21,18 +21,21 @@
           @keydown.enter="commonSearchOk"
           @focus="showHistoryQueryCondition=true"
         />
-        <div
+        <!-- <div
           class="input-group-addon m-input-group-addon1"
           @click="$emit('showComplexFilterPanel')"
         >
           <span class="glyphicon glyphicon-list-alt" />
-        </div>
+        </div> -->
         <div
           class="input-group-addon m-input-group-addon"
           @click="commonSearchOk"
         >
           <span class="glyphicon glyphicon-search" />
         </div>
+        <div class="input-group-addon m-input-group-addon searchMore">
+          <a @click="$emit('showComplexFilterPanel')">更多筛选条件</a>
+        </div>
       </div>
 
       <div style="position:relative">
@@ -347,4 +350,16 @@ export default {
 .btn-clear-records {
   cursor: pointer;
 }
+.searchMore{
+  border: none;
+  background: #ffffff;
+}
+.searchMore > a{
+  color: #277fd0;
+  text-decoration: none;
+}
+.searchMore > a:hover {
+  color: #2a3f54;
+  text-decoration: none;
+}
 </style>

+ 404 - 0
src/window1/tabGridView/AddAssets.vue

@@ -0,0 +1,404 @@
+<template>
+  <div v-if="step === '0'" class="select_asset">
+    <p>选择待验收资产类型</p>
+    <ul>
+      <li>
+        <img src="./commonAsset.gif" />
+        <a><span>新增同类型资产</span></a>
+      </li>
+      <li @click="addNewAssets">
+        <img src="./newAsset.gif" />
+        <a><span>新增资产</span></a>
+      </li>
+    </ul>
+  </div>
+  <div v-if="step === '1'">
+    <a-layout>
+      <a-layout-header :style="headerStyle">
+        <div class="tab_select">
+          <a-radio-group v-model:value="nowSelect">
+            <a-radio-button value="commonUse">
+              <StarTwoTone /> 常用资产分类
+            </a-radio-button>
+            <a-radio-button value="detail">
+              <WalletTwoTone /> 明细资产分类
+            </a-radio-button>
+          </a-radio-group>
+          <div style="display: flex; align-items: center">
+            <a-input />
+            <span style="margin-left: 8px; width: 100px">类目搜索</span>
+          </div>
+        </div>
+      </a-layout-header>
+      <a-layout style="height: 430px">
+        <a-layout-sider width="180px">
+          <div style="width: 180px">
+            <a-menu
+              v-if="nowSelect === 'commonUse'"
+              v-model:selectedKeys="selectedKeys"
+              mode="inline"
+              class="menu_style"
+              :items="assetItems"
+              @click="(record) => changeAssets(record.key)"
+            />
+
+            <a-menu
+              v-else
+              v-model:openKeys="openKeys"
+              v-model:selectedKeys="selectedKeys1"
+              mode="inline"
+              class="menu_style"
+              @click="(record) => changeDetailAsset(record.key)"
+            >
+              <SubMenu :menu-info="menuList" />
+            </a-menu>
+          </div>
+        </a-layout-sider>
+        <a-layout-content :style="contentStyle">
+          <div v-if="nowSelect === 'commonUse'" class="item-list">
+            <ul class="ul_list">
+              <template v-if="secondMenu && secondMenu.length > 0">
+                <li
+                  v-for="(item, index) in secondMenu"
+                  :key="index"
+                  class="list-item"
+                >
+                  <div class="left fl">
+                    {{ item.parent }}
+                    <span class="jt_icon"> > </span>
+                  </div>
+                  <div class="right fl">
+                    <ul>
+                      <template v-if="item.children">
+                        <li
+                          v-for="(asset, index1) in item.children"
+                          :key="index1"
+                          @click="selectAsset(asset)"
+                        >
+                          {{ asset }}
+                        </li>
+                      </template>
+                      <template v-else>
+                        <li />
+                      </template>
+                    </ul>
+                  </div>
+                </li>
+              </template>
+            </ul>
+          </div>
+          <div v-else>
+            <AssetList :tree-data="list" @get-asset-name="getAssetName" />
+          </div>
+        </a-layout-content>
+      </a-layout>
+    </a-layout>
+  </div>
+</template>
+
+<script setup>
+import { ref, watch, defineProps, defineEmits } from 'vue';
+import Common from '../../common/Common';
+import { StarTwoTone, WalletTwoTone } from '@ant-design/icons-vue';
+import { message } from 'ant-design-vue';
+import SubMenu from './SubMenu.vue';
+import AssetList from './AssetList.vue';
+
+const list = ref([]);
+
+const openKeys = ref([]);
+const selectedKeys1 = ref([]);
+const menuList = ref([]);
+
+const emit = defineEmits(['getStepInfo', 'getAllName']);
+const props = defineProps({
+  step: {
+    type: String,
+    default: '0',
+  },
+});
+// 当前操作的步骤是选择还是添加
+const step = ref('0');
+
+// 是常用还是明细切换标识
+const nowSelect = ref('commonUse');
+
+// 展示的菜单
+const selectedKeys = ref([]);
+
+// 菜单一级目录
+const assetItems = ref([]);
+
+// 所有资产分类数据
+const assetCategorys = ref([]);
+
+const secondMenu = ref([]);
+
+// 所选资产分类名
+const assetName = ref('');
+const allName = ref('');
+
+// 传递当前进行到选择类别的步骤
+const addNewAssets = () => {
+  step.value = '1';
+  emit('getStepInfo', '1');
+  getAssetCategorys();
+};
+
+// 当通用资产切换类别时获取对应的子分类
+const changeAssets = key => {
+  const thirdMenu = [];
+  secondMenu.value = [];
+  assetCategorys.value.forEach(item => {
+    if (item.id === key) {
+      if (item.children && item.children.length > 0) {
+        item.children.forEach((child, index) => {
+          if (child.children && child.children.length > 0) {
+            child.children.forEach(child1 => {
+              thirdMenu.push(child1.text);
+            });
+            secondMenu.value.push({ parent: child.text });
+            secondMenu.value[index].children = thirdMenu;
+          } else {
+            secondMenu.value.push({ parent: child.text });
+          }
+        });
+      }
+    }
+  });
+};
+
+// 处理明细资产分类数据
+const getDetailData = datas => {
+  openKeys.value = [];
+  selectedKeys1.value = [];
+  const assetDatas = JSON.parse(JSON.stringify(datas));
+  assetDatas.forEach((item, index) => {
+    menuList.value[index] = {};
+    menuList.value[index].key = item.id;
+    menuList.value[index].name = item.text;
+    menuList.value[index].children = item.children;
+    if (item.children && item.children.length > 0) {
+      item.children.forEach(child => {
+        child.key = child.id;
+        child.name = child.text;
+        delete child.children;
+      });
+    }
+  });
+  //  默认展开选择第一个
+  openKeys.value.push(datas[0].id);
+  selectedKeys1.value.push(menuList.value[0].children[0].id);
+  changeDetailAsset(menuList.value[0].children[0].id);
+};
+
+// 当明细资产切换类别时获取对应的子分类
+const changeDetailAsset = key => {
+  let listMenu = [];
+  assetName.value = '';
+  allName.value = '';
+  assetCategorys.value.forEach(item => {
+    if (item.children && item.children.length) {
+      item.children.forEach(child => {
+        if (child.id === key) {
+          assetName.value = child.text;
+          allName.value = child.text;
+          if (child.children && child.children.length) {
+            listMenu.push(child.children);
+          }
+        }
+      });
+    }
+  });
+  list.value = listMenu.flat();
+  emit('getStepInfo', step.value, allName.value);
+};
+
+// 获取明细所选资产
+const getAssetName = name => {
+  if (name) {
+    allName.value = '';
+    allName.value = assetName.value + '->' + name;
+  }
+  emit('getStepInfo', step.value, allName.value);
+};
+
+// 获取当前所选资产
+const selectAsset = asset => {
+  emit('getStepInfo', step.value, asset);
+};
+
+// 获取资分类数据
+const getAssetCategorys = () => {
+  $.ajax({
+    url: Common.getApiURL('AssetCategoryResource/listRootSubAssetCategorys'),
+    type: 'get',
+
+    dataType: 'json',
+    beforeSend: function (request) {
+      Common.addTokenToRequest(request);
+    },
+    success: function (data) {
+      if (data.errorCode === 0 && data.datas.length > 0) {
+        assetItems.value = [];
+        selectedKeys.value = [];
+        data.datas.forEach((item, index) => {
+          assetItems.value[index] = {};
+          assetItems.value[index].key = item.id;
+          assetItems.value[index].label = item.text;
+          assetItems.value[index].title = item.text;
+        });
+        selectedKeys.value.push(data.datas[0].id);
+        assetCategorys.value = data.datas;
+        changeAssets(data.datas[0].id);
+        getDetailData(data.datas);
+      } else {
+        message.warning(data.errorMessage);
+      }
+    },
+    error: function (XMLHttpRequest, textStatus, errorThrown) {
+      Common.processException(XMLHttpRequest, textStatus, errorThrown);
+    },
+  });
+};
+
+const headerStyle = {
+  backgroundColor: '#f0f0f0',
+};
+const contentStyle = {
+  color: '#fff',
+  backgroundColor: '#fafafa',
+};
+
+watch(
+  () => props.step,
+  newValue => {
+    step.value = newValue;
+    if (newValue === '0') {
+      nowSelect.value = 'commonUse';
+    }
+  },
+  { deep: true, immediate: true },
+);
+</script>
+
+<style scoped>
+.select_asset {
+  position: relative;
+  overflow: auto;
+  height: 294px;
+}
+.select_asset > p {
+  position: relative;
+  height: 38px;
+  line-height: 38px;
+  text-align: center;
+  margin: 16px 0 36px;
+  font-size: 20px;
+}
+.select_asset > ul {
+  overflow: hidden;
+  list-style: none;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  margin-left: -38px !important;
+}
+.select_asset > li {
+  height: 165px;
+  padding-left: 65px;
+  float: left;
+}
+.select_asset li img {
+  margin: 0 auto;
+  cursor: pointer;
+}
+.select_asset li a {
+  display: block;
+  text-align: center;
+  position: relative;
+  margin: 0;
+  bottom: 36px;
+  font-size: 13px;
+  color: #333;
+  cursor: pointer;
+  text-align: center;
+}
+.select_asset a span {
+  cursor: pointer;
+  padding: 0 6px;
+  line-height: 32px;
+  background: #277fd0;
+  color: #fff;
+  display: inline-block;
+  text-align: center;
+}
+.select_asset a span:hover {
+  background: #3e9aef;
+}
+
+:deep(
+    :where(.css-dev-only-do-not-override-16pw25h).ant-layout .ant-layout-header
+  ) {
+  height: 40px;
+  line-height: 0;
+  padding-inline: 0px;
+}
+.tab_select {
+  height: 40px;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.item-list {
+  width: 610px;
+  height: 437px;
+  overflow-y: auto;
+  float: left;
+  color: #333;
+}
+
+.ul_list {
+  list-style-type: none;
+  padding: 0;
+}
+.ul_list.active {
+  display: block;
+}
+.ul_list > li {
+  height: 40px;
+  line-height: 40px;
+}
+.ul_list li .left {
+  width: 130px;
+  padding: 0 10px 0 16px;
+  color: #777;
+}
+.ul_list li .right {
+  width: 440px;
+  display: inline-block;
+  margin-left: -36px;
+}
+.ul_list li .right ul {
+  list-style: none;
+}
+.ul_list li .right li {
+  float: left;
+  margin-right: 15px;
+  cursor: pointer;
+}
+.fl {
+  float: left;
+}
+
+.jt_icon {
+  float: right;
+}
+
+.menu_style {
+  background-color: #e5f2fd;
+  height: 430px;
+  overflow: auto;
+}
+</style>

+ 160 - 0
src/window1/tabGridView/AssetList.vue

@@ -0,0 +1,160 @@
+<template>
+  <div>
+    <div class="asset_list">
+      <ul>
+        <li
+          v-for="(item, index) in treeData"
+          :key="index"
+          :class="{ active: currentIndex1 === index }"
+          @click="setCurrentIndex(index, item, 1)"
+        >
+          {{ item.text }}
+          <a v-if="item.children">></a>
+        </li>
+      </ul>
+    </div>
+    <div class="asset_list">
+      <ul>
+        <li
+          v-for="(item, index) in menu1"
+          :key="index"
+          :class="{ active: currentIndex2 === index }"
+          @click="setCurrentIndex(index, item, 2)"
+        >
+          {{ item.text }}
+          <a v-if="item.children">></a>
+        </li>
+      </ul>
+    </div>
+    <div class="asset_list">
+      <ul>
+        <li
+          v-for="(item, index) in menu2"
+          :key="index"
+          :class="{ active: currentIndex3 === index }"
+          @click="setCurrentIndex(index, item, 3)"
+        >
+          {{ item.text }}
+        </li>
+      </ul>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { ref, defineProps, watch, defineEmits } from 'vue';
+
+const emits = defineEmits(['getAssetName']);
+const props = defineProps({
+  treeData: {
+    type: Array,
+    default: () => [],
+  },
+});
+const currentIndex1 = ref(null);
+const currentIndex2 = ref(null);
+const currentIndex3 = ref(null);
+const menu1 = ref([]);
+const menu2 = ref([]);
+
+const assetName1 = ref('');
+const assetName2 = ref('');
+const assetName3 = ref('');
+
+const setCurrentIndex = (index, record, flag) => {
+  if (flag === 1) {
+    currentIndex2.value = null;
+    currentIndex3.value = null;
+    currentIndex1.value = index;
+    menu1.value = record.children;
+    assetName1.value = record.text;
+    assetName2.value = '';
+    assetName3.value = '';
+  } else if (flag === 2) {
+    currentIndex3.value = null;
+    currentIndex2.value = index;
+    menu2.value = record.children;
+    assetName2.value = record.text;
+    assetName3.value = '';
+  } else {
+    currentIndex3.value = index;
+    assetName3.value = record.text;
+  }
+  let name = '';
+  if (!assetName2.value) {
+    name = `${assetName1.value}`;
+  }
+  if (assetName2.value && !assetName3.value) {
+    name = `${assetName1.value}->${assetName2.value}`;
+  }
+  if (assetName2.value && assetName3.value) {
+    name = `${assetName1.value}->${assetName2.value}->${assetName3.value}`;
+  }
+  emits('getAssetName', name);
+};
+const clearData = () => {
+  menu1.value = [];
+  menu2.value = [];
+  assetName1.value = '';
+  assetName2.value = '';
+  assetName3.value = '';
+  currentIndex1.value = null;
+  currentIndex2.value = null;
+  currentIndex3.value = null;
+};
+watch(
+  () => props.treeData,
+  (newVal, oldVal) => {
+    if (newVal !== oldVal || newVal.length === 0) {
+      clearData();
+    }
+  },
+);
+</script>
+
+<style scoped>
+.asset_list {
+  width: 33.3%;
+  height: 91%;
+  float: left;
+  border-right: 1px solid #ccc;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  overflow-x: hidden;
+}
+.asset_list > ul {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+.asset_list li {
+  color: #333;
+  height: 30px;
+  line-height: 30px;
+  padding-left: 16px;
+  background-color: #fff;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  white-space: nowrap;
+  cursor: pointer;
+}
+.asset_list li:hover {
+  background-color: #c6e0f8;
+}
+li.active {
+  color: #fff;
+  background-color: #3e9aef;
+  border-radius: 2px;
+}
+.asset_list li a {
+  width: 18px;
+  height: 18px;
+  float: right;
+  margin-right: 8px;
+  /* display: inline-block; */
+  font-size: 13px;
+  color: #333;
+  cursor: pointer;
+}
+</style>

+ 17 - 3
src/window1/tabGridView/GridColumnDef.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="btn-group">
-    <button
+    <!-- <button
       type="button"
       class="btn btn-default dropdown-toggle"
       aria-haspopup="true"
@@ -8,7 +8,11 @@
       @click="reverseShow"
     >
       <span class="fa fa-bars" />
-    </button>
+    </button> -->
+    <div class="table_style" @click="reverseShow">
+      <ProfileTwoTone style="font-size: 16px;" /> 
+      <span style="color: black;">表格过滤</span>
+    </div>
     <Modal v-model:show="modal">
       <template #header>
         {{ $t("lang.gridColumnDef.gridField") }}
@@ -47,13 +51,14 @@ import GridColumnDef from './GridColumnDef.js';
 import Language from '../../common/Language.js';
 
 import vuedraggable from 'vuedraggable';
-
+import { ProfileTwoTone } from '@ant-design/icons-vue';
 
 export default {
 
 
   components: {
     vuedraggable,
+    ProfileTwoTone,
   },
   /**
      * 页签表单字段
@@ -178,4 +183,13 @@ export default {
 ul label {
     cursor: pointer;
 }
+.table_style{
+  margin-left: 4px;
+  cursor: pointer;
+  padding: 1px 6px;
+}
+.table_style:hover{
+  border: 1px solid #ddd;
+  border-radius: 4px;
+}
 </style>

+ 0 - 0
src/window/tabGridView/GridColumnDef1.vue → src/window1/tabGridView/GridColumnDef1.vue


+ 27 - 0
src/window1/tabGridView/SubMenu.vue

@@ -0,0 +1,27 @@
+<template>
+  <template v-for="item in menuInfo" :key="item.key">
+    <a-sub-menu v-if="item.children" :key="item.key">
+      <template #title>{{ item.name }}</template>
+      <sub-menu :key="item.key" :menu-info="item.children" />
+    </a-sub-menu>
+    <a-menu-item v-else :key="item.key" @click="getAsset(item)">
+      {{ item.name }}
+    </a-menu-item>
+  </template>
+</template>
+<script setup>
+import { defineProps } from 'vue';
+const props = defineProps({
+  menuInfo: {
+    type: Object,
+    default: () => ({}),
+  },
+});
+
+const getAsset = item => {
+  console.log(item);
+};
+</script>
+
+<style scoped>
+</style>

文件差異過大導致無法顯示
+ 432 - 177
src/window1/tabGridView/TabGridEdit.vue


+ 7 - 1
src/window/tabGridView/WindowTab.vue → src/window1/tabGridView/WindowTab.vue

@@ -31,19 +31,25 @@
 </template>
 
 <script setup>
-import { ref } from 'vue';
+import { ref, defineEmits } from 'vue';
+
+const emits = defineEmits(['getNowTab']);
+
 const currentTab = ref('waiting');
 // 待验收
 const isWaiting = () => {
   currentTab.value = 'waiting';
+  emits('getNowTab', 'waiting');
 };
 // 验收中
 const isRunning = () => {
   currentTab.value = 'running';
+  emits('getNowTab', 'running');
 };
 // 验收完成
 const isFinish = () => {
   currentTab.value = 'finish';
+  emits('getNowTab', 'finish');
 };
 </script>
 

二進制
src/window1/tabGridView/commonAsset.gif


二進制
src/window1/tabGridView/newAsset.gif


+ 248 - 119
src/window1/tabView/TabButton.vue

@@ -1,7 +1,11 @@
 <template>
   <div class="btn-group" role="group">
     <template
-      v-if="showTabDto != undefined && showTabDto.tabGridView && tabButtons != undefined"
+      v-if="
+        showTabDto != undefined &&
+          showTabDto.tabGridView &&
+          tabButtons != undefined
+      "
     >
       <template v-for="item in tabButtons" :key="item.id">
         <button
@@ -21,50 +25,50 @@
       </template>
     </template>
 
-    <button
-      type="button"
-      class="btn btn-default dropdown-toggle"
-      data-toggle="dropdown"
-      aria-haspopup="true"
-      aria-expanded="false"
-    >
-      {{ $t("lang.tabButton.other") }}
-      <span class="caret" />
-    </button>
-    <ul class="dropdown-menu floatTop">
-      <li v-if="'EditForm' != viewType">
-        <a type="button" @click="exportConfirm">
-          <span class="glyphicon glyphicon-export" aria-hidden="true" />
-          {{ $t("lang.tabButton.export") }}
-        </a>
-      </li>
-
-      <li v-if="mWindow && mWindow.dataTemplateIds != undefined">
-        <a type="button" @click="importData">
-          <span class="glyphicon glyphicon-export" aria-hidden="true" />
+    <a-breadcrumb separator="|" style="color: #1890ff">
+      <a-breadcrumb-item v-if="'EditForm' != viewType" @click="exportConfirm">
+        <span class="glyphicon glyphicon-export" aria-hidden="true" />
+        <span class="tab_button">{{ $t("lang.tabButton.export") }}</span>
+      </a-breadcrumb-item>
+      <a-breadcrumb-item
+        v-if="mWindow && mWindow.dataTemplateIds != undefined"
+        @click="importData"
+      >
+        <span class="glyphicon glyphicon-import" aria-hidden="true" />
+        <span class="tab_button">
           {{ $t("lang.tabButton.import") }}
-        </a>
-      </li>
-      <li v-if="'Form' == viewType || 'Grid' == viewType">
-        <a type="button" @click="notify">
-          <span class="fa fa-bell" aria-hidden="true" />
+        </span>
+      </a-breadcrumb-item>
+      <a-breadcrumb-item
+        v-if="'Form' == viewType || 'Grid' == viewType"
+        @click="notify"
+      >
+        <span class="fa fa-bell" aria-hidden="true" />
+        <span class="tab_button">
           {{ $t("lang.tabButton.notice") }}
-        </a>
-      </li>
-      <li v-if="'EditForm' != viewType && isOpen">
-        <a type="button" @click="documentOpen">
-          <span class="glyphicon glyphicon-folder-open" aria-hidden="true" />
+        </span>
+      </a-breadcrumb-item>
+      <a-breadcrumb-item
+        v-if="'EditForm' != viewType && isOpen"
+        @click="documentOpen"
+      >
+        <span class="glyphicon glyphicon-folder-open" aria-hidden="true" />
+        <span class="tab_button">
           {{ $t("lang.tabButton.open") }}
-        </a>
-      </li>
-      <li v-if="'EditForm' != viewType && isClose">
-        <a type="button" @click="documentClose">
-          <span class="glyphicon glyphicon-folder-close" aria-hidden="true" />
+        </span>
+      </a-breadcrumb-item>
+      <a-breadcrumb-item
+        v-if="'EditForm' != viewType && isClose"
+        @click="documentClose"
+      >
+        <span class="glyphicon glyphicon-folder-close" aria-hidden="true" />
+        <span class="tab_button">
           {{ $t("lang.tabButton.close") }}
-        </a>
-      </li>
+        </span>
+      </a-breadcrumb-item>
+
       <template v-for="item in tabButtons" :key="item.id">
-        <li
+        <a-breadcrumb-item
           v-if="
             showTabDto.tabGridView &&
               item.subMenu == true &&
@@ -73,13 +77,13 @@
                 (viewType == 'Form' && item.editMode != true)) &&
               item.invisible == false
           "
+          style="color: black"
+          @click="execute(item)"
         >
-          <a type="button" @click="execute(item)">{{
-            Language.getNameTrl($i18n.locale, item)
-          }}</a>
-        </li>
+          {{ Language.getNameTrl($i18n.locale, item) }}
+        </a-breadcrumb-item>
       </template>
-    </ul>
+    </a-breadcrumb>
 
     <Modal v-model:show="modal" :full="true">
       <ProcessReportResultPreview
@@ -97,7 +101,11 @@
       </template>
     </Modal>
 
-    <Modal v-model:show="notificationModal" :show-canel-button="false" :show-ok-button="false">
+    <Modal
+      v-model:show="notificationModal"
+      :show-canel-button="false"
+      :show-ok-button="false"
+    >
       <template #header>
         {{ $t("lang.tabButton.sendNotice") }}
       </template>
@@ -106,7 +114,11 @@
         <button type="button" class="btn btn-default" @click="sendNotification">
           {{ $t("lang.tabButton.send") }}
         </button>
-        <button type="button" class="btn btn-default" @click="cancelNotification">
+        <button
+          type="button"
+          class="btn btn-default"
+          @click="cancelNotification"
+        >
           {{ $t("lang.tabButton.cancel") }}
         </button>
       </template>
@@ -119,8 +131,6 @@
 <script>
 import Common from '../../common/Common.js';
 
-
-
 import DownloadService from '../../resource/file/DownloadService.js';
 import CustomerWindowResource from '../../api/dic/CustomerWindowResource.js';
 import HtmlWindowResource from '../../api/dic/HtmlWindowResource.js';
@@ -130,7 +140,6 @@ import Language from '../../common/Language.js';
 import { Notify, Uuid } from 'pc-component-v3';
 import dayjs from 'dayjs';
 
-
 import NotificationPanel from '../../customer/NotificationPanel.vue';
 import { IFrameUtil } from 'pc-component-v3';
 
@@ -139,70 +148,68 @@ export default {
     NotificationPanel,
   },
 
-  
   props: {
-    
     showTabDto: {
       type: Object,
-      default : function(){
+      default: function () {
         return null;
       },
     },
     parentModelData: {
       type: Object,
-      default : function(){
+      default: function () {
         return null;
       },
     },
     modelData: {
       type: Object,
-      default : function(){
+      default: function () {
         return null;
       },
     },
     modelDatas: {
       type: Array,
-      default : function(){
+      default: function () {
         return null;
       },
     },
     uuid: {
       type: String,
-      default : null,
+      default: null,
     },
     viewType: {
       type: String,
-      default : null,
+      default: null,
     },
     type: {
       type: String,
-      default : null,
+      default: null,
     },
     simpleFilterParams: {
       type: String,
-      default : null,
+      default: null,
     },
     complexFilterParams: {
       type: Array,
-      default:()=>{
+      default: () => {
         return [];
       },
     },
     mWindow: {
       type: Object,
-      default : function(){
+      default: function () {
         return null;
       },
     },
     tabButtons: {
       type: Array,
-      default : function(){
+      default: function () {
         return null;
       },
     },
     curdWindowFunctionAccess: {
       type: Object,
-      default : function(){
+      default: function () {
         return null;
       },
     },
@@ -242,7 +249,8 @@ export default {
         if (
           _self.parentModelData.data != undefined &&
           _self.parentModelData.data.documentStatus != undefined &&
-          _self.parentModelData.data.documentStatus.displayValue[0] == 'APPROVED' &&
+          _self.parentModelData.data.documentStatus.displayValue[0] ==
+            'APPROVED' &&
           _self.parentModelData.data.closeDate != undefined
         ) {
           return true;
@@ -275,7 +283,8 @@ export default {
         if (
           _self.parentModelData.data != undefined &&
           _self.parentModelData.data.documentStatus != undefined &&
-          _self.parentModelData.data.documentStatus.displayValue[0] == 'APPROVED' &&
+          _self.parentModelData.data.documentStatus.displayValue[0] ==
+            'APPROVED' &&
           _self.parentModelData.data.closeDate != undefined
         ) {
           return true;
@@ -318,7 +327,11 @@ export default {
       } else if (tabIndex == 1) {
         recordId = _self.parentModelData.id;
         if (_self.modelDatas == undefined || _self.modelDatas.length == 0) {
-          Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe1'), false);
+          Notify.error(
+            _self.$t('lang.Notify.error'),
+            _self.$t('lang.tabButton.describe1'),
+            false,
+          );
           return;
         } else {
           _self.modelDatas.forEach(function (item) {
@@ -327,7 +340,11 @@ export default {
             }
           });
           if (closeRecordIds.length == 0) {
-            Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe2'), false);
+            Notify.error(
+              _self.$t('lang.Notify.error'),
+              _self.$t('lang.tabButton.describe2'),
+              false,
+            );
             return;
           }
         }
@@ -376,7 +393,11 @@ export default {
       } else if (tabIndex == 1) {
         recordId = _self.parentModelData.id;
         if (_self.modelDatas == undefined || _self.modelDatas.length == 0) {
-          Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe1'), false);
+          Notify.error(
+            _self.$t('lang.Notify.error'),
+            _self.$t('lang.tabButton.describe1'),
+            false,
+          );
           return;
         } else {
           _self.modelDatas.forEach(function (item) {
@@ -385,7 +406,11 @@ export default {
             }
           });
           if (openRecordIds.length == 0) {
-            Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe2'), false);
+            Notify.error(
+              _self.$t('lang.Notify.error'),
+              _self.$t('lang.tabButton.describe2'),
+              false,
+            );
             return;
           }
         }
@@ -420,13 +445,22 @@ export default {
     //跳转或执行流程
     execute: function (tabButton) {
       var _self = this;
-      if (tabButton.customerWindowNo != undefined && tabButton.customerWindowNo != '') {
+      if (
+        tabButton.customerWindowNo != undefined &&
+        tabButton.customerWindowNo != ''
+      ) {
         CustomerWindowResource.uniqueByNo(tabButton.customerWindowNo).then(
           successData => {
             tabButton.customerWindowRouteUrl = successData.routeUrl;
-            if(tabButton.customerWindowNo == '20221101_151823'){
-              localStorage.setItem('AssetInstance_ComplexFilterParams',JSON.stringify(_self.complexFilterParams));
-              localStorage.setItem('AssetInstance_SimpleFilterParams', _self.simpleFilterParams);
+            if (tabButton.customerWindowNo == '20221101_151823') {
+              localStorage.setItem(
+                'AssetInstance_ComplexFilterParams',
+                JSON.stringify(_self.complexFilterParams),
+              );
+              localStorage.setItem(
+                'AssetInstance_SimpleFilterParams',
+                _self.simpleFilterParams,
+              );
             }
             //跳转到tabButton.routeUrl
             if (this.viewType == 'Form' || this.viewType == 'EditForm') {
@@ -445,7 +479,10 @@ export default {
       ) {
         // 判断流程报表是否有参数
         // 如果有参数则直接跳转到流程和报表的界面。
-        if (tabButton.routerRedirect == undefined || tabButton.routerRedirect == false) {
+        if (
+          tabButton.routerRedirect == undefined ||
+          tabButton.routerRedirect == false
+        ) {
           this.executeProcess(tabButton);
         } else {
           this.$router.push({
@@ -480,27 +517,53 @@ export default {
                         });
                       }
                       if (recordIds != null && recordIds.length > 0) {
-                        recordIds = recordIds.substring(0, recordIds.length - 1);
+                        recordIds = recordIds.substring(
+                          0,
+                          recordIds.length - 1,
+                        );
                       } else {
-                        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe3'), true);
+                        Notify.error(
+                          _self.$t('lang.Notify.error'),
+                          _self.$t('lang.tabButton.describe3'),
+                          true,
+                        );
                         return;
                       }
-                      htmlWindowUrl = htmlWindowUrl.replace('{RecordIds}', recordIds);
+                      htmlWindowUrl = htmlWindowUrl.replace(
+                        '{RecordIds}',
+                        recordIds,
+                      );
                     } else {
                       var recordId = _self.modelData.id;
-                      htmlWindowUrl = htmlWindowUrl.replace('{RecordIds}', recordId);
+                      htmlWindowUrl = htmlWindowUrl.replace(
+                        '{RecordIds}',
+                        recordId,
+                      );
                     }
                   } else if (tempResult == '{Token}') {
-                    htmlWindowUrl = htmlWindowUrl.replace('{Token}', Common.getToken());
+                    htmlWindowUrl = htmlWindowUrl.replace(
+                      '{Token}',
+                      Common.getToken(),
+                    );
                   } else {
                     if (_self.selectedModelDatas.length == 0) {
-                      Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe3'), true);
+                      Notify.error(
+                        _self.$t('lang.Notify.error'),
+                        _self.$t('lang.tabButton.describe3'),
+                        true,
+                      );
                       return;
                     } else if (_self.selectedModelDatas.length > 1) {
-                      Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe2'), true);
+                      Notify.error(
+                        _self.$t('lang.Notify.error'),
+                        _self.$t('lang.tabButton.describe2'),
+                        true,
+                      );
                       return;
                     }
-                    var tempResult1 = tempResult.replace('{', '').replace('}', '');
+                    var tempResult1 = tempResult
+                      .replace('{', '')
+                      .replace('}', '');
                     htmlWindowUrl = htmlWindowUrl.replace(
                       tempResult,
                       _self.getFirstSelectModelDataFieldValue(tempResult1),
@@ -539,7 +602,10 @@ export default {
      */
     exportConfirm: function () {
       var _self = this;
-      if(_self.curdWindowFunctionAccess.canExport != null && _self.curdWindowFunctionAccess.canExport === true){
+      if (
+        _self.curdWindowFunctionAccess.canExport != null &&
+        _self.curdWindowFunctionAccess.canExport === true
+      ) {
         BootstrapDialog.show({
           title: _self.$t('lang.TabButton.dataExport'), //title
           message: _self.$t('lang.TabButton.DataExport'),
@@ -566,8 +632,12 @@ export default {
             },
           ],
         });
-      }else{
-        Notify.error(_self.$t('lang.tabButton.describe4'), _self.$t('lang.tabButton.describe5'), false);
+      } else {
+        Notify.error(
+          _self.$t('lang.tabButton.describe4'),
+          _self.$t('lang.tabButton.describe5'),
+          false,
+        );
       }
     },
     /**
@@ -618,7 +688,10 @@ export default {
     importData: function () {
       var _self = this;
       var uuid = _self.uuid;
-      if (_self.mWindow != undefined && _self.mWindow.dataTemplateIds != undefined) {
+      if (
+        _self.mWindow != undefined &&
+        _self.mWindow.dataTemplateIds != undefined
+      ) {
         var data = JSON.stringify(_self.mWindow.dataTemplateIds);
         this.$router.push({
           path: '/desktop/data-import-panel',
@@ -656,11 +729,27 @@ export default {
       console.log(modelData);
       localStorage.setItem(_self.uuid + '#GenerateDocumentTool', modelData);
 
-      var iWidth = 1280;//弹出窗口的宽度;
+      var iWidth = 1280; //弹出窗口的宽度;
       var iHeight = 720; //弹出窗口的高度;
-      var iTop = (window.screen.availHeight-30-iHeight)/2;//获得窗口的垂直位置;
-      var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置;
-      window.open(frameUrl,'_blank','height='+iHeight+',innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no');
+      var iTop = (window.screen.availHeight - 30 - iHeight) / 2; //获得窗口的垂直位置;
+      var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //获得窗口的水平位置;
+      window.open(
+        frameUrl,
+        '_blank',
+        'height=' +
+          iHeight +
+          ',innerHeight=' +
+          iHeight +
+          ',width=' +
+          iWidth +
+          ',innerWidth=' +
+          iWidth +
+          ',top=' +
+          iTop +
+          ',left=' +
+          iLeft +
+          ',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no',
+      );
       // window.open(frameUrl);
     },
 
@@ -679,7 +768,11 @@ export default {
       var _self = this;
       //执行流程
       if (_self.modelData.id == undefined) {
-        Notify.error(_self.$t('lang.tabButton.describe6'), _self.$t('lang.tabButton.describe7'), false);
+        Notify.error(
+          _self.$t('lang.tabButton.describe6'),
+          _self.$t('lang.tabButton.describe7'),
+          false,
+        );
         return;
       }
 
@@ -688,7 +781,7 @@ export default {
         processReportId: tabButton.processReportId,
         modelData: _self.modelData,
       };
-      _self.loading=true;
+      _self.loading = true;
 
       $.ajax({
         url: Common.getApiURL('ProcessReportResource/runProcess'),
@@ -700,21 +793,24 @@ export default {
         contentType: 'application/json',
         data: JSON.stringify(processResultData),
         success: function (successData) {
-          if(successData.errorCode == 0) {
+          if (successData.errorCode == 0) {
             _self.modal = true;
-            _self.loading=false;
+            _self.loading = false;
             _self.processReportResult = successData.data;
 
             if (
               _self.processReportResult.reportResults != undefined &&
               _self.processReportResult.reportResults.length > 0
             ) {
-              _self.processReportResult.reportResults.forEach(function (item, index) {
-                item.previewIndex=1;
+              _self.processReportResult.reportResults.forEach(function (
+                item,
+                index,
+              ) {
+                item.previewIndex = 1;
                 if (index == 0) {
-                  item.showPreview=true;
+                  item.showPreview = true;
                 } else {
-                  item.showPreview=false;
+                  item.showPreview = false;
                 }
               });
             }
@@ -722,7 +818,7 @@ export default {
           }
         },
         error: function (XMLHttpRequest, textStatus, errorThrown) {
-          _self.loading=false;
+          _self.loading = false;
           Common.processException(XMLHttpRequest, textStatus, errorThrown);
         },
       });
@@ -760,28 +856,34 @@ export default {
       } else if (_self.modelData) {
         ids.push(_self.modelData.id);
       }
-      _self.loading=true;
+      _self.loading = true;
 
-      ProcessReportResource.runProcessByIds(tabButton.processReportNo, ids).then(
+      ProcessReportResource.runProcessByIds(
+        tabButton.processReportNo,
+        ids,
+      ).then(
         successData => {
           _self.modal = true;
-          _self.loading=false;
+          _self.loading = false;
           _self.processReportResult = successData;
 
           if (
             _self.processReportResult.reportResults != undefined &&
             _self.processReportResult.reportResults.length > 0
           ) {
-            _self.processReportResult.reportResults.forEach(function (item, index) {
-              if(item.reportDefinitionType!=='ExcelReport'){
-                item.previewIndex=1;
-              }else{
-                item.previewIndex=2;
+            _self.processReportResult.reportResults.forEach(function (
+              item,
+              index,
+            ) {
+              if (item.reportDefinitionType !== 'ExcelReport') {
+                item.previewIndex = 1;
+              } else {
+                item.previewIndex = 2;
               }
               if (index == 0) {
-                item.showPreview=true;
+                item.showPreview = true;
               } else {
-                item.showPreview=false;
+                item.showPreview = false;
               }
             });
           }
@@ -789,7 +891,7 @@ export default {
           _self.$emit('processExecuteFinish');
         },
         errorData => {
-          _self.loading=false;
+          _self.loading = false;
           Common.processException(errorData);
         },
       );
@@ -818,19 +920,35 @@ export default {
         recordIds.push(_self.$route.params.recordId);
       }
       if (recordIds.length == 0) {
-        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe7'), true);
+        Notify.error(
+          _self.$t('lang.Notify.error'),
+          _self.$t('lang.tabButton.describe7'),
+          true,
+        );
         return;
       }
       if (notification.userIds == null || notification.userIds.length == 0) {
-        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe8'), true);
+        Notify.error(
+          _self.$t('lang.Notify.error'),
+          _self.$t('lang.tabButton.describe8'),
+          true,
+        );
         return;
       }
       if (notification.theme == null || notification.theme.trim() == '') {
-        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe9'), true);
+        Notify.error(
+          _self.$t('lang.Notify.error'),
+          _self.$t('lang.tabButton.describe9'),
+          true,
+        );
         return;
       }
       if (notification.content == null || notification.content.trim() == '') {
-        Notify.error(_self.$t('lang.Notify.error'), _self.$t('lang.tabButton.describe10'), true);
+        Notify.error(
+          _self.$t('lang.Notify.error'),
+          _self.$t('lang.tabButton.describe10'),
+          true,
+        );
         return;
       }
       var windowNo = _self.$route.params.windowNo;
@@ -840,7 +958,7 @@ export default {
       notification.recordIds = recordIds;
       notification.className = _self.showTabDto.className;
 
-      _self.loading=true;
+      _self.loading = true;
       $.ajax({
         url: Common.getApiURL('notificationResource/send'),
         type: 'post',
@@ -850,12 +968,16 @@ export default {
         contentType: 'application/json',
         data: JSON.stringify(notification),
         success: function (data) {
-          _self.loading=false;
+          _self.loading = false;
           _self.notificationModal = false;
-          Notify.success(_self.$t('lang.tabButton.describe11'), _self.$t('lang.tabButton.describe12'), true);
+          Notify.success(
+            _self.$t('lang.tabButton.describe11'),
+            _self.$t('lang.tabButton.describe12'),
+            true,
+          );
         },
         error: function (XMLHttpRequest, textStatus, errorThrown) {
-          _self.loading=false;
+          _self.loading = false;
           Common.processException(XMLHttpRequest, textStatus, errorThrown);
         },
       });
@@ -872,4 +994,11 @@ export default {
 .floatTop {
   z-index: 1002;
 }
+:deep(.btn-group > .btn:first-child) {
+  margin: -2px;
+}
+.tab_button {
+  color: black;
+  margin-left: 4px;
+}
 </style>

+ 0 - 0
src/window/tabView/TabButton1.vue → src/window1/tabView/TabButton1.vue


部分文件因文件數量過多而無法顯示