li.shaoyi 4 gadi atpakaļ
vecāks
revīzija
4cf234e2a7
36 mainītis faili ar 1093 papildinājumiem un 1124 dzēšanām
  1. 1 1
      public/config/app.config.json
  2. 4 1
      src/views/business/exposure/list/realTime/index.vue
  3. 44 46
      src/views/platinum/platinum_document_query/list/order/index.vue
  4. 37 40
      src/views/platinum/platinum_document_query/list/position/index.vue
  5. 40 44
      src/views/platinum/platinum_document_query/list/success/index.vue
  6. 39 43
      src/views/platinum/platinum_document_query/list/waiting/index.vue
  7. 32 34
      src/views/platinum/platinum_financing_information/list/tab/compoments/detail/index.vue
  8. 60 53
      src/views/platinum/platinum_financing_information/list/tab/index.vue
  9. 28 38
      src/views/platinum/platinum_fixed_investment_price_query/list/tab/index.vue
  10. 27 35
      src/views/platinum/platinum_fixed_investment_query/list/flow/index.vue
  11. 38 46
      src/views/platinum/platinum_fixed_investment_query/list/plan/index.vue
  12. 30 22
      src/views/platinum/platinum_pick_query/list/tab/compoments/complete_stocking/index.vue
  13. 31 20
      src/views/platinum/platinum_pick_query/list/tab/compoments/confirm_pickup/index.vue
  14. 0 59
      src/views/platinum/platinum_pick_query/list/tab/compoments/controlModal/index.vue
  15. 5 4
      src/views/platinum/platinum_pick_query/list/tab/compoments/detail/index.vue
  16. 31 20
      src/views/platinum/platinum_pick_query/list/tab/compoments/query_receipt/index.vue
  17. 55 35
      src/views/platinum/platinum_pick_query/list/tab/compoments/upload_logistics/index.vue
  18. 25 56
      src/views/platinum/platinum_pick_query/list/tab/index.vue
  19. 0 22
      src/views/platinum/platinum_pick_query/list/tab/setup.ts
  20. 0 52
      src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/compoments/controlModal/index.vue
  21. 5 3
      src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/compoments/detail/index.vue
  22. 29 19
      src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/compoments/payment/index.vue
  23. 30 19
      src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/compoments/refuse/index.vue
  24. 75 73
      src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/index.vue
  25. 0 53
      src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/compoments/controlModal/index.vue
  26. 5 4
      src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/compoments/detail/index.vue
  27. 30 19
      src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/compoments/refuse/index.vue
  28. 30 19
      src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/compoments/withdrawal/index.vue
  29. 66 64
      src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/index.vue
  30. 37 20
      src/views/report/exposure-report/list/exposure_report/index.vue
  31. 25 9
      src/views/report/finance-report/list/finance_report_finance/index.vue
  32. 35 19
      src/views/report/future_report/list/future_report/index.vue
  33. 26 9
      src/views/report/inventory-report/list/category/index.vue
  34. 26 9
      src/views/report/inventory-report/list/warehouse/index.vue
  35. 88 71
      src/views/report/spot-report/list/spot_report/index.vue
  36. 59 43
      src/views/report/sum_pl_report/list/sum_pl_report/index.vue

+ 1 - 1
public/config/app.config.json

@@ -1,3 +1,3 @@
 {
-    "apiUrl": "http://192.168.31.203:8080/cfg?key=test_203"
+    "apiUrl": "http://192.168.31.175:8080/cfg?key=test_175"
 }

+ 4 - 1
src/views/business/exposure/list/realTime/index.vue

@@ -12,7 +12,7 @@
             <a-button type="button" class="operBtn ant-btn" @click="setTimerAction">{{ isStart ? '停止监控' : '开始监控' }}</a-button>
         </div>
         <filterCustomTable @search="updateColumn" v-else> </filterCustomTable>
-        <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 :columns="columns" class="srcollYTable" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
             <template v-if="isPingAnOem()" #index="{ index }">
                 <span>{{ index + 1 }}</span>
             </template>
@@ -27,6 +27,9 @@
                 <template #middlegoodsname="{ record }" v-if="!isPingAnOem()">
                     <span>{{ record.middlegoodsname + '/' + record.middlegoodscode }}</span>
                 </template>
+                <template #goodsname="{ record }" v-if="!isPingAnOem()">
+                    <span>{{ record.goodsname + '/' + record.goodscode }}</span>
+                </template>
                 <template v-if="isPingAnOem()" #index="{ index }">
                     <span>{{ index + 1 }}</span>
                 </template>

+ 44 - 46
src/views/platinum/platinum_document_query/list/order/index.vue

@@ -1,48 +1,57 @@
 <template>
-    <!-- 单据查询 委托单-->
-    <div class="platinum_document_query_order">
-        <Filter @search="search" />
-        <contextMenu :contextMenuList="firstBtn">
-            <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 #expandedRowRender="{ record }">
-                    <BtnList :btnList="firstBtn" class="btn-list-sticky" @onClick="btnClick(record)" />
-                </template>
-                <!-- 账户类型 -->
-                <template #userinfotype="{ record }">
-                    <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
-                </template>
-                <!-- 委托状态 -->
-                <template #orderstatus="{ record }">
-                    <a>{{ getOrderStatusName(record.orderstatus) }}</a>
-                </template>
-            </a-table>
-        </contextMenu>
-        <!-- <ControlModal :selectedRow="selectedRow" /> -->
-    </div>
+  <!-- 单据查询 委托单-->
+  <div class="platinum_fixed_investment_price_query_tab">
+    <Filter @search="search" />
+    <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 #userinfotype="{ record }">
+        <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
+      </template>
+      <!-- 委托状态 -->
+      <template #orderstatus="{ record }">
+        <a>{{ getOrderStatusName(record.orderstatus) }}</a>
+      </template>
+    </a-table>
+  </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, contextMenu, BtnList, _getBtnList, queryTableList } from '@/common/export/table';
-import { queryTradeOrderDetail } from '@/services/go/ermcp/qhj';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getOrderStatusName } from '@/common/constants/enumsName';
+import { ComposeTableParam, defineComponent, handleComposeTable, queryTableList } from '@/common/export/commonTable';
+import { getUserId } from '@/services/bus/user';
 import { QueryTradeOrderDetailRsp } from '@/services/go/ermcp/order/interface';
-import Filter from '../../compoments/filter/index.vue';
+import { queryTradeOrderDetail } from '@/services/go/ermcp/qhj';
 import { QueryTradeOrderDetailReq } from '@/services/go/ermcp/qhj/interface';
-import { getUserId } from '@/services/bus/user';
-import { getOrderStatusName } from '@/common/constants/enumsName';
+import Filter from '../../compoments/filter/index.vue';
 
 export default defineComponent({
     name: 'platinum_document_query_order',
-    components: { Filter, contextMenu, BtnList },
+    components: { Filter },
     setup() {
-        // 表头数据
-        const { columns, registerColumn, updateColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QueryTradeOrderDetailRsp>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_document_query_order', false).value;
         // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList();
+        const { loading, tableList, queryTable } = queryTableList<QueryTradeOrderDetailRsp>();
+        const queryTableAction = () => {
+            // 获取列表数据
+            queryTable(queryTradeOrderDetail, { userid: getUserId() });
+        };
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_order',
+            tableFilterKey: [],
+            isDetail: true,
+        };
+
         function search(value: any) {
             const { includesub, goodsid, filtername, userid, ordertime, userinfotype } = value;
             const len = ordertime.length;
@@ -57,23 +66,12 @@ export default defineComponent({
             };
             queryTable(queryTradeOrderDetail, param);
         }
-        initData(() => {
-            // 获取列表数据
-            queryTable(queryTradeOrderDetail, { userid: getUserId() });
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_order', ['goodsid', 'ordertime', 'operatorid']);
-        });
 
         return {
-            columns,
+            ...handleComposeTable<QueryTradeOrderDetailRsp>(param),
             search,
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            firstBtn,
             loading,
             tableList,
-            btnClick,
             getOrderStatusName,
         };
     },

+ 37 - 40
src/views/platinum/platinum_document_query/list/position/index.vue

@@ -1,43 +1,52 @@
 <template>
-    <!-- 单据查询 持仓-->
-    <div class="platinum_document_query_position">
-        <Filter @search="search" />
-        <contextMenu :contextMenuList="firstBtn">
-            <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 #expandedRowRender="{ record }">
-                    <BtnList :btnList="firstBtn" class="btn-list-sticky" @onClick="btnClick(record)" />
-                </template>
-                <!-- 账户类型 -->
-                <template #userinfotype="{ record }">
-                    <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
-                </template>
-            </a-table>
-        </contextMenu>
-        <!-- <ControlModal :selectedRow="selectedRow" /> -->
-    </div>
+  <!-- 单据查询 持仓-->
+  <div class="platinum_fixed_investment_price_query_tab">
+    <Filter @search="search" />
+    <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 #userinfotype="{ record }">
+        <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
+      </template>
+    </a-table>
+  </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, contextMenu, BtnList, _getBtnList, queryTableList } from '@/common/export/table';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { ComposeTableParam, defineComponent, handleComposeTable, queryTableList } from '@/common/export/commonTable';
+import { getUserId } from '@/services/bus/user';
 import { QueryTradePositionRsp } from '@/services/go/ermcp/order/interface';
+import { queryTradePosition } from '@/services/go/ermcp/qhj';
 import { QueryTradePositionReq } from 'src/services/go/ermcp/qhj/interface';
 import Filter from './compoments/filter/index.vue';
-import { queryTradePosition } from '@/services/go/ermcp/qhj';
-import { getUserId } from '@/services/bus/user';
 
 export default defineComponent({
     name: 'platinum_document_query_position',
-    components: { Filter, contextMenu, BtnList },
+    components: { Filter },
     setup() {
-        // 表头数据
-        const { columns, registerColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QueryTradePositionRsp>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_document_query_position', false).value;
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<QueryTradePositionRsp>();
+        const queryTableAction = () => {
+            // 获取列表数据
+            queryTable(queryTradePosition, { userid: getUserId() });
+        };
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_holder_order',
+            tableFilterKey: [],
+            isDetail: true,
+        };
+
         function search(value: any) {
             const { includesub, goodsid, filtername, userid, userinfotype } = value;
             const param: QueryTradePositionReq = {
@@ -49,24 +58,12 @@ export default defineComponent({
             };
             queryTable(queryTradePosition, param);
         }
-        initData(() => {
-            // 获取列表数据
-            queryTable(queryTradePosition, { userid: getUserId() });
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_holder_order', []);
-        });
 
         return {
+            ...handleComposeTable<QueryTradePositionRsp>(param),
             search,
-            columns,
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            firstBtn,
             loading,
             tableList,
-            queryTable,
-            btnClick,
         };
     },
 });

+ 40 - 44
src/views/platinum/platinum_document_query/list/success/index.vue

@@ -1,48 +1,56 @@
 <template>
-    <!-- 单据查询 成交单-->
-    <div class="platinum_document_query_success">
-        <Filter @search="search" />
-        <contextMenu :contextMenuList="firstBtn">
-            <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 #expandedRowRender="{ record }">
-                    <BtnList :btnList="firstBtn" class="btn-list-sticky" @onClick="btnClick(record)" />
-                </template>
-                <!-- 账户类型 -->
-                <template #userinfotype="{ record }">
-                    <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
-                </template>
-                <!-- 成交类型 -->
-                <template #buyorsell="{ record }">
-                    <a>{{ record.buyorsell === 1 ? '卖' : '买' }}</a>
-                </template>
-            </a-table>
-        </contextMenu>
-        <!-- <ControlModal :selectedRow="selectedRow" /> -->
-    </div>
+  <!-- 单据查询 成交单-->
+  <div class="platinum_document_query_success">
+    <Filter @search="search" />
+    <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 #userinfotype="{ record }">
+        <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
+      </template>
+      <!-- 成交类型 -->
+      <template #buyorsell="{ record }">
+        <a>{{ record.buyorsell === 1 ? '卖' : '买' }}</a>
+      </template>
+    </a-table>
+  </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, queryTableList, contextMenu, BtnList, _getBtnList } from '@/common/export/table';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { ComposeTableParam, defineComponent, handleComposeTable, queryTableList } from '@/common/export/commonTable';
 import { getUserId } from '@/services/bus/user';
 import { queryTradeDetail } from '@/services/go/ermcp/qhj';
 import { QueryTradeDetailReq } from '@/services/go/ermcp/qhj/interface';
 import { ErmcpWareHouseInfo } from '@/views/information/warehouse-info/list';
 import Filter from '../../compoments/filter/index.vue';
-// import ControlModal from './compoments/controlModal/index.vue';
 
 export default defineComponent({
     name: 'platinum_document_query_success',
-    components: { Filter, contextMenu, BtnList },
+    components: { Filter },
     setup() {
-        // 表头数据
-        const { columns, registerColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<ErmcpWareHouseInfo>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_document_query_success', false).value;
         // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList();
+        const { loading, tableList, queryTable } = queryTableList<ErmcpWareHouseInfo>();
+        const queryTableAction = () => {
+            // 获取列表数据
+            queryTable(queryTradeDetail, { userid: getUserId() });
+        };
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_deal_order',
+            tableFilterKey: [],
+            isDetail: true,
+        };
+
         function search(value: any) {
             const { includesub, goodsid, filtername, userid, ordertime, userinfotype } = value;
             const len = ordertime.length;
@@ -57,24 +65,12 @@ export default defineComponent({
             };
             queryTable(queryTradeDetail, param);
         }
-        initData(() => {
-            // 获取列表数据
-            queryTable(queryTradeDetail, { userid: getUserId() });
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_deal_order', ['tradetime', 'accountid', 'goodsid']);
-        });
 
         return {
-            columns,
+            ...handleComposeTable<ErmcpWareHouseInfo>(param),
             search,
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            firstBtn,
             loading,
             tableList,
-            queryTable,
-            btnClick,
         };
     },
 });

+ 39 - 43
src/views/platinum/platinum_document_query/list/waiting/index.vue

@@ -1,47 +1,55 @@
 <template>
-    <!-- 单据查询 待付单-->
-    <div class="platinum_document_query_waiting">
-        <Filter @search="search" />
-        <contextMenu :contextMenuList="firstBtn">
-            <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 #expandedRowRender="{ record }">
-                    <BtnList :btnList="firstBtn" class="btn-list-sticky" @onClick="btnClick(record)" />
-                </template>
-                <!-- 账户类型 -->
-                <template #userinfotype="{ record }">
-                    <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
-                </template>
-                <template #paylimitedtime="{ record }">
-                    <a>{{ isOverTime(record.paylimitedtime) }}</a>
-                </template>
-            </a-table>
-        </contextMenu>
-        <!-- <ControlModal :selectedRow="selectedRow" /> -->
-    </div>
+  <!-- 单据查询 待付单-->
+  <div class="platinum_fixed_investment_price_query_tab">
+    <Filter @search="search" />
+    <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 #userinfotype="{ record }">
+        <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
+      </template>
+      <template #paylimitedtime="{ record }">
+        <a>{{ isOverTime(record.paylimitedtime) }}</a>
+      </template>
+    </a-table>
+  </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, queryTableList, contextMenu, BtnList, _getBtnList } from '@/common/export/table';
+import { ComposeTableParam, defineComponent, handleComposeTable, queryTableList } from '@/common/export/commonTable';
 import { getUserId } from '@/services/bus/user';
 import { queryTradePayOrder } from '@/services/go/ermcp/qhj';
 import { QhjPayOrder, QueryTradePayOrderReq } from '@/services/go/ermcp/qhj/interface';
 import Filter from './compoments/filter/index.vue';
 import moment from 'moment';
-// import ControlModal from './compoments/controlModal/index.vue';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
 
 export default defineComponent({
     name: 'platinum_document_query_waiting',
-    components: { Filter, contextMenu, BtnList },
+    components: { Filter },
     setup() {
-        // 表头数据
-        const { columns, registerColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QhjPayOrder>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_document_query_waiting', false).value;
         // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList();
+        const { loading, tableList, queryTable } = queryTableList<QhjPayOrder>();
+        const queryTableAction = () => {
+            // 获取列表数据
+            queryTable(queryTradePayOrder, { userid: getUserId(), payflag: '1,3,5' });
+        };
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_pay_bill',
+            tableFilterKey: [],
+            isDetail: true,
+        };
+
         function search(value: any) {
             const { includesub, goodsid, filtername, userid, ordertime, userinfotype, isOverTime } = value;
             const len = ordertime.length;
@@ -58,25 +66,13 @@ export default defineComponent({
             queryTable(queryTradePayOrder, param);
         }
         const isOverTime = (value: string) => (moment().isAfter(moment(value)) ? '付款超时' : value);
-        initData(() => {
-            // 获取列表数据
-            queryTable(queryTradePayOrder, { userid: getUserId(), payflag: '1,3,5' });
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_pay_bill', []);
-        });
 
         return {
+            ...handleComposeTable<QhjPayOrder>(param),
             search,
             isOverTime,
-            columns,
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            firstBtn,
             loading,
             tableList,
-            queryTable,
-            btnClick,
         };
     },
 });

+ 32 - 34
src/views/platinum/platinum_financing_information/list/tab/compoments/detail/index.vue

@@ -32,28 +32,28 @@
 </template>
 
 <script lang="ts">
-import { defineComponent, PropType, ref, watchEffect } from 'vue';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import { formatValue } from '@/common/methods';
 import { Des, handleDesList } from '@/common/components/commonDes';
-import { closeModal } from '@/common/setup/modal';
+import { getFinancingStatus } from '@/common/constants/enumsName';
 import { queryTableList } from '@/common/export/table';
-import { QhjContract, QueryContractLogReq } from '@/services/go/ermcp/qhj/interface';
+import { formatValue } from '@/common/methods';
+import { _closeModal } from '@/common/setup/modal/modal';
 import { queryContractLog } from '@/services/go/ermcp/qhj';
-import Long from 'long';
-import {getFinancingStatus} from "@/common/constants/enumsName";
+import { QhjContract, QueryContractLogReq } from '@/services/go/ermcp/qhj/interface';
+import { defineComponent, PropType } from 'vue';
 
 export default defineComponent({
     name: 'platinum_financing_information_detail',
     components: { Des },
+    emits: ['cancel', 'update'],
     props: {
         selectedRow: {
             type: Object as PropType<QhjContract>,
             default: {},
         },
     },
-    setup(props: { selectedRow: QhjContract }) {
-        const { visible, cancel } = closeModal('platinum_financing_information_detail');
+    setup(props: { selectedRow: QhjContract }, context) {
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const { desList, getDesList } = handleDesList();
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList();
@@ -116,33 +116,31 @@ export default defineComponent({
             }
             return result;
         }
-        watchEffect(() => {
-            if (visible.value) {
-                const data = props.selectedRow;
 
-                const addinfo = data.currisklevel === 2 ? " 需追加" + data.reckonrecovermargin + "元" : ""
-                // 个人
-                const person = [
-                    { label: '账号', value: formatValue(data.logincode) },
-                    { label: '名称', value: formatValue(data.username) },
-                    { label: '账户类型', value: formatValue(data.userinfotype === 1 ? '个人' : '企业') },
-                    { label: '商品', value: formatValue(data.goodsname) },
-                    { label: '价格', value: formatValue(data.tradeprice) },
-                    { label: '数 量', value: formatValue(data.wrqty) },
-                    { label: '金额', value: formatValue(data.lenderamount) },
-                    { label: '已付款', value: formatValue(data.payamount) },
-                    { label: '融资额', value: formatValue(data.remainamount) },
-                    { label: '融资时间', value: formatValue(data.contractconfirmtime) },
-                    { label: '状 态', value: getFinancingStatus(data.currisklevel, data.reckonrecovermargin.toString()) + addinfo},
-                ];
+        const data = props.selectedRow;
+
+        const addinfo = data.currisklevel === 2 ? ' 需追加' + data.reckonrecovermargin + '元' : '';
+        // 个人
+        const person = [
+            { label: '账号', value: formatValue(data.logincode) },
+            { label: '名称', value: formatValue(data.username) },
+            { label: '账户类型', value: formatValue(data.userinfotype === 1 ? '个人' : '企业') },
+            { label: '商品', value: formatValue(data.goodsname) },
+            { label: '价格', value: formatValue(data.tradeprice) },
+            { label: '数 量', value: formatValue(data.wrqty) },
+            { label: '金额', value: formatValue(data.lenderamount) },
+            { label: '已付款', value: formatValue(data.payamount) },
+            { label: '融资额', value: formatValue(data.remainamount) },
+            { label: '融资时间', value: formatValue(data.contractconfirmtime) },
+            { label: '状 态', value: getFinancingStatus(data.currisklevel, data.reckonrecovermargin.toString()) + addinfo },
+        ];
+
+        getDesList(person);
+        const param: QueryContractLogReq = {
+            scfcontractid: data.scfcontractid,
+        };
+        queryTable(queryContractLog, param);
 
-                getDesList(person);
-                const param: QueryContractLogReq = {
-                    scfcontractid: data.scfcontractid,
-                };
-                queryTable(queryContractLog, param);
-            }
-        });
         return {
             desList,
             cancel,

+ 60 - 53
src/views/platinum/platinum_financing_information/list/tab/index.vue

@@ -2,77 +2,84 @@
   <!-- 融资信息 -->
   <div class="platinum_financing_information_tab">
     <Filter @search="updateColumn" />
-    <contextMenu :contextMenuList="firstBtn">
-      <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 #expandedRowRender="{ record }">
-          <BtnList :btnList="firstBtn"
-                   class="btn-list-sticky"
-                   @onClick="btnClick(record)" />
-        </template>
-        <!-- 物流信息 -->
-        <template #scfcontractstatus="{ record }">
-          <div>{{ getFinancingStatus(record.currisklevel, record.reckonrecovermargin) }}</div>
-          <div v-if="record.currisklevel === 2">{{  "需追加" + record.reckonrecovermargin + "元" }}
-          </div>
-        </template>
+    <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="buttons"
+                          :record="record"
+                          @click="openComponent" />
+      </template>
+      <!-- 物流信息 -->
+      <template #scfcontractstatus="{ record }">
+        <div>{{ getFinancingStatus(record.currisklevel, record.reckonrecovermargin) }}</div>
+        <div v-if="record.currisklevel === 2">{{  "需追加" + record.reckonrecovermargin + "元" }}
+        </div>
+      </template>
 
-        <!-- 账户类型 -->
-        <template #userinfotype="{ record }">
-          <a>{{ record.userinfotype === 1 ? "个人" : "企业" }}</a>
-        </template>
+      <!-- 账户类型 -->
+      <template #userinfotype="{ record }">
+        <a>{{ record.userinfotype === 1 ? "个人" : "企业" }}</a>
+      </template>
 
-      </a-table>
-    </contextMenu>
-    <Detail :selectedRow="selectedRow" />
+    </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 { defineComponent, initData, getTableColumns, getTableEvent, contextMenu, BtnList, _getBtnList, queryTableList } from '@/common/export/table';
-import Filter from './compoments/filter/index.vue';
-import Detail from './compoments/detail/index.vue';
-import { QhjContract } from '@/services/go/ermcp/qhj/interface';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getFinancingStatus } from '@/common/constants/enumsName';
+import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, MtpTableButton, queryTableList } from '@/common/export/commonTable';
+import { getTableButton } from '@/common/setup/table/button';
 import { queryContract } from '@/services/go/ermcp/qhj';
-import { getContractName, getFinancingStatus } from '@/common/constants/enumsName';
+import { QhjContract } from '@/services/go/ermcp/qhj/interface';
+import Filter from './compoments/filter/index.vue';
 
 export default defineComponent({
     name: 'platinum_financing_information_tab',
-    components: { Filter, contextMenu, BtnList, Detail },
+    components: {
+        Filter,
+        contextMenu,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('./compoments/detail/index.vue')), // 详情
+    },
     setup() {
-        // 表头数据
-        const { columns, registerColumn, updateColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QhjContract>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_financing_information_tab', false).value;
         // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList();
-        initData(() => {
+        const { loading, tableList, queryTable } = queryTableList<QhjContract>();
+        const queryTableAction = () => {
             // 获取列表数据
             queryTable(queryContract);
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_fixed_financing_information', ['goodsid', 'contractconfirmtime']);
-        });
+        };
 
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_fixed_financing_information',
+            tableFilterKey: ['goodsid', 'contractconfirmtime'],
+            isDetail: true,
+        };
+        const buttons = getTableButton();
         return {
-            columns,
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            firstBtn,
+            ...handleComposeTable<QhjContract>(param),
             loading,
             tableList,
-            updateColumn,
-            queryTable,
-            btnClick,
+            buttons,
             getFinancingStatus,
         };
     },

+ 28 - 38
src/views/platinum/platinum_fixed_investment_price_query/list/tab/index.vue

@@ -2,62 +2,52 @@
   <!-- 定投价查询 -->
   <div class="platinum_fixed_investment_price_query_tab">
     <Filter @search="updateColumn" />
-    <contextMenu :contextMenuList="firstBtn">
-      <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 #goodsid="{ record }">
-          <a>{{ record.goodsname + "-" +  record.goodscode }}</a>
-        </template>
-      </a-table>
-    </contextMenu>
+    <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 #goodsid="{ record }">
+        <a>{{ record.goodsname + "-" +  record.goodscode }}</a>
+      </template>
+    </a-table>
   </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, queryTableList, contextMenu, BtnList, _getBtnList } from '@/common/export/table';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { ComposeTableParam, defineComponent, handleComposeTable, queryTableList } from '@/common/export/commonTable';
 import { queryReckonPriceLog } from '@/services/go/ermcp/qhj';
 import { QhjReckonPriceLog } from '@/services/go/ermcp/qhj/interface';
 import Filter from '../../compoments/filter/index.vue';
 
 export default defineComponent({
     name: 'platinum_fixed_investment_price_query_tab',
-    components: { Filter, contextMenu, BtnList },
+    components: { Filter },
     setup() {
-        // 表头数据
-        const { columns, registerColumn, updateColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QhjReckonPriceLog>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_fixed_investment_price_query_tab', false).value;
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<QhjReckonPriceLog>();
-        initData(() => {
-            // 获取列表数据
+        const queryTableAction = () => {
             queryTable(queryReckonPriceLog);
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_fixed_investment_price_query', ['tradedate', 'goodsid']);
-        });
+        };
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_fixed_investment_price_query',
+            tableFilterKey: ['tradedate', 'goodsid'],
+            isDetail: true,
+        };
 
         return {
-            columns,
-
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            updateColumn,
-            firstBtn,
+            ...handleComposeTable<QhjReckonPriceLog>(param),
             loading,
             tableList,
-            queryTable,
-            btnClick,
         };
     },
 });

+ 27 - 35
src/views/platinum/platinum_fixed_investment_query/list/flow/index.vue

@@ -2,60 +2,52 @@
   <!-- 定投流水查询 -->
   <div class="platinum_fixed_investment_flow_query">
     <Filter @search="updateColumn" />
-    <contextMenu :contextMenuList="firstBtn">
-      <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 #triggerstatus="{ record }">
-          <a>{{ record.triggerstatus === 1 ? "成功" : "失败" }}</a>
-        </template>
-      </a-table>
-    </contextMenu>
+    <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 #triggerstatus="{ record }">
+        <a>{{ record.triggerstatus === 1 ? "成功" : "失败" }}</a>
+      </template>
+    </a-table>
   </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, contextMenu, queryTableList, BtnList, _getBtnList } from '@/common/export/table';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { ComposeTableParam, defineComponent, handleComposeTable, queryTableList } from '@/common/export/commonTable';
 import { queryRSTriggerLog } from '@/services/go/ermcp/qhj';
 import { QhjRSTriggerLog } from '@/services/go/ermcp/qhj/interface';
 import Filter from './compoments/filter/index.vue';
 
 export default defineComponent({
     name: 'platinum_fixed_investment_flow_query',
-    components: { Filter, contextMenu, BtnList },
+    components: { Filter },
     setup() {
-        // 表头数据
-        const { columns, registerColumn, updateColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QhjRSTriggerLog>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_fixed_investment_flow_query', false).value;
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<QhjRSTriggerLog>();
-        initData(() => {
+        const queryTableAction = () => {
             // 获取列表数据
             queryTable(queryRSTriggerLog);
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_fixed_investment_flow_query', ['goodsid', 'accountid', 'triggertime']);
-        });
+        };
 
-        return {
-            columns,
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_fixed_investment_flow_query',
+            tableFilterKey: ['goodsid', 'accountid', 'triggertime'],
+            isDetail: true,
+        };
 
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            firstBtn,
+        return {
+            ...handleComposeTable<QhjRSTriggerLog>(param),
             loading,
             tableList,
-            updateColumn,
-            queryTable,
-            btnClick,
         };
     },
 });

+ 38 - 46
src/views/platinum/platinum_fixed_investment_query/list/plan/index.vue

@@ -2,74 +2,66 @@
   <!-- 定投计划查询 -->
   <div class="platinum_fixed_investment_plan_query">
     <Filter @search="updateColumn" />
-    <contextMenu :contextMenuList="firstBtn">
-      <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 #userinfotype="{ record }">
-          <a>{{ record.userinfotype === 1 ? '个人' : '企业'}}</a>
-        </template>
+    <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 #userinfotype="{ record }">
+        <a>{{ record.userinfotype === 1 ? '个人' : '企业'}}</a>
+      </template>
 
-        <template #regularlymode="{ record }">
-          <a>{{ record.regularlymode === 1 ? '按数量' : '按金额'}}</a>
-        </template>
-        <template #regularlystrategystatus="{ record }">
-          <a>{{ getRegularStateName(record.regularlystrategystatus)}}</a>
-        </template>
+      <template #regularlymode="{ record }">
+        <a>{{ record.regularlymode === 1 ? '按数量' : '按金额'}}</a>
+      </template>
+      <template #regularlystrategystatus="{ record }">
+        <a>{{ getRegularStateName(record.regularlystrategystatus)}}</a>
+      </template>
 
-          <template #regularlycycle="{ record }">
-              <a>{{ record.regularlycycle === 1 ?  "每周" + getWeekName(record.regularlycyclevalue) : "每月" + record.regularlycyclevalue + "日"}}</a>
-          </template>
-      </a-table>
-    </contextMenu>
+      <template #regularlycycle="{ record }">
+        <a>{{ record.regularlycycle === 1 ?  "每周" + getWeekName(record.regularlycyclevalue) : "每月" + record.regularlycyclevalue + "日"}}</a>
+      </template>
+    </a-table>
   </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, queryTableList, contextMenu, BtnList, _getBtnList } from '@/common/export/table';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getRegularStateName, getWeekName } from '@/common/constants/enumsName';
+import { ComposeTableParam, defineComponent, handleComposeTable, queryTableList } from '@/common/export/commonTable';
+import { queryRStrategy } from '@/services/go/ermcp/qhj';
 import { QhjRStrategy } from '@/services/go/ermcp/qhj/interface';
 import Filter from './compoments/filter/index.vue';
-import {getRegularStateName, getWeekName} from '@/common/constants/enumsName';
-import { queryRStrategy } from '@/services/go/ermcp/qhj';
 
 export default defineComponent({
     name: 'platinum_fixed_investment_plan_query',
-    components: { Filter, contextMenu, BtnList },
+    components: { Filter },
     setup() {
-        // 表头数据
-        const { columns, registerColumn, updateColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QhjRStrategy>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_fixed_investment_plan_query', false).value;
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<QhjRStrategy>();
-        initData(() => {
+        const queryTableAction = () => {
             // 获取列表数据
             queryTable(queryRStrategy);
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_fixed_investment_plan_query', ['goodsid', 'regularlystrategystatus', 'accountid', 'nexttriggerdate']);
-        });
+        };
 
-        return {
-            columns,
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_fixed_investment_plan_query',
+            tableFilterKey: ['goodsid', 'regularlystrategystatus', 'accountid', 'nexttriggerdate'],
+            isDetail: true,
+        };
 
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            firstBtn,
+        return {
+            ...handleComposeTable<QhjRStrategy>(param),
             loading,
             getRegularStateName,
             getWeekName,
             tableList,
-            updateColumn,
-            queryTable,
-            btnClick,
         };
     },
 });

+ 30 - 22
src/views/platinum/platinum_pick_query/list/tab/compoments/complete_stocking/index.vue

@@ -1,31 +1,39 @@
 <template>
-    <!-- 提货查询 完成备货-->
-    <a-modal class="add-custom custom-detail" title="完成备货" centered v-model:visible="visible" :maskClosable="false" @cancel="cancel" width="890px">
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">完成备货</a-button>
-            <a-button key="cancel" type="primary" :loading="loading" @click="cancel">关闭</a-button>
-        </template>
-        <CommomDetail :selectedRow="selectedRow" />
-    </a-modal>
+  <!-- 提货查询 完成备货-->
+  <a-modal class="add-custom custom-detail"
+           title="完成备货"
+           centered
+           v-model:visible="visible"
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">完成备货</a-button>
+      <a-button key="cancel"
+                type="primary"
+                :loading="loading"
+                @click="cancel">关闭</a-button>
+    </template>
+    <CommomDetail :selectedRow="selectedRow" />
+  </a-modal>
 </template>
 <script lang="ts">
-import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import CommomDetail from '../common-detail/index.vue';
-import { GoodsPickupConfirmReq, GoodsPickupOperateReq, t2bExchConfirmBusinessReq, TradeGoodsInfo } from '@/services/proto/manager/interface';
-import { getTimeValue } from '@/utils/time';
-import { getUserId } from '@/services/bus/user';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import { goodsPickupConfirm, goodsPickupOperate, t2bExchConfirmBusiness } from '@/services/proto/manager';
+import { _closeModal } from '@/common/setup/modal/modal';
+import { getUserId } from '@/services/bus/user';
 import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
-import { geLoginID_number } from '@/services/bus/login';
-import { getUUID } from 'ant-design-vue/es/vc-select/utils/commonUtil';
+import { goodsPickupConfirm } from '@/services/proto/manager';
+import { GoodsPickupConfirmReq } from '@/services/proto/manager/interface';
 import Long from 'long';
+import { defineComponent, PropType, ref } from 'vue';
+import CommomDetail from '../common-detail/index.vue';
 
 export default defineComponent({
     name: 'platinum_pick_query_complete_stocking',
-    emits: ['refresh'],
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -34,7 +42,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('platinum_pick_query_complete_stocking');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         function submit() {
             let reqParams: GoodsPickupConfirmReq = {
@@ -45,8 +54,7 @@ export default defineComponent({
                 MarketID: props.selectedRow.marketid,
             };
             requestResultLoadingAndInfo(goodsPickupConfirm, reqParams, loading, ['完成备货成功', '完成备货失败:']).then(() => {
-                cancel();
-                context.emit('refresh');
+                cancel(true);
             });
         }
         return {

+ 31 - 20
src/views/platinum/platinum_pick_query/list/tab/compoments/confirm_pickup/index.vue

@@ -1,29 +1,40 @@
 <template>
-    <!-- 提货查询 确认提货-->
-    <a-modal class="add-custom custom-detail" title="确认提货" centered v-model:visible="visible" :maskClosable="false" @cancel="cancel" width="890px">
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">确认提货</a-button>
-            <a-button key="cancel" type="primary" :loading="loading" @click="cancel">关闭</a-button>
-        </template>
-        <CommomDetail :selectedRow="selectedRow" />
-    </a-modal>
+  <!-- 提货查询 确认提货-->
+  <a-modal class="add-custom custom-detail"
+           title="确认提货"
+           centered
+           v-model:visible="visible"
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">确认提货</a-button>
+      <a-button key="cancel"
+                type="primary"
+                :loading="loading"
+                @click="cancel">关闭</a-button>
+    </template>
+    <CommomDetail :selectedRow="selectedRow" />
+  </a-modal>
 </template>
 <script lang="ts">
-import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import CommomDetail from '../common-detail/index.vue';
+import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
+import { _closeModal } from '@/common/setup/modal/modal';
+import { geLoginID_number } from '@/services/bus/login';
+import { getUserId } from '@/services/bus/user';
 import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
+import { goodsPickupOperate } from '@/services/proto/manager';
 import { GoodsPickupOperateReq } from '@/services/proto/manager/interface';
 import Long from 'long';
-import { getUserId } from '@/services/bus/user';
-import { geLoginID_number } from '@/services/bus/login';
-import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import { goodsPickupOperate } from '@/services/proto/manager';
+import { defineComponent, PropType, ref } from 'vue';
+import CommomDetail from '../common-detail/index.vue';
 
 export default defineComponent({
     name: 'platinum_pick_query_confirm_pickup',
-    emits: ['refresh'],
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -32,7 +43,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('platinum_pick_query_confirm_pickup');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         function submit() {
             let reqParams: GoodsPickupOperateReq = {
@@ -42,8 +54,7 @@ export default defineComponent({
                 loginid: Number(geLoginID_number()), // uint64 登录ID
             };
             requestResultLoadingAndInfo(goodsPickupOperate, reqParams, loading, ['确认取货成功', '确认取货失败:']).then(() => {
-                cancel();
-                context.emit('refresh');
+                cancel(true);
             });
         }
         return {

+ 0 - 59
src/views/platinum/platinum_pick_query/list/tab/compoments/controlModal/index.vue

@@ -1,59 +0,0 @@
-<template>
-    <div>
-        <!-- 详情 -->
-        <Detail :selectedRow="selectedRow" />
-        <!-- 完成备货- -->
-        <CompleteStocking :selectedRow="selectedRow" @refresh="refresh" />
-        <!-- 确认提货 -->
-        <ConfirmPickup :selectedRow="selectedRow" @refresh="refresh" />
-        <!-- 确认收货 -->
-        <Receipt :selectedRow="selectedRow" @refresh="refresh" />
-        <!-- 上传物流 -->
-        <UploadLogistics :selectedRow="selectedRow" @refresh="refresh" />
-    </div>
-</template>
-
-<script lang="ts">
-import { defineComponent, PropType } from 'vue';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import Detail from '../detail/index.vue';
-import CompleteStocking from '../complete_stocking/index.vue';
-import ConfirmPickup from '../confirm_pickup/index.vue';
-import Receipt from '../query_receipt/index.vue';
-import UploadLogistics from '../upload_logistics/index.vue';
-import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
-
-export default defineComponent({
-    name: 'custom-control-modal',
-    emits: ['refresh'],
-    components: { Detail, CompleteStocking, ConfirmPickup, Receipt, UploadLogistics },
-    props: {
-        selectedRow: {
-            type: Object as PropType<QhjTradeGoodsPickup>,
-            default: {},
-        },
-    },
-    setup(props, context) {
-        function refresh() {
-            context.emit('refresh');
-        }
-        return {
-            refresh,
-        };
-    },
-});
-</script>
-
-<style lang="less">
-.custom-detail {
-    .ant-form.inlineForm {
-        margin-top: 20px;
-    }
-    .upload {
-        .look {
-            margin-left: 0;
-        }
-    }
-}
-</style>;
-

+ 5 - 4
src/views/platinum/platinum_pick_query/list/tab/compoments/detail/index.vue

@@ -17,15 +17,15 @@
   </a-modal>
 </template>
 <script lang="ts">
+import { _closeModal } from '@/common/setup/modal/modal';
+import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
 import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
 import CommomDetail from '../common-detail/index.vue';
-import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
 
 export default defineComponent({
     name: 'platinum_withdrawal_review_detail-desc',
     components: { CommomDetail },
+    emits: ['cancel', 'update'],
     props: {
         selectedRow: {
             type: Object as PropType<QhjTradeGoodsPickup>,
@@ -33,7 +33,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('detail');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         return {
             cancel,

+ 31 - 20
src/views/platinum/platinum_pick_query/list/tab/compoments/query_receipt/index.vue

@@ -1,29 +1,40 @@
 <template>
-    <!-- 提货查询 确认收货-->
-    <a-modal class="add-custom custom-detail" title="确认收货" centered v-model:visible="visible" :maskClosable="false" @cancel="cancel" width="890px">
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">确认收货</a-button>
-            <a-button key="submit" type="primary" :loading="loading" @click="cancel">关闭</a-button>
-        </template>
-        <CommomDetail :selectedRow="selectedRow" />
-    </a-modal>
+  <!-- 提货查询 确认收货-->
+  <a-modal class="add-custom custom-detail"
+           title="确认收货"
+           centered
+           v-model:visible="visible"
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">确认收货</a-button>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="cancel">关闭</a-button>
+    </template>
+    <CommomDetail :selectedRow="selectedRow" />
+  </a-modal>
 </template>
 <script lang="ts">
-import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import CommomDetail from '../common-detail/index.vue';
-import { GoodsPickupConfirmReq, GoodsPickupOperateReq, TradeGoodsInfo } from '@/services/proto/manager/interface';
-import { getUserId } from '@/services/bus/user';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import { goodsPickupConfirm, goodsPickupOperate } from '@/services/proto/manager';
-import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
+import { _closeModal } from '@/common/setup/modal/modal';
 import { geLoginID_number } from '@/services/bus/login';
+import { getUserId } from '@/services/bus/user';
+import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
+import { goodsPickupOperate } from '@/services/proto/manager';
+import { GoodsPickupOperateReq } from '@/services/proto/manager/interface';
 import Long from 'long';
+import { defineComponent, PropType, ref } from 'vue';
+import CommomDetail from '../common-detail/index.vue';
 
 export default defineComponent({
     name: 'platinum_pick_query_receipt',
-    emits: ['refresh'],
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -32,7 +43,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('platinum_pick_query_receipt');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         function submit() {
             let reqParams: GoodsPickupOperateReq = {
@@ -42,8 +54,7 @@ export default defineComponent({
                 loginid: Number(geLoginID_number()), // uint64 登录ID
             };
             requestResultLoadingAndInfo(goodsPickupOperate, reqParams, loading, ['确认收货成功', '确认收货失败:']).then(() => {
-                cancel();
-                context.emit('refresh');
+                cancel(true);
             });
         }
         return {

+ 55 - 35
src/views/platinum/platinum_pick_query/list/tab/compoments/upload_logistics/index.vue

@@ -1,45 +1,65 @@
 <template>
-    <!-- 提货查询 上传物流-->
-    <a-modal class="add-custom upload_logistics" title="上传物流" centered v-model:visible="visible" :maskClosable="false" @cancel="cancel" width="600px">
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">上传 </a-button>
-        </template>
-        <a-form class="inlineForm mt10" :model="formState" :rules="rules" ref="formRef">
-            <a-row :gutter="24">
-                <a-col :span="24">
-                    <a-form-item label="物流公司" name="expresscompany">
-                        <a-input class="dialogInput" style="width: 200px" v-model:value="formState.expresscompany" placeholder="请输入物流单号" />
-                    </a-form-item>
-                </a-col>
-            </a-row>
-            <a-row :gutter="24">
-                <a-col :span="24">
-                    <a-form-item label="物流单号" name="expressnum">
-                        <a-input class="dialogInput" style="width: 200px" v-model:value="formState.expressnum" placeholder="请输入物流单号" />
-                    </a-form-item>
-                </a-col>
-            </a-row>
-        </a-form>
-    </a-modal>
+  <!-- 提货查询 上传物流-->
+  <a-modal class="add-custom upload_logistics"
+           title="上传物流"
+           centered
+           v-model:visible="visible"
+           :maskClosable="false"
+           @cancel="cancel"
+           width="600px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">上传 </a-button>
+    </template>
+    <a-form class="inlineForm mt10"
+            :model="formState"
+            :rules="rules"
+            ref="formRef">
+      <a-row :gutter="24">
+        <a-col :span="24">
+          <a-form-item label="物流公司"
+                       name="expresscompany">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.expresscompany"
+                     placeholder="请输入物流单号" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="24">
+          <a-form-item label="物流单号"
+                       name="expressnum">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.expressnum"
+                     placeholder="请输入物流单号" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+    </a-form>
+  </a-modal>
 </template>
 <script lang="ts">
-import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import CommomDetail from '../common-detail/index.vue';
-import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
-import { GoodsPickupOperateReq } from '@/services/proto/manager/interface';
-import { getUserId } from '@/services/bus/user';
-import { geLoginID_number } from '@/services/bus/login';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
+import { validateAction } from '@/common/setup/form';
+import { _closeModal } from '@/common/setup/modal/modal';
+import { geLoginID_number } from '@/services/bus/login';
+import { getUserId } from '@/services/bus/user';
+import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
 import { goodsPickupOperate } from '@/services/proto/manager';
+import { GoodsPickupOperateReq } from '@/services/proto/manager/interface';
 import Long from 'long';
-import { handleForm } from './setup';
-import { validateAction } from '@/common/setup/form';
+import { defineComponent, PropType, ref } from 'vue';
+import CommomDetail from '../common-detail/index.vue';
 import { FormState } from './interface';
+import { handleForm } from './setup';
 
 export default defineComponent({
     name: 'platinum_pick_query_upload_logistics',
-    emits: ['refresh'],
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -48,7 +68,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('platinum_pick_query_upload_logistics');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         const { formRef, formState, rules } = handleForm();
         function submit() {
@@ -65,8 +86,7 @@ export default defineComponent({
                     },
                 };
                 requestResultLoadingAndInfo(goodsPickupOperate, reqParams, loading, ['上传物流信息成功', '上传物流信息失败:']).then(() => {
-                    cancel();
-                    context.emit('refresh');
+                    cancel(true);
                 });
             });
         }

+ 25 - 56
src/views/platinum/platinum_pick_query/list/tab/index.vue

@@ -1,9 +1,6 @@
 <template>
   <!-- 提货查询 -->
   <div class="platinum_pick_query_tab">
-    <Filter @search="updateColumn">
-    </Filter>
-
     <Filter @search="updateColumn" />
     <a-table :columns="columns"
              class="srcollYTable"
@@ -16,11 +13,8 @@
              :data-source="tableList">
       <!-- 额外的展开行 -->
       <template #expandedRowRender="{ record }">
-        <!-- <BtnList :btnList="handleTableList(firstBtn, record)"
-                   class="btn-list-sticky"
-                   @onClick="btnClick(record)" /> -->
         <mtp-table-button class="btn-list-sticky"
-                          :buttons="buttons"
+                          :buttons="handleBtn(record)"
                           :record="record"
                           @click="openComponent" />
       </template>
@@ -32,7 +26,6 @@
       <template #takemode="{ record }">
         <a>{{ getTakeStateName(record.takemode)}}</a>
       </template>
-
       <!-- 物流信息 -->
       <template #expresscompany="{ record }">
         <a>{{ record.expresscompany + "-" + record.expressnum}}</a>
@@ -52,12 +45,10 @@
         <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
       </template>
     </a-table>
-    <ControlModal :selectedRow="selectedRow"
-                  @refresh="getData" />
     <!-- 右键 -->
     <contextMenu :contextMenu="contextMenu"
                  @cancel="closeContext"
-                 :list="buttons"> </contextMenu>
+                 :list="handleBtn(selectedRow)"> </contextMenu>
     <component :is="componentId"
                v-if="componentId"
                :selectedRow="selectedRow"
@@ -66,19 +57,13 @@
 </template>
 
 <script lang="ts">
-import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, MtpTableButton, queryTableList, useRouteName } from '@/common/export/commonTable';
-
-import Filter from '../../compoments/filter/index.vue';
-import { handleTableList } from './setup';
-import ControlModal from './compoments/controlModal/index.vue';
-import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { getPickUpStateName, getTakeStateName } from '@/common/constants/enumsName';
-import { TableEventCB } from '@/common/setup/table/interface';
-import { BtnListType } from '@/common/components/btnList/interface';
-import { ref } from 'vue';
-import { queryTradeGoodsPickup } from '@/services/go/ermcp/qhj';
+import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, MtpTableButton, queryTableList } from '@/common/export/commonTable';
 import { getTableButton } from '@/common/setup/table/button';
-import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { queryTradeGoodsPickup } from '@/services/go/ermcp/qhj';
+import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
+import Filter from '../../compoments/filter/index.vue';
 
 export default defineComponent({
     name: 'platinum_pick_query_tab',
@@ -93,22 +78,6 @@ export default defineComponent({
         confirm_receipt: defineAsyncComponent(() => import('./compoments/query_receipt/index.vue')), // 确认收货
     },
     setup() {
-        // 表格权限按钮
-        const buttons = getTableButton(['add'], true);
-
-        // 表头数据
-        // const { columns, registerColumn, updateColumn } = getTableColumns();
-        // // 表格操作按钮列表
-        // const [firstBtn] = _getBtnList('platinum_pick_query_tab', true).value;
-        // const btnList = ref<BtnListType[]>([]);
-        // const event: TableEventCB = {
-        //     contextmenuCB: (record: QhjTradeGoodsPickup) => {
-        //         btnList.value = handleTableList(firstBtn, record);
-        //     },
-        // };
-        // // 表格事件
-        // const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QhjTradeGoodsPickup>(event);
-
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<QhjTradeGoodsPickup>();
 
@@ -123,33 +92,33 @@ export default defineComponent({
             tableFilterKey: ['reqtime', 'pickupgoodsname', 'takeorderstatus', 'goodsname'],
             isDetail: true,
         };
-
-        // function getData() {
-        //     // 获取列表数据
-        //     queryTable(queryTradeGoodsPickup).then((res) => {
-        //         tableList.value = res.map((el) => {
-        //             return { ...el, key: String(el.takeorderid) };
-        //         });
-        //     });
-        // }
-
         // 1:备货中  完成备货
         // 2:待取货(自提) 确认取货
         // 4:待收货(邮寄) 上传物流信息、确认收货
-        // initData(() => {
-        //     // 获取列表数据
-        //     getData();
-        //     // 注册表头信息 过滤
-        //     registerColumn('table_pcweb_qhj_pickup_query', ['reqtime', 'pickupgoodsname', 'takeorderstatus', 'goodsname']);
-        // });
-
+        function handleBtn(record: QhjTradeGoodsPickup) {
+            if (!record) return;
+            const { takeorderstatus } = record;
+            const buttons = getTableButton();
+            if (takeorderstatus === 1) {
+                // 1:备货中  完成备货
+                return buttons.filter((e) => e.code === 'complete_stocking' || e.code === 'detail');
+            } else if (takeorderstatus === 2) {
+                // 2:待取货(自提) 确认取货
+                return buttons.filter((e) => e.code === 'confirm_pickup' || e.code === 'detail');
+            } else if (takeorderstatus === 4) {
+                // 4:待收货(邮寄) 上传物流信息、确认收货
+                return buttons.filter((e) => e.code === 'complete_stocking' || e.code === 'detail' || e.code === 'confirm_receipt');
+            } else {
+                return [];
+            }
+        }
         return {
             ...handleComposeTable<QhjTradeGoodsPickup>(param),
             loading,
             tableList,
             getPickUpStateName,
             getTakeStateName,
-            handleTableList,
+            handleBtn,
         };
     },
 });

+ 0 - 22
src/views/platinum/platinum_pick_query/list/tab/setup.ts

@@ -1,22 +0,0 @@
-import { BtnListType } from '@/common/components/btnList/interface';
-import { QhjTradeGoodsPickup } from '@/services/go/ermcp/qhj/interface';
-
-export function handleTableList(btnList: BtnListType[], record: QhjTradeGoodsPickup): BtnListType[] {
-    // 1:备货中  完成备货
-    // 2:待取货(自提) 确认取货
-    // 4:待收货(邮寄) 上传物流信息、确认收货
-    const arr: string[] = ['详情']
-    switch (record.takeorderstatus) {
-        case 1: // 1:备货中  完成备货
-            arr.push('完成备货')
-            break
-        case 2: // 2:待取货(自提) 确认取货
-            arr.push('确认取货')
-            break
-        case 4: // 4:待收货(邮寄) 上传物流信息、确认收货
-            arr.push('上传物流')
-            arr.push('确认收货')
-            break
-    }
-    return btnList.filter((e) => arr.includes(e.lable));
-}

+ 0 - 52
src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/compoments/controlModal/index.vue

@@ -1,52 +0,0 @@
-<template>
-    <div>
-        <!-- 详情 -->
-        <Detail :selectedRow="selectedRow" />
-        <!-- 确认收款 -->
-        <Payment :selectedRow="selectedRow" @refresh="refresh" />
-        <!-- 审核拒绝 -->
-        <Refuse :selectedRow="selectedRow" @refresh="refresh" />
-    </div>
-</template>
-
-<script lang="ts">
-import { defineComponent, PropType } from 'vue';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import Detail from '../detail/index.vue';
-import Payment from '../payment/index.vue';
-import Refuse from '../refuse/index.vue';
-
-export default defineComponent({
-    name: 'custom-control-modal',
-    emits: ['refresh'],
-    components: { Detail, Payment, Refuse },
-    props: {
-        selectedRow: {
-            type: Object as PropType<QueryCustomInfoType>,
-            default: {},
-        },
-    },
-    setup(props, context) {
-        function refresh() {
-            context.emit('refresh');
-        }
-        return {
-            refresh,
-        };
-    },
-});
-</script>
-
-<style lang="less">
-.custom-detail {
-    .ant-form.inlineForm {
-        margin-top: 20px;
-    }
-    .upload {
-        .look {
-            margin-left: 0;
-        }
-    }
-}
-</style>;
-

+ 5 - 3
src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/compoments/detail/index.vue

@@ -17,13 +17,14 @@
   </a-modal>
 </template>
 <script lang="ts">
+import { _closeModal } from '@/common/setup/modal/modal';
+import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
 import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
 import CommomDetail from '../common-detail/index.vue';
-import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
 
 export default defineComponent({
     name: 'platinum_withdrawal_review_detail-desc',
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -32,7 +33,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('detail');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         return {
             cancel,

+ 29 - 19
src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/compoments/payment/index.vue

@@ -1,29 +1,39 @@
 <template>
-    <!-- 充值审核 确认收款-->
-    <a-modal class="add-custom custom-detail" title="确认收款" centered v-model:visible="visible" :maskClosable="false" @cancel="cancel" width="890px">
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">确认</a-button>
-            <a-button key="cancel" type="primary" :loading="loading" @click="cancel">关闭</a-button>
-        </template>
-        <CommomDetail :selectedRow="selectedRow" />
-    </a-modal>
+  <!-- 充值审核 确认收款-->
+  <a-modal class="add-custom custom-detail"
+           title="确认收款"
+           centered
+           v-model:visible="visible"
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">确认</a-button>
+      <a-button key="cancel"
+                type="primary"
+                :loading="loading"
+                @click="cancel">关闭</a-button>
+    </template>
+    <CommomDetail :selectedRow="selectedRow" />
+  </a-modal>
 </template>
 <script lang="ts">
-import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import CommomDetail from '../common-detail/index.vue';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
+import { _closeModal } from '@/common/setup/modal/modal';
+import { getUserId } from '@/services/bus/user';
+import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
 import { t2bExchConfirmBusiness } from '@/services/proto/manager';
 import { t2bExchConfirmBusinessReq } from '@/services/proto/manager/interface';
-import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
 import { getTimeValue } from '@/utils/time';
-import { getUserId } from '@/services/bus/user';
-import { geLoginID_number } from '@/services/bus/login';
+import { defineComponent, PropType, ref } from 'vue';
+import CommomDetail from '../common-detail/index.vue';
 
 export default defineComponent({
     name: 'platinum_recharge_review_confirm_payment',
-    emits: ['refresh'],
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -32,7 +42,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('platinum_recharge_review_confirm_payment');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         function submit() {
             let reqParams: t2bExchConfirmBusinessReq = {
@@ -48,8 +59,7 @@ export default defineComponent({
             };
 
             requestResultLoadingAndInfo(t2bExchConfirmBusiness, reqParams, loading, ['确认收款成功', '确认收款失败:']).then(() => {
-                cancel();
-                context.emit('refresh');
+                cancel(true);
             });
         }
         return {

+ 30 - 19
src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/compoments/refuse/index.vue

@@ -1,29 +1,40 @@
 <template>
-    <!-- 充值审核 审核拒绝-->
-    <a-modal class="add-custom custom-detail" title="审核拒绝" centered v-model:visible="visible" :maskClosable="false" @cancel="cancel" width="890px">
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">拒绝</a-button>
-            <a-button key="cancel" type="primary" :loading="loading" @click="cancel">关闭</a-button>
-        </template>
-        <CommomDetail :selectedRow="selectedRow" />
-    </a-modal>
+  <!-- 充值审核 审核拒绝-->
+  <a-modal class="add-custom custom-detail"
+           title="审核拒绝"
+           centered
+           v-model:visible="visible"
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">拒绝</a-button>
+      <a-button key="cancel"
+                type="primary"
+                :loading="loading"
+                @click="cancel">关闭</a-button>
+    </template>
+    <CommomDetail :selectedRow="selectedRow" />
+  </a-modal>
 </template>
 
 <script lang="ts">
-import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import CommomDetail from '../common-detail/index.vue';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import { t2bExchConfirmBusinessReq } from '@/services/proto/manager/interface';
-import { getTimeValue } from '@/utils/time';
+import { _closeModal } from '@/common/setup/modal/modal';
 import { getUserId } from '@/services/bus/user';
-import { t2bExchConfirmBusiness } from '@/services/proto/manager';
 import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
+import { t2bExchConfirmBusiness } from '@/services/proto/manager';
+import { t2bExchConfirmBusinessReq } from '@/services/proto/manager/interface';
+import { getTimeValue } from '@/utils/time';
+import { defineComponent, PropType, ref } from 'vue';
+import CommomDetail from '../common-detail/index.vue';
 
 export default defineComponent({
     name: 'custom-detail-desc',
-    emits: ['refresh'],
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -32,7 +43,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('platinum_recharge_review_refuse');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         function submit() {
             let reqParams: t2bExchConfirmBusinessReq = {
@@ -48,8 +60,7 @@ export default defineComponent({
             };
 
             requestResultLoadingAndInfo(t2bExchConfirmBusiness, reqParams, loading, ['审核拒绝成功', '审核拒绝失败:']).then(() => {
-                cancel();
-                context.emit('refresh');
+                cancel(true);
             });
         }
         return {

+ 75 - 73
src/views/platinum/platinum_recharge_withdrawal_review/list/recharge/index.vue

@@ -2,40 +2,46 @@
   <!-- 充值审核 -->
   <div class="platinum_recharge_review_tab">
     <Filter @search="search" />
-    <contextMenu :contextMenuList="getBtnListAction()">
-      <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="getBtnListAction()"
-                   class="btn-list-sticky"
-                   @onClick="btnClick(record)" />
+    <a-table :columns="columns"
+             class="srcollYTable"
+             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
+             :loading="loading"
+             :pagination="false"
+             :expandedRowKeys="expandedRowKeys"
+             :customRow="Rowclick"
+             rowKey="key"
+             :data-source="tableList">
+      <!-- 额外的展开行 -->
+      <template #expandedRowRender="{ record }">
+        <mtp-table-button class="btn-list-sticky"
+                          :buttons="handleBtn(record)"
+                          :record="record"
+                          @click="openComponent" />
+      </template>
+      <!-- 账户类型 -->
+      <template #userinfotype="{ record }">
+        <a>{{ record.userinfotype === 1 ? "个人" : "企业" }}</a>
+      </template>
+      <template #applystatus="{ }">
+        <a>{{ getTableListStatus() }}</a>
+      </template>
+      <template #certificatephotourl="{ record}">
+        <template v-if="record.certificatephotourl">
+          <a v-for="(item, index) in getUrl(record.certificatephotourl)"
+             :key="item"
+             @click.stop="getVisibleImg(record.certificatephotourl, index)">{{item}}</a>
         </template>
-        <!-- 账户类型 -->
-        <template #userinfotype="{ record }">
-          <a>{{ record.userinfotype === 1 ? "个人" : "企业" }}</a>
-        </template>
-        <template #applystatus="{ }">
-          <a>{{ getTableListStatus() }}</a>
-        </template>
-        <template #certificatephotourl="{ record}">
-          <template v-if="record.certificatephotourl">
-            <a v-for="(item, index) in getUrl(record.certificatephotourl)"
-               :key="item"
-               @click.stop="getVisibleImg(record.certificatephotourl, index)">{{item}}</a>
-          </template>
-          <span v-else></span>
-        </template>
-      </a-table>
-    </contextMenu>
-    <ControlModal :selectedRow="selectedRow"
-                  @refresh="getTableList" />
+        <span v-else></span>
+      </template>
+    </a-table>
+    <!-- 右键 -->
+    <contextMenu :contextMenu="contextMenu"
+                 @cancel="closeContext"
+                 :list="handleBtn(selectedRow)"> </contextMenu>
+    <component :is="componentId"
+               v-if="componentId"
+               :selectedRow="selectedRow"
+               @cancel="closeComponent"> </component>
     <a-modal :visible="previewVisible"
              :footer="null"
              @cancel="cancelImg">
@@ -47,38 +53,51 @@
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, contextMenu, BtnList, queryTableList, _getBtnList } from '@/common/export/table';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, MtpTableButton, queryTableList } from '@/common/export/commonTable';
+import { getTableButton } from '@/common/setup/table/button';
+import { handlePreviewImg } from '@/common/setup/upload';
 import { queryAccountInOutApply } from '@/services/go/ermcp/qhj';
 import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
 import Filter from '../../compoments/filter/index.vue';
-import ControlModal from './compoments/controlModal/index.vue';
 import { handleTableStatus, inOrOutStatus } from '../../setup';
-import { BtnListType } from '@/common/components/btnList/interface';
-import { handlePreviewImg } from '@/common/setup/upload';
 
 export default defineComponent({
     name: 'platinum_recharge_review_tab',
-    components: { Filter, contextMenu, BtnList, ControlModal },
+    components: {
+        Filter,
+        contextMenu,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('./compoments/detail/index.vue')), // 详情
+        confirm_payment: defineAsyncComponent(() => import('./compoments/payment/index.vue')), // 确认收款
+        review_refuse: defineAsyncComponent(() => import('./compoments/refuse/index.vue')), // 审核拒绝
+    },
     setup() {
-        // 表头数据
-        const { columns, registerColumn, updateColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QhjAccountOutInApply>({});
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_recharge_review_tab', true).value;
         // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList();
+        const { loading, tableList, queryTable } = queryTableList<QhjAccountOutInApply>();
         // 状态
         const { tableStatus, getTableListStatus, search } = handleTableStatus(queryTable, 2);
-        function getBtnListAction(): BtnListType[] {
-            const arr: string[] = ['详情'];
-            switch (tableStatus.value) {
-                case inOrOutStatus.wait:
-                    arr.push('确认收款');
-                    arr.push('审核拒绝');
-                    break;
+
+        const queryTableAction = () => {
+            queryTable(queryAccountInOutApply, { querytype: 2, applystatus: tableStatus.value });
+        };
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_recharge_review',
+            tableFilterKey: [],
+            isDetail: true,
+        };
+
+        function handleBtn(record: QhjAccountOutInApply) {
+            if (!record) return;
+            const buttons = getTableButton();
+            if (tableStatus.value === inOrOutStatus.wait) {
+                return buttons;
+            } else {
+                return buttons.filter((e) => e.code === 'detail');
             }
-            return firstBtn.filter((e: BtnListType) => arr.includes(e.lable));
         }
         // 预览附件
         const { previewVisible, previewImage, cancelImg, previewImg } = handlePreviewImg();
@@ -89,36 +108,19 @@ export default defineComponent({
             const str = value.split(',')[i];
             previewImg(str);
         }
-        function getTableList() {
-            queryTable(queryAccountInOutApply, { querytype: 2, applystatus: tableStatus.value });
-        }
-        initData(() => {
-            // 默认 查询待审核状态列表
-            getTableList();
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_recharge_review', []);
-        });
 
         return {
-            getTableList,
-            getBtnListAction,
+            ...handleComposeTable<QhjAccountOutInApply>(param),
+            loading,
+            handleBtn,
             getTableListStatus,
             previewVisible,
             previewImage,
             getVisibleImg,
             cancelImg,
-            columns,
             search,
             getUrl,
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            firstBtn,
-            loading,
             tableList,
-            updateColumn,
-            queryTable,
-            btnClick,
         };
     },
 });

+ 0 - 53
src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/compoments/controlModal/index.vue

@@ -1,53 +0,0 @@
-<template>
-    <div>
-        <!-- 详情 -->
-        <Detail :selectedRow="selectedRow" />
-        <!-- 确认收款 -->
-        <Withdrawal :selectedRow="selectedRow" @refresh="refresh" />
-        <!-- 审核拒绝 -->
-        <Refuse :selectedRow="selectedRow" @refresh="refresh" />
-    </div>
-</template>
-
-<script lang="ts">
-import { defineComponent, PropType } from 'vue';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import Detail from '../detail/index.vue';
-import Withdrawal from '../withdrawal/index.vue';
-import Refuse from '../refuse/index.vue';
-import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
-
-export default defineComponent({
-    name: 'custom-control-modal',
-    emits: ['refresh'],
-    components: { Detail, Withdrawal, Refuse },
-    props: {
-        selectedRow: {
-            type: Object as PropType<QhjAccountOutInApply>,
-            default: {},
-        },
-    },
-    setup(props, context) {
-        function refresh() {
-            context.emit('refresh');
-        }
-        return {
-            refresh,
-        };
-    },
-});
-</script>
-
-<style lang="less">
-.custom-detail {
-    .ant-form.inlineForm {
-        margin-top: 20px;
-    }
-    .upload {
-        .look {
-            margin-left: 0;
-        }
-    }
-}
-</style>;
-

+ 5 - 4
src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/compoments/detail/index.vue

@@ -17,14 +17,14 @@
   </a-modal>
 </template>
 <script lang="ts">
+import { _closeModal } from '@/common/setup/modal/modal';
+import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
 import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
 import CommomDetail from '../common-detail/index.vue';
-import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
 
 export default defineComponent({
     name: 'platinum_withdrawal_review_detail-desc',
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -33,7 +33,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('detail');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         return {
             cancel,

+ 30 - 19
src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/compoments/refuse/index.vue

@@ -1,29 +1,40 @@
 <template>
-    <!-- 充值审核 审核拒绝-->
-    <a-modal class="add-custom custom-detail" title="审核拒绝" centered v-model:visible="visible" :maskClosable="false" @cancel="cancel" width="890px">
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">拒绝</a-button>
-            <a-button key="cancel" type="primary" :loading="loading" @click="cancel">关闭</a-button>
-        </template>
-        <CommomDetail :selectedRow="selectedRow" />
-    </a-modal>
+  <!-- 充值审核 审核拒绝-->
+  <a-modal class="add-custom custom-detail"
+           title="审核拒绝"
+           centered
+           v-model:visible="visible"
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">拒绝</a-button>
+      <a-button key="cancel"
+                type="primary"
+                :loading="loading"
+                @click="cancel">关闭</a-button>
+    </template>
+    <CommomDetail :selectedRow="selectedRow" />
+  </a-modal>
 </template>
 
 <script lang="ts">
-import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import CommomDetail from '../common-detail/index.vue';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import { t2bExchConfirmBusinessReq } from '@/services/proto/manager/interface';
-import { getTimeValue } from '@/utils/time';
+import { _closeModal } from '@/common/setup/modal/modal';
 import { getUserId } from '@/services/bus/user';
-import { t2bExchConfirmBusiness } from '@/services/proto/manager';
 import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
+import { t2bExchConfirmBusiness } from '@/services/proto/manager';
+import { t2bExchConfirmBusinessReq } from '@/services/proto/manager/interface';
+import { getTimeValue } from '@/utils/time';
+import { defineComponent, PropType, ref } from 'vue';
+import CommomDetail from '../common-detail/index.vue';
 
 export default defineComponent({
     name: 'custom-detail-desc',
-    emits: ['refresh'],
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -32,7 +43,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('platinum_withdrawal_review_refuse');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         function submit() {
             let reqParams: t2bExchConfirmBusinessReq = {
@@ -48,8 +60,7 @@ export default defineComponent({
             };
 
             requestResultLoadingAndInfo(t2bExchConfirmBusiness, reqParams, loading, ['审核拒绝成功', '审核拒绝失败:']).then(() => {
-                cancel();
-                context.emit('refresh');
+                cancel(true);
             });
         }
         return {

+ 30 - 19
src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/compoments/withdrawal/index.vue

@@ -1,28 +1,39 @@
 <template>
-    <!-- 提现审核 确认提现-->
-    <a-modal class="add-custom custom-detail" title="确认提现" centered v-model:visible="visible" :maskClosable="false" @cancel="cancel" width="890px">
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">确认</a-button>
-            <a-button key="cancel" type="primary" :loading="loading" @click="cancel">关闭</a-button>
-        </template>
-        <CommomDetail :selectedRow="selectedRow" />
-    </a-modal>
+  <!-- 提现审核 确认提现-->
+  <a-modal class="add-custom custom-detail"
+           title="确认提现"
+           centered
+           v-model:visible="visible"
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">确认</a-button>
+      <a-button key="cancel"
+                type="primary"
+                :loading="loading"
+                @click="cancel">关闭</a-button>
+    </template>
+    <CommomDetail :selectedRow="selectedRow" />
+  </a-modal>
 </template>
 <script lang="ts">
-import { defineComponent, PropType, ref } from 'vue';
-import { closeModal } from '@/common/setup/modal/index';
-import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-import CommomDetail from '../common-detail/index.vue';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import { t2bExchConfirmBusinessReq } from '@/services/proto/manager/interface';
-import { getTimeValue } from '@/utils/time';
+import { _closeModal } from '@/common/setup/modal/modal';
 import { getUserId } from '@/services/bus/user';
-import { t2bExchConfirmBusiness } from '@/services/proto/manager';
 import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
+import { t2bExchConfirmBusiness } from '@/services/proto/manager';
+import { t2bExchConfirmBusinessReq } from '@/services/proto/manager/interface';
+import { getTimeValue } from '@/utils/time';
+import { defineComponent, PropType, ref } from 'vue';
+import CommomDetail from '../common-detail/index.vue';
 
 export default defineComponent({
     name: 'platinum_withdrawal_review_confirm_withdrawal',
-    emits: ['refresh'],
+    emits: ['cancel', 'update'],
     components: { CommomDetail },
     props: {
         selectedRow: {
@@ -31,7 +42,8 @@ export default defineComponent({
         },
     },
     setup(props, context) {
-        const { visible, cancel } = closeModal('platinum_withdrawal_review_confirm_withdrawal');
+        // 控制关闭弹窗
+        const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         function submit() {
             let reqParams: t2bExchConfirmBusinessReq = {
@@ -47,8 +59,7 @@ export default defineComponent({
             };
 
             requestResultLoadingAndInfo(t2bExchConfirmBusiness, reqParams, loading, ['确认提现成功', '确认提现失败:']).then(() => {
-                cancel();
-                context.emit('refresh');
+                cancel(true);
             });
         }
         return {

+ 66 - 64
src/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/index.vue

@@ -2,94 +2,96 @@
   <!-- 提现审核 -->
   <div class="platinum_withdrawal_review_tab">
     <Filter @search="search" />
-    <contextMenu :contextMenuList="getBtnListAction()">
-      <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="getBtnListAction()"
-                   class="btn-list-sticky"
-                   @onClick="btnClick(record)" />
-        </template>
-        <!-- 账户类型 -->
-        <template #userinfotype="{ record }">
-          <a>{{ record.userinfotype === 1 ? "个人" : "企业" }}</a>
-        </template>
-        <template #applystatus="{ }">
-          <a>{{ getTableListStatus() }}</a>
-        </template>
-      </a-table>
-    </contextMenu>
-    <ControlModal :selectedRow="selectedRow"
-                  @refresh="getTableList" />
+    <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="handleBtn(record)"
+                          :record="record"
+                          @click="openComponent" />
+      </template>
+      <!-- 账户类型 -->
+      <template #userinfotype="{ record }">
+        <a>{{ record.userinfotype === 1 ? "个人" : "企业" }}</a>
+      </template>
+      <template #applystatus="{ }">
+        <a>{{ getTableListStatus() }}</a>
+      </template>
+    </a-table>
+    <!-- 右键 -->
+    <contextMenu :contextMenu="contextMenu"
+                 @cancel="closeContext"
+                 :list="handleBtn(selectedRow)"> </contextMenu>
+    <component :is="componentId"
+               v-if="componentId"
+               :selectedRow="selectedRow"
+               @cancel="closeComponent"> </component>
   </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, initData, getTableColumns, getTableEvent, contextMenu, BtnList, queryTableList, _getBtnList } from '@/common/export/table';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, MtpTableButton, queryTableList } from '@/common/export/commonTable';
+import { getTableButton } from '@/common/setup/table/button';
 import { queryAccountInOutApply } from '@/services/go/ermcp/qhj';
 import { QhjAccountOutInApply } from '@/services/go/ermcp/qhj/interface';
 import Filter from '../../compoments/filter/index.vue';
-import ControlModal from './compoments/controlModal/index.vue';
 import { handleTableStatus, inOrOutStatus } from '../../setup';
-import { BtnListType } from '@/common/components/btnList/interface';
 
 export default defineComponent({
     name: 'platinum_withdrawal_review_tab',
-    components: { Filter, contextMenu, BtnList, ControlModal },
+    components: {
+        Filter,
+        contextMenu,
+        MtpTableButton,
+        detail: defineAsyncComponent(() => import('./compoments/detail/index.vue')), // 详情
+        review_confirm: defineAsyncComponent(() => import('./compoments/withdrawal/index.vue')), // 确认提现
+        review_refuse: defineAsyncComponent(() => import('./compoments/refuse/index.vue')), // 审核拒绝
+    },
     setup() {
-        // 表头数据
-        const { columns, registerColumn, updateColumn } = getTableColumns();
-
-        // 表格操作按钮列表
-        const [firstBtn] = _getBtnList('platinum_withdrawal_review_tab', true).value;
         // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<QhjAccountOutInApply>({});
+        const { loading, tableList, queryTable } = queryTableList<QhjAccountOutInApply>();
         // 状态
         const { tableStatus, getTableListStatus, search } = handleTableStatus(queryTable, 1);
-        function getBtnListAction(): BtnListType[] {
-            const arr: string[] = ['详情'];
-            switch (tableStatus.value) {
-                case inOrOutStatus.wait:
-                    arr.push('确认提现');
-                    arr.push('审核拒绝');
-                    break;
-            }
-            return firstBtn.filter((e: BtnListType) => arr.includes(e.lable));
-        }
 
-        function getTableList() {
+        const queryTableAction = () => {
             queryTable(queryAccountInOutApply, { querytype: 1, applystatus: tableStatus.value });
+        };
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.plan_audit,
+            tableName: 'table_pcweb_qhj_withdrawal_review',
+            tableFilterKey: [],
+            isDetail: true,
+        };
+
+        function handleBtn(record: QhjAccountOutInApply) {
+            if (!record) return;
+            const buttons = getTableButton();
+            if (tableStatus.value === inOrOutStatus.wait) {
+                return buttons;
+            } else {
+                return buttons.filter((e) => e.code === 'detail');
+            }
         }
-        initData(() => {
-            // 默认 查询待审核状态列表
-            getTableList();
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_qhj_withdrawal_review', []);
-        });
 
         return {
+            ...handleComposeTable<QhjAccountOutInApply>(param),
+            loading,
+            handleBtn,
             getTableListStatus,
-            getBtnListAction,
-            getTableList,
             search,
-            columns,
-            updateColumn,
-            expandedRowKeys,
-            selectedRow,
-            Rowclick,
-            loading,
             tableList,
             queryTable,
-            btnClick,
         };
     },
 });

+ 37 - 20
src/views/report/exposure-report/list/exposure_report/index.vue

@@ -1,24 +1,41 @@
 <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="srcollYTable"
+             :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">

+ 25 - 9
src/views/report/finance-report/list/finance_report_finance/index.vue

@@ -1,13 +1,29 @@
 <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="srcollYTable"
+             :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">

+ 35 - 19
src/views/report/future_report/list/future_report/index.vue

@@ -1,23 +1,39 @@
 <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="srcollYTable"
+             :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">

+ 26 - 9
src/views/report/inventory-report/list/category/index.vue

@@ -1,13 +1,30 @@
 <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="srcollYTable"
+             :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">

+ 26 - 9
src/views/report/inventory-report/list/warehouse/index.vue

@@ -1,13 +1,30 @@
 <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="srcollYTable"
+             :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">

+ 88 - 71
src/views/report/spot-report/list/spot_report/index.vue

@@ -1,75 +1,92 @@
 <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="srcollYTable"
+             :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">

+ 59 - 43
src/views/report/sum_pl_report/list/sum_pl_report/index.vue

@@ -1,47 +1,63 @@
 <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="customRow" 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="srcollYTable"
+             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
+             :pagination="false"
+             :expandedRowKeys="expandedRowKeys"
+             :customRow="customRow"
+             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">