huangbin 4 лет назад
Родитель
Сommit
ac860bbcd5

+ 21 - 0
src/services/go/commonMarket/index.ts

@@ -0,0 +1,21 @@
+import APP from '@/services';
+import moment from 'moment';
+import { commonSearch_go } from '../index';
+// import * as type from './interface';
+
+/**
+ * 获取服务器时间
+ */
+export function getServerTime(): Promise<string> {
+    return commonSearch_go('/Market/QueryMarketRun', {})
+        .then((res) => {
+            const time = moment(res)
+                .utc()
+                .format('YYYY-MM-DD HH:mm:ss');
+            APP.set('systemDate', time);
+            return 'ok';
+        })
+        .catch((err: Error) => {
+            throw new Error('获取服务器时间数据错误:' + err);
+        });
+}

+ 0 - 0
src/services/go/commonMarket/interface.ts


+ 4 - 3
src/services/proto/warehousetrade/index.ts

@@ -1,5 +1,5 @@
-import {protoMiddleware} from "@/services/socket/protobuf/buildReq";
-import {HdWRDealOrderReq, HdWROrderReq} from "@/services/proto/warehousetrade/interface";
+import { HdWRDealOrderReq, HdWROrderReq } from "@/services/proto/warehousetrade/interface";
+import { protoMiddleware } from "@/services/socket/protobuf/buildReq";
 
 
 /**
@@ -7,7 +7,8 @@ import {HdWRDealOrderReq, HdWROrderReq} from "@/services/proto/warehousetrade/in
  * @param param
  */
 export const hdWROrder = (param: HdWROrderReq): Promise<any> => {
-    return protoMiddleware<HdWROrderReq>(param, 'HdWROrderReq', 'HdWROrderRsp', 2)
+    debugger
+    return protoMiddleware<HdWROrderReq>(param, 'HdWROrderReq', 'HdWROrderRsp', 5)
 }
 
 /**

+ 3 - 0
src/services/socket/protobuf/buildReq.ts

@@ -276,8 +276,10 @@ export function protoMiddleware<T>(param: T, reqName: string, rspName: string, h
             headerEnum,
         };
         const package50 = buildProtoReq50(params);
+        debugger
         APP.sendTradingServer(package50, undefined, {
             onSuccess: (res) => {
+                debugger
                 const { isSuccess, result } = parseProtoRsp50(res, rspName);
                 if (isSuccess) {
                     resolve(result);
@@ -286,6 +288,7 @@ export function protoMiddleware<T>(param: T, reqName: string, rspName: string, h
                 }
             },
             onFail: (err) => {
+                debugger
                 console.log(`proto:${reqName}错误消息:${err}`)
                 reject(err.message)
             },

+ 6 - 2
src/services/socket/protobuf/protoHeader.ts

@@ -11,11 +11,12 @@ export enum HeadEnum {
     MarketID18_GoodsID0, // funcode uuid userID, MarketID:18, GoodsID: 0
     MarketID15101,
     MarketID69201,
+    MarketID17201,
 }
 
 /**
  * // 站在 用户角度
- * 
+ *
  * 设置 proto header 参数
  * @param funCodeName funCodeName
  * @param type HeadEnum
@@ -41,11 +42,14 @@ export function getProtoHeadParam(funCodeName: string, type: HeadEnum = 0): IMes
             })
             break
         case HeadEnum.MarketID15101:
-            result = Object.assign(result, { MarketID: 15101})
+            result = Object.assign(result, { MarketID: 15101 })
             break;
         case HeadEnum.MarketID69201:
             result = Object.assign(result, { MarketID: getMarketByTradeMode(TradeMode.Platinum), })
             break;
+        case HeadEnum.MarketID17201:
+            result = Object.assign(result, { MarketID: 17201, })
+            break;
     }
     return result
 }

+ 239 - 0
src/views/business/order/spot_warran/components/spot_warrant_inventory_summary/components/listing/index.vue

@@ -0,0 +1,239 @@
+<template>
+  <!-- 挂单 -->
+  <Drawer :title="'挂牌'"
+          :placement="'bottom'"
+          :visible="visible">
+    <!-- 挂牌 -->
+    <div class="listed">
+      <div class="condition">
+        <a-button class="conditionBtn">螺纹钢</a-button>
+        <a-button class="conditionBtn">12</a-button>
+        <a-button class="conditionBtn">江铜</a-button>
+        <a-button class="conditionBtn">华南仓库</a-button>
+      </div>
+      <div class="formBar">
+        <a-form class="inlineForm"
+                :form="form"
+                @submit="handleSearch">
+          <a-row :gutter="24">
+            <a-col :span="12">
+              <a-form-item label="挂牌方式">
+                <a-select class="inlineFormSelect"
+                          default-value="1"
+                          style="width: 140px">
+                  <a-select-option value="1">
+                    一口价
+                  </a-select-option>
+                  <a-select-option value="2">
+                    一口价2
+                  </a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item label="挂牌价">
+                <a-input class="commonInput"
+                         style="width: 140px" />
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="12">
+              <a-form-item label="挂牌数量">
+                <a-input class="commonInput"
+                         suffix="吨"
+                         style="width: 140px" />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item label="起摘数量"
+                           class="relative">
+                <a-input class="commonInput"
+                         suffix="吨"
+                         style="width: 140px" />
+                <div class="tip">最小单位:1吨</div>
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="24">
+              <a-form-item>
+                <a-progress class="formProgress"
+                            :percent="30" />
+                <div class="unit"><span>0</span><span>300吨</span></div>
+              </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">挂牌</a-button>
+                <a-button class="ml10 cancelBtn">取消</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 { enumOrderComponents } from '@/common/constants/enumOrderComponents';
+import Drawer from '@/common/components/drawer/index.vue';
+import { QueryWrPositionReq, WrPosition } from '@/services/go/wrtrade/interface';
+import { getUserId } from '@/services/bus/account';
+import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
+import { hdWROrder } from '@/services/proto/warehousetrade';
+export default defineComponent({
+    name: enumOrderComponents.spot_warrant_pending_order,
+    components: { Drawer },
+    props: {
+        selectedRow: {
+            type: Object as PropType<WrPosition>,
+            default: {},
+        },
+    },
+    setup(props) {
+        const data = props.selectedRow;
+        const loading = ref<boolean>(false);
+        const param = {
+            AccountID: data.accountid.toString(),
+            // MarketID: 17201,
+            LadingBillId: '2081626946446000001', // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
+            TradeDate: '20210725', // 交易日 string
+            SubNum: '2121626946446000001', // 提单子单号
+            WRFactorTypeId: data.wrfactortypeid.toString(), // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
+            IsSpecified: 0, // 是否指定对手 0:不指定 1:指定 uint32
+            // MatchUserIDs: 0, // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
+            OrderQty: 1, // 委托数量(可挂部分数据量) ======
+            DeliveryGoodsID: data.deliverygoodsid, // 交割商品商品ID
+            WRPriceType: 1, // 价格方式 1:固定价 2:浮动价
+            FixedPrice: 0, // 固定价格
+            PriceFactor: 0, // 价格系数(浮动价时填写)
+            PriceMove: 0, // 升贴水(浮动价时填写)
+            TimevalidType: 4, // 时间有效类型 1:当日有效 2:本周有效 3:指定时间有效 4:一直有效
+            ValidTime: '', // 有效期限
+            FirstRatio: 0, // 首付比例
+            PerformanceTemplateID: 0, // 履约计划模板ID
+            OperatorID: getUserId(), // 操作员账号ID
+            BuyOrSell: 1, // 买卖方向 0买1卖
+            PriceDisplayMode: 1, // 浮动价显示方式 1:合并显示 2:分开显示
+            CanBargain: 0, // 挂牌是否可议价0:不可1:可-摘牌是否议价
+            Attachment1: '', // 附件1
+            Attachment2: '', // 附件2
+            Remark: '222', // 备注
+            ApplyID: 0, // 申请ID
+            CanPart: 1, // 是否允许部份摘牌0:不允许;1:允许
+            WRTradeGoods: [],
+        };
+        debugger;
+        requestResultLoadingAndInfo(hdWROrder, param, loading, ['挂牌成功', '挂牌失败:']).then(() => {
+            // cancel(true);
+        });
+        return {
+            visible: true,
+        };
+    },
+});
+</script>
+
+<style lang="less" scoped>
+.listed {
+    width: 100%;
+    height: 100%;
+    .flex;
+    flex-direction: column;
+    .condition {
+        width: 100%;
+        height: 48px;
+        padding: 10px 16px;
+        border-bottom: 1px solid @m-black6;
+        .inlineflex;
+        .conditionBtn {
+            align-self: center;
+            align-items: center;
+            border: 0;
+            width: 80px;
+            height: 28px;
+            line-height: 28px;
+            background: @m-black7;
+            .rounded-corners(3px);
+            font-size: 14px;
+            color: @m-blue0;
+            &:hover {
+                background: rgba(@m-black7, 0.8);
+                color: rgba(@m-blue0, 0.8);
+            }
+        }
+        .conditionBtn + .conditionBtn {
+            margin-left: 10px;
+        }
+    }
+    .formBar {
+        width: 100%;
+        flex: 1;
+        padding: 28px 16px 7px;
+    }
+}
+
+::v-deep.formProgress {
+    width: 140px;
+    // height: 3px;
+    // .rounded-corners(2px);
+    margin-left: 80px;
+    .ant-progress-outer {
+        margin-right: 0;
+        padding-right: 0;
+        .ant-progress-inner {
+            background: @m-grey14;
+            .rounded-corners(2px);
+            .ant-progress-bg {
+                height: 3px !important;
+                border-radius: 2px !important;
+                background-color: @m-blue0;
+            }
+        }
+    }
+    .ant-progress-text {
+        display: none;
+    }
+}
+.unit {
+    margin-left: 80px;
+    .flex;
+    justify-content: space-between;
+    font-size: 14px;
+    color: @m-grey1;
+    height: 14px;
+    line-height: 14px;
+}
+.listedBtn {
+    width: 120px;
+    height: 30px;
+    line-height: 30px;
+    background: linear-gradient(0deg, @m-blue2 0%, @m-blue0 100%);
+    border-radius: 3px;
+    color: @m-white0;
+    font-size: 14px;
+    text-align: center;
+    border: 0;
+    &:hover {
+        background: linear-gradient(0deg, @m-blue0-hover 0%, @m-blue2-hover 100%);
+        color: @m-white0-hover;
+    }
+}
+.cancelBtn:extend(.listedBtn) {
+    background: linear-gradient(0deg, @m-grey12 0%, @m-grey13 100%);
+    &:hover {
+        background: linear-gradient(0deg, @m-grey12-hover 0%, @m-grey13-hover 100%);
+        color: @m-white0-hover;
+    }
+}
+.ml10 {
+    margin-left: 10px;
+}
+</style>;

+ 4 - 4
src/views/business/order/spot_warran/components/spot_warrant_inventory_summary/index.vue

@@ -29,7 +29,7 @@ import { enumOrderComponents } from '@/common/constants/enumOrderComponents';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { queryTableList, BtnList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, ComposeTableParam, handleComposeTable } from '@/common/export/commonTable';
 import { queryWrOrderDetail, queryWrPosition } from '@/services/go/wrtrade';
-import { QueryWrOrderDetailReq, QueryWrPositionReq, WrOrderDetail } from '@/services/go/wrtrade/interface';
+import { QueryWrOrderDetailReq, QueryWrPositionReq, WrOrderDetail, WrPosition } from '@/services/go/wrtrade/interface';
 import { getRecordItemTab } from '@/common/setup/order/orderData';
 import { handleComposeOrderTable } from '@/common/setup/table/compose';
 import { ComposeOrderTableParam } from '@/common/setup/table/interface';
@@ -38,11 +38,11 @@ export default defineComponent({
     name: enumOrderComponents.spot_warrant_inventory_summary,
     components: {
         BtnList,
-        [ModalEnum.spot_warrant_inventory_summary_listed]: defineAsyncComponent(() => import('./components/listing.vue')),
+        [ModalEnum.spot_warrant_inventory_summary_listed]: defineAsyncComponent(() => import('./components/listing/index.vue')),
     },
     setup() {
         // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList<QueryWrPositionReq>();
+        const { loading, tableList, queryTable } = queryTableList<WrPosition>();
         // 获取列表数据
         const queryTableAction = () => {
             const param: QueryWrPositionReq = {
@@ -57,7 +57,7 @@ export default defineComponent({
             recordList: getRecordItemTab(),
         };
         return {
-            ...handleComposeOrderTable<QueryWrPositionReq>(param),
+            ...handleComposeOrderTable<WrPosition>(param),
             loading,
             tableList,
         };