Browse Source

优化 千海金 协议管理

huangbin 4 năm trước cách đây
mục cha
commit
4f943bf269
1 tập tin đã thay đổi với 36 bổ sung22 xóa
  1. 36 22
      src/views/platinum/platinum_agreement/list/tab/index.vue

+ 36 - 22
src/views/platinum/platinum_agreement/list/tab/index.vue

@@ -2,8 +2,10 @@
   <!-- 协议管理 -->
   <div class="platinum_agreement_tab">
     <Filter @search="updateColumn">
-      <BtnList :btnList="firstBtn"
-               @click="openComponent" />
+      <mtp-table-button class="btn-list-sticky"
+                        :buttons="addBtn"
+                        :record="record"
+                        @click="openComponent" />
     </Filter>
     <a-table :columns="columns"
              class="srcollYTable"
@@ -16,10 +18,10 @@
              :data-source="filterTable()">
       <!-- 额外的展开行 -->
       <template #expandedRowRender="{ record }">
-        <BtnList :btnList="handlePermissionBtn(secondBtn, record)"
-                 :record="record"
-                 class="btn-list-sticky"
-                 @click="openComponent" />
+        <mtp-table-button class="btn-list-sticky"
+                          :buttons="handleBtn(record)"
+                          :record="record"
+                          @click="openComponent" />
       </template>
       <!-- 协议类型-->,
       <template #isvalid="{ record }">
@@ -35,7 +37,7 @@
     <!-- 右键 -->
     <contextMenu :contextMenu="contextMenu"
                  @cancel="closeContext"
-                 :list="handlePermissionBtn(secondBtn, selectedRow)">
+                 :list="handleBtn(selectedRow)">
     </contextMenu>
     <component :is="componentId"
                v-if="componentId"
@@ -45,35 +47,31 @@
 </template>
 
 <script lang="ts">
-import { queryTableList, BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, MtpTableButton, queryTableList } from '@/common/export/commonTable';
 import { queryAgreementConfig } from '@/services/go/ermcp/qhj';
 import { QhjAgreementConfig } from '@/services/go/ermcp/qhj/interface';
 import Filter from '../../compoments/filter/index.vue';
 import { getAgreementStatus, getAgreementTypeName } from '@/common/constants/enumsName';
 import { handleArgreementType, handlePermissionBtn } from '../../setup';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
-
-const Detail = defineAsyncComponent(() => import('../../compoments/detail/index.vue'));
-const Modify = defineAsyncComponent(() => import('../../compoments/modify/index.vue'));
-const Add = defineAsyncComponent(() => import('../../compoments/add/index.vue'));
-const Delete = defineAsyncComponent(() => import('../../compoments/delete/index.vue'));
-const Resume = defineAsyncComponent(() => import('../../compoments/resume/index.vue'));
-const Stop = defineAsyncComponent(() => import('../../compoments/stop/index.vue'));
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: EnumRouterName.platinum_agreement_tab,
     components: {
         Filter,
         contextMenu,
-        BtnList,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.platinum_agreement_modify]: Modify,
-        [ModalEnum.platinum_agreement_add]: Add,
-        [ModalEnum.platinum_agreement_delete]: Delete,
-        [ModalEnum.platinum_agreement_resume]: Resume,
-        [ModalEnum.platinum_agreement_stop]: Stop,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('../../compoments/detail/index.vue')),
+        modify: defineAsyncComponent(() => import('../../compoments/modify/index.vue')),
+        add: defineAsyncComponent(() => import('../../compoments/add/index.vue')),
+        delete: defineAsyncComponent(() => import('../../compoments/delete/index.vue')),
+        resume: defineAsyncComponent(() => import('../../compoments/resume/index.vue')),
+        disable: defineAsyncComponent(() => import('../../compoments/stop/index.vue')),
     },
     setup() {
+        const addBtn = getTableButton(['add']);
+
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<QhjAgreementConfig>();
         // 获取列表数据
@@ -91,6 +89,20 @@ export default defineComponent({
         // 过滤注销数据
         const filterTable = () => tableList.value.filter((e) => e.isvalid !== 3);
 
+        function handleBtn(record: QhjAgreementConfig) {
+            if (!record) return [];
+            const buttons = getTableButton(['detail', 'modify', 'delete', 'resume', 'disable']);
+            const { isvalid } = record;
+            if (isvalid === 1) {
+                // 正常
+                return buttons.filter((e) => e.code !== 'resume');
+            } else if (isvalid === 2) {
+                // 停用
+                return buttons.filter((e) => e.code !== 'disable');
+            }
+            return [];
+        }
+
         return {
             ...handleComposeTable<QhjAgreementConfig>(param),
             getRateEnumName,
@@ -99,6 +111,8 @@ export default defineComponent({
             filterTable,
             getAgreementTypeName,
             getAgreementStatus,
+            addBtn,
+            handleBtn,
         };
     },
 });