li.shaoyi 4 سال پیش
والد
کامیت
1420834eac

+ 2 - 2
src/common/setup/table/button.ts

@@ -3,9 +3,9 @@ import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { OperationTabMenu, OperationTabMenuAuth } from '@/services/go/commonService/interface';
 import { sessionStorageUtil } from "@/utils/storage";
 import { inject, ref, Ref, toRaw, unref } from 'vue';
-import { useRoute } from 'vue-router';
 import { openModal } from "../modal";
 import { ButtonListKey } from './interface';
+import router from '@/router'
 
 /**
  * 获取class 名
@@ -267,7 +267,7 @@ export function getButtonList(menuType: EnumRouterName, hasDetail: boolean) {
  * @param isFilter 是否排除 codes 中的权限
  */
 export function getTableButton(codes: string[] = [], isFilter = false): BtnListType[] {
-    const { meta } = useRoute();
+    const { meta } = router.currentRoute.value;
     const auth = meta.auth as OperationTabMenuAuth[];
 
     // 标准化 按钮 数据

+ 0 - 72
src/router/index.ts

@@ -234,78 +234,6 @@ const routes: Array<RouteRecordRaw> = [
                     },
                 ]
             },
-
-
-            {
-                path: '/purchase',
-                name: 'purchase',
-                component: Main,
-                meta: {
-                    requireAuth: true,
-                },
-                redirect: { name: 'purchase_pending' },
-                children: [
-                    {
-                        path: '/purchase/purchase_pending',
-                        name: 'purchase_pending',
-                        component: () => import('@/views/business/purchase/list/pending/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/purchase/purchase_performance',
-                        name: 'purchase_performance',
-                        component: () => import('@/views/business/purchase/list/performance/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/purchase/purchase_all',
-                        name: 'purchase_all',
-                        component: () => import('@/views/business/purchase/list/all/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                ],
-            },
-            {
-                path: '/sell',
-                name: 'sell',
-                component: Main,
-                meta: {
-                    requireAuth: true,
-                },
-                redirect: { name: 'sell_pending' },
-                children: [
-                    {
-                        path: '/sell/sell_pending',
-                        name: 'sell_pending',
-                        component: () => import('@/views/business/sell/list/pending/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/sell/sell_performance',
-                        name: 'sell_performance',
-                        component: () => import('@/views/business/sell/list/performance/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                    {
-                        path: '/sell/sell_all',
-                        name: 'sell_all',
-                        component: () => import('@/views/business/sell/list/all/index.vue'),
-                        meta: {
-                            requireAuth: true,
-                        },
-                    },
-                ],
-            },
             {
                 path: '/risk_parameter_settings',
                 name: 'risk_parameter_settings',

+ 5 - 1
src/services/go/ermcp/qhj/index.ts

@@ -131,7 +131,11 @@ export function queryPayOrder(req: QueryPayOrderReq): Promise<QhjPayOrder[]> {
  * /Ermcp3/QuerySpotGoodsPrice
  */
 export function querySpotGoodsPrice(req: QuerySpotGoodsPrice): Promise<Ermcp3SpotGoodsPrice[]> {
-    return commonSearch_go('/Ermcp3/QuerySpotGoodsPrice', req).catch((err) => {
+    const param = {
+        userid: getUserId(),
+    }
+    Object.assign(param, req)
+    return commonSearch_go('/Ermcp3/QuerySpotGoodsPrice', param).catch((err) => {
         throw new Error(`查询现货市价: ${err}`);
     });
 }

+ 72 - 71
src/services/go/ermcp/spot-contract/interface.ts

@@ -5,71 +5,72 @@ export interface Ermcp3ContractReq {
     querytype: number    //  查询类型 1-未提交 2-待审核 3-履约中 4-已完成
     usertype?: number    //  用户类型 2-机构 7-企业成员
     contractid?: string  //  合同ID(SpotContractId)
+    contracttype?: number  // 合同类型 1-采购, -1-销售
 }
 
 /**
  * 现货合同返回
  */
 export interface Ermcp3ContractRsp {
-    accountid	:string;//期货账户id
-    amount	:number;//金额 [1:一口价、3:暂定价]
-    attachment	:string;//附件
-    auditremark	:string;//审核意见
-    audittime	:string;//审核时间
-    biztype	:number;//业务类型 1-套保 2-套利
-    brandname	:string;//品牌名称
-    buynickname	:string;//销售方昵称
-    buyuserid	:number;//采购方ID
-    buyusername	:string;//采购方名称
-    contracctstatus	:number;//合同状态 - number;
-//:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
-    contractmargin	:number;//合同保证金
-    contractno	:string;//现货合同编号
-    contracttype	:number;//现货合同类型 - 1:采购 -1:销售
-    convertfactor	:number;//标仓系数(品类)
-    createtime	:string;//创建时间
-    currencyid	:number;//币种id
-    currencyname	:string;//币种名称
-    deliveryenddate	:string;//交收期(结束)
-    deliverygoodscode	:string;//现货品种代码
-    deliverygoodsid	:number;//现货品种ID
-    deliverygoodsname	:string;//现货品种名称
-    deliverystartdate	:string;//交收期(开始)
-    enddate	:string;//点价结束日期 [2:点价 3:暂定价]
-    enumdicname	:string;//单位名称
-    goodscode	:string;//点价合约代码
-    goodsid	:number;//点价合约ID - number;
-//:为现货,其它为期货商品合约ID [2:点价 3:暂定价]
-    goodsname	:string;//点价商品名称
-    margin	:number;//当前保证金
-    meruserid	:number;//跟单员id
-    meruserlogincode	:string;//跟单员登录代码
-    price	:number;//价格\暂定价 [1:一口价、3:暂定价]
-    pricemove	:number;//升贴水 [2:点价 3:暂定价]
-    pricetype	:number;//定价类型 - 1:一口价 2:点价 3:暂定价
-    producttype	:number;//产品类型 - 1:标准仓单 2:等标 3:非标
-    qty	:number;//数量
-    remark	:string;//备注
-    saleuserid	:number;//业务员id
-    saleuserlogincode	:string;//业务员登录代码
-    sellnickname	:string;//采购方昵称
-    selluserid	:number;//销售方ID
-    sellusername	:string;//销售方名称
-    spotcontractid	:string;//现货合同ID(6number;
-//2+Unix秒时间戳(1number;
-//位)+xxxxxx)
-    spotgoodsbrandid	:number;//现货品牌ID(DGFactoryItem表的ID)
-    spotgoodsdesc	:string;//商品型号
-    startdate	:string;//点价开始日期 [2:点价 3:暂定价]
-    tradeuserid	:number;//交易员id
-    tradeuserlogincode	:string;//交易员登录代码
-    tradeusername	:string;//交易员名称
-    unitid	:number;//单位id(取品类上的单位id)
-    updatetime	:string;//更新时间
-    userid	:number;//所属机构ID
-    wrstandardcode	:string;//品类代码
-    wrstandardid	:number;//品类ID
-    wrstandardname	:string;//品类名称
+    accountid: string;//期货账户id
+    amount: number;//金额 [1:一口价、3:暂定价]
+    attachment: string;//附件
+    auditremark: string;//审核意见
+    audittime: string;//审核时间
+    biztype: number;//业务类型 1-套保 2-套利
+    brandname: string;//品牌名称
+    buynickname: string;//销售方昵称
+    buyuserid: number;//采购方ID
+    buyusername: string;//采购方名称
+    contracctstatus: number;//合同状态 - number;
+    //:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
+    contractmargin: number;//合同保证金
+    contractno: string;//现货合同编号
+    contracttype: number;//现货合同类型 - 1:采购 -1:销售
+    convertfactor: number;//标仓系数(品类)
+    createtime: string;//创建时间
+    currencyid: number;//币种id
+    currencyname: string;//币种名称
+    deliveryenddate: string;//交收期(结束)
+    deliverygoodscode: string;//现货品种代码
+    deliverygoodsid: number;//现货品种ID
+    deliverygoodsname: string;//现货品种名称
+    deliverystartdate: string;//交收期(开始)
+    enddate: string;//点价结束日期 [2:点价 3:暂定价]
+    enumdicname: string;//单位名称
+    goodscode: string;//点价合约代码
+    goodsid: number;//点价合约ID - number;
+    //:为现货,其它为期货商品合约ID [2:点价 3:暂定价]
+    goodsname: string;//点价商品名称
+    margin: number;//当前保证金
+    meruserid: number;//跟单员id
+    meruserlogincode: string;//跟单员登录代码
+    price: number;//价格\暂定价 [1:一口价、3:暂定价]
+    pricemove: number;//升贴水 [2:点价 3:暂定价]
+    pricetype: number;//定价类型 - 1:一口价 2:点价 3:暂定价
+    producttype: number;//产品类型 - 1:标准仓单 2:等标 3:非标
+    qty: number;//数量
+    remark: string;//备注
+    saleuserid: number;//业务员id
+    saleuserlogincode: string;//业务员登录代码
+    sellnickname: string;//采购方昵称
+    selluserid: number;//销售方ID
+    sellusername: string;//销售方名称
+    spotcontractid: string;//现货合同ID(6number;
+    //2+Unix秒时间戳(1number;
+    //位)+xxxxxx)
+    spotgoodsbrandid: number;//现货品牌ID(DGFactoryItem表的ID)
+    spotgoodsdesc: string;//商品型号
+    startdate: string;//点价开始日期 [2:点价 3:暂定价]
+    tradeuserid: number;//交易员id
+    tradeuserlogincode: string;//交易员登录代码
+    tradeusername: string;//交易员名称
+    unitid: number;//单位id(取品类上的单位id)
+    updatetime: string;//更新时间
+    userid: number;//所属机构ID
+    wrstandardcode: string;//品类代码
+    wrstandardid: number;//品类ID
+    wrstandardname: string;//品类名称
 }
 
 /**
@@ -82,16 +83,16 @@ export interface QueryChangeLogReq {
 /**
  * 查询变更记录 返回
  */
-export interface ErmcpOPLogModel{
-    aftervalue	:number;//变更后
-    applyid	:string;//操作人ID
-    applyname	:string;//操作人名称
-    beforevalue	:number;//变更前
-    biztype	:number;//业务类型 - 1:套保计划 2:现货合同
-    contracttype	:number;//现货合同类型 - 1:采购 -1:销售
-    logvalue	:number;//数值
-    operatelogtype	:number;//操作流水类型
-    operatelogtypedesc	:string;//操作流水类型名称
-    relatedid	:string;//现货合同ID\套保计划
-    updatetime	:string;//更新时间
+export interface ErmcpOPLogModel {
+    aftervalue: number;//变更后
+    applyid: string;//操作人ID
+    applyname: string;//操作人名称
+    beforevalue: number;//变更前
+    biztype: number;//业务类型 - 1:套保计划 2:现货合同
+    contracttype: number;//现货合同类型 - 1:采购 -1:销售
+    logvalue: number;//数值
+    operatelogtype: number;//操作流水类型
+    operatelogtypedesc: string;//操作流水类型名称
+    relatedid: string;//现货合同ID\套保计划
+    updatetime: string;//更新时间
 }

+ 49 - 17
src/views/business/purchase/list/all/index.vue

@@ -1,15 +1,12 @@
 <template>
-    <!-- 采购: 全部-->
-    <div class="purchase-all" :loading="loading">
+    <!-- 采购合同: 特点价合同-待交收合同-->
+    <div class="purchase-peddding" :loading="loading">
         <filterCustomTable @search="updateColumn"></filterCustomTable>
         <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
             <!-- 额外的展开行 -->
             <template #expandedRowRender="{ record }">
                 <mtp-table-button class="btn-list-sticky" :buttons="buttons" :record="record" @click="openComponent" />
             </template>
-            <template #contracctstatus="{ record }">
-                <a>{{ getContractStatusName(record.contracctstatus) }}</a>
-            </template>
             <template #pricedqty="{ text, record }">
                 <span>{{ handleEnumdic(text, record) }}</span>
             </template>
@@ -22,6 +19,12 @@
             <template #unpricedqty="{ text, record }">
                 <span>{{ handleEnumdic(text, record) }}</span>
             </template>
+            <template #unpayamount="{ record }">
+                <span>{{ record.unpayamount.toFixed(2) }}</span>
+            </template>
+            <template #daikaiamount="{ record }">
+                <span>{{ record.daikaiamount.toFixed(2) }}</span>
+            </template>
             <template #deliverystartdate,deliveryenddate="{ record }">
                 <span>{{ formatValue(formatTime(record.deliverystartdate, 'd') + '--' + formatTime(record.deliveryenddate, 'd')) }}</span>
             </template>
@@ -37,48 +40,77 @@
 
 <script lang="ts">
 import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
-
 import { Ermcp3SellBuyContract } from '../index';
 import { filterCustomTable } from '../../components';
 import { QueryPurchase } from '@/services/go/ermcp/purchase';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { getContractStatusName } from '@/common/constants/enumsName';
 import { handleEnumdic } from '../setup';
 import { formatTime, formatValue } from '@/common/methods';
 import { getTableButton } from '@/common/setup/table/button';
+import { useRoute } from 'vue-router';
 
 export default defineComponent({
-    name: EnumRouterName.purchase_all,
+    name: EnumRouterName.purchase_pending,
     components: {
         contextMenu,
         filterCustomTable,
         MtpTableButton,
-        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')), // 详情
+        purchase_pending_someprice: defineAsyncComponent(() => import('../../components/someprice/index.vue')), //采购点价登记
+        purchase_performance_settlement: defineAsyncComponent(() => import('../../components/settlement/index.vue')), //交收登记
+        purchase_performance_funds: defineAsyncComponent(() => import('../../components/funds/index.vue')), // 款项登记
+        purchase_performance_invoice: defineAsyncComponent(() => import('../../components/invoice/index.vue')), // 发票登记
+        purchase_performance_storage: defineAsyncComponent(() => import('../../components/storage/index.vue')), // 入库登记
+        purchase_performance_ending: defineAsyncComponent(() => import('@/views/information/spot-contract/components/finish/index.vue')), // 完结合同
     },
     setup() {
+        const { name: routeName } = useRoute();
+        // 权限按钮
+        const buttons = getTableButton();
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<Ermcp3SellBuyContract>();
 
         // 获取列表数据
-        const queryTableAction = () => queryTable(QueryPurchase, { querytype: 1 });
+        const queryTableAction = () => {
+            switch (routeName) {
+                // 特点价合同
+                case 'purchase_pending':
+                    queryTable(QueryPurchase, { querytype: 2 });
+                    break;
+                // 待交收合同
+                case 'purchase_performance':
+                    queryTable(QueryPurchase, { querytype: 3 });
+                    break;
+            }
+        };
+
+        // 获取表头名称
+        const getTableName = () => {
+            switch (routeName) {
+                // 特点价合同
+                case 'purchase_pending':
+                    return 'table_pcweb_purchase_pointprice';
+                // 待交收合同
+                case 'purchase_performance':
+                    return 'table_pcweb_purchase_settle';
+                default:
+                    return 'table_pcweb_purchase_all';
+            }
+        };
 
         // 表格通用逻辑
         const param: ComposeTableParam = {
             queryFn: queryTableAction,
-            menuType: EnumRouterName.purchase_all,
-            tableName: 'table_pcweb_purchase_all',
+            menuType: EnumRouterName.purchase_pending,
+            tableName: getTableName(),
             tableFilterKey: ['accountname', 'contractno', 'deliverygoodsname', 'convertfactor', 'goodsname'],
             isDetail: true,
         };
 
-        // 权限按钮
-        const buttons = getTableButton();
-
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),
             tableList,
             loading,
-            getContractStatusName,
             handleEnumdic,
             formatTime,
             formatValue,
@@ -86,4 +118,4 @@ export default defineComponent({
         };
     },
 });
-</script>
+</script>

+ 0 - 90
src/views/business/purchase/list/pending/index.vue

@@ -1,90 +0,0 @@
-<template>
-    <div style="background: red; color: #fff; padding: 5px 0">待修改-套保交易-purchase_pending_trade</div>
-    <!-- 采购: 待点价-->
-    <div class="purchase-peddding" :loading="loading">
-        <filterCustomTable @search="updateColumn"></filterCustomTable>
-        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
-            <!-- 额外的展开行 -->
-            <template #expandedRowRender="{ record }">
-                <mtp-table-button class="btn-list-sticky" :buttons="buttons" :record="record" @click="openComponent" />
-            </template>
-            <template #pricedqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unsureqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #qty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unpricedqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unpayamount="{ record }">
-                <span>{{ record.unpayamount.toFixed(2) }}</span>
-            </template>
-            <template #daikaiamount="{ record }">
-                <span>{{ record.daikaiamount.toFixed(2) }}</span>
-            </template>
-            <template #deliverystartdate,deliveryenddate="{ record }">
-                <span>{{ formatValue(formatTime(record.deliverystartdate, 'd') + '--' + formatTime(record.deliveryenddate, 'd')) }}</span>
-            </template>
-            <template #startdate,enddate="{ record }">
-                <span>{{ formatValue(formatTime(record.startdate, 'd') + '--' + formatTime(record.enddate, 'd')) }}</span>
-            </template>
-        </a-table>
-        <!-- 右键 -->
-        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="buttons"> </contextMenu>
-        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
-    </div>
-</template>
-
-<script lang="ts">
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
-
-import { Ermcp3SellBuyContract } from '../index';
-import { filterCustomTable } from '../../components';
-import { QueryPurchase } from '@/services/go/ermcp/purchase';
-import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { handleEnumdic } from '../setup';
-import { formatTime, formatValue } from '@/common/methods';
-import { getTableButton } from '@/common/setup/table/button';
-
-export default defineComponent({
-    name: EnumRouterName.purchase_pending,
-    components: {
-        contextMenu,
-        filterCustomTable,
-        MtpTableButton,
-        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
-        purchase_pending_someprice: defineAsyncComponent(() => import('../../components/someprice/index.vue')), //采购点价登记
-    },
-    setup() {
-        // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList<Ermcp3SellBuyContract>();
-        // 获取列表数据
-        const queryTableAction = () => queryTable(QueryPurchase, { querytype: 2 });
-        // 表格通用逻辑
-        const param: ComposeTableParam = {
-            queryFn: queryTableAction,
-            menuType: EnumRouterName.purchase_pending,
-            tableName: 'table_pcweb_purchase_pointprice',
-            tableFilterKey: ['accountname', 'contractno', 'deliverygoodsname', 'convertfactor', 'goodsname'],
-            isDetail: true,
-        };
-
-        // 权限按钮
-        const buttons = getTableButton();
-
-        return {
-            ...handleComposeTable<Ermcp3SellBuyContract>(param),
-            tableList,
-            loading,
-            handleEnumdic,
-            formatTime,
-            formatValue,
-            buttons,
-        };
-    },
-});
-</script>

+ 0 - 88
src/views/business/purchase/list/performance/index.vue

@@ -1,88 +0,0 @@
-<template>
-    <!-- 采购: 履约交收-->
-    <div class="purchase-performance" :loading="loading">
-        <filterCustomTable @search="updateColumn"></filterCustomTable>
-        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
-            <!-- 额外的展开行 -->
-            <template #expandedRowRender="{ record }">
-                <mtp-table-button class="btn-list-sticky" :buttons="buttons" :record="record" @click="openComponent" />
-            </template>
-            <template #pricedqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unsureqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #qty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unpricedqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #deliverystartdate,deliveryenddate="{ record }">
-                <span>{{ formatValue(formatTime(record.deliverystartdate, 'd') + '--' + formatTime(record.deliveryenddate, 'd')) }}</span>
-            </template>
-            <template #startdate,enddate="{ record }">
-                <span>{{ formatValue(formatTime(record.startdate, 'd') + '--' + formatTime(record.enddate, 'd')) }}</span>
-            </template>
-        </a-table>
-        <!-- 右键 -->
-        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="buttons"> </contextMenu>
-        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
-    </div>
-</template>
-
-<script lang="ts">
-import { queryTableList, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam, MtpTableButton } from '@/common/export/commonTable';
-import { filterCustomTable } from '../../components';
-import { QueryPurchase } from '@/services/go/ermcp/purchase';
-import { Ermcp3SellBuyContract } from '@/views/business/sell/list';
-import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { handleEnumdic } from '../setup';
-import { formatTime, formatValue } from '@/common/methods';
-import { getTableButton } from '@/common/setup/table/button';
-
-export default defineComponent({
-    name: EnumRouterName.purchase_performance,
-    components: {
-        contextMenu,
-        filterCustomTable,
-        MtpTableButton,
-        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
-        purchase_performance_settlement: defineAsyncComponent(() => import('../../components/settlement/index.vue')), //交收登记
-        purchase_performance_funds: defineAsyncComponent(() => import('../../components/funds/index.vue')), // 款项登记
-        purchase_performance_invoice: defineAsyncComponent(() => import('../../components/invoice/index.vue')), // 发票登记
-        purchase_performance_storage: defineAsyncComponent(() => import('../../components/storage/index.vue')), // 入库登记
-        purchase_performance_ending: defineAsyncComponent(() => import('@/views/information/spot-contract/components/finish/index.vue')), // 完结合同
-    },
-    setup() {
-        // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList<Ermcp3SellBuyContract>();
-
-        // 获取列表数据
-        const queryTableAction = () => queryTable(QueryPurchase, { querytype: 3 });
-
-        // 表格通用逻辑
-        const param: ComposeTableParam = {
-            queryFn: queryTableAction,
-            menuType: EnumRouterName.purchase_performance,
-            tableName: 'table_pcweb_purchase_settle',
-            tableFilterKey: ['accountname', 'contractno', 'deliverygoodsname', 'convertfactor', 'goodsname'],
-            isDetail: true,
-        };
-
-        // 权限按钮
-        const buttons = getTableButton();
-
-        return {
-            ...handleComposeTable<Ermcp3SellBuyContract>(param),
-            tableList,
-            loading,
-            handleEnumdic,
-            formatTime,
-            formatValue,
-            buttons,
-        };
-    },
-});
-</script>

+ 43 - 16
src/views/business/sell/list/all/index.vue

@@ -1,15 +1,12 @@
 <template>
-    <!-- 销售:全部-->
-    <div class="sell-all" :loading="loading">
+    <!-- 销售合同: 特点价合同-待交收合同-->
+    <div class="sell-peddding" :loading="loading">
         <filterCustomTable @search="updateColumn"></filterCustomTable>
         <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
             <!-- 额外的展开行 -->
             <template #expandedRowRender="{ record }">
                 <mtp-table-button class="btn-list-sticky" :buttons="buttons" :record="record" @click="openComponent" />
             </template>
-            <template #contracctstatus="{ record }">
-                <a>{{ getContractStatusName(record.contracctstatus) }}</a>
-            </template>
             <template #pricedqty="{ text, record }">
                 <span>{{ handleEnumdic(text, record) }}</span>
             </template>
@@ -40,44 +37,74 @@ import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { QueryWareHouse } from '@/services/go/ermcp/sell';
 import { Ermcp3SellBuyContract } from '@/views/business/purchase/list';
-import { filterCustomTable } from '../../components';
-import { getContractStatusName } from '@/common/constants/enumsName';
 import { handleEnumdic } from '../setup';
+import { filterCustomTable } from '../../components';
 import { formatTime, formatValue } from '@/common/methods';
 import { getTableButton } from '@/common/setup/table/button';
+import { useRoute } from 'vue-router';
 
 export default defineComponent({
-    name: EnumRouterName.sell_all,
+    name: EnumRouterName.sell_pending,
     components: {
         contextMenu,
         filterCustomTable,
         MtpTableButton,
         detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        sell_pending_someprice: defineAsyncComponent(() => import('../../components/someprice/index.vue')), //点价登记
+        sell_performance_settlement: defineAsyncComponent(() => import('../../components/settlement/index.vue')), //交收登记
+        sell_performance_funds: defineAsyncComponent(() => import('../../components/funds/index.vue')), // 款项登记
+        sell_performance_invoice: defineAsyncComponent(() => import('../../components/invoice/index.vue')), // 发票登记
+        sell_performance_storage: defineAsyncComponent(() => import('../../components/storage/index.vue')), // 入库登记
+        sell_performance_ending: defineAsyncComponent(() => import('@/views/information/spot-contract/components/finish/index.vue')), // 完结合同
     },
     setup() {
+        const { name: routeName } = useRoute();
+        // 权限按钮
+        const buttons = getTableButton();
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<Ermcp3SellBuyContract>();
 
         // 获取列表数据
-        const queryTableAction = () => queryTable(QueryWareHouse, { querytype: 1 });
+        const queryTableAction = () => {
+            switch (routeName) {
+                // 特点价合同
+                case 'sell_pending':
+                    queryTable(QueryWareHouse, { querytype: 2 });
+                    break;
+                // 待交收合同
+                case 'sell_performance':
+                    queryTable(QueryWareHouse, { querytype: 3 });
+                    break;
+            }
+        };
+
+        // 获取表头名称
+        const getTableName = () => {
+            switch (routeName) {
+                // 特点价合同
+                case 'sell_pending':
+                    return 'table_pcweb_sales_pointprice';
+                // 待交收合同
+                case 'sell_performance':
+                    return 'table_pcweb_sales_settle';
+                default:
+                    return 'table_pcweb_sales_all';
+            }
+        };
 
         // 表格通用逻辑
         const param: ComposeTableParam = {
             queryFn: queryTableAction,
-            menuType: EnumRouterName.sell_all,
-            tableName: 'table_pcweb_sales_all',
+            menuType: EnumRouterName.sell_pending,
+            tableName: getTableName(),
             tableFilterKey: ['accountname', 'contractno', 'deliverygoodsname', 'convertfactor', 'goodsname'],
             isDetail: true,
         };
 
-        // 权限按钮
-        const buttons = getTableButton();
-
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),
             tableList,
             loading,
-            getContractStatusName,
             handleEnumdic,
             formatTime,
             formatValue,
@@ -85,4 +112,4 @@ export default defineComponent({
         };
     },
 });
-</script>
+</script>

+ 0 - 83
src/views/business/sell/list/pending/index.vue

@@ -1,83 +0,0 @@
-<template>
-    <div style="background: red; color: #fff; padding: 5px 0">待修改-套保交易-sell_pending_trade</div>
-    <!-- 销售: 待点价-->
-    <div class="sell-peddding" :loading="loading">
-        <filterCustomTable @search="updateColumn"></filterCustomTable>
-        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
-            <!-- 额外的展开行 -->
-            <template #expandedRowRender="{ record }">
-                <mtp-table-button class="btn-list-sticky" :buttons="buttons" :record="record" @click="openComponent" />
-            </template>
-            <template #pricedqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unsureqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #qty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unpricedqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #deliverystartdate,deliveryenddate="{ record }">
-                <span>{{ formatValue(formatTime(record.deliverystartdate, 'd') + '--' + formatTime(record.deliveryenddate, 'd')) }}</span>
-            </template>
-            <template #startdate,enddate="{ record }">
-                <span>{{ formatValue(formatTime(record.startdate, 'd') + '--' + formatTime(record.enddate, 'd')) }}</span>
-            </template>
-        </a-table>
-        <!-- 右键 -->
-        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="buttons"> </contextMenu>
-        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
-    </div>
-</template>
-
-<script lang="ts">
-import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
-import { QueryWareHouse } from '@/services/go/ermcp/sell';
-import { Ermcp3SellBuyContract } from '@/views/business/purchase/list';
-import { handleEnumdic } from '../setup';
-import { filterCustomTable } from '../../components';
-import { formatTime, formatValue } from '@/common/methods';
-import { getTableButton } from '@/common/setup/table/button';
-
-export default defineComponent({
-    name: EnumRouterName.sell_pending,
-    components: {
-        contextMenu,
-        filterCustomTable,
-        MtpTableButton,
-        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
-        sell_pending_someprice: defineAsyncComponent(() => import('../../components/someprice/index.vue')), //采购点价登记
-    },
-    setup() {
-        // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList<Ermcp3SellBuyContract>();
-        // 获取列表数据
-        const queryTableAction = () => queryTable(QueryWareHouse, { querytype: 2 });
-        // 表格通用逻辑
-        const param: ComposeTableParam = {
-            queryFn: queryTableAction,
-            menuType: EnumRouterName.sell_pending,
-            tableName: 'table_pcweb_sales_pointprice',
-            tableFilterKey: ['accountname', 'contractno', 'deliverygoodsname', 'convertfactor', 'goodsname'],
-            isDetail: true,
-        };
-
-        // 权限按钮
-        const buttons = getTableButton();
-
-        return {
-            ...handleComposeTable<Ermcp3SellBuyContract>(param),
-            tableList,
-            loading,
-            handleEnumdic,
-            formatTime,
-            formatValue,
-            buttons,
-        };
-    },
-});
-</script>

+ 0 - 88
src/views/business/sell/list/performance/index.vue

@@ -1,88 +0,0 @@
-<template>
-    <!-- 销售: 履约交收-->
-    <div class="sell_performance" :loading="loading">
-        <filterCustomTable @search="updateColumn"></filterCustomTable>
-        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
-            <!-- 额外的展开行 -->
-            <template #expandedRowRender="{ record }">
-                <mtp-table-button class="btn-list-sticky" :buttons="buttons" :record="record" @click="openComponent" />
-            </template>
-            <template #pricedqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unsureqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #qty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #unpricedqty="{ text, record }">
-                <span>{{ handleEnumdic(text, record) }}</span>
-            </template>
-            <template #deliverystartdate,deliveryenddate="{ record }">
-                <span>{{ formatValue(formatTime(record.deliverystartdate, 'd') + '--' + formatTime(record.deliveryenddate, 'd')) }}</span>
-            </template>
-            <template #startdate,enddate="{ record }">
-                <span>{{ formatValue(formatTime(record.startdate, 'd') + '--' + formatTime(record.enddate, 'd')) }}</span>
-            </template>
-        </a-table>
-        <!-- 右键 -->
-        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="buttons"> </contextMenu>
-        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
-    </div>
-</template>
-
-<script lang="ts">
-import { EnumRouterName } from '@/common/constants/enumRouterName';
-import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
-import { QueryWareHouse } from '@/services/go/ermcp/sell';
-import { Ermcp3SellBuyContract } from '@/views/business/purchase/list';
-import { handleEnumdic } from '../setup';
-import { filterCustomTable } from '../../components';
-import { formatTime, formatValue } from '@/common/methods';
-import { getTableButton } from '@/common/setup/table/button';
-
-export default defineComponent({
-    name: EnumRouterName.sell_performance,
-    components: {
-        contextMenu,
-        filterCustomTable,
-        MtpTableButton,
-        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
-        sell_performance_settlement: defineAsyncComponent(() => import('../../components/settlement/index.vue')), //交收登记
-        sell_performance_funds: defineAsyncComponent(() => import('../../components/funds/index.vue')), // 款项登记
-        sell_performance_invoice: defineAsyncComponent(() => import('../../components/invoice/index.vue')), // 发票登记
-        sell_performance_storage: defineAsyncComponent(() => import('../../components/storage/index.vue')), // 入库登记
-        sell_performance_ending: defineAsyncComponent(() => import('@/views/information/spot-contract/components/finish/index.vue')), // 完结合同
-    },
-    setup() {
-        // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList<Ermcp3SellBuyContract>();
-
-        // 获取列表数据
-        const queryTableAction = () => queryTable(QueryWareHouse, { querytype: 3 });
-
-        // 表格通用逻辑
-        const param: ComposeTableParam = {
-            queryFn: queryTableAction,
-            menuType: EnumRouterName.sell_performance,
-            tableName: 'table_pcweb_sales_settle',
-            tableFilterKey: ['accountname', 'contractno', 'deliverygoodsname', 'convertfactor', 'goodsname'],
-            isDetail: true,
-        };
-
-        // 权限按钮
-        const buttons = getTableButton();
-
-        return {
-            ...handleComposeTable<Ermcp3SellBuyContract>(param),
-            tableList,
-            loading,
-            handleEnumdic,
-            formatTime,
-            formatValue,
-            buttons,
-        };
-    },
-});
-</script>

+ 67 - 0
src/views/business/spotmarket/list/price/index.vue

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

+ 13 - 7
src/views/information/spot-contract/list/unsubmitted/index.vue → src/views/information/spot-contract/list/purchase/index.vue

@@ -1,5 +1,5 @@
 <template>
-    <!-- 现货合同: 未提交-->
+    <!-- 采购合同: 新增合同-已完结合同-->
     <div class="spot-contract-not-commit" :loading="loading">
         <filterCustomTable @search="updateColumn">
             <mtp-table-button :buttons="firstBtn" @click="openComponent" />
@@ -13,15 +13,12 @@
             <template #biztype="{ text }">
                 <a>{{ getBizTypeName(text) }}</a>
             </template>
-
             <template #pricetype="{ text }">
                 <span>{{ getPriceTypeName(text) }}</span>
             </template>
-
             <template #contracctstatus="{ text }">
                 <a>{{ getContractStatusName(text) }}</a>
             </template>
-
             <template #contracttype="{ text }">
                 <a>{{ getContractTypeName(text) }}</a>
             </template>
@@ -59,7 +56,6 @@
 <script lang="ts">
 import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { filterCustomTable } from '../../components';
-
 import { formatTime, formatValue } from '@/common/methods';
 import { queryBusinessManager, findManagerName, tableFilterCB, handleEnumdic } from '../setup';
 import { getPriceTypeName, getBizTypeName, getContractStatusName, getContractTypeName } from '@/common/constants/enumsName';
@@ -67,6 +63,7 @@ import { Ermcp3ContractRsp } from '@/services/go/ermcp/spot-contract/interface';
 import { QuerySpotContract } from '@/services/go/ermcp/spot-contract';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { getTableButton } from '@/common/setup/table/button';
+import { useRoute } from 'vue-router';
 
 export default defineComponent({
     name: EnumRouterName.spot_contract_unsubmitted,
@@ -80,16 +77,25 @@ export default defineComponent({
         MtpTableButton,
     },
     setup() {
+        const { name: routeName } = useRoute();
         // 权限按钮
         const firstBtn = getTableButton(['add']);
         const secondBtn = getTableButton(['add'], true);
-
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<Ermcp3ContractRsp>();
 
         // 获取列表数据
         const queryTableAction = () => {
-            queryTable(QuerySpotContract, { querytype: 1 });
+            switch (routeName) {
+                // 新增合同
+                case 'purchase_contract':
+                    queryTable(QuerySpotContract, { contracttype: 1 });
+                    break;
+                // 已完结合同
+                case 'purchase_finish':
+                    queryTable(QuerySpotContract, { contracttype: 1, querytype: 4 });
+                    break;
+            }
             // 获取 业务账户
             queryBusinessManager();
         };

+ 130 - 0
src/views/information/spot-contract/list/sell/index.vue

@@ -0,0 +1,130 @@
+<template>
+    <!-- 销售合同: 新增合同-已完结合同-->
+    <div class="spot-contract-not-commit" :loading="loading">
+        <filterCustomTable @search="updateColumn">
+            <mtp-table-button :buttons="firstBtn" @click="openComponent" />
+        </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)' }">
+            <!-- 额外的展开行 -->
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="secondBtn" :record="record" @click="openComponent" />
+            </template>
+            <template #biztype="{ text }">
+                <a>{{ getBizTypeName(text) }}</a>
+            </template>
+            <template #pricetype="{ text }">
+                <span>{{ getPriceTypeName(text) }}</span>
+            </template>
+            <template #contracctstatus="{ text }">
+                <a>{{ getContractStatusName(text) }}</a>
+            </template>
+            <template #contracttype="{ text }">
+                <a>{{ getContractTypeName(text) }}</a>
+            </template>
+            <!-- 对手方 -->
+            <template #negative="{ record }">
+                <a>{{ record.contracttype === 1 ? record.sellusername : record.buyusername }}</a>
+            </template>
+            <!-- 点假期 -->
+            <template #startdate="{ record }">
+                <span>{{ formatValue(formatTime(record.startdate, 'd') + '--' + formatTime(record.enddate, 'd')) }}</span>
+            </template>
+            <!-- 交收期 -->
+            <template #deliverystartdate="{ record }">
+                <span>{{ formatValue(formatTime(record.deliverystartdate, 'd') + '--' + formatTime(record.deliveryenddate, 'd')) }}</span>
+            </template>
+            <!-- 业务员 -->
+            <template #saleuserid="{ record }">
+                <span>{{ findManagerName(record.saleuserid) }}</span>
+            </template>
+            <!-- 跟单员 -->
+            <template #meruserid="{ record }">
+                <span>{{ findManagerName(record.meruserid) }}</span>
+            </template>
+            <!-- 合同量 -->
+            <template #qty="{ text, record }">
+                <span>{{ handleEnumdic(text, record) }}</span>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="secondBtn"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
+    </div>
+</template>
+
+<script lang="ts">
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { filterCustomTable } from '../../components';
+import { formatTime, formatValue } from '@/common/methods';
+import { queryBusinessManager, findManagerName, tableFilterCB, handleEnumdic } from '../setup';
+import { getPriceTypeName, getBizTypeName, getContractStatusName, getContractTypeName } from '@/common/constants/enumsName';
+import { Ermcp3ContractRsp } from '@/services/go/ermcp/spot-contract/interface';
+import { QuerySpotContract } from '@/services/go/ermcp/spot-contract';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
+import { useRoute } from 'vue-router';
+
+export default defineComponent({
+    name: EnumRouterName.spot_contract_unsubmitted,
+    components: {
+        filterCustomTable,
+        contextMenu,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        add: defineAsyncComponent(() => import('../../components/add/index.vue')),
+        resubmit: defineAsyncComponent(() => import('../../components/modify/index.vue')),
+        cancel: defineAsyncComponent(() => import('../../components/delete/index.vue')),
+        MtpTableButton,
+    },
+    setup() {
+        const { name: routeName } = useRoute();
+        // 权限按钮
+        const firstBtn = getTableButton(['add']);
+        const secondBtn = getTableButton(['add'], true);
+        // 表格列表数据
+        const { loading, tableList, queryTable } = queryTableList<Ermcp3ContractRsp>();
+
+        // 获取列表数据
+        const queryTableAction = () => {
+            switch (routeName) {
+                // 新增合同
+                case 'sell_contract':
+                    queryTable(QuerySpotContract, { contracttype: -1, querytype: 1 });
+                    break;
+                // 已完结合同
+                case 'sell_finish':
+                    queryTable(QuerySpotContract, { contracttype: -1, querytype: 4 });
+                    break;
+            }
+            // 获取 业务账户
+            queryBusinessManager();
+        };
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.spot_contract_unsubmitted,
+            tableName: 'table_pcweb_delivery',
+            tableFilterKey: ['contracttype', 'pricetype', 'contractno'],
+            tableFilterCB,
+            isDetail: true,
+        };
+
+        return {
+            ...handleComposeTable<Ermcp3ContractRsp>(param),
+            loading,
+            tableList,
+            getBizTypeName,
+            getPriceTypeName,
+            getContractStatusName,
+            getContractTypeName,
+            formatTime,
+            formatValue,
+            findManagerName,
+            handleEnumdic,
+            firstBtn,
+            secondBtn,
+        };
+    },
+});
+</script>