Explorar o código

Merge branch 'master' of http://47.101.159.18:3000/Muchinfo/MTP2.0_WEB

huangbin %!s(int64=4) %!d(string=hai) anos
pai
achega
fe842ce110

+ 86 - 0
src/assets/styles/mixin.less

@@ -2183,4 +2183,90 @@ input:-internal-autofill-selected {
     position: sticky;
     position: -webkit-sticky;
     right: 2px;
+}
+
+// 步骤条
+.commonSteps {
+    .ant-steps-item {
+        .block {
+            display: inline-flex;
+        }
+        .ant-steps-item-tail {
+
+        }
+        .ant-steps-item-icon {
+            width: 20px;
+            height: 20px;
+            background: @m-grey11;
+            border-color: @m-blue24;
+            .ant-steps-icon {
+                font-size: 12px;
+                line-height: 20px;
+                top: -9px;
+            }
+        }
+        .ant-steps-item-content {
+            min-height: 60px;
+        }
+        .line {
+            width: 280px;
+            height: 30px;
+            background: @m-blue17;
+            .rounded-corners(3px);
+            display: inline-flex;
+            position: relative;
+            .num {
+                width: 30px;
+                height: 30px;
+                background: @m-blue0;
+                .rounded-corners(3px);
+                text-align: center;
+                line-height: 30px;
+                font-size: 14px;
+                color: @m-white0;
+            }
+            .desc {
+                flex: 1;
+                padding-left: 14px;
+                font-size: 16px;
+                color: @m-white0;
+            }
+            .day {
+                width: 70px;
+                text-align: right;
+                color: @m-blue0;
+                margin-right: 17px;
+            }
+            .arrowRight {
+                display: none;
+                .position(absolute, auto, -9px, 0, auto);
+                font-size: 12px;
+                color: @m-blue0;
+                line-height: 30px;
+                z-index: 2;
+            }
+        }
+        .tip {
+            margin-left: 13px;
+            font-size: 16px;
+            line-height: 30px;
+            color: @m-blue23;
+        }
+    }
+    .ant-steps-item-finish {
+
+    }
+    .ant-steps-item-process {
+        .line {
+            .arrowRight {
+                display: block;
+            }
+        }
+        .tip {
+            color: @m-blue0;
+        }
+    }
+    .ant-steps-item-wait {
+
+    }
 }

+ 2 - 0
src/assets/styles/variables.less

@@ -97,6 +97,8 @@
 @m-blue20: #122d55;
 @m-blue21: #102e45;
 @m-blue22: #0e2f4c;
+@m-blue23: #223F7E;
+@m-blue24: #2484FC;
 
 @body-bg: #e9eef3;
 @m-white0: #ffffff;

+ 32 - 21
src/common/components/drawer/index.vue

@@ -1,25 +1,26 @@
 <template>
-  <a-drawer :placement="placement"
-            :closable="false"
-            :visible="visible"
-            :destroyOnClose="true"
-            class="bottomListed"
-            height="406px">
-    <!-- 摘牌是top  挂牌是bottom 期货交易是tradeDialog -->
-    <div class="collapse"
-         @click="cancel">
-      <DoubleRightOutlined />
-    </div>
-    <div class="collapseCont">
-      <div class="title">{{ title }}</div>
-      <div class="content highContent">
-        <!-- <Listed></Listed> -->
-        <!-- <Delisting></Delisting> -->
-        <slot></slot>
-        <!-- <Trade></Trade> -->
-      </div>
-    </div>
-  </a-drawer>
+    <a-drawer
+        :placement="placement"
+        :closable="false"
+        :visible="visible"
+        :destroyOnClose="true"
+        class="bottomListed"
+        height="406px"
+    >
+        <!-- 摘牌是top  挂牌是bottom 期货交易是tradeDialog -->
+        <div class="collapse" @click="cancel">
+            <DoubleRightOutlined />
+        </div>
+        <div class="collapseCont">
+            <div class="title">{{ title }}</div>
+            <div class="content highContent">
+                <!-- <Listed></Listed> -->
+                <!-- <Delisting></Delisting> -->
+                <slot></slot>
+                <!-- <Trade></Trade> -->
+            </div>
+        </div>
+    </a-drawer>
 </template>
 
 <script lang="ts">
@@ -81,6 +82,16 @@ export default defineComponent({
         width: 586px !important;
     }
 }
+.delistingBottom {
+    .position(fixed, auto, 0, -2px, auto);
+    width: 586px;
+    height: 440px;
+    background: transparent;
+    z-index: 10;
+    .ant-drawer-content-wrapper {
+        width: 586px !important;
+    }
+}
 .top {
     .position(fixed, 101px, 0, auto, auto);
     width: 486px;

+ 10 - 3
src/services/go/wrtrade/index.ts

@@ -9,13 +9,13 @@ import {
     QueryFilterItemReq, QueryFtDeliveryGoodsReq, QueryHoldLBReq, QueryOrderQuoteDetailReq,
     QueryOrderQuoteReq, QueryPerformancePlanReq, QueryWrFactorTypeInfoReq,
     QueryWrGoodsInfoReq, QueryWrMarketTradeConfigReq,
-    QueryWrOrderDetailReq,
+    QueryWrOrderDetailReq, QueryWrPerformancePlanStepReq,
     QueryWrPositionReq, QueryWrSpecialMatchOrderReq, QueryWrStandardFactoryItemReq,
     QueryWrTradeDetailReq, WrFactorTypeInfo, WrFAProductDetail, WrFilterItem, WrFtDeliveryGoods,
     WrGoodsInfo, WrHoldLB, WrMarketTradeConfig,
     WrOrderDetail,
     WrOrderQuote,
-    WrOrderQuoteDetail, WrPerformancePlan,
+    WrOrderQuoteDetail, WrPerformancePlan, WrPerformancePlanStep,
     WrPosition, WrSpecialMatchOrder, WrStandardFactoryItemEx,
     WrTradeDetail
 } from "@/services/go/wrtrade/interface";
@@ -191,7 +191,14 @@ export function queryWrTradeDetail(req: QueryWrTradeDetailReq): Promise<WrTradeD
     });
 }
 
-
+/**
+ * 查询履约信息详情 /WrTrade2/QueryWrPerformancePlanStep
+ */
+export function queryWrPerformancePlanStep(req: QueryWrPerformancePlanStepReq): Promise<WrPerformancePlanStep> {
+    return commonSearch_go('/WrTrade2/QueryWrPerformancePlanStep', req).catch((err) => {
+        throw new Error(`查询履约信息详情: ${err}`);
+    });
+}
 
 
 

+ 59 - 0
src/services/go/wrtrade/interface.ts

@@ -613,4 +613,63 @@ export interface WrStandardFactoryItemEx {
     itemlst: WrStandardFactoryItem[]//  要素项列表
     itemtypename: string            //  要素项类型名称
     wrstandardid: number            //  品类
+}
+
+/**
+ * 查询履约信息详情
+ */
+export interface QueryWrPerformancePlanStepReq {
+    planid: number
+    curstepid?: number
+}
+
+/**
+ * 查询履约信息返回
+ */
+export interface WrPerformancePlanStep {
+    delaydays	:number;//延期申请天数
+    deliverygoodscode	:string;//品种代码
+    deliverygoodsid	:number;//品种ID
+    deliverygoodsname	:string;//品种名称
+    endtime	:string;//结束日期
+    enumdicname	:string;//单位名称
+    executeside	:number;//步骤执行方 - 1:买方 2:卖方
+    handlestatus	:number;//处理状态 - 1:开始 2:结束 3:冻结请求 4:冻结返回成功 5:冻结返回失败 6:扣款请求 7:扣款返回成功 8:扣款返回失败 9:仓单转移请求 1number;
+//:仓单转移返回成功 11:仓单转移返回失败 12:加钱请求 13:加钱返回成功 14:加钱返回失败 15:解冻仓单头寸请求 16:解冻仓单头寸返回成功 17:解冻仓单头寸返回失败 18:解冻库位请求 19:解冻库位返回成功 2number;
+//:解冻库位返回失败
+    isauto	:number;//是否自动 - number;
+//:不自动 1:自动
+    islastreceivestep	:number;//是否最后收款步骤 - number;
+//:不是 1:是 (暂时不用,由服务自己判断是否为最后一步付款或收款)
+    minivalue	:number;//现货商品最小变动值
+    optioncompare	:string;//选择项比较串【{选择项ID}+{冒号}+选择项值 } ,逗号分隔,头尾加逗号】-- 所有选择项拼接,用于比较
+    overdays	:number;//超期天数 = 当前时间(数据库时间) - 结束日期
+    performancestepid	:string;//履约步骤ID(131+Unix秒时间戳(1number;
+//位)+xxxxxx)
+    planid	:string;//所属履约计划ID
+    realamount	:number;//实际完成金额
+    relatedorderid	:string;//关联单号
+    remaindays	:number;//剩余天数
+    remark	:string;//错误备注
+    starttime	:string;//开始日期
+    stepamount	:number;//步骤金额
+    stepdays	:number;//距离上一步天数(分钟)
+    stepindex	:number;//步骤序号
+    steplanchtype	:number;//步骤启动类型 - 1:系统自动 2:手动
+    stepremark	:string;//步骤备注
+    stepstatus	:number;//步骤状态 - 1:待开始 2:进行中 3:已完成 4:延期(进行中) 5:失败 6:自动完成 7:超时关闭
+    steptypeid	:number;//履约步骤类型ID - 1:买方支付 2:卖方收款 3:买方自提 4:卖方发货 5:买方确认货 6:卖方发票 7:买方确认票 8:仓单转移 9:释放卖方冻结 1number;
+//:货款溢短 11:生成合同[中江] 12:运费 9number;
+//:确认支付 91. 确认放行 92买方支付(直接扣款) 用于-1模板“
+    steptypename	:string;//步骤名称
+    stepvalue	:number;//步骤值
+    warehouseid	:number;//仓库ID
+    warehousename	:string;//仓库名称
+    wrfactortypeid	:string;//仓单要素类型ID(212+Unix秒时间戳(1number;
+//位)+xxxxxx)
+    wrfactortypename	:string;//仓单要素类型名称(选择项要素的名称合并显示,逗号分隔)
+    wrstandardcode	:string;//现货商品代码
+    wrstandardid	:number;//现货商品ID
+    wrstandardname	:string;//商品名称
+    wrtypename	:string;//商品
 }

+ 1 - 1
src/services/proto/performance/index.ts

@@ -11,7 +11,7 @@ import {
 import {HeadEnum} from "@/services/socket/protobuf/protoHeader";
 
 /**
- * 履约手动确认
+ * 履约手动确认 (支付 发票 发货)
  * @param param
  */
 export const performanceManualConfirm = (param: PerformanceManualConfirmReq): Promise<any> => {

+ 5 - 5
src/services/proto/performance/interface.ts

@@ -29,11 +29,11 @@ export interface  PerformanceDelayApplyRsp {
 // 履约手动确认请求 0 20 3
 export interface  PerformanceManualConfirmReq {
     PerformancePlanStepID: number // uint64 履约计划步骤ID
-    OverShortAmount: number // double 溢短金额
-    PerformanceExecuteSide: number // uint32 履约步骤执行方 1买方 2 卖方
-    StepRemark: string// string 步骤备注
-    OverShortQty: number // double 溢短数量
-    ExpressFee: number // double 运费金额
+    OverShortAmount?: number // double 溢短金额
+    PerformanceExecuteSide?: number // uint32 履约步骤执行方 1买方 2 卖方
+    StepRemark?: string// string 步骤备注
+    OverShortQty?: number // double 溢短数量
+    ExpressFee?: number // double 运费金额
 }
 // 履约手动确认应答 0 20 4
 export interface  PerformanceManualConfirmRsp {

+ 0 - 2
src/services/proto/warehousetrade/index.ts

@@ -97,5 +97,3 @@ export const WROutConfirm = (param: WROutConfirmReq): Promise<any> => {
 export const WROutCancel = (param: WROutCancelReq): Promise<any> => {
     return protoMiddleware<WROutCancelReq>(param, 'WROutCancelReq', 'WROutCancelRsp', HeadEnum.tradeMode17)
 }
-
-

+ 22 - 3
src/views/order/performance_information/components/performance_information_buy_performance/components/breach_contract/index.vue

@@ -74,7 +74,7 @@
 <script lang="ts">
 import { defineComponent, PropType, ref } from 'vue';
 import Drawer from '@/common/components/drawer/index.vue';
-import { WrPosition } from '@/services/go/wrtrade/interface';
+import {WrPerformancePlan, WrPosition} from '@/services/go/wrtrade/interface';
 import { ModalEnum } from '@/common/constants/modalNameEnum';
 import { _closeModal } from '@/common/setup/modal/modal';
 import { handleForm } from './setup';
@@ -82,6 +82,10 @@ import { validateAction } from '@/common/setup/form';
 import { FormState } from './interface';
 import UploadImg from '@/common/components/uploadImg/index.vue';
 import { getUploadImg } from '@/common/setup/upload';
+import {PerformanceDelayApplyReq} from "@/services/proto/performance/interface";
+import {getUserId} from "@/services/bus/account";
+import {requestResultLoadingAndInfo} from "@/common/methods/request/resultInfo";
+import {performanceContractedApply, performanceDelayApply} from "@/services/proto/performance";
 
 export default defineComponent({
     name: ModalEnum.performance_information_buy_performance_breach_contract,
@@ -89,7 +93,7 @@ export default defineComponent({
     emits: ['cancel', 'update'],
     props: {
         selectedRow: {
-            type: Object as PropType<WrPosition>,
+            type: Object as PropType<WrPerformancePlan>,
             default: {},
         },
     },
@@ -99,7 +103,22 @@ export default defineComponent({
         const { rules, formState, formRef } = handleForm();
         const { uploadImgAction, uploadImgList, handleImg } = getUploadImg();
         function submit() {
-            validateAction<FormState>(formRef, formState).then((param) => {});
+            validateAction<FormState>(formRef, formState).then((param) => {
+                // 违约申请
+                const paramReq: PerformanceDelayApplyReq = {
+                    PerformancePlanStepID: props.selectedRow.curstepid,
+                    delaydays: 2,
+                    applicant: getUserId(),
+                    applyremark: param.remark
+                };
+                debugger;
+                requestResultLoadingAndInfo(performanceContractedApply, paramReq, loading, ['违约成功', '违约失败:']).then(() => {
+                    cancel(true);
+                });
+
+
+
+            });
         }
         return {
             visible,

+ 68 - 10
src/views/order/performance_information/components/performance_information_buy_performance/components/detail/index.vue

@@ -1,17 +1,70 @@
 <template>
-  <!-- 履约明细-->
-  <Drawer :title="'履约明细'"
-          :placement="'bottom'"
-          :visible="visible"
-          @cancel="cancel">
-    <div class="listed">
+    <!-- 履约明细-->
+    <Drawer :title="'履约明细'" :placement="'bottom'" :visible="visible" @cancel="cancel">
+        <!-- <div class="listed">
       <div class="condition">
         <a-button class="conditionBtn">{{selectedRow.deliverygoodsname}}</a-button>
         <a-button class="conditionBtn">{{selectedRow.wrtypename}}</a-button>
         <a-button class="conditionBtn">{{selectedRow.warehousename}}</a-button>
       </div>
-    </div>
-  </Drawer>
+        </div>-->
+        <div class="performanceSteps">
+            <a-steps v-model:current="current" class="commonSteps" direction="vertical">
+                <a-step status="finish">
+                    <template #title>
+                        <div class="block">
+                            <div class="line">
+                                <div class="num">1</div>
+                                <div class="desc">买方30%货款</div>
+                                <div class="day">T+30</div>
+                                <CaretRightOutlined class="arrowRight" />
+                            </div>
+                            <div class="tip">已完成</div>
+                        </div>
+                    </template>
+                </a-step>
+                <a-step status="finish">
+                    <template #title>
+                        <div class="block">
+                            <div class="line">
+                                <div class="num">2</div>
+                                <div class="desc">卖方发货</div>
+                                <div class="day">T+3</div>
+                                <CaretRightOutlined class="arrowRight" />
+                            </div>
+                            <div class="tip">已完成</div>
+                        </div>
+                    </template>
+                </a-step>
+                <a-step status="process">
+                    <template #title>
+                        <div class="block">
+                            <div class="line">
+                                <div class="num">3</div>
+                                <div class="desc">买方70%货款</div>
+                                <div class="day">T+10</div>
+                                <CaretRightOutlined class="arrowRight" />
+                            </div>
+                            <div class="tip">2日后扣款</div>
+                        </div>
+                    </template>
+                </a-step>
+                <a-step status="wait">
+                    <template #title>
+                        <div class="block">
+                            <div class="line">
+                                <div class="num">4</div>
+                                <div class="desc">卖方开票</div>
+                                <div class="day">T+1</div>
+                                <CaretRightOutlined class="arrowRight" />
+                            </div>
+                            <div class="tip">未开始</div>
+                        </div>
+                    </template>
+                </a-step>
+            </a-steps>
+        </div>
+    </Drawer>
 </template>
 
 <script lang="ts">
@@ -32,10 +85,11 @@ import { message } from 'ant-design-vue';
 import { getGoodsGroupsByTradeMode } from '@/services/bus/goods';
 import { TradeMode } from '@/common/constants/enumCommon';
 import { WRGoodsInfo } from '@/services/proto/warehousetrade/interface';
+import { CaretRightOutlined } from '@ant-design/icons-vue';
 
 export default defineComponent({
     name: ModalEnum.performance_information_buy_performance_detail,
-    components: { Drawer },
+    components: { Drawer, CaretRightOutlined },
     emits: ['cancel', 'update'],
     props: {
         selectedRow: {
@@ -46,14 +100,18 @@ export default defineComponent({
     setup(props, context) {
         const { visible, cancel } = _closeModal(context);
         console.log('selectedRow', props.selectedRow);
-
+        const current = ref<number>(0);
         return {
             visible,
             cancel,
+            current,
         };
     },
 });
 </script>
 
 <style lang="less" scoped>
+.performanceSteps {
+    padding: 25px 40px;
+}
 </style>;

+ 104 - 75
src/views/order/performance_information/components/performance_information_buy_performance/components/extension/index.vue

@@ -1,87 +1,98 @@
 <template>
-  <!-- 延期-->
-  <Drawer :title="'延期申请'"
-          :placement="'bottom'"
-          :visible="visible"
-          @cancel="cancel">
-    <div class="listed">
-      <div class="formBar">
-        <a-form class="inlineForm dialogForm"
-                ref="formRef"
-                :model="formState"
-                :rules="rules">
-          <a-row :gutter="24">
-            <a-col :span="12">
-              <a-form-item label="品种">
-                <span class="white">{{selectedRow.deliverygoodsname}}</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="12">
-              <a-form-item label="仓库">
-                <span class="white">{{selectedRow.warehousename}}</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="履约商品">
-                <span class="white">{{selectedRow.wrtypename}}</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="当前步骤">
-                <span class="white">{{selectedRow.curstepname}}((超期天数:331)</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="关联单号">
-                <span class="white">86989565623</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="申请延期天数"
-                           name="days">
-                <a-input-number class="commonInput"
-                                :min="1"
-                                v-model:value="formState.days"
-                                style="width: 140px" />
-                <span>天</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="备注"
-                           name="remark">
-                <a-input class="commonInput"
-                         v-model:value="formState.remark"
-                         style="width: 100%" />
-              </a-form-item>
-            </a-col>
-          </a-row>
-          <a-row :gutter="24"
-                 type="flex"
-                 justify="center">
-            <a-col :span="24">
-              <a-form-item class="tc">
-                <a-button class="listedBtn"
-                          :loading="loading"
-                          :disabled="loading"
-                          @click="submit">提交</a-button>
-              </a-form-item>
-            </a-col>
-          </a-row>
-        </a-form>
-      </div>
-    </div>
-  </Drawer>
+    <!-- 延期-->
+    <Drawer
+        :title="'延期申请'"
+        :placement="'right'"
+        class="delistingBottom"
+        :visible="visible"
+        @cancel="cancel"
+    >
+        <div class="listed">
+            <div class="formBar">
+                <a-form
+                    class="inlineForm dialogForm"
+                    ref="formRef"
+                    :model="formState"
+                    :rules="rules"
+                >
+                    <a-row :gutter="24">
+                        <a-col :span="12">
+                            <a-form-item label="品种">
+                                <span class="white ml10">{{selectedRow.deliverygoodsname}}</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="12">
+                            <a-form-item label="仓库">
+                                <span class="white ml10">{{selectedRow.warehousename}}</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="履约商品">
+                                <span class="white ml10">{{selectedRow.wrtypename}}</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="当前步骤">
+                                <span class="white ml10">{{selectedRow.curstepname}}((超期天数:331)</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="关联单号">
+                                <span class="white ml10">86989565623</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="申请延期天数" name="days" class="relative">
+                                <a-input-number
+                                    class="commonInput ml10"
+                                    :min="1"
+                                    v-model:value="formState.days"
+                                    style="width: 200px"
+                                />
+                                <div class="day">天</div>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="备注" name="remark">
+                                <a-input
+                                    class="commonInput ml10"
+                                    v-model:value="formState.remark"
+                                    style="width: 420px"
+                                />
+                            </a-form-item>
+                        </a-col>
+                    </a-row>
+                    <a-row :gutter="24" type="flex" justify="center">
+                        <a-col :span="24">
+                            <a-form-item class="tc">
+                                <a-button
+                                    class="listedBtn"
+                                    :loading="loading"
+                                    :disabled="loading"
+                                    @click="submit"
+                                >提交</a-button>
+                            </a-form-item>
+                        </a-col>
+                    </a-row>
+                </a-form>
+            </div>
+        </div>
+    </Drawer>
 </template>
 
 <script lang="ts">
 import { defineComponent, PropType, ref } from 'vue';
 import Drawer from '@/common/components/drawer/index.vue';
-import { WrPosition } from '@/services/go/wrtrade/interface';
+import {WrPerformancePlan, WrPosition} from '@/services/go/wrtrade/interface';
 import { ModalEnum } from '@/common/constants/modalNameEnum';
 import { _closeModal } from '@/common/setup/modal/modal';
 import { handleForm } from './setup';
 import { validateAction } from '@/common/setup/form';
 import { FormState } from './interface';
+import {PerformanceDelayApplyReq, PerformanceManualConfirmReq} from "@/services/proto/performance/interface";
+import {requestResultLoadingAndInfo} from "@/common/methods/request/resultInfo";
+import {performanceDelayApply, performanceManualConfirm} from "@/services/proto/performance";
+import {getUserId} from "@/services/bus/account";
 
 export default defineComponent({
     name: ModalEnum.performance_information_buy_performance_extension,
@@ -89,7 +100,7 @@ export default defineComponent({
     emits: ['cancel', 'update'],
     props: {
         selectedRow: {
-            type: Object as PropType<WrPosition>,
+            type: Object as PropType<WrPerformancePlan>,
             default: {},
         },
     },
@@ -98,7 +109,20 @@ export default defineComponent({
         const loading = ref<boolean>(false);
         const { rules, formState, formRef } = handleForm();
         function submit() {
-            validateAction<FormState>(formRef, formState).then((param) => {});
+            validateAction<FormState>(formRef, formState).then((param) => {
+               // 延期申请
+                const paramReq: PerformanceDelayApplyReq = {
+                    PerformancePlanStepID: props.selectedRow.curstepid,
+                    delaydays: param.days as number,
+                    applicant: getUserId(),
+                    applyremark: param.remark
+                };
+                debugger;
+                requestResultLoadingAndInfo(performanceDelayApply, paramReq, loading, ['延期成功', '延期失败:']).then(() => {
+                    cancel(true);
+                });
+
+            });
         }
         return {
             visible,
@@ -114,4 +138,9 @@ export default defineComponent({
 </script>
 
 <style lang="less" scoped>
+.day {
+    .position(absolute, auto, -24px, 0, auto);
+    line-height: 26px;
+    color: @m-grey1;
+}
 </style>;

+ 80 - 65
src/views/order/performance_information/components/performance_information_buy_performance/components/pay/index.vue

@@ -1,74 +1,80 @@
 <template>
-  <!-- 付款-->
-  <Drawer :title="'付款'"
-          :placement="'bottom'"
-          :visible="visible"
-          @cancel="cancel">
-    <div class="listed">
-      <div class="formBar">
-        <a-form class="inlineForm dialogForm"
-                ref="formRef">
-          <a-row :gutter="24">
-            <a-col :span="12">
-              <a-form-item label="品种">
-                <span class="white">{{selectedRow.deliverygoodsname}}</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="12">
-              <a-form-item label="仓库">
-                <span class="white">{{selectedRow.warehousename}}</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="履约商品">
-                <span class="white">{{selectedRow.wrtypename}}</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="履约总金额">
-                <span class="white">1000.00元(已冻结履约金额200.00元)</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="当前步骤">
-                <span class="white">{{selectedRow.curstepname}}(</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="本次需支付">
-                <span class="white">1000.00</span>
-              </a-form-item>
-            </a-col>
-            <a-col :span="24">
-              <a-form-item label="剩余款">
-                <span class="white">1000.00</span>
-              </a-form-item>
-            </a-col>
-          </a-row>
-          <a-row :gutter="24"
-                 type="flex"
-                 justify="center">
-            <a-col :span="24">
-              <a-form-item class="tc">
-                <a-button class="listedBtn"
-                          :loading="loading"
-                          :disabled="loading"
-                          @click="submit">提交</a-button>
-              </a-form-item>
-            </a-col>
-          </a-row>
-        </a-form>
-      </div>
-    </div>
-  </Drawer>
+    <!-- 付款-->
+    <Drawer
+        :title="'付款'"
+        :placement="'right'"
+        :visible="visible"
+        class="delistingBottom"
+        @cancel="cancel"
+    >
+        <div class="listed">
+            <div class="formBar">
+                <a-form class="inlineForm dialogForm" ref="formRef">
+                    <a-row :gutter="24">
+                        <a-col :span="12">
+                            <a-form-item label="品种">
+                                <span class="white ml10">{{selectedRow.deliverygoodsname}}</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="12">
+                            <a-form-item label="仓库">
+                                <span class="white ml10">{{selectedRow.warehousename}}</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="履约商品">
+                                <span class="white ml10">{{selectedRow.wrtypename}}</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="履约总金额">
+                                <span class="white ml10">{{selectedRow.amount.toFixed(2)}}</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="当前步骤">
+                                <span class="white ml10">{{selectedRow.curstepname}}(</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="本次需支付">
+                                <span class="white ml10">1000.00</span>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :span="24">
+                            <a-form-item label="剩余款">
+                                <span class="white ml10">{{selectedRow.unpaidamount.toFixed(2)}}</span>
+                            </a-form-item>
+                        </a-col>
+                    </a-row>
+                    <a-row :gutter="24" type="flex" justify="center">
+                        <a-col :span="24">
+                            <a-form-item class="tc">
+                                <a-button
+                                    class="listedBtn"
+                                    :loading="loading"
+                                    :disabled="loading"
+                                    @click="submit"
+                                >提交</a-button>
+                            </a-form-item>
+                        </a-col>
+                    </a-row>
+                </a-form>
+            </div>
+        </div>
+    </Drawer>
 </template>
 
 <script lang="ts">
 import { defineComponent, PropType, ref } from 'vue';
 import Drawer from '@/common/components/drawer/index.vue';
-import { WrPosition } from '@/services/go/wrtrade/interface';
+import { WrPerformancePlan, WrPosition } from '@/services/go/wrtrade/interface';
 import { ModalEnum } from '@/common/constants/modalNameEnum';
 import { _closeModal } from '@/common/setup/modal/modal';
+import { performanceManualConfirm } from '@/services/proto/performance';
+import { PerformanceManualConfirmReq } from '@/services/proto/performance/interface';
+import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
+import { HdWRDealOrder } from '@/services/proto/warehousetrade';
 
 export default defineComponent({
     name: ModalEnum.performance_information_buy_performance_pay,
@@ -76,7 +82,7 @@ export default defineComponent({
     emits: ['cancel', 'update'],
     props: {
         selectedRow: {
-            type: Object as PropType<WrPosition>,
+            type: Object as PropType<WrPerformancePlan>,
             default: {},
         },
     },
@@ -84,7 +90,16 @@ export default defineComponent({
         const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         console.log('selectedRow', props.selectedRow);
-        function submit() {}
+        function submit() {
+            const param: PerformanceManualConfirmReq = {
+                PerformancePlanStepID: props.selectedRow.curstepid,
+                PerformanceExecuteSide: 1,
+            };
+            debugger;
+            requestResultLoadingAndInfo(performanceManualConfirm, param, loading, ['付款成功', '付款失败:']).then(() => {
+                cancel(true);
+            });
+        }
         return {
             visible,
             cancel,

+ 21 - 3
src/views/order/performance_information/components/performance_information_buy_performance/components/settlement/index.vue

@@ -13,9 +13,13 @@
 <script lang="ts">
 import { defineComponent, PropType, ref } from 'vue';
 import Drawer from '@/common/components/drawer/index.vue';
-import { WrPosition } from '@/services/go/wrtrade/interface';
+import {WrPerformancePlan, WrPosition} from '@/services/go/wrtrade/interface';
 import { ModalEnum } from '@/common/constants/modalNameEnum';
 import { _closeModal } from '@/common/setup/modal/modal';
+import {PerformanceActivateReq, PerformanceDelayApplyReq} from "@/services/proto/performance/interface";
+import {getAccount_longType, getSelectedAccountId, getUserId} from "@/services/bus/account";
+import {requestResultLoadingAndInfo} from "@/common/methods/request/resultInfo";
+import {performanceActivate, performanceContractedApply} from "@/services/proto/performance";
 
 export default defineComponent({
     name: ModalEnum.performance_information_buy_performance_settlement,
@@ -23,7 +27,7 @@ export default defineComponent({
     emits: ['cancel', 'update'],
     props: {
         selectedRow: {
-            type: Object as PropType<WrPosition>,
+            type: Object as PropType<WrPerformancePlan>,
             default: {},
         },
     },
@@ -31,7 +35,21 @@ export default defineComponent({
         const { visible, cancel } = _closeModal(context);
         const loading = ref<boolean>(false);
         console.log('selectedRow', props.selectedRow);
-        function submit() {}
+        function submit() {
+            // 激活接口
+            const paramReq: PerformanceActivateReq = {
+                PerformancePlanID: props.selectedRow.performanceplanid, // uint64 履约计划ID
+                ApplyAccountID: getSelectedAccountId() // uint64 发起方账号ID
+            };
+            debugger;
+            requestResultLoadingAndInfo(performanceActivate, paramReq, loading, ['交收成功', '交收失败:']).then(() => {
+                cancel(true);
+            });
+
+
+
+
+        }
         return {
             visible,
             cancel,

+ 1 - 1
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/index.vue

@@ -1,6 +1,6 @@
 <template>
     <!-- 预售仓单 现货明细 挂牌 -->
-    <Drawer :title="'挂牌'" :placement="'right'" class="bottom" :visible="visible" @cancel="cancel">
+    <Drawer :title="'挂牌'" :placement="'right'" class="delistingBottom" :visible="visible" @cancel="cancel">
         <div class="listed">
             <div class="condition">
                 <a-button class="conditionBtn">{{selectedRow.deliverygoodsname}}</a-button>

+ 7 - 1
src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/index.vue

@@ -1,6 +1,12 @@
 <template>
     <!-- 现货仓单 现货明细 挂牌 -->
-    <Drawer :title="'挂牌'" :placement="'right'" class="bottom" :visible="visible" @cancel="cancel">
+    <Drawer
+        :title="'挂牌'"
+        :placement="'right'"
+        class="delistingBottom"
+        :visible="visible"
+        @cancel="cancel"
+    >
         <div class="listing">
             <div class="condition">
                 <a-button class="conditionBtn">{{selectedRow.deliverygoodsname}}</a-button>

+ 45 - 38
swagger-to-ts/swagger.ts

@@ -1,40 +1,47 @@
 export interface Name{
-accountname	:string;//账户名称(机构名称)
-accountstatus	:number;//账户状态 - 1:待激活 2:待审核 3:待复审 4:正常 5:审核拒绝 6:停用(注销) 7:注销(删除)
-applysrc	:number;//申请来源 - 1:管理端 2:终端
-auditremark	:string;//审核备注
-auditsrc	:number;//审核来源 - 1:管理端 2:终端
-audittime	:string;//审核时间
-audituserid	:number;//审核人
-broker	:number;//所属经纪人ID
-canceltime	:string;//销户时间
-canceluserid	:number;//销户人
-canrecommend	:number;//是否可推荐 - number;
-//:不可 1;可
-createtime	:string;//创建时间
-creatorid	:number;//创建人
-hasauth	:number;//是否已实名认证 - number;
-//:未认证 1:已认证 2:已提交(待审核) 3:已拒绝
-isanonymous	:number;//是否匿名下单 - number;
-//:否 1:是
-maxinvestornum	:number;//最大用户数(经纪会员下投资者个数)
-memberuserid	:number;//所属会员ID
-modifierid	:number;//修改人
-modifyremark	:string;//变更备注
-modifystatus	:number;//变更状态 1 未变更 2 变更中 3 变更待审核 4 变更待复核(投资者)
-modifytime	:string;//修改时间
-parenttopuser	:string;//上级顶级机构 [number;
-//92=number;
-//,1时,默认为1, number;
-//92=2时若自已为顶级,则填入自己,自己不为顶级,填入ParentUserID的ParentTopUser]
-parentuserid	:number;//所属机构ID
-reckonaccountid	:number;//默认结算资金账号ID(机构分润使用) 作废
-refercount	:number;//推荐总人数
-refereeuserid	:number;//推荐人ID
-refernum	:string;//推荐码
-rootuserid	:number;//根用户ID
-subaccountlevel	:number;//子账户层数
-subarealevelpath	:string;//子机构层级路径(逗号分隔,首尾加逗号)
-userid	:number;//用户ID
-usertype	:number;//账户类型 - 1:交易所 2:机构 3:会员子机构 4:经纪人 5:投资者 6:客户 7:企业成员(云平台)
+delaydays	:number;//延期申请天数
+deliverygoodscode	:string;//品种代码
+deliverygoodsid	:number;//品种ID
+deliverygoodsname	:string;//品种名称
+endtime	:string;//结束日期
+enumdicname	:string;//单位名称
+executeside	:number;//步骤执行方 - 1:买方 2:卖方
+handlestatus	:number;//处理状态 - 1:开始 2:结束 3:冻结请求 4:冻结返回成功 5:冻结返回失败 6:扣款请求 7:扣款返回成功 8:扣款返回失败 9:仓单转移请求 1number;
+//:仓单转移返回成功 11:仓单转移返回失败 12:加钱请求 13:加钱返回成功 14:加钱返回失败 15:解冻仓单头寸请求 16:解冻仓单头寸返回成功 17:解冻仓单头寸返回失败 18:解冻库位请求 19:解冻库位返回成功 2number;
+//:解冻库位返回失败
+isauto	:number;//是否自动 - number;
+//:不自动 1:自动
+islastreceivestep	:number;//是否最后收款步骤 - number;
+//:不是 1:是 (暂时不用,由服务自己判断是否为最后一步付款或收款)
+minivalue	:number;//现货商品最小变动值
+optioncompare	:string;//选择项比较串【{选择项ID}+{冒号}+选择项值 } ,逗号分隔,头尾加逗号】-- 所有选择项拼接,用于比较
+overdays	:number;//超期天数 = 当前时间(数据库时间) - 结束日期
+performancestepid	:string;//履约步骤ID(131+Unix秒时间戳(1number;
+//位)+xxxxxx)
+planid	:string;//所属履约计划ID
+realamount	:number;//实际完成金额
+relatedorderid	:string;//关联单号
+remaindays	:number;//剩余天数
+remark	:string;//错误备注
+starttime	:string;//开始日期
+stepamount	:number;//步骤金额
+stepdays	:number;//距离上一步天数(分钟)
+stepindex	:number;//步骤序号
+steplanchtype	:number;//步骤启动类型 - 1:系统自动 2:手动
+stepremark	:string;//步骤备注
+stepstatus	:number;//步骤状态 - 1:待开始 2:进行中 3:已完成 4:延期(进行中) 5:失败 6:自动完成 7:超时关闭
+steptypeid	:number;//履约步骤类型ID - 1:买方支付 2:卖方收款 3:买方自提 4:卖方发货 5:买方确认货 6:卖方发票 7:买方确认票 8:仓单转移 9:释放卖方冻结 1number;
+//:货款溢短 11:生成合同[中江] 12:运费 9number;
+//:确认支付 91. 确认放行 92买方支付(直接扣款) 用于-1模板“
+steptypename	:string;//步骤名称
+stepvalue	:number;//步骤值
+warehouseid	:number;//仓库ID
+warehousename	:string;//仓库名称
+wrfactortypeid	:string;//仓单要素类型ID(212+Unix秒时间戳(1number;
+//位)+xxxxxx)
+wrfactortypename	:string;//仓单要素类型名称(选择项要素的名称合并显示,逗号分隔)
+wrstandardcode	:string;//现货商品代码
+wrstandardid	:number;//现货商品ID
+wrstandardname	:string;//商品名称
+wrtypename	:string;//商品
 }

+ 79 - 64
swagger-to-ts/swagger.txt

@@ -1,97 +1,112 @@
 {
-accountname	string
-账户名称(机构名称)
+delaydays	integer
+延期申请天数
 
-accountstatus	integer
-账户状态 - 1:待激活 2:待审核 3:待复审 4:正常 5:审核拒绝 6:停用(注销) 7:注销(删除)
+deliverygoodscode	string
+品种代码
 
-applysrc	integer
-申请来源 - 1:管理端 2:终端
+deliverygoodsid	integer
+品种ID
 
-auditremark	string
-审核备注
+deliverygoodsname	string
+品种名称
 
-auditsrc	integer
-审核来源 - 1:管理端 2:终端
+endtime	string
+结束日期
 
-audittime	string
-审核时间
+enumdicname	string
+单位名称
 
-audituserid	integer
-审核人
+executeside	integer
+步骤执行方 - 1:买方 2:卖方
 
-broker	integer
-所属经纪人ID
+handlestatus	integer
+处理状态 - 1:开始 2:结束 3:冻结请求 4:冻结返回成功 5:冻结返回失败 6:扣款请求 7:扣款返回成功 8:扣款返回失败 9:仓单转移请求 10:仓单转移返回成功 11:仓单转移返回失败 12:加钱请求 13:加钱返回成功 14:加钱返回失败 15:解冻仓单头寸请求 16:解冻仓单头寸返回成功 17:解冻仓单头寸返回失败 18:解冻库位请求 19:解冻库位返回成功 20:解冻库位返回失败
 
-canceltime	string
-销户时间
+isauto	integer
+是否自动 - 0:不自动 1:自动
 
-canceluserid	integer
-销户人
+islastreceivestep	integer
+是否最后收款步骤 - 0:不是 1:是 (暂时不用,由服务自己判断是否为最后一步付款或收款)
 
-canrecommend	integer
-是否可推荐 - 0:不可 1;可
+minivalue	integer
+现货商品最小变动值
 
-createtime	string
-创建时间
+optioncompare	string
+选择项比较串【{选择项ID}+{冒号}+选择项值 } ,逗号分隔,头尾加逗号】-- 所有选择项拼接,用于比较
 
-creatorid	integer
-创建人
+overdays	integer
+超期天数 = 当前时间(数据库时间) - 结束日期
 
-hasauth	integer
-是否已实名认证 - 0:未认证 1:已认证 2:已提交(待审核) 3:已拒绝
+performancestepid	string
+履约步骤ID(131+Unix秒时间戳(10位)+xxxxxx)
 
-isanonymous	integer
-是否匿名下单 - 0:否 1:是
+planid	string
+所属履约计划ID
 
-maxinvestornum	integer
-最大用户数(经纪会员下投资者个数)
+realamount	number
+实际完成金额
 
-memberuserid	integer
-所属会员ID
+relatedorderid	string
+关联单号
 
-modifierid	integer
-修改人
+remaindays	integer
+剩余天数
 
-modifyremark	string
-变更备注
+remark	string
+错误备注
 
-modifystatus	integer
-变更状态 1 未变更 2 变更中 3 变更待审核 4 变更待复核(投资者)
+starttime	string
+开始日期
 
-modifytime	string
-修改时间
+stepamount	number
+步骤金额
 
-parenttopuser	string
-上级顶级机构 [092=0,1时,默认为1, 092=2时若自已为顶级,则填入自己,自己不为顶级,填入ParentUserID的"ParentTopUser"]
+stepdays	integer
+距离上一步天数(分钟)
 
-parentuserid	integer
-所属机构ID
+stepindex	integer
+步骤序号
 
-reckonaccountid	integer
-默认结算资金账号ID(机构分润使用) 作废
+steplanchtype	integer
+步骤启动类型 - 1:系统自动 2:手动
 
-refercount	integer
-推荐总人数
+stepremark	string
+步骤备注
 
-refereeuserid	integer
-推荐人ID
+stepstatus	integer
+步骤状态 - 1:待开始 2:进行中 3:已完成 4:延期(进行中) 5:失败 6:自动完成 7:超时关闭
 
-refernum	string
-推荐码
+steptypeid	integer
+履约步骤类型ID - 1:买方支付 2:卖方收款 3:买方自提 4:卖方发货 5:买方确认货 6:卖方发票 7:买方确认票 8:仓单转移 9:释放卖方冻结 10:货款溢短 11:生成合同[中江] 12:运费 90:确认支付 91. 确认放行 92买方支付(直接扣款) 用于-1模板“
 
-rootuserid	integer
-根用户ID
+steptypename	string
+步骤名称
 
-subaccountlevel	integer
-子账户层数
+stepvalue	number
+步骤值
 
-subarealevelpath	string
-子机构层级路径(逗号分隔,首尾加逗号)
+warehouseid	integer
+仓库ID
 
-userid	integer
-用户ID
+warehousename	string
+仓库名称
 
-usertype	integer
-账户类型 - 1:交易所 2:机构 3:会员子机构 4:经纪人 5:投资者 6:客户 7:企业成员(云平台)
+wrfactortypeid	string
+仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
+
+wrfactortypename	string
+仓单要素类型名称(选择项要素的名称合并显示,逗号分隔)
+
+wrstandardcode	string
+现货商品代码
+
+wrstandardid	integer
+现货商品ID
+
+wrstandardname	string
+商品名称
+
+wrtypename	string
+商品
 }