Browse Source

代码提交

Handy_Cao 1 year ago
parent
commit
f91d497fda

+ 1 - 1
oem/tss/config/appconfig.json

@@ -3,7 +3,7 @@
   "appName": "TCE",
   "version": "1.0.27",
   "versionCode": "100027",
-  "apiUrl": "http://192.168.31.158:16240/cfg?key=dev_104",
+  "apiUrl": "http://192.168.31.210:8080/cfg?key=test_210",
   "tradeChannel": "ws",
   "showLoginAlert": true,
   "modules": [

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

@@ -129,6 +129,7 @@
             "deposit": "Balance payment required",
             "fees": "Pickup fee",
             "averageprice": "Average order price",
+            "deliveryid": "DeliveryID",
             "subtitle3": "Cancellation information",
             "tips3": "Are you sure you want to cancel?",
             "tips4": "Cancellation successful",

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

@@ -129,6 +129,7 @@
             "deposit": "ต้องชำระเงินส่วนที่เหลือ",
             "fees": "ค่าขนส่งสินค้าหรือค่ารับสินค้า",
             "averageprice": "ราคาเฉลี่ยคำสั่งซื้อ",
+            "deliveryid": "หมายเลขการจัดส่ง",
             "subtitle3": "ข้อมูลการยกเลิกการจอง",
             "tips3": "ยืนยันว่าต้องการยกเลิกการจองหรือไม่?",
             "tips4": "ยกเลิกการจองสำเร็จ",

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

@@ -129,6 +129,7 @@
             "deposit": "需补足尾款",
             "fees": "提货费",
             "averageprice": "订单均价",
+            "deliveryid": "交货单号",
             "subtitle3": "退订信息",
             "tips3": "确认要退订吗?",
             "tips4": "退订成功",

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

@@ -129,6 +129,7 @@
             "deposit": "需補足尾款",
             "fees": "提貨費",
             "averageprice": "訂單均價",
+            "deliveryid": "交貨單號",
             "subtitle3": "退訂信息",
             "tips3": "确认要退訂吗?",
             "tips4": "退訂成功",

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

@@ -704,6 +704,15 @@
             "subtitle": "Position Info",
             "subtitle2": "Settlement information",
             "subtitle3": "Transfer Info",
+            "agreeunit": "AgreeUnit",
+            "pricemove": "PriceMove",
+            "expressfees": "Freight",
+            "otherfees": "OtherFees",
+            "preamounts": "Pre-Amount",
+            "totalfees": "TotalFees",
+            "deposit1": "TotalSupplyAmount",
+            "fees1": "PickUpFees",
+            "fees2": "DeliveryFees",
             "goodsname": "Product code/name",
             "buyorsell": "Direction",
             "curholderamount": "CurHolderAmount",

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

@@ -704,6 +704,15 @@
             "subtitle": "ข้อมูล ที่เก็บไว้",
             "subtitle2": "ข้อมูลการส่งมอบ",
             "subtitle3": "ข้อมูลการถ่ายโอน",
+            "agreeunit": "ข้อมูลรายการ",
+            "pricemove": "น้ำเปล่า",
+            "expressfees": "จัดส่ง",
+            "otherfees": "ค่าใช้จ่ายอื่น ๆ",
+            "preamounts": "จ่ายล่วงหน้า",
+            "totalfees": "รวมทั้งหมดค่ะ",
+            "deposit1": "ต้องการรวมรายจ่าย",
+            "fees1": "บริการจัดส่ง",
+            "fees2": "บริการจัดส่ง",
             "goodsname": "รหัสสินค้า/ชื่อสินค้า",
             "buyorsell": "ทิศทางการวาง",
             "curholderamount": "จำนวน ที่เก็บไว้",

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

@@ -704,6 +704,15 @@
             "subtitle": "持仓信息",
             "subtitle2": "交收信息",
             "subtitle3": "转让信息",
+            "agreeunit": "商品规格",
+            "pricemove": "升贴水",
+            "expressfees": "运费",
+            "otherfees": "其他费用",
+            "preamounts": "预付款",
+            "totalfees": "费用合计",
+            "deposit1": "需补款合计",
+            "fees1": "提货服务费",
+            "fees2": "交货服务费",
             "goodsname": "商品代码/名称",
             "buyorsell": "持仓方向",
             "curholderamount": "持仓金额",

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

@@ -704,6 +704,15 @@
             "subtitle": "持倉信息",
             "subtitle2": "交收信息",
             "subtitle3": "轉讓信息",
+            "agreeunit": "商品規格",
+            "pricemove": "升貼水",
+            "expressfees": "運費",
+            "otherfees": "其他費用",
+            "preamounts": "預付款",
+            "totalfees": "費用合計",
+            "deposit1": "需補款合計",
+            "fees1": "提貨服務費",
+            "fees2": "交貨服務費",
             "goodsname": "商品代碼/名稱",
             "buyorsell": "持倉方向",
             "curholderamount": "持倉金額",

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

@@ -7,35 +7,29 @@
             </template>
             <Form ref="formRef" class="g-form__container" @submit="onDeliverySumit">
                 <CellGroup :title="$t('position.goods.subtitle')" inset>
+                    <Cell :title="$t('position.goods.orderid')" :value="`${selectedRow.tHDetailEx.tradeID}`" />
                     <Cell :title="$t('position.goods.goodsname')" :value="`${selectedRow.goodsCode}`" />
+                    <Cell :title="$t('position.goods.agreeunit')" :value="`${selectedRow.agreeUnit}${selectedRow.goodsUnit}`" />
                     <Cell :title="$t('position.goods.buyorsell')" :value="getBuyOrSellName(selectedRow.tHDetailEx.buyOrSell)" />
-                    <Cell :title="$t('position.goods.curholderamount')" :value="formatDecimal(selectedRow.tHDetailEx.holderAmount, selectedRow.decimalPlace)" />
+                    <Cell :title="$t('position.goods.holderprice')" :value="formatDecimal(selectedRow.tHDetailEx.holderPrice, selectedRow.decimalPlace)" />
                     <Cell :title="$t('position.goods.curpositionqty')" :value="selectedRow.tHDetailEx.holderQty" />
-                    <!-- <Cell :title="$t('position.goods.frozenqty')" :value="selectedRow.tHDetailEx.freezeQty*selectedRow.agreeUnit + getGoodsUnitName(selectedRow.goodsUnitID)" /> -->
-                    <Cell :title="$t('position.goods.enableqty')" :value="enableqty" />
-                    <Cell :title="$t('position.goods.mindeliverylot')" :value="mindeliverylot" />
-                    <Cell :title="$t('position.goods.closepl')">
-                        <template #value>
-                            <span :class="handlePriceColor(selectedRow.tHDetailEx.floatPL)">
-                                {{ formatDecimal(selectedRow.tHDetailEx.floatPL, selectedRow.decimalPlace) }}
-                            </span>
-                        </template>
-                    </Cell>
-                    <Cell :title="$t('position.goods.fees')" :value="formatDecimal(fee)" />
-                    <Cell :title="$t('position.goods.deposit')" :value="formatDecimal(deposit)" />
-                    <Cell :title="$t('position.goods.tradetime')" :value="selectedRow.tHDetailEx.tradeTime" />
+                    <Cell :title="$t('position.goods.curholderamount')" :value="formatDecimal(selectedRow.tHDetailEx.holderAmount, selectedRow.decimalPlace)" />
+                    <Cell :title="$t('position.goods.preamounts')" :value="formatDecimal(usedMargin, selectedRow.decimalPlace)" />
+                    <Cell v-if="selectedRow.tHDetailEx.buyOrSell === BuyOrSell.Buy" :title="$t('position.goods.deposit')" :value="formatDecimal(deposit)" />
+                    <Cell v-if="selectedRow.tHDetailEx.buyOrSell === BuyOrSell.Buy" :title="$t('position.goods.fees1')" :value="formatDecimal(serivcefee)" />
+                    <Cell v-if="selectedRow.tHDetailEx.buyOrSell === BuyOrSell.Sell" :title="$t('position.goods.fees2')" :value="formatDecimal(serivcefee)" />
+                    <Cell :title="$t('position.goods.pricemove')" :value="formatDecimal(pricemove)" />
+                    <Cell :title="$t('position.goods.expressfees')" :value="formatDecimal(shipping)" />
+                    <Cell :title="$t('position.goods.otherfees')" :value="formatDecimal(otherfees)" />
+                    <Cell v-if="selectedRow.tHDetailEx.buyOrSell === BuyOrSell.Buy" :title="$t('position.goods.deposit1')" :value="formatDecimal(deposit+serivcefee+pricemove+shipping+otherfees)" />
+                    <Cell v-if="selectedRow.tHDetailEx.buyOrSell === BuyOrSell.Sell" :title="$t('position.goods.totalfees')" :value="formatDecimal(serivcefee+pricemove+shipping+otherfees)" />
                 </CellGroup>
                 <CellGroup :title="$t('position.goods.subtitle2')" inset>
-                    <!-- <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> -->
                     <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"
-                        :label="selectedRow.tHDetailEx.buyOrSell === BuyOrSell.Buy ? $t('position.goods.address') : $t('position.goods.deliveryinfo')" :placeholder="$t('common.required')">
+                    <Field :label="selectedRow.tHDetailEx.buyOrSell === BuyOrSell.Buy ? $t('position.goods.address') : $t('position.goods.deliveryid')"  
+                        name="DeliveryInfo" v-model="formData.DeliveryInfo" type="textarea" autosize clearable
+                        :rules="formRules.DeliveryInfo" maxlength="50" 
+                        :placeholder="$t('common.required')">
                         <template #right-icon v-if="selectedRow.tHDetailEx.buyOrSell === BuyOrSell.Buy">
                             <Icon name="add-o" @click="showContact = true" />
                         </template>
@@ -56,7 +50,7 @@
 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 { formatDecimal, handleRequestBigNumber } from '@/filters'
 import { useOfflineDelivery } from '@/business/trade'
 import { dialog, fullloading } from '@/utils/vant'
 import { i18n, useFuturesStore } from '@/stores'
@@ -106,6 +100,42 @@ const formRules: { [key: string]: FieldRule[] } = {
     }],
 }
 
+// 升贴水
+const pricemove = computed(() => {
+    const { buypricemovealgorithm, buypricemovevalue = 0.0, sellpricemovevalue = 0.0, sellpricemovealgorithm } = goods ?? {}
+    const { buyOrSell } = props.selectedRow.tHDetailEx
+    const { agreeUnit } = props.selectedRow
+    if (buyOrSell === BuyOrSell.Buy) {
+        return buypricemovealgorithm === 1 ? 0.0 : buypricemovevalue * agreeUnit * enableqty.value
+    } else {
+        return sellpricemovealgorithm === 1 ? 0.0 : sellpricemovevalue * agreeUnit * enableqty.value
+    }
+})
+
+// 其他费用
+const otherfees = computed(() => {
+    const { buyotherfeealgorithm, buyotherfeevalue = 0.0, sellotherfeevalue = 0.0, sellotherfeealgorithm } = goods ?? {}
+    const { buyOrSell } = props.selectedRow.tHDetailEx
+    const { agreeUnit } = props.selectedRow
+    if (buyOrSell === BuyOrSell.Buy) {
+        return buyotherfeealgorithm === 1 ? 0.0 : buyotherfeevalue * agreeUnit * enableqty.value
+    } else {
+        return sellotherfeealgorithm === 1 ? 0.0 : sellotherfeevalue * agreeUnit * enableqty.value
+    }
+})
+
+// 运费
+const shipping = computed(() => {
+    const { buyshippingfeealgorithm, buyshippingfeevalue = 0.0, sellshippingfeevalue = 0.0, sellshippingfeealgorithm } = goods ?? {}
+    const { buyOrSell } = props.selectedRow.tHDetailEx
+    const { agreeUnit } = props.selectedRow
+    if (buyOrSell === BuyOrSell.Buy) {
+        return buyshippingfeealgorithm === 1 ? 0.0 : buyshippingfeevalue * agreeUnit * enableqty.value
+    } else {
+        return sellshippingfeealgorithm === 1 ? 0.0 : sellshippingfeevalue * agreeUnit * enableqty.value
+    }
+})
+
 // 可用重量
 const enableqty = computed(() => {
     const { tHDetailEx, agreeUnit } = props.selectedRow
@@ -117,12 +147,18 @@ const deposit = computed(() => {
     return props.selectedRow.tHDetailEx.holderAmount - (props.selectedRow.tHDetailEx.payedDeposit + props.selectedRow.tHDetailEx.restockDeposit )
 })
 
+// 预付款
+const usedMargin = computed(() => {
+    return props.selectedRow.tHDetailEx.payedDeposit+props.selectedRow.tHDetailEx.restockDeposit
+})
+
 // 提货费 = 取交易费用配置 105
 // 固定: 可用量*合约单位*配置值
 // 比率:订单金额*配置值
-const fee = computed(() => {
+const serivcefee = computed(() => {
+    const { buyOrSell } = props.selectedRow.tHDetailEx
     const { tradefees = [], agreeunit = 0 } = quote.value ?? {}
-    const { FeeAlgorithm = 1, ExchangeValue = 0.0 } = tradefees.find((e) => e.FeeID === 105) ?? {}
+    const { FeeAlgorithm = 1, ExchangeValue = 0.0 } = tradefees.find((e) => e.FeeID === (buyOrSell === BuyOrSell.Buy ? 105 : 106)) ?? {}
     // 比例
     if (FeeAlgorithm === 1) {
         return enableqty.value * agreeunit * ExchangeValue

+ 6 - 2
src/packages/tss/views/order/delivery/components/offline/Index.vue

@@ -1,4 +1,4 @@
-<!-- 交收提货-线下交收单 -->
+<!-- 交收提货 - 全款提货 -->
 <template>
     <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
         :page-count="pageCount" @refresh="run">
@@ -25,6 +25,10 @@
                                 <span>{{ item.goodscode }}</span>
                             </li>
                             <li>
+                                <span>{{ $t('position.goods.agreeunit') }}:</span>
+                                <span>{{ item.agreeunit }}{{ item.goodsunit }}</span>
+                            </li>
+                            <li>
                                 <span>{{ $t('delivery.offline.deliveryqty') }}:</span>
                                 <span>{{ item.deliveryqty }}</span>
                             </li>
@@ -56,7 +60,7 @@
 import { shallowRef } from 'vue'
 import { Image } from 'vant'
 import { getFileUrl } from '@/filters'
-import { getBuyOrSellName, getDeliveryOrderStatusName } from '@/constants/order'
+import { getDeliveryOrderStatusName } from '@/constants/order'
 import { fullloading, dialog } from '@/utils/vant'
 import { formatDate, handleRequestBigNumber } from '@/filters'
 import { useRequest } from '@/hooks/request'

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

@@ -22,7 +22,11 @@
                         <ul>
                             <li>
                                 <span>{{ $t('position.goodscode') }}:</span>
-                                <span>{{ item.goodscode }}</span>
+                                <span>{{ item.goodsnamedisplay }}</span>
+                            </li>
+                            <li>
+                                <span>{{ $t('position.goods.agreeunit') }}:</span>
+                                <span>{{ item.agreeunit }}{{ item.goodsunit }}</span>
                             </li>
                             <li>
                                 <span>{{ $t('delivery.offline.deliveryqty') }}:</span>
@@ -58,7 +62,6 @@
 <script lang="ts" setup>
 import { shallowRef } from 'vue'
 import { Button, Image } from 'vant'
-import { getDeliveryOrderStatusName } from '@/constants/order'
 import { fullloading, dialog } from '@/utils/vant'
 import { formatDate, handleRequestBigNumber } from '@/filters'
 import { useRequest } from '@/hooks/request'

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

@@ -22,7 +22,11 @@
                         <ul>
                             <li>
                                 <span>{{ $t('position.goodscode') }}:</span>
-                                <span>{{ item.goodscode }}</span>
+                                <span>{{ item.goodsnamedisplay }}</span>
+                            </li>
+                            <li>
+                                <span>{{ $t('position.goods.agreeunit') }}:</span>
+                                <span>{{ item.agreeunit }}{{ item.goodsunit }}</span>
                             </li>
                             <li>
                                 <span>{{ $t('delivery.offline.deliveryqty') }}:</span>
@@ -58,7 +62,6 @@
 <script lang="ts" setup>
 import { shallowRef } from 'vue'
 import { Button, Image } from 'vant'
-import { getBuyOrSellName } from '@/constants/order'
 import { getFileUrl } from '@/filters'
 import { fullloading, dialog } from '@/utils/vant'
 import { formatDate, handleRequestBigNumber } from '@/filters'

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

@@ -22,16 +22,20 @@
                         <ul>
                             <li>
                                 <span>{{ $t('position.goodscode') }}:</span>
-                                <span>{{ item.goodscode }}</span>
+                                <span>{{ item.goodsnamedisplay }}</span>
+                            </li>
+                            <li>
+                                <span>{{ $t('position.goods.agreeunit') }}:</span>
+                                <span>{{ item.agreeunit }}{{ item.goodsunit }}</span>
                             </li>
                             <li>
                                 <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 +44,6 @@
                                 <span>{{ $t('delivery.offline.applydate') }}:</span>
                                 <span>{{ formatDate(item.reqtime) }}</span>
                             </li>
-                            <!-- <li>
-                                <span>{{ $t('delivery.offline.deliveryinfo') }}:</span>
-                                <span>{{ item.deliveryinfo }}</span>
-                            </li> -->
                         </ul>
                     </div>
                 </div>

+ 10 - 5
src/packages/tss/views/order/list/prepayment/Index.vue

@@ -21,7 +21,11 @@
                         <ul>
                             <li>
                                 <span>{{ $t('position.goodscode') }}:</span>
-                                <span>{{ item.goodscode }}</span>
+                                <span>{{ item.goodsname }}</span>
+                            </li>
+                            <li>
+                                <span>{{ $t('position.goods.agreeunit') }}:</span>
+                                <span>{{ item.agreeunit }}{{ item.goodsunit }}</span>
                             </li>
                             <li>
                                 <span>{{ $t('delivery.offline.deliveryqty') }}:</span>
@@ -32,15 +36,16 @@
                                 <span>{{ formatDecimal(item.tradeamount, item.decimalplace) }}</span>
                             </li>
                             <li>
+                                <span>{{ $t('position.goods.preamounts') }}:</span>
+                                <span>{{ formatDecimal(item.payeddeposit+item.restockdeposit, item.decimalplace) }}</span>
+                            </li>
+                            <li>
                                 <span>{{ $t('position.goods.closepl') }}:</span>
                                 <span :class="handlePriceColor(item.floatpl)">
                                     {{ formatDecimal(item.floatpl) }}
                                 </span>
                             </li>
-                            <li>
-                                <span>{{ $t('position.goods.holderamount') }}:</span>
-                                <span>{{ formatDecimal(item.holderprice, item.decimalplace) }}</span>
-                            </li>
+                            
                             <li>
                                 <span>{{ $t('position.goods.holddetail.tradetime') }}:</span>
                                 <span>{{ formatDate(item.tradetime) }}</span>

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

@@ -36,39 +36,29 @@
                                     <span>{{ item.goodsCode }}</span>
                                 </li>
                                 <li>
+                                    <span>{{ $t('position.goods.agreeunit') }}:</span>
+                                    <span>{{ item.agreeUnit }}{{ item.goodsUnit }}</span>
+                                </li>
+                                <li>
                                     <span>{{ $t('position.goods.holddetail.holderqty') }}:</span>
                                     <span>{{ enableqty(item) + getGoodsUnitName(item.goodsUnitID) }}</span>
                                 </li>
-                                <!-- <li>
-                                    <span>{{ $t('position.goods.holddetail.freezeqty') }}</span>
-                                    <span>{{ item.tHDetailEx.freezeQty }}</span>
-                                </li> -->
                                 <li>
-                                    <span>{{ $t('position.goods.holddetail.holderprice') }}:</span>
+                                    <span>{{ $t('position.goods.holderprice') }}:</span>
                                     <span>{{ formatDecimal(item.tHDetailEx.holderPrice, item.decimalPlace) }}</span>
                                 </li>
                                 <li>
-                                    <span>{{ $t('position.goods.holddetail.holderamount') }}:</span>
+                                    <span>{{ $t('position.goods.holderamount') }}:</span>
                                     <span>{{ formatDecimal(item.tHDetailEx.holderAmount, item.decimalPlace) }}</span>
                                 </li>
                                 <li>
-                                    <span>{{ $t('position.goods.holddetail.usedMargin') }}:</span>
-                                    <span>{{ formatDecimal(item.tHDetailEx.payedDeposit +
-                                        item.tHDetailEx.restockDeposit,
-                                        item.decimalPlace) }}</span>
+                                    <span>{{ $t('position.goods.preamounts') }}:</span>
+                                    <span>{{ formatDecimal(item.tHDetailEx.payedDeposit+item.tHDetailEx.restockDeposit, item.decimalPlace) }}</span>
+                                </li>
+                                <li>
+                                    <span>{{ $t('position.goods.closepl') }}:</span>
+                                    <span :class="handlePriceColor(item.tHDetailEx.floatPL)">{{ formatDecimal(item.tHDetailEx.floatPL, item.decimalPlace) }}</span>
                                 </li>
-                                <!-- <li>
-                                    <span>{{ $t('position.goods.holddetail.profitLoss') }}</span>
-                                    <span :class="handlePriceColor(item.tHDetailEx.floatPL)">
-                                        {{ formatDecimal(item.tHDetailEx.floatPL) }}
-                                    </span>
-                                </li> -->
-                                <!-- <li>
-                                    <span>{{ $t('position.goods.holddetail.riskRate') }}</span>
-                                    <span :class="item.tHDetailEx.depositRate >= item.tHDetailEx.promptDepositRate ? 'g-price-up' : ''">
-                                        {{ parsePercent(item.tHDetailEx.riskRate) }}
-                                    </span>
-                                </li> -->
                                 <li>
                                     <span>{{ $t('position.goods.holddetail.tradetime') }}:</span>
                                     <span>{{ formatDate(item.tHDetailEx.tradeTime) }}</span>
@@ -77,7 +67,7 @@
                         </div>
                     </div>
                     <div class="g-product-list__btnbar" v-if="item.tHDetailEx.holderQty">
-                        <Button size="small" v-if="enableqty(item)" @click="showComponent('close', item)" round>
+                        <Button size="small" v-if="enableqty(item)" @click="onCloseSumit(item)" round>
                             {{ $t('operation.close') }}
                         </Button>
                         <Button size="small" @click="showComponent('delivery', item)" round>
@@ -97,15 +87,23 @@ import { shallowRef, defineAsyncComponent } from 'vue'
 import { Tabs, Tab, Button, Image } from 'vant'
 import { getFileUrl } from '@/filters'
 import { useComponent } from '@/hooks/component'
-import { getBuyOrSellName } from '@/constants/order'
-import { formatDecimal, formatDate } from '@/filters'
+import { getBuyOrSellName, BuyOrSell, PriceMode } from '@/constants/order'
+import { formatDecimal, formatDate, handleRequestBigNumber, handlePriceColor } from '@/filters'
 import { getGoodsUnitName } from '@/constants/unit'
-import { useSBYJOrderStore } from '@/stores'
+import { useSBYJOrderStore, i18n } from '@/stores'
+import { useOrder } from '@/business/trade'
+import { dialog, fullloading } from '@/utils/vant'
+import { EBuildType, EDelistingType, EListingSelectType, EValidType } from '@/constants/client'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
+import eventBus from '@/services/bus'
+
+const { global: { t } } = i18n
 
 const { getSBYJMyOrders, $toRefs } = useSBYJOrderStore()
 const { orderComputedList, loading, error } = $toRefs()
 
+const { formSubmit, formData } = useOrder()
+
 const componentMap = new Map<string, unknown>([
     ['close', defineAsyncComponent(() => import('@mobile/views/order/position/components/pricing/detail2/components/transfer/Index.vue'))],
     ['delivery', defineAsyncComponent(() => import('@mobile/views/order/position/components/pricing/detail2/components/delivery/Index.vue'))],
@@ -133,4 +131,40 @@ const getImageUrl = (url: string) => {
     const [firstImg] = url.split(',')
     return firstImg ? getFileUrl(firstImg) : ''
 }
+
+const onCloseSumit = (item: Model.SBYJMyOrderRsp) => {
+    dialog({
+        message: t('position.goods.tips3'),
+        showCancelButton: true,
+    }).then(() => {
+        const { marketID, goodsID, buyOrSell, tradeID } = item.tHDetailEx
+        /// 市场ID
+        formData.Header = { GoodsID: goodsID }
+        formData.MarketID = marketID
+        formData.BuyOrSell = buyOrSell === BuyOrSell.Buy ? BuyOrSell.Sell : BuyOrSell.Buy
+        formData.GoodsID = goodsID
+        formData.ListingSelectType = EListingSelectType.LISTINGSELECTTYPE_DELISTINGTHENLISTING
+        formData.DelistingType = EDelistingType.DELISTINGTYPE_PRICE
+        formData.BuildType = EBuildType.BUILDTYPE_CLOSE
+        formData.TimevalidType = EValidType.VALIDTYPE_DR
+        formData.OperateType = 24
+        formData.RelatedID = handleRequestBigNumber(tradeID)
+        formData.OrderQty = enableqty(item)
+        formData.PriceMode = PriceMode.Market
+        formData.MarketMaxSub = 100.0
+
+        /// loding....
+        fullloading((hideLoading) => {
+            formSubmit().then(() => {
+                hideLoading(t('position.goods.tips4'), 'success')
+                // 成交通知
+                eventBus.$emit('OrderDealedNtf')
+                getSBYJMyOrders()
+            }).catch((err) => {
+                hideLoading(err, 'fail')
+            })
+        })
+    })
+}
+
 </script>

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

@@ -12,6 +12,12 @@ declare namespace Model {
         areauserid: number; // 所属机构
         auditaccountid: number; // 审核操作员账号
         audittime: string; // 审核时间
+        buyotherfeealgorithm: number; // 买交收其它费用算法
+        buyotherfeevalue: number; // 买交收其它费用值
+        buypricemovealgorithm: number; // 买交收升贴水算法
+        buypricemovevalue: number; // 买交收升贴水值
+        buyshippingfeealgorithm: number; // 买交收运费算法
+        buyshippingfeevalue: number; // 买交收运费值
         canautoadddeposit: number; // 是否允许自动追加定金: 0-否 1-是(52)
         canautorefunddeposit: number; // 是否允许自动退还定金: 0-否 1-是(52)
         cancelaccountid: number; // 注销操作员账号
@@ -67,6 +73,12 @@ declare namespace Model {
         quoteshowtypeinterval: number; // 行情报价间隔时间(秒)(成交价时为0)
         relatedgoodsid: number; // 关联参考商品ID
         remark: string; // 备注
+        sellotherfeealgorithm: number; // 卖交收其它费用算法
+        sellotherfeevalue: number; // 卖交收其它费用值
+        sellpricemovealgorithm: number; // 卖交收升贴水算法
+        sellpricemovevalue: number; // 卖交收升贴水值
+        sellshippingfeealgorithm: number; // 卖交收运费算法
+        sellshippingfeevalue: number;  // 卖交收运费值
         thumurls: string; // 缩略图片(1:1)(逗号分隔)
         trademode: number; // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
         tradeproperty: number; // 交易属性 - 1:收益权(可做空) 2:所有权(不可做空) 3:期权 4:现货 5:参考行情 6:通道交易 7:币交易 8:场外期权

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

@@ -1793,6 +1793,7 @@ declare namespace Model {
         goodsid: number; // 商品ID
         goodsname: string; // 期货合约名称
         goodunitid: number; // 报价单位ID
+        goodsunit: string; // 报价单位
         handlestatus: number; // 处理状态
         holddays: number; // 持仓天数
         holderamount: number; // 持仓金额

+ 5 - 2
src/types/model/transfer.d.ts

@@ -306,6 +306,7 @@ declare namespace Model {
 
     /** 交收提货-线下交收单 响应 */
     interface MineTradeGoodsDeliveryOfflinesRsp {
+        agreeunit: number; // 合约乘数
         accountid: number; // 账户ID
         buyorsell: number; // 交收方向 - 0:买 1:卖
         buyorselldisplay: string; // 交收方向
@@ -330,10 +331,12 @@ declare namespace Model {
         orderstatusdisplay: string; // 单据状态
         reqtime: string; // 申请时间
         reqtradedate: string; // 申请交易日
+        thumurls: string;  // 缩略图片(1:1)(逗号分隔)
+        totalotherfee: number; // 总其它费用(10-线下交收)
+        totalpricemove: number; // 总升贴水(10-线下交收)
+        totalshippingfee: number; // 总运费(10-线下交收)
         tradeid: string; // 成交单号(10-线下交收)
         userid: number; // 申请用户ID
-        // 缩略图片(1:1)(逗号分隔)
-        thumurls: string; 
     }
 
     /** 获取持仓过户申请表信息 - 我的转入 请求 */