Bladeren bron

CURD 表格列增加字段列所在的数据源分组

YangZhiJie 1 jaar geleden
bovenliggende
commit
bed34085ec
3 gewijzigde bestanden met toevoegingen van 70 en 52 verwijderingen
  1. 32 23
      src/window1/tabGridView/GridBody.vue
  2. 36 29
      src/window1/tabGridView/GridHeader.vue
  3. 2 0
      src/window1/tabGridView/TabGridEdit.vue

+ 32 - 23
src/window1/tabGridView/GridBody.vue

@@ -63,30 +63,34 @@
       v-for="(gridFieldItem, index) in tabGridFields"
       :key="'TabGridField_' + gridFieldItem.fieldName + '_' + index"
     >
-      <td v-if="!modelData.editMode" v-show="gridFieldItem.visible" @click="clickRecord">
-        <div>
-          <CellTextItem
-            ref="cellTextItem"
-            :grid-field-item="gridFieldItem" :model-data="modelData" :class-name="className"
-            :simple-filter-params="simpleFilterParams" :complex-filter-params="complexFilterParams"
-            :model-datas="modelDatas" :js-url="jsUrl"
-            @execute-callout="executeCallout(gridFieldItem)" @delete-record="deleteRecord" @refresh-datas="refreshDatas"
-            @edit-record="editRecord"
-            @read-record="readRecord"
+      <template
+        v-if="gridFieldItem.groupNames == null || gridFieldItem.groupNames.length == 0 || (nowTab != null && (gridFieldItem.groupNames.indexOf(nowTab) >= 0))"
+      >
+        <td v-if="!modelData.editMode" v-show="gridFieldItem.visible" @click="clickRecord">
+          <div>
+            <CellTextItem
+              ref="cellTextItem"
+              :grid-field-item="gridFieldItem" :model-data="modelData" :class-name="className"
+              :simple-filter-params="simpleFilterParams" :complex-filter-params="complexFilterParams"
+              :model-datas="modelDatas" :js-url="jsUrl"
+              @execute-callout="executeCallout(gridFieldItem)" @delete-record="deleteRecord" @refresh-datas="refreshDatas"
+              @edit-record="editRecord"
+              @read-record="readRecord"
+            />
+          </div>
+        </td>
+        <td
+          v-else v-show="gridFieldItem.visible"
+          :class="{ 'table-cell-searchwidget': fieldUtil.isSearchType(gridFieldItem) }" @click="clickRecord"
+        >        
+          <CellItem
+            :ref="'cellItem' + index" :scroll-object="scrollObject" :field-item="gridFieldItem"
+            :model-data="modelData" :parent-model-data="parentModelData" :class-name="className" :window-no="windowNo"
+            :tab-index="tabIndex" @value-changed="valueChanged($event, gridFieldItem)"
+            @execute-callout="executeCallout(gridFieldItem)"          
           />
-        </div>
-      </td>
-      <td
-        v-else v-show="gridFieldItem.visible"
-        :class="{ 'table-cell-searchwidget': fieldUtil.isSearchType(gridFieldItem) }" @click="clickRecord"
-      >        
-        <CellItem
-          :ref="'cellItem' + index" :scroll-object="scrollObject" :field-item="gridFieldItem"
-          :model-data="modelData" :parent-model-data="parentModelData" :class-name="className" :window-no="windowNo"
-          :tab-index="tabIndex" @value-changed="valueChanged($event, gridFieldItem)"
-          @execute-callout="executeCallout(gridFieldItem)"          
-        />
-      </td>
+        </td>
+      </template>
     </template>
   </tr>
   <Modal v-model:show="modal" :full="true">
@@ -215,6 +219,11 @@ export default {
         return [];
       },
     },
+    // 当前的页签
+    nowTab: {
+      type: String,
+      default: '',
+    },
   },
   emits: ['deleteRecord', 'editRecord', 'readRecord', 'clickModelData', 'executeCallout', 'valueChanged', 'refreshDatas'],
 

+ 36 - 29
src/window1/tabGridView/GridHeader.vue

@@ -38,35 +38,37 @@
       </div>
     </th>
     <template v-if="tabGridFields != null && tabGridFields.length > 0">
-      <th
-        v-for="tabGridField in tabGridFields"
-        v-show="tabGridField.visible"
-        :id="tabGridField.fieldId" :key="'th_' + getTabGridFieldId(tabGridField)"
-        v-tooltip="tabGridField.help"
-        class="text-center"
-        :width="tabGridField.width + 'px'"
-        style="position: relative;"
-        @dragover="ondragover($event, tabGridField)"
-        @click="onSort(tabGridField)"
-      >
-        <div
-          :id="getTabGridFieldId(tabGridField)"
-          class="rz-handle"
-          draggable="true"
-          @dragstart="ondragstart($event, tabGridField)"
-          @drag="ondrag($event, tabGridField)"
-          @dragend="ondragend($event, tabGridField)"
-        />
-
-        <div class="td-max">
-          <span
-            v-if="tabGridField.mandatory"
-            class="require-mark"
-          >*</span>
-          <span size="2">{{ Language.getDisplayNameTrl($i18n.locale, tabGridField) }}</span><br />
-          <span v-if="isChineseEnglish && $i18n.locale == 'zh-CN'" size="0.5">{{ tabGridField.displayNameEng }}</span>
-        </div>
-      </th>
+      <template v-for="tabGridField in tabGridFields">
+        <th
+          v-show="tabGridField.visible"
+          v-if="tabGridField.groupNames == null || tabGridField.groupNames.length == 0 || (nowTab != null && (tabGridField.groupNames.indexOf(nowTab) >= 0))"
+          :id="tabGridField.fieldId" :key="'th_' + getTabGridFieldId(tabGridField)"
+          v-tooltip="tabGridField.help"
+          class="text-center"
+          :width="tabGridField.width + 'px'"
+          style="position: relative;"
+          @dragover="ondragover($event, tabGridField)"
+          @click="onSort(tabGridField)"
+        >
+          <div
+            :id="getTabGridFieldId(tabGridField)"
+            class="rz-handle"
+            draggable="true"
+            @dragstart="ondragstart($event, tabGridField)"
+            @drag="ondrag($event, tabGridField)"
+            @dragend="ondragend($event, tabGridField)"
+          />
+
+          <div class="td-max">
+            <span
+              v-if="tabGridField.mandatory"
+              class="require-mark"
+            >*</span>
+            <span size="2">{{ Language.getDisplayNameTrl($i18n.locale, tabGridField) }}</span><br />
+            <span v-if="isChineseEnglish && $i18n.locale == 'zh-CN'" size="0.5">{{ tabGridField.displayNameEng }}</span>
+          </div>
+        </th>
+      </template>
     </template>
   </tr>
 </template>
@@ -111,6 +113,11 @@ export default {
       type: Boolean,
       default: null,
     },
+    // 当前的页签
+    nowTab: {
+      type: String,
+      default: '',
+    },
   },
   emits: ['onSort', 'multipleSelect'],
 

+ 2 - 0
src/window1/tabGridView/TabGridEdit.vue

@@ -59,6 +59,7 @@
                   <GridHeader
                     :is-show-edit="false" :tab-grid-fields="tabGridFields" :window-no="windowNo"
                     :tab-index="tabIndex" :is-chinese-english="window.isChineseEnglish" height="40px"
+                    :now-tab="nowTab"
                     @on-sort="onSort($event)" @property-changed="propertyChanged($event)"
                     @select-all="selectAll($event)" @multiple-select="changeSelectMode($event)"
                   />
@@ -70,6 +71,7 @@
                         1 +
                         (pagination.current_page - 1) * pagination.per_page
                       " :is-show-edit="false" :tab-grid-fields="tabGridFields"
+                      :now-tab="nowTab"
                       :tab-grid-title-fields="tabGridTitleFields" :model-data="modelData"
                       :simple-filter-params="searchText" :complex-filter-params="complexFilterParams"
                       :class-name="tab.tabDataSource.className" :scroll-object="scrollObject" :js-url="jsUrl"