li.shaoyi 4 lat temu
rodzic
commit
7dd964a6bf

+ 1 - 14
package-lock.json

@@ -23,8 +23,7 @@
                 "uuid": "^8.3.2",
                 "vue": "^3.0.0",
                 "vue-class-component": "^8.0.0-0",
-                "vue-router": "^4.0.0-0",
-                "vuex": "^4.0.0-0"
+                "vue-router": "^4.0.0-0"
             },
             "devDependencies": {
                 "@types/crypto-js": "^4.0.1",
@@ -15351,13 +15350,6 @@
                 "node": ">=0.10.0"
             }
         },
-        "node_modules/vuex": {
-            "version": "4.0.0-rc.2",
-            "integrity": "sha512-HCPzYGea1xL7fMpDoMiHKujC1Bi/HM9LS5ML0Kv55zQtZJvOl0Lq7eWvJoen+SI4Lf7p9V5AqcVsoLPXNBywjg==",
-            "peerDependencies": {
-                "vue": "^3.0.2"
-            }
-        },
         "node_modules/warning": {
             "version": "4.0.3",
             "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
@@ -28788,11 +28780,6 @@
                 }
             }
         },
-        "vuex": {
-            "version": "4.0.0-rc.2",
-            "integrity": "sha512-HCPzYGea1xL7fMpDoMiHKujC1Bi/HM9LS5ML0Kv55zQtZJvOl0Lq7eWvJoen+SI4Lf7p9V5AqcVsoLPXNBywjg==",
-            "requires": {}
-        },
         "warning": {
             "version": "4.0.3",
             "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",

+ 1 - 2
package.json

@@ -24,8 +24,7 @@
         "uuid": "^8.3.2",
         "vue": "^3.0.0",
         "vue-class-component": "^8.0.0-0",
-        "vue-router": "^4.0.0-0",
-        "vuex": "^4.0.0-0"
+        "vue-router": "^4.0.0-0"
     },
     "devDependencies": {
         "@types/crypto-js": "^4.0.1",

+ 7 - 7
src/common/constants/modalNameEnum.ts

@@ -205,11 +205,11 @@ export enum ModalEnum {
 
 	spot_contract_btn_delete = 'spot_contract_btn_delete', // 删除
 
-	spot_contract_btn_check = 'spot_contract_btn_check', // 审核
+	spot_contract_btn_check = 'contract_checkpending_check', // 审核
 
-	spot_contract_btn_cancel = 'spot_contract_btn_cancel', // 撤销
+	spot_contract_btn_cancel = 'contract_checkpending_cancel', // 撤销
 
-	spot_contract_btn_finish = 'spot_contract_btn_finish', // 正常完结
+	purchase_performance_ending = 'purchase_performance_ending', // 正常完结
 
 	account_info_business_btn_modify = 'account_spot_modify', // 修改
 
@@ -233,13 +233,13 @@ export enum ModalEnum {
 
 	purchase_pending_someprice = 'purchase_pending_someprice', // 点价登记
 
-	purchase_pending_settlement = 'purchase_performance_settlement', // 交收登记
+	purchase_performance_settlement = 'purchase_performance_settlement', // 交收登记
 
-	purchase_pending_funds = 'purchase_performance_funds', // 款项登记
+	purchase_performance_funds = 'purchase_performance_funds', // 款项登记
 
-	purchase_pending_invoice = 'purchase_performance_invoice', // 发票登记
+	purchase_performance_invoice = 'purchase_performance_invoice', // 发票登记
 
-	purchase_pending_storage = 'purchase_performance_storage', // 入库登记
+	purchase_performance_storage = 'purchase_performance_storage', // 入库登记
 
 	sell_pending_someprice = 'sell_pending_someprice', // 点价登记
 

+ 7 - 6
src/views/business/purchase/list/performance/index.vue

@@ -1,5 +1,4 @@
 <template>
-    <div style="background: red; color: #fff; padding: 5px 0">待修改-完结合同-purchase_performance_ending</div>
     <!-- 采购: 履约交收-->
     <div class="purchase-performance" :loading="loading">
         <filterCustomTable @search="updateColumn"></filterCustomTable>
@@ -48,6 +47,7 @@ const Settlement = defineAsyncComponent(() => import('../../components/settlemen
 const Funds = defineAsyncComponent(() => import('../../components/funds/index.vue')); // 款项登记
 const Invoice = defineAsyncComponent(() => import('../../components/invoice/index.vue')); // 发票登记
 const Storage = defineAsyncComponent(() => import('../../components/storage/index.vue')); // 入库登记
+const Finish = defineAsyncComponent(() => import('@/views/information/spot-contract/components/finish/index.vue')); // 完结合同
 
 export default defineComponent({
     name: EnumRouterName.purchase_performance,
@@ -56,10 +56,11 @@ export default defineComponent({
         filterCustomTable,
         MtpTableButton,
         [ModalEnum.detail]: Detail,
-        [ModalEnum.purchase_pending_settlement]: Settlement,
-        [ModalEnum.purchase_pending_funds]: Funds,
-        [ModalEnum.purchase_pending_invoice]: Invoice,
-        [ModalEnum.purchase_pending_storage]: Storage,
+        [ModalEnum.purchase_performance_settlement]: Settlement,
+        [ModalEnum.purchase_performance_funds]: Funds,
+        [ModalEnum.purchase_performance_invoice]: Invoice,
+        [ModalEnum.purchase_performance_storage]: Storage,
+        [ModalEnum.purchase_performance_ending]: Finish,
     },
     setup() {
         // 表格列表数据
@@ -77,7 +78,7 @@ export default defineComponent({
             isDetail: true,
         };
 
-        const buttons = getTableButton([ModalEnum.purchase_pending_settlement, ModalEnum.purchase_pending_funds, ModalEnum.purchase_pending_invoice, ModalEnum.purchase_pending_storage, 'purchase_performance_ending', ModalEnum.detail]);
+        const buttons = getTableButton([ModalEnum.purchase_performance_settlement, ModalEnum.purchase_performance_funds, ModalEnum.purchase_performance_invoice, ModalEnum.purchase_performance_storage, ModalEnum.purchase_performance_ending, ModalEnum.detail]);
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 2 - 2
src/views/iframe/index.vue

@@ -1,7 +1,7 @@
 <template>
     <!-- 管理端 -->
     <div class="iframe-container">
-        <iframe :src="url" style="border: 0"></iframe>
+        <iframe :src="url" style="border: 0" title="mtp"></iframe>
     </div>
 </template>
 
@@ -12,7 +12,7 @@ import { getIframeUrl } from './setup';
 export default defineComponent({
     setup() {
         return {
-            url: getIframeUrl(),
+            ...getIframeUrl(),
         };
     },
 });

+ 34 - 16
src/views/iframe/setup.ts

@@ -1,4 +1,6 @@
+import { ref, watch } from 'vue';
 import { useRoute } from 'vue-router';
+import { initData } from "@/common/methods";
 import { serviceURL } from "@/services/request";
 import { getToken } from "@/services/bus/token";
 import { OperationTabMenuAuth } from '@/services/go/commonService/interface';
@@ -68,25 +70,41 @@ const iframeCode: IframeCode[] = [
 /**
  * 获取管理端url
  */
-export function getIframeUrl(): string {
-    let param = 'resourcepcmenu=';
+export function getIframeUrl() {
     const route = useRoute();
-    const url = route.meta.url;
-    // 根据当前路由 name(code) 查找出对应的 iframeCode
-    const item = iframeCode.find((item) => item.code === route.name);
+    const url = ref('');
 
-    if (item) {
-        const auth = route.meta.auth as OperationTabMenuAuth[];
-        const fn = (code: string) => auth.find((e) => e.code === code);
+    const getUrl = () => {
+        let param = 'resourcepcmenu=';
+        // 管理端地址
+        const serviceUrl = serviceURL.pcMangerUrl + route.meta.url;
+        // 根据当前路由 name(code) 查找出对应的 iframeCode
+        const item = iframeCode.find((item) => item.code === route.name);
+        if (item) {
+            const auth = route.meta.auth as OperationTabMenuAuth[];
+            const fn = (code: string) => auth.find((e) => e.code === code);
+            // 拼接按钮权限参数
+            Object.entries(item.buttons).forEach((values) => {
+                if (values[0] === 'info' || fn(values[0])) {
+                    param += `:${values[1]}`;
+                }
+            });
 
-        // 拼接按钮权限参数
-        Object.entries(item.buttons).forEach((values) => {
-            if (values[0] === 'info' || fn(values[0])) {
-                param += `:${values[1]}`;
-            }
-        });
+            url.value = `${serviceUrl}?token=${getToken()}&tabindex=${item.tabIndex}&${param}`;
+        }
+    }
+
+    initData(() => {
+        getUrl();
+    })
+
+    watch(() => route.path, () => {
+        initData(() => {
+            getUrl();
+        })
+    })
 
-        return `${serviceURL.pcMangerUrl + url}?token=${getToken()}&tabindex=${item.tabIndex}&${param}`;
+    return {
+        url
     }
-    return '';
 }

+ 62 - 79
src/views/information/spot-contract/components/detail/index.vue

@@ -1,90 +1,73 @@
 <template>
-  <!-- 现货合同详情-->
-  <a-modal class="add-custom custom-detail"
-           title="现货合同详情"
-           v-model:visible="visible"
-           centered
-           :maskClosable="false"
-           @cancel="cancel"
-           width="890px">
-    <template #footer>
-      <a-button key="submit"
-                type="primary"
-                :loading="loading"
-                @click="cancel">关闭</a-button>
-    </template>
-    <a-tabs v-model:activeKey="activeKey"
-            @change="tabClick">
-      <a-tab-pane v-for="item in tabList"
-                  :key="item.key"
-                  :tab="item.name"></a-tab-pane>
-    </a-tabs>
-    <InfoDetail :selectedRow="selectedRow"
-                v-if="activeKey == 1" />
-    <div class="tableDatas"
-         v-else>
-      <a-table class="dialogTable"
-               :columns="columns"
-               :data-source="tableList"
-               :pagination="false">
-        <template #status="{ text }">
-          <span class="yellow">{{ text }}</span>
-          <!-- 审核通过'green' 审核拒绝 'orange' 待审核'yellow'   -->
+    <!-- 现货合同详情-->
+    <a-modal class="add-custom custom-detail" title="现货合同详情" v-model:visible="visible" centered :maskClosable="false" @cancel="cancel" width="890px">
+        <template #footer>
+            <a-button key="submit" type="primary" :loading="loading" @click="cancel">关闭</a-button>
         </template>
+        <a-tabs v-model:activeKey="activeKey" @change="tabClick">
+            <a-tab-pane v-for="item in tabList" :key="item.key" :tab="item.name"></a-tab-pane>
+        </a-tabs>
+        <InfoDetail :selectedRow="selectedRow" v-if="activeKey == 1" />
+        <div class="tableDatas" v-else>
+            <a-table class="dialogTable" :columns="columns" :data-source="tableList" :pagination="false">
+                <template #status="{ text }">
+                    <span class="yellow">{{ text }}</span>
+                    <!-- 审核通过'green' 审核拒绝 'orange' 待审核'yellow'   -->
+                </template>
 
-        <template #applystatus="{ text }">
-          <a>{{ getApplyStatusName(text) }}</a>
-        </template>
+                <template #applystatus="{ text }">
+                    <a>{{ getApplyStatusName(text) }}</a>
+                </template>
 
-        <!-- 发票金额-->
-        <template #invoicetype="{ text }">
-          <a>{{ invoiceStatusName(text) }}</a>
-        </template>
+                <!-- 发票金额-->
+                <template #invoicetype="{ text }">
+                    <a>{{ invoiceStatusName(text) }}</a>
+                </template>
 
-        <!-- 发票类型-->
-        <template #contracttype="{ text }">
-          <a>{{ getReceiptName(text) }}</a>
-        </template>
+                <!-- 发票类型-->
+                <template #contracttype="{ text }">
+                    <a>{{ getReceiptName(text) }}</a>
+                </template>
 
-        <!-- 出入库类型 -->
-        <template #inouttype="{ text }">
-          <a>{{ InOutTypeName(text) }}</a>
-        </template>
+                <!-- 出入库类型 -->
+                <template #inouttype="{ text }">
+                    <a>{{ InOutTypeName(text) }}</a>
+                </template>
 
-        <!-- 款项类型 -->
-        <template #kxtype="{ text, record }">
-          <a>{{ stateName(record.deductamount ,record.contracttype) }}</a>
-        </template>
+                <!-- 款项类型 -->
+                <template #kxtype="{ record }">
+                    <a>{{ stateName(record.deductamount, record.contracttype) }}</a>
+                </template>
 
-        <!-- 金额-->
-        <template #payamount="{ text, record }">
-          <span>{{ formatValue(record.kxtype === 2 ? record.deductamount : text) }}</span>
-        </template>
+                <!-- 金额-->
+                <template #payamount="{ text, record }">
+                    <span>{{ formatValue(record.kxtype === 2 ? record.deductamount : text) }}</span>
+                </template>
 
-          <!-- 调整付保证金-->
-          <template #addmargin="{ text, record }">
-              <span>{{ formatValue(record.addmargin === undefined || "" ? record.decmargin : record.addmargin) }}</span>
-          </template>
+                <!-- 调整付保证金-->
+                <template #addmargin="{ record }">
+                    <span>{{ formatValue(record.addmargin === undefined || '' ? record.decmargin : record.addmargin) }}</span>
+                </template>
 
-          <!-- 交收量 -->
-          <template #reckonrealqty="{record }">
-              <span>{{ formatValue(record.reckonrealqty) }}</span>
-          </template>
+                <!-- 交收量 -->
+                <template #reckonrealqty="{ record }">
+                    <span>{{ formatValue(record.reckonrealqty) }}</span>
+                </template>
 
-          <!-- 其他费用 -->
-          <template #reckonotheramount="{record }">
-              <span>{{ formatValue(record.reckonotheramount) }}</span>
-          </template>
+                <!-- 其他费用 -->
+                <template #reckonotheramount="{ record }">
+                    <span>{{ formatValue(record.reckonotheramount) }}</span>
+                </template>
 
-          <!-- 申请人 -->
-          <template #applyname="{record }">
-              <span>{{ formatValue(record.applyname) }}</span>
-          </template>
+                <!-- 申请人 -->
+                <template #applyname="{ record }">
+                    <span>{{ formatValue(record.applyname) }}</span>
+                </template>
 
-        <!-- 款项记录 款项类型为退款  则金额使用deductamount-->
-      </a-table>
-    </div>
-  </a-modal>
+                <!-- 款项记录 款项类型为退款  则金额使用deductamount-->
+            </a-table>
+        </div>
+    </a-modal>
 </template>
 
 <script lang="ts">
@@ -97,14 +80,14 @@ import { QueryAreaStockApply } from '@/services/go/ermcp/inventory-review';
 import { QueryChangeLog } from '@/services/go/ermcp/spot-contract';
 import { ErmcpLoginUserEx } from '@/services/go/ermcp/account/interface';
 import InfoDetail from '../infoDetail/index.vue';
-import {getApplyStatusName, getReceiptName} from '@/common/constants/enumsName';
+import { getApplyStatusName, getReceiptName } from '@/common/constants/enumsName';
 import { getTableColumns } from '@/common/setup/table';
-import {invoiceStatusName, stateName} from '@/views/manage/finance-review/setup';
+import { invoiceStatusName, stateName } from '@/views/manage/finance-review/setup';
 import { getPlanContractType } from '@/views/business/plan/setup';
 import { InOutTypeName } from '@/views/manage/inventory-review/setup';
 import { kxtypeName } from '@/views/manage/finance-review/setup';
 import { _closeModal } from '@/common/setup/modal/modal';
-import {formatValue} from "@/common/methods";
+import { formatValue } from '@/common/methods';
 
 export default defineComponent({
     name: 'spot-contract-detail',
@@ -116,7 +99,7 @@ export default defineComponent({
             default: {},
         },
     },
-    setup: function(props, context) {
+    setup: function (props, context) {
         const { visible, cancel } = _closeModal(context);
         const tabList = ref<{ key: number; name: string }[]>([]);
 
@@ -223,7 +206,7 @@ export default defineComponent({
             kxtypeName,
             formatValue,
             getReceiptName,
-            stateName
+            stateName,
         };
     },
 });

+ 8 - 23
src/views/information/spot-contract/components/finish/index.vue

@@ -1,27 +1,12 @@
 <template>
-  <!-- 现货合同正常完结-->
-  <a-modal class="commonModal custom-finish"
-           title="现货合同正常完结"
-           v-model:visible="visible"
-           centered
-           :maskClosable="false"
-           @cancel="cancel"
-           width="890px">
-    <template #footer>
-      <a-button key="submit"
-                class="cancelBtn"
-                :loading="loading"
-                :disabled="loading"
-                @click="cancel">取消</a-button>
-      <a-button key="submit"
-                type="primary"
-                :loading="loading"
-                :disabled="loading"
-                @click="submit">确认完结</a-button>
-    </template>
-    <InfoDetail :selectedRow="selectedRow"
-                :businessManager="businessManager" />
-  </a-modal>
+    <!-- 现货合同正常完结-->
+    <a-modal class="commonModal custom-finish" title="现货合同正常完结" v-model:visible="visible" centered :maskClosable="false" @cancel="cancel" width="890px">
+        <template #footer>
+            <a-button key="submit" class="cancelBtn" :loading="loading" :disabled="loading" @click="cancel">取消</a-button>
+            <a-button key="submit" type="primary" :loading="loading" :disabled="loading" @click="submit">确认完结</a-button>
+        </template>
+        <InfoDetail :selectedRow="selectedRow" />
+    </a-modal>
 </template>
 
 <script lang="ts">

+ 58 - 78
src/views/information/spot-contract/list/checkpending/index.vue

@@ -1,82 +1,61 @@
 <template>
-  <!-- 现货合同: 待审核-->
-  <div class="spot-contract-peddding"
-       :loading="loading">
-    <filterCustomTable @search="updateColumn">
-      <BtnList :btnList="firstBtn"
-               @click="openComponent" />
-    </filterCustomTable>
-    <a-table :columns="columns"
-             class="topTable"
-             :pagination="false"
-             rowKey="key"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             :data-source="tableList"
-             :scroll="{ x: 'calc(100% - 160px)', y: 'calc(100vh - 163px)' }">
-      <!-- 额外的展开行 -->
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <BtnList :btnList="secondBtn"
-                 class="btn-list-sticky"
-                 :record="record"
-                 @click="openComponent" />
-      </template>
-      <template #biztype="{ text }">
-        <a>{{ getBizTypeName(text) }}</a>
-      </template>
+    <!-- 现货合同: 待审核-->
+    <div class="spot-contract-peddding" :loading="loading">
+        <filterCustomTable @search="updateColumn"></filterCustomTable>
+        <a-table :columns="columns" class="topTable" :pagination="false" rowKey="key" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" :data-source="tableList" :scroll="{ x: 'calc(100% - 160px)', 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 }">
-        <a>{{ getPriceTypeName(text) }}</a>
-      </template>
+            <template #pricetype="{ text }">
+                <a>{{ getPriceTypeName(text) }}</a>
+            </template>
 
-      <template #contracctstatus="{ text }">
-        <a>{{ getContractStatusName(text) }}</a>
-      </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 #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 #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, BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { filterCustomTable } from '../../components';
 import { getBizTypeName, getContractStatusName, getContractTypeName, getPriceTypeName } from '@/common/constants/enumsName';
 import { formatTime, formatValue } from '@/common/methods';
@@ -84,6 +63,7 @@ import { queryBusinessManager, findManagerName, tableFilterCB, handleEnumdic } f
 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';
 
 const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
 const Check = defineAsyncComponent(() => import('../../components/check/index.vue'));
@@ -97,17 +77,19 @@ export default defineComponent({
         [ModalEnum.detail]: Detail,
         [ModalEnum.spot_contract_btn_check]: Check,
         [ModalEnum.spot_contract_btn_cancel]: Cancel,
-        BtnList,
+        MtpTableButton,
     },
     setup() {
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<Ermcp3ContractRsp>();
+
         // 获取列表数据
         const queryTableAction = () => {
             queryTable(QuerySpotContract, { querytype: 2 });
             // 获取 业务账户
             queryBusinessManager();
         };
+
         // 表格通用逻辑
         const param: ComposeTableParam = {
             queryFn: queryTableAction,
@@ -118,6 +100,8 @@ export default defineComponent({
             isDetail: true,
         };
 
+        const secondBtn = getTableButton([ModalEnum.spot_contract_btn_check, ModalEnum.spot_contract_btn_cancel, ModalEnum.detail]);
+
         return {
             ...handleComposeTable<Ermcp3ContractRsp>(param),
             loading,
@@ -131,12 +115,8 @@ export default defineComponent({
             formatValue,
             findManagerName,
             handleEnumdic,
+            secondBtn,
         };
     },
 });
-</script>
-
-<style lang="less">
-.spot-contract-peddding {
-}
-</style>;
+</script>

+ 16 - 42
src/views/information/spot-contract/list/performance/index.vue

@@ -1,41 +1,22 @@
 <template>
     <!-- 现货合同: 履约中-->
     <div class="spot-contract-performance">
-        <filterCustomTable @search="updateColumn" :loading="loading">
-            <BtnList :btnList="firstBtn" @click="openComponent" />
-        </filterCustomTable>
-        <a-table
-            :columns="columns"
-            class="topTable"
-            :pagination="false"
-            :expandedRowKeys="expandedRowKeys"
-            :customRow="Rowclick"
-            rowKey="key"
-            :data-source="tableList"
-            :scroll="{ x: 'calc(100% - 160px)', y: 'calc(100vh - 163px)' }"
-        >
+        <filterCustomTable @search="updateColumn" :loading="loading"></filterCustomTable>
+        <a-table :columns="columns" class="topTable" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList" :scroll="{ x: 'calc(100% - 160px)', y: 'calc(100vh - 163px)' }">
             <!-- 额外的展开行 -->
             <!-- 额外的展开行 -->
             <template #expandedRowRender="{ record }">
-                <BtnList
-                    :btnList="secondBtn"
-                    class="btn-list-sticky"
-                    :record="record"
-                    @click="openComponent"
-                />
+                <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 }">
                 <a>{{ getPriceTypeName(text) }}</a>
             </template>
-
             <template #contracctstatus="{ text }">
                 <a>{{ getContractStatusName(text) }}</a>
             </template>
-
             <template #contracttype="{ text }">
                 <a>{{ getContractTypeName(text) }}</a>
             </template>
@@ -45,20 +26,18 @@
             </template>
             <!-- 点假期 -->
             <template #startdate="{ record }">
-                <span>{{ formatValue(formatTime(record.startdate, "d") + '--' + formatTime(record.enddate, "d")) }}</span>
+                <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")) }}
+                    {{ 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>
@@ -70,17 +49,12 @@
         </a-table>
         <!-- 右键 -->
         <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="secondBtn"></contextMenu>
-        <component
-            :is="componentId"
-            v-if="componentId"
-            :selectedRow="selectedRow"
-            @cancel="closeComponent"
-        ></component>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
     </div>
 </template>
 
 <script lang="ts">
-import { queryTableList, BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
 import { filterCustomTable } from '../../components';
 
 import { queryBusinessManager, findManagerName, tableFilterCB, handleEnumdic } from '../setup';
@@ -90,9 +64,9 @@ import { QuerySpotContract } from '@/services/go/ermcp/spot-contract';
 import { getBizTypeName, getContractStatusName, getContractTypeName, getPriceTypeName } from '@/common/constants/enumsName';
 import { formatTime, formatValue } from '@/common/methods';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
 
 const Detail = defineAsyncComponent(() => import('../../components/detail/index.vue'));
-const Finish = defineAsyncComponent(() => import('../../components/finish/index.vue'));
 
 export default defineComponent({
     name: EnumRouterName.spot_contract_performance,
@@ -100,18 +74,19 @@ export default defineComponent({
         filterCustomTable,
         contextMenu,
         [ModalEnum.detail]: Detail,
-        [ModalEnum.spot_contract_btn_finish]: Finish,
-        BtnList,
+        MtpTableButton,
     },
     setup() {
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<Ermcp3ContractRsp>();
+
         // 获取列表数据
         const queryTableAction = () => {
             queryTable(QuerySpotContract, { querytype: 3 });
             // 获取 业务账户
             queryBusinessManager();
         };
+
         // 表格通用逻辑
         const param: ComposeTableParam = {
             queryFn: queryTableAction,
@@ -121,6 +96,9 @@ export default defineComponent({
             tableFilterCB,
             isDetail: true,
         };
+
+        const secondBtn = getTableButton([ModalEnum.detail]);
+
         return {
             ...handleComposeTable<Ermcp3ContractRsp>(param),
             loading,
@@ -134,12 +112,8 @@ export default defineComponent({
             formatValue,
             findManagerName,
             handleEnumdic,
+            secondBtn,
         };
     },
 });
-</script>
-
-<style lang="less">
-.spot-contract-performance {
-}
-</style>;
+</script>

+ 1 - 5
yarn.lock

@@ -9353,7 +9353,7 @@
   dependencies:
     "is-plain-object" "3.0.1"
 
-"vue@^2 || ^3.0.0-0", "vue@^3.0.0", "vue@^3.0.2", "vue@>=3.0.3", "vue@>=3.1.0", "vue@3.2.20":
+"vue@^2 || ^3.0.0-0", "vue@^3.0.0", "vue@>=3.0.3", "vue@>=3.1.0", "vue@3.2.20":
   "integrity" "sha512-81JjEP4OGk9oO8+CU0h2nFPGgJBm9mNa3kdCX2k6FuRdrWrC+CNe+tOnuIeTg8EWwQuI+wwdra5Q7vSzp7p4Iw=="
   "resolved" "https://registry.npmjs.org/vue/-/vue-3.2.20.tgz"
   "version" "3.2.20"
@@ -9364,10 +9364,6 @@
     "@vue/server-renderer" "3.2.20"
     "@vue/shared" "3.2.20"
 
-"vuex@^4.0.0-0":
-  "integrity" "sha512-HCPzYGea1xL7fMpDoMiHKujC1Bi/HM9LS5ML0Kv55zQtZJvOl0Lq7eWvJoen+SI4Lf7p9V5AqcVsoLPXNBywjg=="
-  "version" "4.0.0-rc.2"
-
 "warning@^4.0.0":
   "integrity" "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w=="
   "resolved" "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz"