li.shaoyi 4 lat temu
rodzic
commit
44c9c4565a
32 zmienionych plików z 816 dodań i 1298 usunięć
  1. 0 117
      src/router/index.ts
  2. 0 99
      src/views/business/plan/list/audit/index.vue
  3. 73 0
      src/views/business/plan/list/checkpending/index.vue
  4. 4 5
      src/views/business/plan/list/running/index.vue
  5. 8 12
      src/views/business/plan/list/uncommitted/index.vue
  6. 4 11
      src/views/business/purchase/list/all/index.vue
  7. 5 7
      src/views/business/purchase/list/pending/index.vue
  8. 9 15
      src/views/business/purchase/list/performance/index.vue
  9. 4 10
      src/views/business/sell/list/all/index.vue
  10. 5 7
      src/views/business/sell/list/pending/index.vue
  11. 9 14
      src/views/business/sell/list/performance/index.vue
  12. 10 19
      src/views/information/account_info/list/account_info_business/index.vue
  13. 6 13
      src/views/information/spot-contract/list/checkpending/index.vue
  14. 3 5
      src/views/information/spot-contract/list/performance/index.vue
  15. 43 68
      src/views/manage/business-review/list/settlement/checkpending/index.vue
  16. 44 67
      src/views/manage/business-review/list/someprice/checkpending/index.vue
  17. 130 0
      src/views/manage/finance-review/list/funds/checkpending/index.vue
  18. 0 152
      src/views/manage/finance-review/list/funds/index.vue
  19. 120 0
      src/views/manage/finance-review/list/invoice/checkpending/index.vue
  20. 0 142
      src/views/manage/finance-review/list/invoice/index.vue
  21. 46 67
      src/views/manage/inventory-review/list/checkpending/index.vue
  22. 46 67
      src/views/manage/inventory-review/list/performance/index.vue
  23. 27 43
      src/views/report/exposure-report/list/exposure_report/index.vue
  24. 1 0
      src/views/report/finance-report/components/filterTable/index.vue
  25. 17 34
      src/views/report/finance-report/list/finance_report_finance/index.vue
  26. 1 0
      src/views/report/future_report/components/filterTable/index.vue
  27. 26 47
      src/views/report/future_report/list/future_report/index.vue
  28. 16 37
      src/views/report/inventory-report/list/category/index.vue
  29. 18 38
      src/views/report/inventory-report/list/warehouse/index.vue
  30. 78 97
      src/views/report/spot-report/list/spot_report/index.vue
  31. 50 76
      src/views/report/sum_pl_report/list/sum_pl_report/index.vue
  32. 13 29
      src/views/search/inventory/list/inventory_current/index.vue

+ 0 - 117
src/router/index.ts

@@ -476,123 +476,6 @@ const routes: Array<RouteRecordRaw> = [
                 ],
             },
             {
-                path: '/plan',
-                name: 'plan',
-                component: Main,
-                meta: {
-                    requireAuth: true,
-                },
-                redirect: { name: 'plan_uncommitted' },
-                children: [
-                    {
-                        path: '/plan/plan_uncommitted',
-                        name: 'plan_uncommitted',
-                        component: () => import('@/views/business/plan/list/uncommitted/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/plan/plan_audit',
-                        name: 'plan_audit',
-                        component: () => import('@/views/business/plan/list/audit/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/plan/plan_running',
-                        name: 'plan_running',
-                        component: () => import('@/views/business/plan/list/running/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                ],
-            },
-
-            {
-                path: 'review',
-                name: 'business_review',
-                component: Main,
-                meta: {
-                    requireAuth: true,
-                },
-                redirect: { name: 'business_review_someprice' },
-                children: [
-                    {
-                        path: '/business_review/business_review_someprice',
-                        name: 'business_review_someprice',
-                        component: () => import('@/views/manage/business-review/list/someprice/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/business_review/business_review_settlement',
-                        name: 'business_review_settlement',
-                        component: () => import('@/views/manage/business-review/list/settlement/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                ]
-            },
-            {
-                path: '/finance_review',
-                name: 'finance_review',
-                component: Main,
-                meta: {
-                    requireAuth: true,
-                },
-                redirect: { name: 'finance_review_funds' },
-                children: [
-                    {
-                        path: '/finance_review/finance_review_funds',
-                        name: 'finance_review_funds',
-                        component: () => import('@/views/manage/finance-review/list/funds/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/finance_review/finance_review_invoice',
-                        name: 'finance_review_invoice',
-                        component: () => import('@/views/manage/finance-review/list/invoice/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                ]
-            },
-            {
-                path: '/inventory_review',
-                name: 'inventory_review',
-                component: Main,
-                meta: {
-                    requireAuth: true,
-                },
-                redirect: { name: 'inventory_review_checkin' },
-                children: [
-                    {
-                        path: '/inventory_review/inventory_review_checkin',
-                        name: 'inventory_review_checkin',
-                        component: () => import('@/views/manage/inventory-review/list/checkin/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/inventory_review/inventory_review_checkout',
-                        name: 'inventory_review_checkout',
-                        component: () => import('@/views/manage/inventory-review/list/checkout/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                ]
-            },
-            {
                 path: '/exposure_report',
                 name: 'exposure_report',
                 component: Main,

+ 0 - 99
src/views/business/plan/list/audit/index.vue

@@ -1,99 +0,0 @@
-<template>
-  <!-- 计划: 审核中-->
-  <div class="plan_uncommitted"
-       :loading="loading">
-    <Filter @search="updateColumn">
-      <BtnList :btnList="firstBtn"
-               @click="openComponent" />
-    </Filter>
-    <a-table :columns="columns"
-             class="srcollYTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :loading="loading"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-      <!-- 额外的展开行 -->
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <BtnList :btnList="secondBtn"
-                 class="btn-list-sticky"
-                 :record="record"
-                 @click="openComponent" />
-      </template>
-
-      <template #contracttype="{ text }">
-        <a>{{ getPlanContractType(text) }}</a>
-      </template>
-      <template #hedgeplanstatus="{ text }">
-        <a>{{ getPlanStatusName(text) }}</a>
-      </template>
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu"
-                 @cancel="closeContext"
-                 :list="secondBtn">
-    </contextMenu>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent">
-    </component>
-  </div>
-</template>
-
-<script lang="ts">
-import { queryTableList, BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
-
-import { Filter } from '../../components';
-import { getPlanContractType, getPlanStatusName } from '@/views/business/plan/setup';
-import { Ermcp3HedgePlan } from '@/services/go/ermcp/plan/interface';
-import { QueryHedgePlan } from '@/services/go/ermcp/plan';
-import { EnumRouterName } from '@/common/constants/enumRouterName';
-
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../components/cancel/index.vue'));
-const Audit = defineAsyncComponent(() => import('../../components/audit/index.vue'));
-
-export default defineComponent({
-    name: EnumRouterName.plan_audit,
-    components: {
-        contextMenu,
-        BtnList,
-        Filter,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.plan_audit_cancel]: Cancel,
-        [ModalEnum.plan_audit_audit]: Audit,
-    },
-    setup() {
-        // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList<Ermcp3HedgePlan>();
-        // 获取列表数据
-        const queryTableAction = () => queryTable(QueryHedgePlan, '1');
-        // 表格通用逻辑
-        const param: ComposeTableParam = {
-            queryFn: queryTableAction,
-            menuType: EnumRouterName.plan_audit,
-            tableName: 'table_pcweb_hedging_plan',
-            tableFilterKey: ['contracttype', 'hedgeplanno', 'deliverygoodsname'],
-            isDetail: true,
-        };
-        return {
-            ...handleComposeTable<Ermcp3HedgePlan>(param),
-            loading,
-            tableList,
-            getPlanStatusName,
-            getPlanContractType,
-            queryTable,
-        };
-    },
-});
-</script>
-
-<style lang="less">
-.spot-contract-peddding {
-}
-</style
->;

+ 73 - 0
src/views/business/plan/list/checkpending/index.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- 计划: 审核中-->
+    <div class="plan_uncommitted" :loading="loading">
+        <Filter @search="updateColumn"></Filter>
+        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="buttons" :record="record" @click="openComponent" />
+            </template>
+            <template #contracttype="{ text }">
+                <a>{{ getPlanContractType(text) }}</a>
+            </template>
+            <template #hedgeplanstatus="{ text }">
+                <a>{{ getPlanStatusName(text) }}</a>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="buttons"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"> </component>
+    </div>
+</template>
+
+<script lang="ts">
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+
+import { Filter } from '../../components';
+import { getPlanContractType, getPlanStatusName } from '@/views/business/plan/setup';
+import { Ermcp3HedgePlan } from '@/services/go/ermcp/plan/interface';
+import { QueryHedgePlan } from '@/services/go/ermcp/plan';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
+
+export default defineComponent({
+    name: EnumRouterName.plan_audit,
+    components: {
+        contextMenu,
+        MtpTableButton,
+        Filter,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        plan_checkpending_cancel: defineAsyncComponent(() => import('../../components/cancel/index.vue')),
+        plan_checkpending_check: defineAsyncComponent(() => import('../../components/audit/index.vue')),
+    },
+    setup() {
+        // 表格列表数据
+        const { loading, tableList, queryTable } = queryTableList<Ermcp3HedgePlan>();
+
+        // 获取列表数据
+        const queryTableAction = () => queryTable(QueryHedgePlan, '1');
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_hedging_plan',
+            tableFilterKey: ['contracttype', 'hedgeplanno', 'deliverygoodsname'],
+            isDetail: true,
+        };
+
+        // 权限按钮
+        const buttons = getTableButton(['plan_checkpending_check', 'plan_checkpending_cancel', 'detail']);
+
+        return {
+            ...handleComposeTable<Ermcp3HedgePlan>(param),
+            loading,
+            tableList,
+            getPlanStatusName,
+            getPlanContractType,
+            queryTable,
+            buttons,
+        };
+    },
+});
+</script>

+ 4 - 5
src/views/business/plan/list/running/index.vue

@@ -21,7 +21,7 @@
 </template>
 
 <script lang="ts">
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { Filter } from '../../components';
 import { getPlanContractType, getPlanStatusName } from '@/views/business/plan/setup';
 import { Ermcp3HedgePlan } from '@/services/go/ermcp/plan/interface';
@@ -29,15 +29,13 @@ import { QueryHedgePlan } from '@/services/go/ermcp/plan';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-
 export default defineComponent({
     name: EnumRouterName.plan_running,
     components: {
         contextMenu,
         MtpTableButton,
         Filter,
-        [ModalEnum.detail]: Detail,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
     },
     setup() {
         // 表格列表数据
@@ -55,7 +53,8 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const buttons = getTableButton([ModalEnum.detail]);
+        // 权限按钮
+        const buttons = getTableButton(['detail']);
 
         return {
             ...handleComposeTable<Ermcp3HedgePlan>(param),

+ 8 - 12
src/views/business/plan/list/uncommitted/index.vue

@@ -24,7 +24,7 @@
 </template>
 
 <script lang="ts">
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 
 import { Filter } from '../../components';
 import { getPlanContractType, getPlanStatusName } from '@/views/business/plan/setup';
@@ -34,21 +34,16 @@ import { QueryHedgePlan } from '@/services/go/ermcp/plan';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const Add = defineAsyncComponent(() => import('../../components/add/index.vue'));
-const Delete = defineAsyncComponent(() => import('../../components/delete/index.vue'));
-const Modfiy = defineAsyncComponent(() => import('../../components/modify/index.vue'));
-
 export default defineComponent({
     name: EnumRouterName.plan_uncommitted,
     components: {
         contextMenu,
         MtpTableButton,
         Filter,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.plan_btn_add]: Add,
-        [ModalEnum.plan_uncommitted_delete]: Delete,
-        [ModalEnum.plan_uncommitted_modify]: Modfiy,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        plan_uncommitted_add: defineAsyncComponent(() => import('../../components/add/index.vue')),
+        plan_uncommitted_delete: defineAsyncComponent(() => import('../../components/delete/index.vue')),
+        plan_uncommitted_modify: defineAsyncComponent(() => import('../../components/modify/index.vue')),
     },
     setup() {
         // 表格列表数据
@@ -66,8 +61,9 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const firstBtn = getTableButton([ModalEnum.plan_btn_add]);
-        const secondBtn = getTableButton(['plan_uncommitted_resubmit', 'plan_uncommitted_cancel', ModalEnum.plan_uncommitted_modify, ModalEnum.plan_uncommitted_delete, ModalEnum.detail]);
+        // 权限按钮
+        const firstBtn = getTableButton(['plan_uncommitted_add']);
+        const secondBtn = getTableButton(['plan_uncommitted_resubmit', 'plan_uncommitted_cancel', 'plan_uncommitted_modify', 'plan_uncommitted_delete', 'detail']);
 
         function handleBtnList(btnList: BtnListType[], item: Ermcp3HedgePlan) {
             if (item.hedgeplanstatus === 4) {

+ 4 - 11
src/views/business/purchase/list/all/index.vue

@@ -36,7 +36,7 @@
 </template>
 
 <script lang="ts">
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 
 import { Ermcp3SellBuyContract } from '../index';
 import { filterCustomTable } from '../../components';
@@ -47,21 +47,13 @@ import { handleEnumdic } from '../setup';
 import { formatTime, formatValue } from '@/common/methods';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const Settlement = defineAsyncComponent(() => import('../../components/settlement/index.vue')); //交收登记
-const Funds = defineAsyncComponent(() => import('../../components/funds/index.vue')); // 款项登记
-const Invoice = defineAsyncComponent(() => import('../../components/invoice/index.vue')); // 发票登记
-const Storage = defineAsyncComponent(() => import('../../components/storage/index.vue')); // 入库登记
-const SomePrice = defineAsyncComponent(() => import('../../components/someprice/index.vue')); //采购点价登记
-
 export default defineComponent({
     name: EnumRouterName.purchase_all,
     components: {
         contextMenu,
         filterCustomTable,
-        Detail,
         MtpTableButton,
-        [ModalEnum.detail]: Detail,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
     },
     setup() {
         // 表格列表数据
@@ -79,7 +71,8 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const buttons = getTableButton([ModalEnum.detail]);
+        // 权限按钮
+        const buttons = getTableButton(['detail']);
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 5 - 7
src/views/business/purchase/list/pending/index.vue

@@ -40,7 +40,7 @@
 </template>
 
 <script lang="ts">
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 
 import { Ermcp3SellBuyContract } from '../index';
 import { filterCustomTable } from '../../components';
@@ -50,17 +50,14 @@ import { handleEnumdic } from '../setup';
 import { formatTime, formatValue } from '@/common/methods';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const SomePrice = defineAsyncComponent(() => import('../../components/someprice/index.vue')); //采购点价登记
-
 export default defineComponent({
     name: EnumRouterName.purchase_pending,
     components: {
         contextMenu,
         filterCustomTable,
         MtpTableButton,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.purchase_pending_someprice]: SomePrice,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        purchase_pending_someprice: defineAsyncComponent(() => import('../../components/someprice/index.vue')), //采购点价登记
     },
     setup() {
         // 表格列表数据
@@ -76,7 +73,8 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const buttons = getTableButton([ModalEnum.purchase_pending_someprice, 'purchase_pending_trade', ModalEnum.detail]);
+        // 权限按钮
+        const buttons = getTableButton(['purchase_pending_someprice', 'purchase_pending_trade', 'detail']);
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 9 - 15
src/views/business/purchase/list/performance/index.vue

@@ -33,7 +33,7 @@
 </template>
 
 <script lang="ts">
-import { queryTableList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam, MtpTableButton } from '@/common/export/commonTable';
+import { queryTableList, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam, MtpTableButton } from '@/common/export/commonTable';
 import { filterCustomTable } from '../../components';
 import { QueryPurchase } from '@/services/go/ermcp/purchase';
 import { Ermcp3SellBuyContract } from '@/views/business/sell/list';
@@ -42,25 +42,18 @@ import { handleEnumdic } from '../setup';
 import { formatTime, formatValue } from '@/common/methods';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const Settlement = defineAsyncComponent(() => import('../../components/settlement/index.vue')); //交收登记
-const Funds = defineAsyncComponent(() => import('../../components/funds/index.vue')); // 款项登记
-const Invoice = defineAsyncComponent(() => import('../../components/invoice/index.vue')); // 发票登记
-const Storage = defineAsyncComponent(() => import('../../components/storage/index.vue')); // 入库登记
-const Finish = defineAsyncComponent(() => import('@/views/information/spot-contract/components/finish/index.vue')); // 完结合同
-
 export default defineComponent({
     name: EnumRouterName.purchase_performance,
     components: {
         contextMenu,
         filterCustomTable,
         MtpTableButton,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.purchase_performance_settlement]: Settlement,
-        [ModalEnum.purchase_performance_funds]: Funds,
-        [ModalEnum.purchase_performance_invoice]: Invoice,
-        [ModalEnum.purchase_performance_storage]: Storage,
-        [ModalEnum.purchase_performance_ending]: Finish,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        purchase_performance_settlement: defineAsyncComponent(() => import('../../components/settlement/index.vue')), //交收登记
+        purchase_performance_funds: defineAsyncComponent(() => import('../../components/funds/index.vue')), // 款项登记
+        purchase_performance_invoice: defineAsyncComponent(() => import('../../components/invoice/index.vue')), // 发票登记
+        purchase_performance_storage: defineAsyncComponent(() => import('../../components/storage/index.vue')), // 入库登记
+        purchase_performance_ending: defineAsyncComponent(() => import('@/views/information/spot-contract/components/finish/index.vue')), // 完结合同
     },
     setup() {
         // 表格列表数据
@@ -78,7 +71,8 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const buttons = getTableButton([ModalEnum.purchase_performance_settlement, ModalEnum.purchase_performance_funds, ModalEnum.purchase_performance_invoice, ModalEnum.purchase_performance_storage, ModalEnum.purchase_performance_ending, ModalEnum.detail]);
+        // 权限按钮
+        const buttons = getTableButton(['purchase_performance_settlement', 'purchase_performance_funds', 'purchase_performance_invoice', 'purchase_performance_storage', 'purchase_performance_ending', 'detail']);
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 4 - 10
src/views/business/sell/list/all/index.vue

@@ -37,7 +37,7 @@
 
 <script lang="ts">
 import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { QueryWareHouse } from '@/services/go/ermcp/sell';
 import { Ermcp3SellBuyContract } from '@/views/business/purchase/list';
 import { filterCustomTable } from '../../components';
@@ -46,20 +46,13 @@ import { handleEnumdic } from '../setup';
 import { formatTime, formatValue } from '@/common/methods';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const Settlement = defineAsyncComponent(() => import('../../components/settlement/index.vue')); //交收登记
-const Funds = defineAsyncComponent(() => import('../../components/funds/index.vue')); // 款项登记
-const Invoice = defineAsyncComponent(() => import('../../components/invoice/index.vue')); // 发票登记
-const Storage = defineAsyncComponent(() => import('../../components/storage/index.vue')); // 入库登记
-const SomePrice = defineAsyncComponent(() => import('../../components/someprice/index.vue')); //采购点价登记
-
 export default defineComponent({
     name: EnumRouterName.sell_all,
     components: {
         contextMenu,
         filterCustomTable,
         MtpTableButton,
-        [ModalEnum.detail]: Detail,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
     },
     setup() {
         // 表格列表数据
@@ -77,7 +70,8 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const buttons = getTableButton([ModalEnum.detail]);
+        // 权限按钮
+        const buttons = getTableButton(['detail']);
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 5 - 7
src/views/business/sell/list/pending/index.vue

@@ -35,7 +35,7 @@
 
 <script lang="ts">
 import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { QueryWareHouse } from '@/services/go/ermcp/sell';
 import { Ermcp3SellBuyContract } from '@/views/business/purchase/list';
 import { handleEnumdic } from '../setup';
@@ -43,17 +43,14 @@ import { filterCustomTable } from '../../components';
 import { formatTime, formatValue } from '@/common/methods';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const SomePrice = defineAsyncComponent(() => import('../../components/someprice/index.vue')); //采购点价登记
-
 export default defineComponent({
     name: EnumRouterName.sell_pending,
     components: {
         contextMenu,
         filterCustomTable,
         MtpTableButton,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.sell_pending_someprice]: SomePrice,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        sell_pending_someprice: defineAsyncComponent(() => import('../../components/someprice/index.vue')), //采购点价登记
     },
     setup() {
         // 表格列表数据
@@ -69,7 +66,8 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const buttons = getTableButton([ModalEnum.sell_pending_someprice, 'sell_pending_trade', ModalEnum.detail]);
+        // 权限按钮
+        const buttons = getTableButton(['sell_pending_someprice', 'sell_pending_trade', 'detail']);
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 9 - 14
src/views/business/sell/list/performance/index.vue

@@ -1,5 +1,4 @@
 <template>
-    <div style="background: red; color: #fff; padding: 5px 0">待修改-完结合同-sell_performance_ending</div>
     <!-- 销售: 履约交收-->
     <div class="sell_performance" :loading="loading">
         <filterCustomTable @search="updateColumn"></filterCustomTable>
@@ -35,7 +34,7 @@
 
 <script lang="ts">
 import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { QueryWareHouse } from '@/services/go/ermcp/sell';
 import { Ermcp3SellBuyContract } from '@/views/business/purchase/list';
 import { handleEnumdic } from '../setup';
@@ -43,23 +42,18 @@ import { filterCustomTable } from '../../components';
 import { formatTime, formatValue } from '@/common/methods';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const Settlement = defineAsyncComponent(() => import('../../components/settlement/index.vue')); //交收登记
-const Funds = defineAsyncComponent(() => import('../../components/funds/index.vue')); // 款项登记
-const Invoice = defineAsyncComponent(() => import('../../components/invoice/index.vue')); // 发票登记
-const Storage = defineAsyncComponent(() => import('../../components/storage/index.vue')); // 入库登记
-
 export default defineComponent({
     name: EnumRouterName.sell_performance,
     components: {
         contextMenu,
         filterCustomTable,
         MtpTableButton,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.sell_pending_settlement]: Settlement,
-        [ModalEnum.sell_pending_funds]: Funds,
-        [ModalEnum.sell_pending_invoice]: Invoice,
-        [ModalEnum.sell_pending_storage]: Storage,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        sell_performance_settlement: defineAsyncComponent(() => import('../../components/settlement/index.vue')), //交收登记
+        sell_performance_funds: defineAsyncComponent(() => import('../../components/funds/index.vue')), // 款项登记
+        sell_performance_invoice: defineAsyncComponent(() => import('../../components/invoice/index.vue')), // 发票登记
+        sell_performance_storage: defineAsyncComponent(() => import('../../components/storage/index.vue')), // 入库登记
+        sell_performance_ending: defineAsyncComponent(() => import('@/views/information/spot-contract/components/finish/index.vue')), // 完结合同
     },
     setup() {
         // 表格列表数据
@@ -77,7 +71,8 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const buttons = getTableButton([ModalEnum.sell_pending_settlement, ModalEnum.sell_pending_funds, ModalEnum.sell_pending_invoice, ModalEnum.sell_pending_storage, 'purchase_performance_ending', ModalEnum.detail]);
+        // 权限按钮
+        const buttons = getTableButton(['sell_performance_settlement', 'sell_performance_funds', 'sell_performance_invoice', 'sell_performance_storage', 'sell_performance_ending', 'detail']);
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 10 - 19
src/views/information/account_info/list/account_info_business/index.vue

@@ -48,12 +48,11 @@
 </template>
 
 <script lang="ts">
-import { contextMenu, defineAsyncComponent, defineComponent, ModalEnum, MtpTableButton } from '@/common/export/commonTable';
+import { contextMenu, defineAsyncComponent, defineComponent, MtpTableButton } from '@/common/export/commonTable';
 import { initData, _getBtnList } from '@/common/export/table';
 import filterCustomTable from '@/views/information/goods/components/filterTable/index.vue';
 import { handlerManagerList } from '@/common/setup/user';
 import { getLoginStatusEnumItemName } from '@/common/constants/enumsName';
-
 import { ErmcpLoginUserEx } from '@/services/go/ermcp/account/interface';
 import { getUserName } from '@/services/bus/user';
 import { _handleTableList } from '../setup';
@@ -61,35 +60,27 @@ import { ref } from 'vue';
 import { handleModalComponent } from '@/common/setup/asyncComponent';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Add = defineAsyncComponent(() => import('../../compoments/add-business/index.vue'));
-const Modify = defineAsyncComponent(() => import('../../compoments/modify-business/index.vue'));
-const Reset = defineAsyncComponent(() => import('../../compoments/reset-business/index.vue'));
-const Locked = defineAsyncComponent(() => import('../../compoments/locked-business/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../compoments/cancel-business/index.vue'));
-const Detail = defineAsyncComponent(() => import('../../compoments/detail-business/index.vue'));
-const Unlocked = defineAsyncComponent(() => import('../../compoments/unlocked-business/index.vue'));
-
 export default defineComponent({
     name: 'account_info_business',
     components: {
         contextMenu,
         MtpTableButton,
         filterCustomTable,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.account_info_business_btn_modify]: Modify,
-        [ModalEnum.account_info_business_btn_add]: Add,
-        [ModalEnum.account_info_business_btn_reset]: Reset,
-        [ModalEnum.account_info_business_btn_locked]: Locked,
-        [ModalEnum.account_info_business_btn_cancel]: Cancel,
-        [ModalEnum.account_info_business_btn_unlocked]: Unlocked,
+        detail: defineAsyncComponent(() => import('../../compoments/detail-business/index.vue')),
+        account_spot_modify: defineAsyncComponent(() => import('../../compoments/modify-business/index.vue')),
+        account_spot_add: defineAsyncComponent(() => import('../../compoments/add-business/index.vue')),
+        account_spot_resetpwd: defineAsyncComponent(() => import('../../compoments/reset-business/index.vue')),
+        account_spot_locked: defineAsyncComponent(() => import('../../compoments/locked-business/index.vue')),
+        account_spot_cancel: defineAsyncComponent(() => import('../../compoments/cancel-business/index.vue')),
+        account_info_business_btn_unlocked: defineAsyncComponent(() => import('../../compoments/unlocked-business/index.vue')),
     },
     setup() {
         // 加载状态
         const loading = ref<boolean>(false);
         const { tableList, queryTable } = handlerManagerList(loading, 1);
 
-        const firstBtn = getTableButton([ModalEnum.account_info_business_btn_add]);
-        const secondBtn = getTableButton([ModalEnum.account_info_business_btn_modify, ModalEnum.account_info_business_btn_reset, ModalEnum.account_info_business_btn_locked, ModalEnum.account_info_business_btn_cancel, ModalEnum.detail]);
+        const firstBtn = getTableButton(['account_spot_add']);
+        const secondBtn = getTableButton(['account_spot_modify', 'account_spot_resetpwd', 'account_spot_locked', 'account_spot_cancel', 'detail']);
 
         // 处理根据状态显示对应按钮
         function handleBtnAction() {

+ 6 - 13
src/views/information/spot-contract/list/checkpending/index.vue

@@ -11,15 +11,12 @@
             <template #biztype="{ text }">
                 <a>{{ getBizTypeName(text) }}</a>
             </template>
-
             <template #pricetype="{ text }">
                 <a>{{ getPriceTypeName(text) }}</a>
             </template>
-
             <template #contracctstatus="{ text }">
                 <a>{{ getContractStatusName(text) }}</a>
             </template>
-
             <template #contracttype="{ text }">
                 <a>{{ getContractTypeName(text) }}</a>
             </template>
@@ -38,7 +35,6 @@
             <template #saleuserid="{ record }">
                 <span>{{ findManagerName(record.saleuserid) }}</span>
             </template>
-
             <!-- 跟单员 -->
             <template #meruserid="{ record }">
                 <span>{{ findManagerName(record.meruserid) }}</span>
@@ -55,7 +51,7 @@
 </template>
 
 <script lang="ts">
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { filterCustomTable } from '../../components';
 import { getBizTypeName, getContractStatusName, getContractTypeName, getPriceTypeName } from '@/common/constants/enumsName';
 import { formatTime, formatValue } from '@/common/methods';
@@ -65,18 +61,14 @@ import { QuerySpotContract } from '@/services/go/ermcp/spot-contract';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const Check = defineAsyncComponent(() => import('../../components/check/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../components/cancel/index.vue'));
-
 export default defineComponent({
     name: EnumRouterName.spot_contract_checkpending,
     components: {
         filterCustomTable,
         contextMenu,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.spot_contract_btn_check]: Check,
-        [ModalEnum.spot_contract_btn_cancel]: Cancel,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        contract_checkpending_check: defineAsyncComponent(() => import('../../components/check/index.vue')), // 审核
+        contract_checkpending_cancel: defineAsyncComponent(() => import('../../components/cancel/index.vue')), // 撤销
         MtpTableButton,
     },
     setup() {
@@ -100,7 +92,8 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const secondBtn = getTableButton([ModalEnum.spot_contract_btn_check, ModalEnum.spot_contract_btn_cancel, ModalEnum.detail]);
+        // 权限按钮
+        const secondBtn = getTableButton(['contract_checkpending_check', 'contract_checkpending_cancel', 'detail']);
 
         return {
             ...handleComposeTable<Ermcp3ContractRsp>(param),

+ 3 - 5
src/views/information/spot-contract/list/performance/index.vue

@@ -54,7 +54,7 @@
 </template>
 
 <script lang="ts">
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { filterCustomTable } from '../../components';
 
 import { queryBusinessManager, findManagerName, tableFilterCB, handleEnumdic } from '../setup';
@@ -66,14 +66,12 @@ import { formatTime, formatValue } from '@/common/methods';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { getTableButton } from '@/common/setup/table/button';
 
-const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-
 export default defineComponent({
     name: EnumRouterName.spot_contract_performance,
     components: {
         filterCustomTable,
         contextMenu,
-        [ModalEnum.detail]: Detail,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
         MtpTableButton,
     },
     setup() {
@@ -97,7 +95,7 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const secondBtn = getTableButton([ModalEnum.detail]);
+        const secondBtn = getTableButton(['detail']);
 
         return {
             ...handleComposeTable<Ermcp3ContractRsp>(param),

+ 43 - 68
src/views/manage/business-review/list/settlement/index.vue → src/views/manage/business-review/list/settlement/checkpending/index.vue

@@ -1,87 +1,63 @@
 <template>
-  <!-- 管理-业务审核-交收 -->
-  <div class="business-review-js"
-       :loading="loading">
-    <Filter @search="updateColumn">
-    </Filter>
-    <a-table :columns="columns"
-             class="topTable"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :data-source="tableList">
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <BtnList :btnList="handlePermissionBtn(firstBtn, record)"
-                 :record="record"
-                 class="btn-list-sticky"
-                 @click="openComponent" />
-      </template>
-      <template #operateapplytype="{ text }">
-        <a>{{ getPriceTypeName(text) }}</a>
-      </template>
-      <template #contracttype="{ text }">
-        <a>{{ getContractTypeName(text) }}</a>
-      </template>
-
-      <template #applystatus="{ text }">
-        <a>{{ getApplyStatusName(text) }}</a>
-      </template>
-      <template #buyusernameOrsellusername="{ record }">
-        <a>{{ getAnalogueName(record.contracttype, record.buyusername, record.sellusername) }}</a>
-      </template>
-      <template #addmargin||decmargin="{ record }">
-        <a>{{
-                        (record.addmargin !== 0 && record.addmargin !== undefined ?
-                        "+" + (record.addmargin) : (record.decmargin === 0 || record.decmargin === undefined ? "" : "-" + (record.decmargin)))
-                        }} </a>
-      </template>
-
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu"
-                 @cancel="closeContext"
-                 :list="handlePermissionBtn(firstBtn, selectedRow)">
-    </contextMenu>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent"></component>
-  </div>
+    <!-- 管理-业务审核-交收 -->
+    <div class="business-review-js" :loading="loading">
+        <Filter @search="updateColumn"></Filter>
+        <a-table :columns="columns" class="topTable" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :data-source="tableList">
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="handlePermissionBtn(buttons, record)" :record="record" @click="openComponent" />
+            </template>
+            <template #operateapplytype="{ text }">
+                <a>{{ getPriceTypeName(text) }}</a>
+            </template>
+            <template #contracttype="{ text }">
+                <a>{{ getContractTypeName(text) }}</a>
+            </template>
+            <template #applystatus="{ text }">
+                <a>{{ getApplyStatusName(text) }}</a>
+            </template>
+            <template #buyusernameOrsellusername="{ record }">
+                <a>{{ getAnalogueName(record.contracttype, record.buyusername, record.sellusername) }}</a>
+            </template>
+            <template #addmargin||decmargin="{ record }">
+                <a>{{ record.addmargin !== 0 && record.addmargin !== undefined ? '+' + record.addmargin : record.decmargin === 0 || record.decmargin === undefined ? '' : '-' + record.decmargin }} </a>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="handlePermissionBtn(buttons, selectedRow)"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
+    </div>
 </template>
 
 <script lang="ts">
-import { BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { initData, getTableColumns, getTableEvent, getBtnList } from '@/common/export/table';
 
-import { SettlementDetail, SettlementAudit, SettlementCancel, Filter } from '../../components';
+import { SettlementDetail, SettlementAudit, SettlementCancel, Filter } from '../../../components';
 
-import { queryTableList, QryBussinessJsRsp } from './setup';
+import { queryTableList, QryBussinessJsRsp } from '../setup';
 import { invoiceStatusName } from '@/views/manage/finance-review/setup';
 import { Column, ColumnType } from '@/common/setup/table';
 import { getPriceTypeName, getContractTypeName, getApplyStatusName } from '@/common/constants/enumsName';
 import { getAnalogueName } from '@/views/information/spot-contract/setup';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { BtnListType } from '@/common/components/btnList/interface';
-const Detail = defineAsyncComponent(() => import('../../components/settlementDetail/index.vue'));
-const Audit = defineAsyncComponent(() => import('../../components/settlementAudit/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../components/settlementCancel/index.vue'));
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'business-review-js',
     components: {
         contextMenu,
         Filter,
-        BtnList,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.business_review_settlement_audit]: Audit,
-        [ModalEnum.business_review_settlement_cancel]: Cancel,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('../../../components/settlementDetail/index.vue')),
+        settlement_checkpending_check: defineAsyncComponent(() => import('../../../components/settlementAudit/index.vue')),
+        settlement_checkpending_cancel: defineAsyncComponent(() => import('../../../components/settlementCancel/index.vue')),
     },
     setup() {
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList({});
+
         // 获取列表数据
         const queryTableAction = () => queryTable();
         const filtrFn = (e: Column, item: ColumnType, filtered: any) => {
@@ -98,6 +74,7 @@ export default defineComponent({
                 item.filteredValue = filtered.buyusernameOrsellusername || null;
             }
         };
+
         // 表格通用逻辑
         const param: ComposeTableParam = {
             queryFn: queryTableAction,
@@ -107,6 +84,7 @@ export default defineComponent({
             tableFilterCB: filtrFn,
             isDetail: true,
         };
+
         function handlePermissionBtn(btnList: BtnListType[], item: QryBussinessJsRsp) {
             if (item) {
                 const { applystatus } = item;
@@ -120,6 +98,9 @@ export default defineComponent({
             }
         }
 
+        // 权限按钮
+        const buttons = getTableButton(['settlement_checkpending_check', 'settlement_checkpending_cancel', 'detail']);
+
         return {
             ...handleComposeTable<QryBussinessJsRsp>(param),
             handlePermissionBtn,
@@ -130,14 +111,8 @@ export default defineComponent({
             getContractTypeName,
             getApplyStatusName,
             invoiceStatusName,
+            buttons,
         };
     },
 });
 </script>
-
-<style lang="less">
-.business-review-js {
-}
-</style
->;
-

+ 44 - 67
src/views/manage/business-review/list/someprice/index.vue → src/views/manage/business-review/list/someprice/checkpending/index.vue

@@ -1,84 +1,61 @@
 <template>
-  <!-- 管理-业务审核-点价 -->
-  <div class="business-review-dj"
-       :loading="loading">
-    <Filter @search="updateColumn">
-    </Filter>
-    <a-table :columns="columns"
-             class="srcollYTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <BtnList :btnList="handlePermissionBtn(firstBtn, record)"
-                 :record="record"
-                 class="btn-list-sticky"
-                 @click="openComponent" />
-      </template>
-
-      <template #pricetype="{ text }">
-        <a>{{ getPriceTypeName(text) }}</a>
-      </template>
-
-      <template #applystatus="{ text }">
-        <a>{{ getApplyStatusName(text) }}</a>
-      </template>
-
-      <template #contracttype="{ text }">
-        <a>{{ getContractTypeName(text) }}</a>
-      </template>
-
-      <template #contractstatus="{ text }">
-        <a>{{ getContractStatusName(text) }}</a>
-      </template>
-
-      <template #buyusernameOrsellusername="{ record }">
-        <a>{{ getAnalogueName(record.contracttype, record.buyusername, record.sellusername) }}</a>
-      </template>
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu"
-                 @cancel="closeContext"
-                 :list="handlePermissionBtn(firstBtn, selectedRow)">
-    </contextMenu>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent"></component>
-  </div>
+    <!-- 管理-业务审核-点价 -->
+    <div class="business-review-dj" :loading="loading">
+        <Filter @search="updateColumn"></Filter>
+        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="handlePermissionBtn(buttons, record)" :record="record" @click="openComponent" />
+            </template>
+            <template #pricetype="{ text }">
+                <a>{{ getPriceTypeName(text) }}</a>
+            </template>
+            <template #applystatus="{ text }">
+                <a>{{ getApplyStatusName(text) }}</a>
+            </template>
+            <template #contracttype="{ text }">
+                <a>{{ getContractTypeName(text) }}</a>
+            </template>
+            <template #contractstatus="{ text }">
+                <a>{{ getContractStatusName(text) }}</a>
+            </template>
+            <template #buyusernameOrsellusername="{ record }">
+                <a>{{ getAnalogueName(record.contracttype, record.buyusername, record.sellusername) }}</a>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="handlePermissionBtn(buttons, selectedRow)"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
+    </div>
 </template>
 
 <script lang="ts">
-import { BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 
-import { Filter, SomepriceDetail, SomepriceAudit, SomepriceCancel } from '../../components';
-import { queryTableList, QryBusinessDjRsp } from './setup';
+import { Filter, SomepriceDetail, SomepriceAudit, SomepriceCancel } from '../../../components';
+import { queryTableList, QryBusinessDjRsp } from '../setup';
 import { getPriceTypeName, getContractStatusName, getContractTypeName, getApplyStatusName } from '@/common/constants/enumsName';
 import { getAnalogueName } from '@/views/information/spot-contract/setup';
 import { Column, ColumnType } from '@/common/setup/table';
 import { ref } from 'vue';
 import { BtnListType } from '@/common/components/btnList/interface';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
-const Detail = defineAsyncComponent(() => import('../../components/somepriceDetail/index.vue'));
-const Audit = defineAsyncComponent(() => import('../../components/somepriceAudit/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../components/somepriceCancel/index.vue'));
+import { getTableButton } from '@/common/setup/table/button';
+
 export default defineComponent({
     name: 'business-review-dj',
     components: {
         contextMenu,
         Filter,
-        BtnList,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.business_review_someprice_audit]: Audit,
-        [ModalEnum.business_review_someprice_cancel]: Cancel,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('../../../components/somepriceDetail/index.vue')),
+        someprice_checkpending_check: defineAsyncComponent(() => import('../../../components/somepriceAudit/index.vue')),
+        someprice_checkpending_cancel: defineAsyncComponent(() => import('../../../components/somepriceCancel/index.vue')),
     },
     setup() {
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList({});
+
         // 获取列表数据
         const queryTableAction = () => queryTable();
         const filtrFn = (e: Column, item: ColumnType, filtered: any) => {
@@ -95,6 +72,7 @@ export default defineComponent({
                 item.filteredValue = filtered.buyusernameOrsellusername || null;
             }
         };
+
         // 表格通用逻辑
         const param: ComposeTableParam = {
             queryFn: queryTableAction,
@@ -104,6 +82,7 @@ export default defineComponent({
             tableFilterCB: filtrFn,
             isDetail: true,
         };
+
         function handlePermissionBtn(btnList: BtnListType[], item: QryBusinessDjRsp) {
             if (item) {
                 const { applystatus } = item;
@@ -117,6 +96,9 @@ export default defineComponent({
             }
         }
 
+        // 权限按钮
+        const buttons = getTableButton(['someprice_checkpending_check', 'someprice_checkpending_cancel', 'detail']);
+
         return {
             ...handleComposeTable<QryBusinessDjRsp>(param),
             handlePermissionBtn,
@@ -127,13 +109,8 @@ export default defineComponent({
             getContractTypeName,
             getContractStatusName,
             getAnalogueName,
+            buttons,
         };
     },
 });
 </script>
-
-<style lang="less">
-.business-review-dj {
-}
-</style>;
-

+ 130 - 0
src/views/manage/finance-review/list/funds/checkpending/index.vue

@@ -0,0 +1,130 @@
+<template>
+    <!-- 管理 - 财务审核 - 款项 -->
+    <div class="business-review-js" :loading="loading">
+        <Filter @search="updateColumn"></Filter>
+        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="handlePermissionBtn(buttons, record)" :record="record" @click="openComponent" />
+            </template>
+            <!-- 现货合同类型 -->
+            <template #contractstatus="{ record }">
+                <a>{{ getApplyStatusName(record.applystatus) }}</a>
+            </template>
+            <!-- 合同类型-->
+            <template #contracttype="{ record }">
+                <a>{{ getContractTypeName(record.contracttype) }}</a>
+            </template>
+            <!-- 状态 -->
+            <template #applystatus="{ text }">
+                <a>{{ getApplyStatusName(text) }}</a>
+            </template>
+            <!-- 点价类型 -->
+            <template #operateapplytype="{ text }">
+                <a>{{ operateApplyTypeName(text) }}</a>
+            </template>
+            <!-- 款项类型 -->
+            <template #kxtype="{ record }">
+                <a>{{ stateName(record.deductamount, record.contracttype) }}</a>
+            </template>
+            <!-- 对手方 -->
+            <template #buyusernameOrsellusername="{ record }">
+                <a>{{ record.contracttype === 1 ? record.sellusername : record.buyusername }}</a>
+            </template>
+            <!-- 金额 如果是退款 则使用deductamount  如果是付款则使用payamount-->
+            <template #payamount="{ record }">
+                <a>{{ record.deductamount === undefined || record.deductamount === 0 ? record.payamount : record.deductamount }}</a>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="handlePermissionBtn(buttons, selectedRow)"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
+    </div>
+</template>
+
+<script lang="ts">
+import { MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { initData, getTableColumns, getTableEvent, getBtnList } from '@/common/export/table';
+
+import { Filter, FundsAudit, FundsCancel, FundsDetail } from '../../../components';
+
+import { queryTableList, QryBussinessKxRsp } from '../setup';
+import { invoiceStatusName, operateApplyTypeName, stateName } from '@/views/manage/finance-review/setup';
+import { getContractTypeName, getApplyStatusName } from '@/common/constants/enumsName';
+import { Column, ColumnType } from '@/common/setup/table';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { BtnListType } from '@/common/components/btnList/interface';
+import { getTableButton } from '@/common/setup/table/button';
+
+export default defineComponent({
+    name: 'business-review-js',
+    components: {
+        contextMenu,
+        Filter,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('../../../components/fundsDetail/index.vue')),
+        funds_checkpending_check: defineAsyncComponent(() => import('../../../components/fundsAudit/index.vue')),
+        funds_checkpending_cancel: defineAsyncComponent(() => import('../../../components/fundsCancel/index.vue')),
+    },
+    setup() {
+        // 表格列表数据
+        const { loading, tableList, queryTable } = queryTableList({});
+
+        // 获取列表数据
+        const queryTableAction = () => queryTable();
+        const filtrFn = (e: Column, item: ColumnType, filtered: any) => {
+            if (e.columnfield === 'buyusernameOrsellusername') {
+                item.onFilter = (value: string, record: QryBussinessKxRsp) => {
+                    const { contracttype, buyusername, sellusername } = record;
+                    if (contracttype === 1) {
+                        // 采购
+                        return sellusername.includes(value);
+                    } else {
+                        return buyusername.includes(value);
+                    }
+                };
+                item.filteredValue = filtered.buyusernameOrsellusername || null;
+            }
+        };
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.finance_review_funds,
+            tableName: 'table_pcweb_fincial_aduit_kx',
+            tableFilterKey: ['contracttype', 'contractno', 'deliverygoodsname'],
+            tableFilterCB: filtrFn,
+            isDetail: true,
+        };
+
+        function handlePermissionBtn(btnList: BtnListType[], item: QryBussinessKxRsp) {
+            if (item) {
+                const { applystatus } = item;
+                if (applystatus === 1) {
+                    return btnList;
+                } else {
+                    return btnList.filter((e) => e.code === 'detail');
+                }
+            } else {
+                return [];
+            }
+        }
+
+        // 权限按钮
+        const buttons = getTableButton(['funds_checkpending_check', 'funds_checkpending_cancel', 'detail']);
+
+        return {
+            ...handleComposeTable<QryBussinessKxRsp>(param),
+            loading,
+            tableList,
+            invoiceStatusName,
+            getApplyStatusName,
+            operateApplyTypeName,
+            getContractTypeName,
+            stateName,
+            handlePermissionBtn,
+            buttons,
+        };
+    },
+});
+</script>

+ 0 - 152
src/views/manage/finance-review/list/funds/index.vue

@@ -1,152 +0,0 @@
-<template>
-  <!-- 管理 - 财务审核 - 款项 -->
-  <div class="business-review-js"
-       :loading="loading">
-    <Filter @search="updateColumn">
-    </Filter>
-    <a-table :columns="columns"
-             class="srcollYTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <BtnList :btnList="handlePermissionBtn(firstBtn, record)"
-                 :record="record"
-                 class="btn-list-sticky"
-                 @click="openComponent" />
-      </template>
-      <!-- 现货合同类型 -->
-      <template #contractstatus="{ record }">
-        <a>{{ getApplyStatusName(record.applystatus) }}</a>
-      </template>
-      <!-- 合同类型-->
-      <template #contracttype="{ record }">
-        <a>{{ getContractTypeName(record.contracttype) }}</a>
-      </template>
-      <!-- 状态 -->
-      <template #applystatus="{ text }">
-        <a>{{ getApplyStatusName(text) }}</a>
-      </template>
-      <!-- 点价类型 -->
-      <template #operateapplytype="{ text }">
-        <a>{{ operateApplyTypeName(text) }}</a>
-      </template>
-      <!-- 款项类型 -->
-      <template #kxtype="{ record }">
-        <a>{{ stateName(record.deductamount, record.contracttype) }}</a>
-      </template>
-      <!-- 对手方 -->
-      <template #buyusernameOrsellusername="{ record }">
-        <a>{{ record.contracttype === 1 ? record.sellusername : record.buyusername }}</a>
-      </template>
-      <!-- 金额 如果是退款 则使用deductamount  如果是付款则使用payamount-->
-      <template #payamount="{ record }">
-        <a>{{ (record.deductamount === undefined || record.deductamount === 0) ? record.payamount: record.deductamount }}</a>
-      </template>
-
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu"
-                 @cancel="closeContext"
-                 :list="handlePermissionBtn(firstBtn, selectedRow)">
-    </contextMenu>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent"></component>
-  </div>
-</template>
-
-<script lang="ts">
-import { BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
-import { initData, getTableColumns, getTableEvent, getBtnList } from '@/common/export/table';
-
-import { Filter, FundsAudit, FundsCancel, FundsDetail } from '../../components';
-
-import { queryTableList, QryBussinessKxRsp } from './setup';
-import { invoiceStatusName, operateApplyTypeName, stateName } from '@/views/manage/finance-review/setup';
-import { getContractTypeName, getApplyStatusName } from '@/common/constants/enumsName';
-import { Column, ColumnType } from '@/common/setup/table';
-import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { BtnListType } from '@/common/components/btnList/interface';
-
-const Detail = defineAsyncComponent(() => import('../../components/fundsDetail/index.vue'));
-const Audit = defineAsyncComponent(() => import('../../components/fundsAudit/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../components/fundsCancel/index.vue'));
-
-export default defineComponent({
-    name: 'business-review-js',
-    components: {
-        contextMenu,
-        Filter,
-        BtnList,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.finance_review_funds_audit]: Audit,
-        [ModalEnum.finance_review_funds_cancel]: Cancel,
-    },
-    setup() {
-        // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList({});
-        // 获取列表数据
-        const queryTableAction = () => queryTable();
-        const filtrFn = (e: Column, item: ColumnType, filtered: any) => {
-            if (e.columnfield === 'buyusernameOrsellusername') {
-                item.onFilter = (value: string, record: QryBussinessKxRsp) => {
-                    const { contracttype, buyusername, sellusername } = record;
-                    if (contracttype === 1) {
-                        // 采购
-                        return sellusername.includes(value);
-                    } else {
-                        return buyusername.includes(value);
-                    }
-                };
-                item.filteredValue = filtered.buyusernameOrsellusername || null;
-            }
-        };
-        // 表格通用逻辑
-        const param: ComposeTableParam = {
-            queryFn: queryTableAction,
-            menuType: EnumRouterName.finance_review_funds,
-            tableName: 'table_pcweb_fincial_aduit_kx',
-            tableFilterKey: ['contracttype', 'contractno', 'deliverygoodsname'],
-            tableFilterCB: filtrFn,
-            isDetail: true,
-        };
-        function handlePermissionBtn(btnList: BtnListType[], item: QryBussinessKxRsp) {
-            if (item) {
-                const { applystatus } = item;
-                if (applystatus === 1) {
-                    return btnList;
-                } else {
-                    return btnList.filter((e) => e.code === 'detail');
-                }
-            } else {
-                return [];
-            }
-        }
-
-        return {
-            ...handleComposeTable<QryBussinessKxRsp>(param),
-            loading,
-            tableList,
-            invoiceStatusName,
-            getApplyStatusName,
-            operateApplyTypeName,
-            getContractTypeName,
-            stateName,
-            handlePermissionBtn,
-        };
-    },
-});
-</script>
-
-<style lang="less">
-.business-review-js {
-}
-</style
->;
-

+ 120 - 0
src/views/manage/finance-review/list/invoice/checkpending/index.vue

@@ -0,0 +1,120 @@
+<template>
+    <!-- 管理 - 财务审核 - 发票 -->
+    <div class="finance_review_invoice" :loading="loading">
+        <Filter @search="updateColumn"> </Filter>
+        <a-table :columns="columns" class="topTable" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :data-source="tableList">
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="handlePermissionBtn(buttons, record)" :record="record" @click="openComponent" />
+            </template>
+            <!-- 现货合同类型 -->
+            <template #contracttype="{ text }">
+                <a>{{ getContractTypeName(text) }}</a>
+            </template>
+            <!-- 发票类型-->
+            <template #invoicetype="{ record }">
+                <a>{{ invoiceStatusName(record.contracttype) }}</a>
+            </template>
+            <!-- 状态 -->
+            <template #applystatus="{ text }">
+                <a>{{ getApplyStatusName(text) }}</a>
+            </template>
+            <!-- 点价类型 -->
+            <template #operateapplytype="{ text }">
+                <a>{{ operateApplyTypeName(text) }}</a>
+            </template>
+            <!-- 对手方 -->
+            <template #buyusernameOrsellusername="{ record }">
+                <a>{{ record.contracttype === 1 ? record.sellusername : record.buyusername }}</a>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="handlePermissionBtn(buttons, selectedRow)"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
+    </div>
+</template>
+
+<script lang="ts">
+import { MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+
+import { InvoiceAudit, InvoiceCancel, InvoiceDetail, Filter } from '../../../components';
+
+import { queryTableList, QryBussinessFpRsp } from '../setup';
+import { invoiceStatusName, operateApplyTypeName } from '@/views/manage/finance-review/setup';
+import { Column, ColumnType } from '@/common/setup/table';
+import { getContractTypeName, getApplyStatusName } from '@/common/constants/enumsName';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { BtnListType } from '@/common/components/btnList/interface';
+import { getTableButton } from '@/common/setup/table/button';
+
+export default defineComponent({
+    name: 'finance_review_invoice',
+    components: {
+        contextMenu,
+        Filter,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('../../../components/invoiceDetail/index.vue')),
+        invoice_checkpending_check: defineAsyncComponent(() => import('../../../components/invoiceAudit/index.vue')),
+        invoice_checkpending_cancel: defineAsyncComponent(() => import('../../../components/invoiceCancel/index.vue')),
+    },
+    setup() {
+        // 表格列表数据
+        const { loading, tableList, queryTable } = queryTableList({});
+
+        // 获取列表数据
+        const queryTableAction = () => queryTable();
+        const filtrFn = (e: Column, item: ColumnType, filtered: any) => {
+            if (e.columnfield === 'buyusernameOrsellusername') {
+                item.onFilter = (value: string, record: QryBussinessFpRsp) => {
+                    const { contracttype, buyusername, sellusername } = record;
+                    if (contracttype === 1) {
+                        // 采购
+                        return sellusername.includes(value);
+                    } else {
+                        return buyusername.includes(value);
+                    }
+                };
+                item.filteredValue = filtered.buyusernameOrsellusername || null;
+            }
+        };
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.finance_review_invoice,
+            tableName: 'table_pcweb_fincial_aduit_fp',
+            tableFilterKey: ['contracttype', 'contractno', 'deliverygoodsname'],
+            tableFilterCB: filtrFn,
+            isDetail: true,
+        };
+
+        function handlePermissionBtn(btnList: BtnListType[], item: QryBussinessFpRsp) {
+            if (item) {
+                const { applystatus } = item;
+                if (applystatus === 1) {
+                    return btnList;
+                } else {
+                    return btnList.filter((e) => e.code === 'detail');
+                }
+            } else {
+                return [];
+            }
+        }
+
+        // 权限按钮
+        const buttons = getTableButton(['invoice_checkpending_check', 'invoice_checkpending_cancel', 'detail']);
+
+        return {
+            ...handleComposeTable<QryBussinessFpRsp>(param),
+            loading,
+            tableList,
+            handlePermissionBtn,
+            getContractTypeName,
+            invoiceStatusName,
+            getApplyStatusName,
+            operateApplyTypeName,
+            buttons,
+        };
+    },
+});
+</script>

+ 0 - 142
src/views/manage/finance-review/list/invoice/index.vue

@@ -1,142 +0,0 @@
-<template>
-  <!-- 管理 - 财务审核 - 发票 -->
-  <div class="finance_review_invoice"
-       :loading="loading">
-    <Filter @search="updateColumn">
-    </Filter>
-    <a-table :columns="columns"
-             class="topTable"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :data-source="tableList">
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <BtnList :btnList="handlePermissionBtn(firstBtn, record)"
-                 :record="record"
-                 class="btn-list-sticky"
-                 @click="openComponent" />
-      </template>
-      <!-- 现货合同类型 -->
-      <template #contracttype="{ text }">
-        <a>{{ getContractTypeName(text) }}</a>
-      </template>
-      <!-- 发票类型-->
-      <template #invoicetype="{ record }">
-        <a>{{ invoiceStatusName(record.contracttype) }}</a>
-      </template>
-      <!-- 状态 -->
-      <template #applystatus="{ text }">
-        <a>{{ getApplyStatusName(text) }}</a>
-      </template>
-      <!-- 点价类型 -->
-      <template #operateapplytype="{ text }">
-        <a>{{ operateApplyTypeName(text) }}</a>
-      </template>
-      <!-- 对手方 -->
-      <template #buyusernameOrsellusername="{ record }">
-        <a>{{ record.contracttype === 1 ? record.sellusername : record.buyusername }}</a>
-      </template>
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu"
-                 @cancel="closeContext"
-                 :list="handlePermissionBtn(firstBtn, selectedRow)">
-    </contextMenu>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent"></component>
-  </div>
-</template>
-
-<script lang="ts">
-import { BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
-
-import { InvoiceAudit, InvoiceCancel, InvoiceDetail, Filter } from '../../components';
-
-import { queryTableList, QryBussinessFpRsp } from './setup';
-import { invoiceStatusName, operateApplyTypeName } from '@/views/manage/finance-review/setup';
-import { Column, ColumnType } from '@/common/setup/table';
-import { getContractTypeName, getApplyStatusName } from '@/common/constants/enumsName';
-import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { BtnListType } from '@/common/components/btnList/interface';
-
-const Detail = defineAsyncComponent(() => import('../../components/invoiceDetail/index.vue'));
-const Audit = defineAsyncComponent(() => import('../../components/invoiceAudit/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../components/invoiceCancel/index.vue'));
-
-export default defineComponent({
-    name: 'finance_review_invoice',
-    components: {
-        contextMenu,
-        Filter,
-        BtnList,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.finance_review_invoice_audit]: Audit,
-        [ModalEnum.finance_review_invoice_cancel]: Cancel,
-    },
-    setup() {
-        // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList({});
-
-        // 获取列表数据
-        const queryTableAction = () => queryTable();
-        const filtrFn = (e: Column, item: ColumnType, filtered: any) => {
-            if (e.columnfield === 'buyusernameOrsellusername') {
-                item.onFilter = (value: string, record: QryBussinessFpRsp) => {
-                    const { contracttype, buyusername, sellusername } = record;
-                    if (contracttype === 1) {
-                        // 采购
-                        return sellusername.includes(value);
-                    } else {
-                        return buyusername.includes(value);
-                    }
-                };
-                item.filteredValue = filtered.buyusernameOrsellusername || null;
-            }
-        };
-        // 表格通用逻辑
-        const param: ComposeTableParam = {
-            queryFn: queryTableAction,
-            menuType: EnumRouterName.finance_review_invoice,
-            tableName: 'table_pcweb_fincial_aduit_fp',
-            tableFilterKey: ['contracttype', 'contractno', 'deliverygoodsname'],
-            tableFilterCB: filtrFn,
-            isDetail: true,
-        };
-        function handlePermissionBtn(btnList: BtnListType[], item: QryBussinessFpRsp) {
-            if (item) {
-                const { applystatus } = item;
-                if (applystatus === 1) {
-                    return btnList;
-                } else {
-                    return btnList.filter((e) => e.code === 'detail');
-                }
-            } else {
-                return [];
-            }
-        }
-
-        return {
-            ...handleComposeTable<QryBussinessFpRsp>(param),
-            loading,
-            tableList,
-            handlePermissionBtn,
-            getContractTypeName,
-            invoiceStatusName,
-            getApplyStatusName,
-            operateApplyTypeName,
-        };
-    },
-});
-</script>
-
-<style lang="less">
-.finance_review_invoice {
-}
-</style
->;
-

+ 46 - 67
src/views/manage/inventory-review/list/checkin/index.vue → src/views/manage/inventory-review/list/checkpending/index.vue

@@ -1,60 +1,41 @@
 <template>
-  <!-- 库存审核 入库-->
-  <div class="inventory_review_checkin"
-       :loading="loading">
-    <Filter @search="updateColumn"
-            :inOrOut="'in'">
-    </Filter>
-    <a-table :columns="columns"
-             class="srcollYTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <BtnList :btnList="handlePermissionBtn(firstBtn, record)"
-                 :record="record"
-                 class="btn-list-sticky"
-                 @click="openComponent" />
-      </template>
-      <!-- 状态 -->
-      <template #applystatus="{ text }">
-        <a>{{ getApplyStatusName(text) }}</a>
-      </template>
-      <!-- 现货合同类型 -->
-      <template #contracttype="{ text }">
-        <a>{{ getContractTypeName(text) }}</a>
-      </template>
-      <!-- 点价类型 -->
-      <template #pricetype="{ text }">
-        <a>{{ getPriceTypeName(text) }}</a>
-      </template>
-      <!-- 出入库类型 -->
-      <template #inouttype="{ text }">
-        <a>{{ InOutTypeName(text) }}</a>
-      </template>
-      <!-- 对手方 -->
-      <template #buynicknameOrsellusername="{ record }">
-        <a>{{ handleName(record) }}</a>
-      </template>
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu"
-                 @cancel="closeContext"
-                 :list="handlePermissionBtn(firstBtn, selectedRow)">
-    </contextMenu>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent"></component>
-  </div>
+    <!-- 库存审核 入库-->
+    <div class="inventory_review_checkin" :loading="loading">
+        <Filter @search="updateColumn" :inOrOut="'in'"></Filter>
+        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="handlePermissionBtn(buttons, record)" :record="record" @click="openComponent" />
+            </template>
+            <!-- 状态 -->
+            <template #applystatus="{ text }">
+                <a>{{ getApplyStatusName(text) }}</a>
+            </template>
+            <!-- 现货合同类型 -->
+            <template #contracttype="{ text }">
+                <a>{{ getContractTypeName(text) }}</a>
+            </template>
+            <!-- 点价类型 -->
+            <template #pricetype="{ text }">
+                <a>{{ getPriceTypeName(text) }}</a>
+            </template>
+            <!-- 出入库类型 -->
+            <template #inouttype="{ text }">
+                <a>{{ InOutTypeName(text) }}</a>
+            </template>
+            <!-- 对手方 -->
+            <template #buynicknameOrsellusername="{ record }">
+                <a>{{ handleName(record) }}</a>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="handlePermissionBtn(buttons, selectedRow)"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
+    </div>
 </template>
 
 <script lang="ts">
-import { BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 
 import { Filter, CheckinAudit, CheckinCancel, CheckinDetail } from '../../components';
 
@@ -65,23 +46,22 @@ import { InOutTypeName } from '@/views/manage/inventory-review/setup';
 import { Column, ColumnType } from '@/common/setup/table';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { BtnListType } from '@/common/components/btnList/interface';
-const Detail = defineAsyncComponent(() => import('../../components/checkinDetail/index.vue'));
-const Audit = defineAsyncComponent(() => import('../../components/checkinAudit/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../components/checkinCancel/index.vue'));
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'inventory_review_checkin',
     components: {
         contextMenu,
         Filter,
-        BtnList,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.inventory_review_checkin_audit]: Audit,
-        [ModalEnum.inventory_review_checkin_cancel]: Cancel,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('../../components/checkinDetail/index.vue')),
+        stock_checkpending_check: defineAsyncComponent(() => import('../../components/checkinAudit/index.vue')),
+        stock_checkpending_cancel: defineAsyncComponent(() => import('../../components/checkinCancel/index.vue')),
     },
     setup() {
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList({ inouttype: '1,3' });
+
         // 获取列表数据
         const queryTableAction = () => queryTable();
         const filtrFn = (e: Column, item: ColumnType, filtered: any) => {
@@ -98,6 +78,7 @@ export default defineComponent({
                 item.filteredValue = filtered.buyusernameOrsellusername || null;
             }
         };
+
         // 表格通用逻辑
         const param: ComposeTableParam = {
             queryFn: queryTableAction,
@@ -107,6 +88,7 @@ export default defineComponent({
             tableFilterCB: filtrFn,
             isDetail: true,
         };
+
         function handlePermissionBtn(btnList: BtnListType[], item: Ermcp3AreaStockApply) {
             if (item) {
                 const { applystatus } = item;
@@ -120,6 +102,9 @@ export default defineComponent({
             }
         }
 
+        // 权限按钮
+        const buttons = getTableButton(['stock_checkpending_check', 'stock_checkpending_cancel', 'detail']);
+
         return {
             ...handleComposeTable<Ermcp3AreaStockApply>(param),
             handlePermissionBtn,
@@ -131,14 +116,8 @@ export default defineComponent({
             getPriceTypeName,
             InOutTypeName,
             handleName,
+            buttons,
         };
     },
 });
 </script>
-
-<style lang="less">
-.inventory_review_checkin {
-}
-</style
->;
-

+ 46 - 67
src/views/manage/inventory-review/list/checkout/index.vue → src/views/manage/inventory-review/list/performance/index.vue

@@ -1,59 +1,40 @@
 <template>
-  <!-- 库存审核 出库-->
-  <div class="inventory_review_checkout"
-       :loading="loading">
-    <Filter @search="updateColumn"
-            :inOrOut="'out'">
-    </Filter>
-    <a-table :columns="columns"
-             class="topTable"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :data-source="tableList">
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <BtnList :btnList="handlePermissionBtn(firstBtn, record)"
-                 :record="record"
-                 class="btn-list-sticky"
-                 @click="openComponent" />
-      </template>
-      <!-- 状态 -->
-      <template #applystatus="{ text }">
-        <a>{{ getApplyStatusName(text) }}</a>
-      </template>
-      <!-- 现货合同类型 -->
-      <template #contracttype="{ text }">
-        <a>{{ getContractTypeName(text) }}</a>
-      </template>
-      <!-- 点价类型 -->
-      <template #pricetype="{ text }">
-        <a>{{ getPriceTypeName(text) }}</a>
-      </template>
-      <!-- 出入库类型 -->
-      <template #inouttype="{ text }">
-        <a>{{ InOutTypeName(text) }}</a>
-      </template>
-      <template #buynicknameOrsellusername="{ record }">
-        <a>{{ handleName(record) }}</a>
-      </template>
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu"
-                 @cancel="closeContext"
-                 :list="handlePermissionBtn(firstBtn, selectedRow)">
-    </contextMenu>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent"></component>
-  </div>
+    <!-- 库存审核 出库-->
+    <div class="inventory_review_checkout" :loading="loading">
+        <Filter @search="updateColumn" :inOrOut="'out'"></Filter>
+        <a-table :columns="columns" class="topTable" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :data-source="tableList">
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="handlePermissionBtn(buttons, record)" :record="record" @click="openComponent" />
+            </template>
+            <!-- 状态 -->
+            <template #applystatus="{ text }">
+                <a>{{ getApplyStatusName(text) }}</a>
+            </template>
+            <!-- 现货合同类型 -->
+            <template #contracttype="{ text }">
+                <a>{{ getContractTypeName(text) }}</a>
+            </template>
+            <!-- 点价类型 -->
+            <template #pricetype="{ text }">
+                <a>{{ getPriceTypeName(text) }}</a>
+            </template>
+            <!-- 出入库类型 -->
+            <template #inouttype="{ text }">
+                <a>{{ InOutTypeName(text) }}</a>
+            </template>
+            <template #buynicknameOrsellusername="{ record }">
+                <a>{{ handleName(record) }}</a>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="handlePermissionBtn(buttons, selectedRow)"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
+    </div>
 </template>
 
 <script lang="ts">
-import { BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 
 import { CheckoutAudit, CheckoutCancel, CheckoutDetail, Filter } from '../../components';
 
@@ -64,23 +45,22 @@ import { InOutTypeName } from '@/views/manage/inventory-review/setup';
 import { Column, ColumnType } from '@/common/setup/table';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { BtnListType } from '@/common/components/btnList/interface';
-const Detail = defineAsyncComponent(() => import('../../components/checkoutDetail/index.vue'));
-const Audit = defineAsyncComponent(() => import('../../components/checkoutAudit/index.vue'));
-const Cancel = defineAsyncComponent(() => import('../../components/checkoutCancel/index.vue'));
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'inventory_review_checkout',
     components: {
         contextMenu,
         Filter,
-        BtnList,
-        [ModalEnum.detail]: Detail,
-        [ModalEnum.inventory_review_checkout_audit]: Audit,
-        [ModalEnum.inventory_review_checkout_cancel]: Cancel,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('../../components/checkoutDetail/index.vue')),
+        //[ModalEnum.inventory_review_checkout_audit]: defineAsyncComponent(() => import('../../components/checkoutAudit/index.vue')),
+        //[ModalEnum.inventory_review_checkout_cancel]: defineAsyncComponent(() => import('../../components/checkoutCancel/index.vue')),
     },
     setup() {
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList({ inouttype: '2,4' });
+
         // 获取列表数据
         const queryTableAction = () => queryTable();
         const filtrFn = (e: Column, item: ColumnType, filtered: any) => {
@@ -97,6 +77,7 @@ export default defineComponent({
                 item.filteredValue = filtered.buyusernameOrsellusername || null;
             }
         };
+
         // 表格通用逻辑
         const param: ComposeTableParam = {
             queryFn: queryTableAction,
@@ -106,6 +87,7 @@ export default defineComponent({
             tableFilterCB: filtrFn,
             isDetail: true,
         };
+
         function handlePermissionBtn(btnList: BtnListType[], item: Ermcp3AreaStockApply) {
             if (item) {
                 const { applystatus } = item;
@@ -119,6 +101,9 @@ export default defineComponent({
             }
         }
 
+        // 权限按钮
+        const buttons = getTableButton(['detail']);
+
         return {
             ...handleComposeTable<Ermcp3AreaStockApply>(param),
             handlePermissionBtn,
@@ -131,14 +116,8 @@ export default defineComponent({
             operateApplyTypeName,
             getPriceTypeName,
             InOutTypeName,
+            buttons,
         };
     },
 });
-</script>
-
-<style lang="less">
-.inventory_review_checkout {
-}
-</style
->;
-
+</script>

+ 27 - 43
src/views/report/exposure-report/list/exposure_report/index.vue

@@ -1,44 +1,24 @@
 <template>
-  <!-- 敞口报表 -->
-  <div class="table-detail-container table-height"
-       :loading="loading">
-    <Filter @update="search"
-            @filter="updateColumn"></Filter>
-    <a-table :columns="columns"
-             class="topOrderTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-        <!-- 合同类型 -->
-        <template #contracttype="{ text }">
-          <a>{{ getContractTypeName(text) }}</a>
-        </template>
-        <template #biztype="{ text }">
-          <a>{{ getBizTypeName(text) }}</a>
-        </template>
-        <template #buyorsell="{ text }">
-          <a>{{ getBuyOrSellName(text) }}</a>
-        </template>
-
-      </a-table>
-
-    </Description>
-  </div>
+    <!-- 敞口报表 -->
+    <div class="table-detail-container table-height" :loading="loading">
+        <Filter @update="search" @filter="updateColumn"></Filter>
+        <a-table :columns="columns" class="topOrderTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList"> </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+                <!-- 合同类型 -->
+                <template #contracttype="{ text }">
+                    <a>{{ getContractTypeName(text) }}</a>
+                </template>
+                <template #biztype="{ text }">
+                    <a>{{ getBizTypeName(text) }}</a>
+                </template>
+                <template #buyorsell="{ text }">
+                    <a>{{ getBuyOrSellName(text) }}</a>
+                </template>
+            </a-table>
+        </Description>
+    </div>
 </template>
 
 <script lang="ts">
@@ -55,6 +35,7 @@ import { queryResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
 import { TabList } from '@/common/components/description/interface';
 import { getBizTypeName, getBuyOrSellName, getContractTypeName } from '@/common/constants/enumsName';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: EnumRouterName.exposure_report_exposure,
@@ -95,9 +76,12 @@ export default defineComponent({
             expandedRowKeys,
             selectedRow,
             Rowclick, // 表格事件
-            tabList,
         } = handleComposeTable_detail<Ermcp3ExpourseReport>(param);
         const chaceSearchValue = ref<TypeAndTime>();
+
+        // 底部明细标签
+        const tabList = getTableButton(['exposure_report_exposure_contract_changes', 'exposure_report_exposure_hedging_plan', 'exposure_report_exposure_futures_changes', 'exposure_report_exposure_parameter_adjustment_changes']);
+
         // 切换明细
         function changeTab(index: number, current: TabList) {
             const { code, lable } = current;
@@ -142,8 +126,8 @@ export default defineComponent({
 
         watchEffect(() => {
             if (visible.value) {
-                if (tabList.value.length) {
-                    changeTab(0, tabList.value[0]);
+                if (tabList.length) {
+                    changeTab(0, tabList[0]);
                 }
             }
         });

+ 1 - 0
src/views/report/finance-report/components/filterTable/index.vue

@@ -79,6 +79,7 @@ export default defineComponent({
             selectList,
             inputList,
             fixedBtnList,
+            update,
         };
     },
 });

+ 17 - 34
src/views/report/finance-report/list/finance_report_finance/index.vue

@@ -1,31 +1,13 @@
 <template>
-  <!-- 财务报表 -->
-  <div class="table-detail-container table-height"
-       :loading="loading">
-    <Filter @update="search"></Filter>
-    <a-table :columns="columns"
-             class="topOrderTable"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-      </a-table>
-    </Description>
-  </div>
+    <!-- 财务报表 -->
+    <div class="table-detail-container table-height" :loading="loading">
+        <Filter @update="search"></Filter>
+        <a-table :columns="columns" class="topOrderTable" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"> </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"> </a-table>
+        </Description>
+    </div>
 </template>
 
 <script lang="ts">
@@ -41,6 +23,7 @@ import { TabList } from '@/common/components/description/interface';
 import { queryResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
 import { ref, watchEffect } from 'vue';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'finance-report',
@@ -81,9 +64,12 @@ export default defineComponent({
             expandedRowKeys,
             selectedRow,
             Rowclick, // 表格事件
-            tabList,
         } = handleComposeTable_detail<Ermcp3FinanceReport>(param);
         const chaceSearchValue = ref<TypeAndTime>();
+
+        // 底部明细标签
+        const tabList = getTableButton(['finance_report_finance_category_breakdown', 'finance_report_finance_brand_details']);
+
         // 切换明细
         function changeTab(index: number, current: TabList) {
             const { code, lable } = current;
@@ -118,8 +104,8 @@ export default defineComponent({
         }
         watchEffect(() => {
             if (visible.value) {
-                if (tabList.value.length) {
-                    changeTab(0, tabList.value[0]);
+                if (tabList.length) {
+                    changeTab(0, tabList[0]);
                 }
             }
         });
@@ -133,7 +119,4 @@ export default defineComponent({
         return { loading, tableList, visible, closeDrawer, columns, updateColumn, search, columnsDetail, detailTableList, expandedRowKeys, selectedRow, Rowclick, tabList, changeTab };
     },
 });
-</script>
-
-<style lang="less">
-</style>;
+</script>

+ 1 - 0
src/views/report/future_report/components/filterTable/index.vue

@@ -79,6 +79,7 @@ export default defineComponent({
             selectList,
             inputList,
             fixedBtnList,
+            update,
         };
     },
 });

+ 26 - 47
src/views/report/future_report/list/future_report/index.vue

@@ -1,42 +1,23 @@
 <template>
-  <!-- 期货报表 -->
-  <div class="table-detail-container table-height"
-       :loading="loading">
-    <Filter @update="search"></Filter>
-    <a-table :columns="columns"
-             class="topOrderTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-
-      <!-- 持仓方向 -->
-      <template #buyorsell="{ record }">
-        <a>{{ record.buyorsell === 1 ? "卖出" : "买入" }}</a>
-      </template>
-
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-        <!-- 持仓方向 -->
-        <template #buyorsell="{ record }">
-          <a>{{ record.buyorsell === 1 ? "卖出" : "买入" }}</a>
-        </template>
-      </a-table>
-
-    </Description>
-  </div>
+    <!-- 期货报表 -->
+    <div class="table-detail-container table-height" :loading="loading">
+        <Filter @update="search"></Filter>
+        <a-table :columns="columns" class="topOrderTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
+            <!-- 持仓方向 -->
+            <template #buyorsell="{ record }">
+                <a>{{ record.buyorsell === 1 ? '卖出' : '买入' }}</a>
+            </template>
+        </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+                <!-- 持仓方向 -->
+                <template #buyorsell="{ record }">
+                    <a>{{ record.buyorsell === 1 ? '卖出' : '买入' }}</a>
+                </template>
+            </a-table>
+        </Description>
+    </div>
 </template>
 
 <script lang="ts">
@@ -52,6 +33,7 @@ import { Ermcp3TaFutuReDataReport, QryTaFutureDataReportReq } from '@/services/g
 import { TypeAndTime } from '@/views/report/interface';
 import { TabList } from '@/common/components/description/interface';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'inventory_report_inventory_category',
@@ -92,10 +74,12 @@ export default defineComponent({
             expandedRowKeys,
             selectedRow,
             Rowclick, // 表格事件
-            tabList,
         } = handleComposeTable_detail<Ermcp3TaFutuReDataReport>(param);
         const chaceSearchValue = ref<TypeAndTime>();
 
+        // 底部明细标签
+        const tabList = getTableButton(['future_report_future_detail']);
+
         // 切换明细
         function changeTab(index: number, current: TabList) {
             const { code, lable } = current;
@@ -126,8 +110,8 @@ export default defineComponent({
         }
         watchEffect(() => {
             if (visible.value) {
-                if (tabList.value.length) {
-                    changeTab(0, tabList.value[0]);
+                if (tabList.length) {
+                    changeTab(0, tabList[0]);
                 }
             }
         });
@@ -141,9 +125,4 @@ export default defineComponent({
         return { loading, tableList, visible, closeDrawer, columns, updateColumn, search, columnsDetail, detailTableList, expandedRowKeys, selectedRow, Rowclick, tabList, changeTab };
     },
 });
-</script>
-
-<style lang="less">
-.spot-report {
-}
-</style>;
+</script>

+ 16 - 37
src/views/report/inventory-report/list/category/index.vue

@@ -1,32 +1,13 @@
 <template>
-  <!-- 库存报表(品类) -->
-  <div class="table-detail-container table-height"
-       :loading="loading">
-    <Filter @update="search"
-            @filter="updateColumn"></Filter>
-    <a-table :columns="columns"
-             class="topOrderTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-      </a-table>
-    </Description>
-  </div>
+    <!-- 库存报表(品类) -->
+    <div class="table-detail-container table-height" :loading="loading">
+        <Filter @update="search" @filter="updateColumn"></Filter>
+        <a-table :columns="columns" class="topOrderTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList"> </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"> </a-table>
+        </Description>
+    </div>
 </template>
 
 <script lang="ts">
@@ -42,6 +23,7 @@ import { AreaStockReportReq, Ermcp3AreaStockReport } from '@/services/go/ermcp/r
 import { TypeAndTime } from '@/views/report/interface';
 import { TabList } from '@/common/components/description/interface';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'inventory_report_inventory_category',
@@ -85,9 +67,11 @@ export default defineComponent({
             expandedRowKeys,
             selectedRow,
             Rowclick, // 表格事件
-            tabList,
         } = handleComposeTable_detail<Ermcp3AreaStockReport>(param);
 
+        // 底部明细标签
+        const tabList = getTableButton(['inventory_report_inventory_category_brand_detail', 'inventory_report_inventory_category_warehouse_detail']);
+
         // 切换明细
         function changeTab(index: number, current: TabList) {
             const { code, lable } = current;
@@ -127,8 +111,8 @@ export default defineComponent({
         }
         watchEffect(() => {
             if (visible.value) {
-                if (tabList.value.length) {
-                    changeTab(0, tabList.value[0]);
+                if (tabList.length) {
+                    changeTab(0, tabList[0]);
                 }
             }
         });
@@ -142,9 +126,4 @@ export default defineComponent({
         return { loading, tableList, visible, closeDrawer, columns, updateColumn, search, columnsDetail, detailTableList, expandedRowKeys, selectedRow, Rowclick, tabList, changeTab };
     },
 });
-</script>
-
-<style lang="less">
-.spot-report {
-}
-</style>;
+</script>

+ 18 - 38
src/views/report/inventory-report/list/warehouse/index.vue

@@ -1,32 +1,13 @@
 <template>
-  <!-- 库存报表(仓库) -->
-  <div class="table-detail-container table-height"
-       :loading="loading">
-    <Filter @update="search"
-            @filter="updateColumn"></Filter>
-    <a-table :columns="columns"
-             class="topOrderTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-      </a-table>
-    </Description>
-  </div>
+    <!-- 库存报表(仓库) -->
+    <div class="table-detail-container table-height" :loading="loading">
+        <Filter @update="search" @filter="updateColumn"></Filter>
+        <a-table :columns="columns" class="topOrderTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList"> </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"> </a-table>
+        </Description>
+    </div>
 </template>
 
 <script lang="ts">
@@ -42,6 +23,7 @@ import { AreaStockReportReq, Ermcp3AreaStockReport } from '@/services/go/ermcp/r
 import { TypeAndTime } from '@/views/report/interface';
 import { TabList } from '@/common/components/description/interface';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'inventory_report_warehouse',
@@ -83,9 +65,12 @@ export default defineComponent({
             expandedRowKeys,
             selectedRow,
             Rowclick, // 表格事件
-            tabList,
         } = handleComposeTable_detail<Ermcp3AreaStockReport>(param);
         const chaceSearchValue = ref<TypeAndTime>();
+
+        // 底部明细标签
+        const tabList = getTableButton(['warehouse_report_warehouse_detail']);
+
         // 切换明细
         function changeTab(index: number, current: TabList) {
             const { code, lable } = current;
@@ -103,7 +88,7 @@ export default defineComponent({
                 warehouseinfoid,
                 userid: chaceSearchValue.value?.userid,
             };
-            if (code === 'inventory_report_warehouse_inventory_detail') {
+            if (code === 'warehouse_report_warehouse_detail') {
                 // 库存明细
                 // 注册表头
                 registerColumnDetail('table_pcweb_inventory_warehouse_report_warehouse_details', []);
@@ -118,8 +103,8 @@ export default defineComponent({
         }
         watchEffect(() => {
             if (visible.value) {
-                if (tabList.value.length) {
-                    changeTab(0, tabList.value[0]);
+                if (tabList.length) {
+                    changeTab(0, tabList[0]);
                 }
             }
         });
@@ -133,9 +118,4 @@ export default defineComponent({
         return { loading, tableList, visible, closeDrawer, columns, updateColumn, search, columnsDetail, detailTableList, expandedRowKeys, selectedRow, Rowclick, tabList, changeTab };
     },
 });
-</script>
-
-<style lang="less">
-.spot-report {
-}
-</style>;
+</script>

+ 78 - 97
src/views/report/spot-report/list/spot_report/index.vue

@@ -1,92 +1,75 @@
 <template>
-  <!-- 现货报表 -->
-  <div class="table-detail-container table-height"
-       :loading="loading">
-    <Filter @update="search"
-            @filter="updateColumn"></Filter>
-    <a-table :columns="columns"
-             class="topOrderTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-      <template #curaverageprice="{ record }">
-        <span>{{ record.curaverageprice.toFixed(2) }}</span>
-      </template>
-      <template #oriaverageprice="{ record }">
-        <span>{{ record.oriaverageprice.toFixed(2) }}</span>
-      </template>
-      <template #oriamount="{ record }">
-        <span>{{ record.oriamount.toFixed(2) }}</span>
-      </template>
-      <template #todaybuyamount="{ record }">
-        <span>{{ record.todaybuyamount.toFixed(2) }}</span>
-      </template>
-      <template #todaybuyaverageprice="{ record }">
-        <span>{{ record.todaybuyaverageprice.toFixed(2) }}</span>
-      </template>
-      <template #todaysellaverageprice="{ record }">
-        <span>{{ record.todaysellaverageprice.toFixed(2) }}</span>
-      </template>
-      <template #actualpl="{ record }">
-        <span>{{ record.actualpl.toFixed(2) }}</span>
-      </template>
-      <template #curspotprice="{ record }">
-        <span>{{ record.curspotprice.toFixed(2) }}</span>
-      </template>
-      <template #floatpl="{ record }">
-        <span>{{ record.floatpl.toFixed(2) }}</span>
-      </template>
-      <template #curmarketvalue="{ record }">
-        <span>{{ record.curmarketvalue.toFixed(2) }}</span>
-      </template>
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-          <template #curaverageprice="{ record }">
-              <span>{{ record.curaverageprice.toFixed(2) }}</span>
-          </template>
-          <template #oriaverageprice="{ record }">
-              <span>{{ record.oriaverageprice.toFixed(2) }}</span>
-          </template>
-          <template #oriamount="{ record }">
-              <span>{{ record.oriamount.toFixed(2) }}</span>
-          </template>
-          <template #todaybuyamount="{ record }">
-              <span>{{ record.todaybuyamount.toFixed(2) }}</span>
-          </template>
-          <template #todaybuyaverageprice="{ record }">
-              <span>{{ record.todaybuyaverageprice.toFixed(2) }}</span>
-          </template>
-          <template #todaysellaverageprice="{ record }">
-              <span>{{ record.todaysellaverageprice.toFixed(2) }}</span>
-          </template>
-          <template #actualpl="{ record }">
-              <span>{{ record.actualpl.toFixed(2) }}</span>
-          </template>
-          <template #curspotprice="{ record }">
-              <span>{{ record.curspotprice.toFixed(2) }}</span>
-          </template>
-          <template #floatpl="{ record }">
-              <span>{{ record.floatpl.toFixed(2) }}</span>
-          </template>
-          <template #curmarketvalue="{ record }">
-              <span>{{ record.curmarketvalue.toFixed(2) }}</span>
-          </template>
-      </a-table>
-    </Description>
-  </div>
+    <!-- 现货报表 -->
+    <div class="table-detail-container table-height" :loading="loading">
+        <Filter @update="search" @filter="updateColumn"></Filter>
+        <a-table :columns="columns" class="topOrderTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
+            <template #curaverageprice="{ record }">
+                <span>{{ record.curaverageprice.toFixed(2) }}</span>
+            </template>
+            <template #oriaverageprice="{ record }">
+                <span>{{ record.oriaverageprice.toFixed(2) }}</span>
+            </template>
+            <template #oriamount="{ record }">
+                <span>{{ record.oriamount.toFixed(2) }}</span>
+            </template>
+            <template #todaybuyamount="{ record }">
+                <span>{{ record.todaybuyamount.toFixed(2) }}</span>
+            </template>
+            <template #todaybuyaverageprice="{ record }">
+                <span>{{ record.todaybuyaverageprice.toFixed(2) }}</span>
+            </template>
+            <template #todaysellaverageprice="{ record }">
+                <span>{{ record.todaysellaverageprice.toFixed(2) }}</span>
+            </template>
+            <template #actualpl="{ record }">
+                <span>{{ record.actualpl.toFixed(2) }}</span>
+            </template>
+            <template #curspotprice="{ record }">
+                <span>{{ record.curspotprice.toFixed(2) }}</span>
+            </template>
+            <template #floatpl="{ record }">
+                <span>{{ record.floatpl.toFixed(2) }}</span>
+            </template>
+            <template #curmarketvalue="{ record }">
+                <span>{{ record.curmarketvalue.toFixed(2) }}</span>
+            </template>
+        </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+                <template #curaverageprice="{ record }">
+                    <span>{{ record.curaverageprice.toFixed(2) }}</span>
+                </template>
+                <template #oriaverageprice="{ record }">
+                    <span>{{ record.oriaverageprice.toFixed(2) }}</span>
+                </template>
+                <template #oriamount="{ record }">
+                    <span>{{ record.oriamount.toFixed(2) }}</span>
+                </template>
+                <template #todaybuyamount="{ record }">
+                    <span>{{ record.todaybuyamount.toFixed(2) }}</span>
+                </template>
+                <template #todaybuyaverageprice="{ record }">
+                    <span>{{ record.todaybuyaverageprice.toFixed(2) }}</span>
+                </template>
+                <template #todaysellaverageprice="{ record }">
+                    <span>{{ record.todaysellaverageprice.toFixed(2) }}</span>
+                </template>
+                <template #actualpl="{ record }">
+                    <span>{{ record.actualpl.toFixed(2) }}</span>
+                </template>
+                <template #curspotprice="{ record }">
+                    <span>{{ record.curspotprice.toFixed(2) }}</span>
+                </template>
+                <template #floatpl="{ record }">
+                    <span>{{ record.floatpl.toFixed(2) }}</span>
+                </template>
+                <template #curmarketvalue="{ record }">
+                    <span>{{ record.curmarketvalue.toFixed(2) }}</span>
+                </template>
+            </a-table>
+        </Description>
+    </div>
 </template>
 
 <script lang="ts">
@@ -102,6 +85,7 @@ import { ref, watchEffect } from 'vue';
 import { queryResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
 import { TabList } from '@/common/components/description/interface';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'spot-report',
@@ -142,10 +126,12 @@ export default defineComponent({
             expandedRowKeys,
             selectedRow,
             Rowclick, // 表格事件
-            tabList,
         } = handleComposeTable_detail<Ermcp3AreaSpotPLReport>(param);
         const chaceSearchValue = ref<TypeAndTime>();
 
+        // 底部明细标签
+        const tabList = getTableButton(['spot_report_spot_detail']);
+
         // 切换明细
         function changeTab(index: number, current: TabList) {
             const { code, lable } = current;
@@ -174,8 +160,8 @@ export default defineComponent({
         }
         watchEffect(() => {
             if (visible.value) {
-                if (tabList.value.length) {
-                    changeTab(0, tabList.value[0]);
+                if (tabList.length) {
+                    changeTab(0, tabList[0]);
                 }
             }
         });
@@ -189,9 +175,4 @@ export default defineComponent({
         return { loading, tableList, visible, closeDrawer, columns, updateColumn, search, columnsDetail, detailTableList, expandedRowKeys, selectedRow, Rowclick, tabList, changeTab };
     },
 });
-</script>
-
-<style lang="less">
-.spot-report {
-}
-</style>;
+</script>

+ 50 - 76
src/views/report/sum_pl_report/list/sum_pl_report/index.vue

@@ -1,72 +1,47 @@
 <template>
-  <!-- 汇总损益报表 -->
-  <div class="table-detail-container table-height"
-       :loading="loading">
-    <Filter @update="search"></Filter>
-    <a-table :columns="columns"
-             class="topOrderTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-      <!-- 出现浮点失真  强行处理-->
-      <template #spotactualpl="{ record }">
-        <span>{{ record.spotactualpl.toFixed(2) }}</span>
-      </template>
-
-      <template #spotfloatpl="{ record }">
-        <span>{{ record.spotfloatpl.toFixed(2) }}</span>
-      </template>
-
-      <template #futureactualpl="{ record }">
-        <span>{{ record.futureactualpl.toFixed(2) }}</span>
-      </template>
-
-      <template #sumactualpl="{ record }">
-        <span>{{ record.sumactualpl.toFixed(2) }}</span>
-      </template>
-
-      <template #sumpl="{ record }">
-        <span>{{ record.sumpl.toFixed(2) }}</span>
-      </template>
-
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-          <!-- 出现浮点失真  强行处理 * 2-->
-          <template #spotactualpl="{ record }">
-              <span>{{ record.spotactualpl.toFixed(2) }}</span>
-          </template>
-
-          <template #spotfloatpl="{ record }">
-              <span>{{ record.spotfloatpl.toFixed(2) }}</span>
-          </template>
-
-          <template #futureactualpl="{ record }">
-              <span>{{ record.futureactualpl.toFixed(2) }}</span>
-          </template>
-
-          <template #sumactualpl="{ record }">
-              <span>{{ record.sumactualpl.toFixed(2) }}</span>
-          </template>
-
-          <template #sumpl="{ record }">
-              <span>{{ record.sumpl.toFixed(2) }}</span>
-          </template>
-      </a-table>
-    </Description>
-  </div>
+    <!-- 汇总损益报表 -->
+    <div class="table-detail-container table-height" :loading="loading">
+        <Filter @update="search"></Filter>
+        <a-table :columns="columns" class="topOrderTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
+            <!-- 出现浮点失真  强行处理-->
+            <template #spotactualpl="{ record }">
+                <span>{{ record.spotactualpl.toFixed(2) }}</span>
+            </template>
+            <template #spotfloatpl="{ record }">
+                <span>{{ record.spotfloatpl.toFixed(2) }}</span>
+            </template>
+            <template #futureactualpl="{ record }">
+                <span>{{ record.futureactualpl.toFixed(2) }}</span>
+            </template>
+            <template #sumactualpl="{ record }">
+                <span>{{ record.sumactualpl.toFixed(2) }}</span>
+            </template>
+            <template #sumpl="{ record }">
+                <span>{{ record.sumpl.toFixed(2) }}</span>
+            </template>
+        </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+                <!-- 出现浮点失真  强行处理 * 2-->
+                <template #spotactualpl="{ record }">
+                    <span>{{ record.spotactualpl.toFixed(2) }}</span>
+                </template>
+                <template #spotfloatpl="{ record }">
+                    <span>{{ record.spotfloatpl.toFixed(2) }}</span>
+                </template>
+                <template #futureactualpl="{ record }">
+                    <span>{{ record.futureactualpl.toFixed(2) }}</span>
+                </template>
+                <template #sumactualpl="{ record }">
+                    <span>{{ record.sumactualpl.toFixed(2) }}</span>
+                </template>
+                <template #sumpl="{ record }">
+                    <span>{{ record.sumpl.toFixed(2) }}</span>
+                </template>
+            </a-table>
+        </Description>
+    </div>
 </template>
 
 <script lang="ts">
@@ -82,6 +57,8 @@ import { Ermcp3ArealSumPL, QryAreaSumPLReq } from '@/services/go/ermcp/report/in
 import { qryAreaSumPL } from '@/services/go/ermcp/report';
 import { TabList } from '@/common/components/description/interface';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
+
 export default defineComponent({
     name: 'sum_pl_report',
     components: {
@@ -121,10 +98,12 @@ export default defineComponent({
             expandedRowKeys,
             selectedRow,
             Rowclick, // 表格事件
-            tabList,
         } = handleComposeTable_detail<Ermcp3ArealSumPL>(param);
         const chaceSearchValue = ref<TypeAndTime>();
 
+        // 底部明细标签
+        const tabList = getTableButton(['sum_pl_report_profit_and_loss_details']);
+
         // 切换明细
         function changeTab(index: number, current: TabList) {
             const { code, lable } = current;
@@ -152,8 +131,8 @@ export default defineComponent({
         }
         watchEffect(() => {
             if (visible.value) {
-                if (tabList.value.length) {
-                    changeTab(0, tabList.value[0]);
+                if (tabList.length) {
+                    changeTab(0, tabList[0]);
                 }
             }
         });
@@ -169,8 +148,3 @@ export default defineComponent({
     },
 });
 </script>
-
-<style lang="less">
-.exposure-report {
-}
-</style>;

+ 13 - 29
src/views/search/inventory/list/inventory_current/index.vue

@@ -1,35 +1,18 @@
 <template>
-  <!-- 库存查询: 当前库存-->
-  <div class="inventory_current"
-       :loading="loading">
-    <Filter @search="updateColumn">
-    </Filter>
-    <a-table :columns="columns"
-             class="topTable"
-             :pagination="false"
-             rowKey="key"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             :data-source="tableList">
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-        <!-- 类型 -->
-        <!-- <template #logtype="{ record }">
+    <!-- 库存查询: 当前库存-->
+    <div class="inventory_current" :loading="loading">
+        <Filter @search="updateColumn"> </Filter>
+        <a-table :columns="columns" class="topTable" :pagination="false" rowKey="key" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" :data-source="tableList"> </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+                <!-- 类型 -->
+                <!-- <template #logtype="{ record }">
           <span>{{ getLogType(record.logtype) }}</span>
         </template> -->
-      </a-table>
-    </Description>
-  </div>
+            </a-table>
+        </Description>
+    </div>
 </template>
 
 <script lang="ts">
@@ -45,6 +28,7 @@ import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { handleComposeTable_detail } from '@/common/setup/table/compose';
 import { TabList } from '@/common/components/description/interface';
 import { watchEffect } from 'vue';
+import { getTableButton } from '@/common/setup/table/button';
 
 export default defineComponent({
     name: 'inventory_current',