Bläddra i källkod

Merge branch 'v20' of http://192.168.31.240:3000/MTP2.0_New/MTP20_WEB_GLOBAL into v20

li.shaoyi 1 år sedan
förälder
incheckning
c458de4f18

+ 8 - 1
oem/tss/locales/extras/en-US.json

@@ -74,7 +74,11 @@
         "title1": "Full-Pay Delivery",
         "title2": "Pre-Pay PickUp",
         "title3": "Pre-Pay Delivery",
-        "title4": "Refunds"
+        "title4": "Refunds",
+        "offline": {
+            "deliveryqty": "OrderQty",
+            "deliveryamount": "OrderAmount"
+        }
     },
     "order": {
         "title1": "History Orders",
@@ -117,6 +121,8 @@
             "tips2": "Please Enter Reservation quantity",
             "qty": "ReservationQty",
             "orderqty": "ReservationQty",
+            "deposit": "Make-UpAmount",
+            "fees": "Pick-UpFees",
             "averageprice": "AveragePrice",
             "subtitle3": "Reservation Info",
             "tips3": "Are you sure you want to unsubscribe?",
@@ -126,6 +132,7 @@
                 "freezeqty": "FreezeQty",
                 "profitLoss": "ProfitLoss",
                 "holderamount": "OrderAmount",
+                "usedMargin": "UsedMargin",
                 "tradetime": "OrderTime"
             }
         },

+ 8 - 1
oem/tss/locales/extras/th-TH.json

@@ -74,7 +74,11 @@
         "title1": "ไปรับเองค่ะ",
         "title2": "จ่ายล่วงหน้าเพื่อรับของ",
         "title3": "การชำระเงินล่วงหน้า",
-        "title4": "ส่งคืนสินค้า"
+        "title4": "ส่งคืนสินค้า",
+        "offline": {
+            "deliveryqty": "จำนวนคำสั่ง",
+            "deliveryamount": "สั่งซื้อสินค้า"
+        }
     },
     "order": {
         "title1": "คำสั่งทางประวัติศาสตร์",
@@ -117,6 +121,8 @@
             "tips2": "กรุณากรอกปริมาณการยกเลิกการจอง",
             "qty": "ปริมาณการยกเลิก",
             "orderqty": "ปริมาณการยกเลิก",
+            "deposit": "ต้องการเงินชดเชย",
+            "fees": "ค่าธรรมเนียมการมารับ",
             "averageprice": "ราคาเฉลี่ยคำสั่งซื้อ",
             "subtitle3": "ข้อมูลการยกเลิกการจอง",
             "tips3": "ยืนยันการสั่งซื้อ หรือไม่?",
@@ -126,6 +132,7 @@
                 "freezeqty": "ราคาที่ล็อกไว้",
                 "profitLoss": "ส่วนต่างลอยตัว",
                 "holderamount": "ราคารวมคำสั่งซื้อ",
+                "usedMargin": "ขอเงินหน่อย",
                 "tradetime": "เวลาที่ทำการสั่งซื้อ"
             }
         },

+ 8 - 1
oem/tss/locales/extras/zh-CN.json

@@ -74,7 +74,11 @@
         "title1": "全款提货",
         "title2": "预付款提货",
         "title3": "预付款交货",
-        "title4": "退换货"
+        "title4": "退换货",
+        "offline": {
+            "deliveryqty": "订单数量",
+            "deliveryamount": "订单货款"
+        }
     },
     "order": {
         "title1": "历史订单",
@@ -117,6 +121,8 @@
             "tips2": "请输入退订量",
             "qty": "退订量",
             "orderqty": "退订量",
+            "deposit": "需补足尾款",
+            "fees": "提货费",
             "averageprice": "订单均价",
             "subtitle3": "退订信息",
             "tips3": "确认要退订吗?",
@@ -126,6 +132,7 @@
                 "freezeqty": "锁定量",
                 "profitLoss": "浮动差额",
                 "holderamount": "订单金额",
+                "usedMargin": "占用资金",
                 "tradetime": "订单时间"
             }
         },

+ 8 - 1
oem/tss/locales/extras/zh-TW.json

@@ -74,7 +74,11 @@
         "title1": "全款提貨",
         "title2": "預付款提貨",
         "title3": "預付款交貨",
-        "title4": "退換貨"
+        "title4": "退換貨",
+        "offline": {
+            "deliveryqty": "訂單數量",
+            "deliveryamount": "訂單貨款"
+        }
     },
     "order": {
         "title1": "歷史訂單",
@@ -117,6 +121,8 @@
             "tips2": "請輸入退訂量",
             "qty": "退訂量",
             "orderqty": "退訂量",
+            "deposit": "需補足尾款",
+            "fees": "提貨費",
             "averageprice": "訂單均價",
             "subtitle3": "退訂信息",
             "tips3": "确认要退訂吗?",
@@ -126,6 +132,7 @@
                 "freezeqty": "鎖定量",
                 "profitLoss": "浮動差額",
                 "holderamount": "訂單金額",
+                "usedMargin": "佔用資金",
                 "tradetime": "訂單時間"
             }
         },

+ 2 - 0
public/locales/en-US.json

@@ -699,6 +699,8 @@
             "closepl": "ClosePl",
             "last": "Last",
             "orderqty": "TransferQty",
+            "deposit": "Make-UpAmount",
+            "fees": "Pick-UpFees",
             "matchname": "MatchName",
             "deliverylot": "DeliveryLot",
             "deliveryqty": "DeliveryQty",

+ 2 - 0
public/locales/th-TH.json

@@ -702,6 +702,8 @@
             "closepl": "อ้างอิงถึงการเก็บเกี่ยว",
             "last": "ค่าปัจจุบัน",
             "orderqty": "การถ่ายโอน",
+            "deposit": "ต้องการเงินชดเชย",
+            "fees": "ค่าธรรมเนียมการมารับ",
             "matchname": "เลือกคู่ต่อสู้",
             "deliverylot": "ผลรวม",
             "deliveryqty": "จำนวนรายการ",

+ 2 - 0
public/locales/zh-CN.json

@@ -702,6 +702,8 @@
             "closepl": "参考损益",
             "last": "当前价",
             "orderqty": "转让量",
+            "deposit": "需补足尾款",
+            "fees": "提货费",
             "matchname": "交收对手方",
             "deliverylot": "交收量",
             "deliveryqty": "交收数量",

+ 2 - 0
public/locales/zh-TW.json

@@ -702,6 +702,8 @@
             "closepl": "參考損益",
             "last": "當前價",
             "orderqty": "轉讓量",
+            "deposit": "需補足尾款",
+            "fees": "提貨費",
             "matchname": "交收對手方",
             "deliverylot": "交收量",
             "deliveryqty": "交收數量",

+ 31 - 4
src/packages/mobile/views/order/position/components/pricing/detail2/components/delivery/Index.vue

@@ -21,15 +21,17 @@
                             </span>
                         </template>
                     </Cell>
+                    <Cell :title="$t('position.goods.fees')" :value="fee" />
+                    <Cell :title="$t('position.goods.deposit')" :value="deposit" />
                     <Cell :title="$t('position.goods.tradetime')" :value="selectedRow.tHDetailEx.tradeTime" />
                 </CellGroup>
                 <CellGroup :title="$t('position.goods.subtitle2')" inset>
-                    <Field name="DeliveryLot" type="digit" :rules="formRules.DeliveryLot" :label="$t('position.goods.deliverylot')">
+                    <!-- <Field name="DeliveryLot" type="digit" :rules="formRules.DeliveryLot" :label="$t('position.goods.deliverylot')">
                         <template #input>
                             <Stepper v-model="formData.DeliveryLot" theme="round" button-size="22" :min="0"
                                 :max="enableqty" :auto-fixed="false" integer />
                         </template>
-                    </Field>
+                    </Field> -->
                     <Cell :title="$t('position.goods.deliveryqty')" :value="((formData.DeliveryLot ?? 0) * selectedRow.agreeUnit) + getGoodsUnitName(selectedRow.goodsUnitID)" />
                     <Field name="DeliveryInfo" v-model="formData.DeliveryInfo" type="textarea" autosize clearable
                         :rules="formRules.DeliveryInfo" maxlength="50"
@@ -51,8 +53,8 @@
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, PropType, computed } from 'vue'
-import { CellGroup, Cell, Button, FieldRule, Form, Field, Stepper, FormInstance, Icon } from 'vant'
+import { shallowRef, PropType, computed, onMounted } from 'vue'
+import { CellGroup, Cell, Button, FieldRule, Form, Field, FormInstance, Icon } from 'vant'
 import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
 import { formatDecimal, handlePriceColor, handleRequestBigNumber } from '@/filters'
 import { useOfflineDelivery } from '@/business/trade'
@@ -81,6 +83,7 @@ const showContact = shallowRef(false) // 显示联系人选择列表
 const { formSubmit, formData } = useOfflineDelivery()
 const futuresStore = useFuturesStore()
 const goods = futuresStore.getGoods(props.selectedRow.goodsCode)
+const quote = futuresStore.getGoodsQuote(props.selectedRow.goodsCode)
 const { mindeliverylot = 0 } = goods ?? {}
 
 // 表单验证规则
@@ -109,6 +112,25 @@ const enableqty = computed(() => {
     return (tHDetailEx.holderQty - tHDetailEx.freezeQty) * agreeUnit
 }) 
 
+// 需补足尾款
+const deposit = computed(() => {
+    return props.selectedRow.tHDetailEx.holderAmount - (props.selectedRow.tHDetailEx.payedDeposit + props.selectedRow.tHDetailEx.restockDeposit )
+})
+
+// 提货费 = 取交易费用配置 105
+// 固定: 可用量*合约单位*配置值
+// 比率:订单金额*配置值
+const fee = computed(() => {
+    const { tradefees = [], agreeunit = 0 } = quote.value ?? {}
+    const { FeeAlgorithm = 1, ExchangeValue = 1.0 } = tradefees.find((e) => e.FeeID === 105) ?? {}
+    // 比例
+    if (FeeAlgorithm === 1) {
+        return enableqty.value * agreeunit * ExchangeValue
+    } 
+    // 固定
+    return  props.selectedRow.tHDetailEx.holderAmount * ExchangeValue
+})
+
 // 选择联系信息
 const contactChange = (item: Model.UserReceiveInfoRsp) => {
     const contact = `${item.receivername} ${item.phonenum}`
@@ -155,6 +177,11 @@ const closed = (isRefresh = false) => {
     }
 }
 
+onMounted(() => {
+    // 可用数量
+    formData.DeliveryLot = enableqty.value
+ })
+
 // 暴露组件属性给父组件调用
 defineExpose({
     closed,

+ 3 - 3
src/packages/mobile/views/order/position/components/pricing/detail2/components/transfer/Index.vue

@@ -1,4 +1,4 @@
-<!-- 挂牌点价- 订单明细 - 平仓 -->
+<!-- 挂牌点价- 订单明细 - 退订 -->
 <template>
     <app-modal direction="right-top" height="100%" width="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
@@ -49,12 +49,12 @@
                                 :decimal-length="decimalplace" :step="decimalplace" :auto-fixed="false" />
                         </template>
                     </Field>
-                    <Field name="OrderQty" :rules="formRules.OrderQty" :label="$t('position.goods.orderqty')">
+                    <!-- <Field name="OrderQty" :rules="formRules.OrderQty" :label="$t('position.goods.orderqty')">
                         <template #input>
                             <Stepper v-model="formData.OrderQty" theme="round" button-size="22" :min="0" :max="maxQty"
                                 :auto-fixed="false" integer />
                         </template>
-                    </Field>
+                    </Field> -->
                 </CellGroup>
             </Form>
             <template #footer>

+ 2 - 2
src/packages/mobile/views/pricing/trade/v2/Index.vue

@@ -14,9 +14,9 @@
         </template>
         <div class="pricing-trade__form" v-if="quote">
             <div class="form-buyorsell">
-                <Tabs class="van-tabs--list" v-model:active="formData.BuyOrSell" v-if="quote.trademode != 53">
+                <Tabs class="van-tabs--list" line-height="0" v-model:active="formData.BuyOrSell" v-if="quote.trademode != 53">
                     <Tab :title="$t('quote.bid')" :name="BuyOrSell.Buy"></Tab>
-                    <Tab :title="$t('quote.ask')" :name="BuyOrSell.Sell"></Tab>
+                    <!-- <Tab :title="$t('quote.ask')" :name="BuyOrSell.Sell"></Tab> -->
                 </Tabs>
                 <Tabs class="van-tabs--list" line-height="0" v-model:active="formData.BuyOrSell" v-else>
                     <Tab :title="$t('quote.selllprice')" :name="BuyOrSell.Buy"></Tab>

+ 5 - 5
src/packages/tss/views/order/delivery/Index.vue

@@ -31,11 +31,11 @@ const components = [
         title: t('delivery.title2'),
         component: defineAsyncComponent(() => import('./components/online/Index.vue')),
     },
-    {
-        name: 'spot',
-        title: t('delivery.title3'),
-        component: defineAsyncComponent(() => import('./components/spot/Index.vue')),
-    },
+    // {
+    //     name: 'spot',
+    //     title: t('delivery.title3'),
+    //     component: defineAsyncComponent(() => import('./components/spot/Index.vue')),
+    // },
     {
         name: 'aftersale',
         title: t('delivery.title4'),

+ 4 - 4
src/packages/tss/views/order/list/fullpayment/Index.vue

@@ -28,10 +28,10 @@
                                 <span>{{ $t('delivery.offline.deliveryqty') }}:</span>
                                 <span>{{ item.deliveryqty }}</span>
                             </li>
-                            <li>
+                            <!-- <li>
                                 <span>{{ $t('delivery.offline.deliveryprice') }}:</span>
                                 <span>{{ item.orderstatus === 1 ? '--' : item.deliveryprice }}</span>
-                            </li>
+                            </li> -->
                             <li>
                                 <span>{{ $t('delivery.offline.deliveryamount') }}:</span>
                                 <span>{{ item.orderstatus === 1 ? '--' : item.deliveryamount }}</span>
@@ -40,10 +40,10 @@
                                 <span>{{ $t('delivery.offline.applydate') }}:</span>
                                 <span>{{ formatDate(item.reqtime, 'YYYY-MM-DD') }}</span>
                             </li>
-                            <li>
+                            <!-- <li>
                                 <span>{{ $t('delivery.offline.deliveryinfo') }}:</span>
                                 <span>{{ item.deliveryinfo }}</span>
-                            </li>
+                            </li> -->
                         </ul>
                     </div>
                 </div>

+ 4 - 0
src/packages/tss/views/order/list/prepayment/Index.vue

@@ -24,6 +24,10 @@
                                 <span>{{ item.goodscode }}</span>
                             </li>
                             <li>
+                                <span>{{ $t('delivery.offline.deliveryqty') }}:</span>
+                                <span>{{ item.openqty }}</span>
+                            </li>
+                            <li>
                                 <span>{{ $t('position.goods.holddetail.holderamount') }}:</span>
                                 <span>{{ formatDecimal(item.tradeamount, item.decimalplace) }}</span>
                             </li>

+ 2 - 2
src/packages/tss/views/order/position/Index.vue

@@ -2,7 +2,7 @@
 <template>
     <app-view>
         <template #header>
-            <app-navbar :title="$t('position.title')">
+            <app-navbar :title="$t('mine.myposition')">
                 <!-- <template #footer>
                     <Tabs>
                         <Tab title="全款订单" :name="1" />
@@ -32,7 +32,7 @@
                         <div class="right">
                             <ul>
                                 <li>
-                                    <span>{{ $t('position.goodscode') }}</span>
+                                    <span>{{ $t('position.goodscode') }}</span>
                                     <span>{{ item.goodsCode }}</span>
                                 </li>
                                 <li>

+ 14 - 1
src/stores/modules/futures.ts

@@ -116,6 +116,18 @@ export const useFuturesStore = defineStore(() => {
                 item.traderules = []
             }
 
+            // 交易费用
+            const findfee =  accountConfig.todayAccountTradefees.find((e) => e.accountid === accountStore.currentAccountId && e.goodsid === item.goodsid)
+            const fee = findfee ?? accountConfig.todayAccountTradefees.find((e) => e.accountid === 0 && e.goodsid === item.goodsid)
+            if (fee) {
+                const ruleWordArray = CryptoJS.enc.Base64.parse(fee.infocontent) // 解析base64
+                const ruleUint8Array = wordArrayToUint8Array(ruleWordArray)
+                const ruleData = await decodeProto<Proto.TradeFeeInfoStruct>('TradeFeeInfoStruct', ruleUint8Array) // proto数据解析
+                item.tradefees = ruleData.TradeFees
+            } else {
+                item.tradefees = []
+            }
+
             // 组合商品属性
             state.goodsList.push({
                 ...item,
@@ -319,7 +331,8 @@ export const useFuturesStore = defineStore(() => {
             lowestColor: '',
             pictureurl: '',
             thumurls: '',
-            traderules: []
+            traderules: [],
+            tradefees: []
         }
 
         if (item.goodsid) {

+ 1 - 0
src/types/model/goods.d.ts

@@ -71,6 +71,7 @@ declare namespace Model {
         trademode: number; // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
         tradeproperty: number; // 交易属性 - 1:收益权(可做空) 2:所有权(不可做空) 3:期权 4:现货 5:参考行情 6:通道交易 7:币交易 8:场外期权
         traderules: Proto.TradeRuleInfoStruct['TradeRules'] // 交易规则
+        tradefees: Proto.TradeFeeInfoStruct['TradeFees'] // 交易规则
     }
 
     /** 现货商品详情 */

+ 1 - 0
src/types/model/market.d.ts

@@ -145,6 +145,7 @@ declare namespace Model {
         goodstradetype: number;//商品交易权限类型 - 1:可建可平 3:不可建可平
         currencyid: number;//报价货币ID
         traderules: Proto.TradeRuleInfoStruct['TradeRules'] // 交易规则
+        tradefees: Proto.TradeFeeInfoStruct['TradeFees'] // 交易费用
         thumurls: string; // 缩略图片(1:1)(逗号分隔)
     }