Handy_Cao преди 3 години
родител
ревизия
14fc70dfff

+ 33 - 1
src/business/goods/index.ts

@@ -1,7 +1,7 @@
 import { shallowRef, reactive } from 'vue'
 import { useDataTable } from '@/hooks/datatable'
 import { EchartsDataset } from '@/hooks/echarts/line/interface'
-import { queryTHJWrstandard, queryTHJWrstandardDetail, addUserFavoriteGoods, removeUserFavoriteGoods, queryTHJProduct, queryMarketRun, queryTHJTradeData, querySpotGoodsPrice } from '@/services/api/goods'
+import { queryTHJWrstandard, queryWrMarketTradeConfig, queryTHJWrstandardDetail, addUserFavoriteGoods, removeUserFavoriteGoods, queryTHJProduct, queryMarketRun, queryTHJTradeData, querySpotGoodsPrice } from '@/services/api/goods'
 import { useLoginStore } from '@/stores'
 
 // 采购列表
@@ -248,3 +248,35 @@ export function useQueryMarketRunLists() {
         getQueryMarketRunLists,
     }
 }
+
+// 查询市场运行信息
+export function useQueryWrMarketTradeConfig() {
+    const { dataList, total, pageIndex, pageSize, pageCount } = useDataTable<Model.WrMarketTradeConfigRsp>()
+    const loading = shallowRef(false)
+
+    const wrMarketTradeConfig = (marketid?: number) => {
+        loading.value = true
+        return queryWrMarketTradeConfig({
+            data: {
+                marketid: marketid
+            },
+            success: (res) => {
+                total.value = res.total
+                dataList.value = res.data
+            },
+            complete: () => {
+                loading.value = false
+            }
+        })
+    }
+
+    return {
+        loading,
+        dataList,
+        total,
+        pageIndex,
+        pageSize,
+        pageCount,
+        wrMarketTradeConfig,
+    }
+}

+ 4 - 4
src/business/order/index.ts

@@ -322,14 +322,14 @@ export function useQueryTHJPurchaseTransferOrder() {
 
 // 查询我的订单-转让/受让订单详情
 export function useQueryTTHJPurchaseTransferOrderDetail() {
-    const details = shallowRef<Partial<Model.THJPurchaseTransferOrderDetailRsp>>({})
+    const details = shallowRef<Partial<Model.THJPurchaseTransferOrderDetailRsp[]>>()
     const loading = shallowRef(false)
     
-    const getTHJPurchaseTransferOrderDetail = async (id: number) => {
+    const getTHJPurchaseTransferOrderDetail = (id?: string) => {
         loading.value = true
-        await queryTHJPurchaseTransferOrderDetail({
+        queryTHJPurchaseTransferOrderDetail({
             data: {
-                wrtradedetailid: id
+                wrtradedetailid: id ?? '0'
             },
             success: (res) => {
                 details.value = res.data

+ 1 - 0
src/business/trade/index.ts

@@ -330,6 +330,7 @@ export function useHdWROrder(holdlb?: Model.HoldLBRsp) {
         WRFactorTypeId: <number><unknown>holdlb?.wrfactortypeid,
     })
 
+
     const amount = computed( () => {
         const { OrderQty=0, FixedPrice=0 }=formData
         return (OrderQty*FixedPrice).toFixed(2)

+ 2 - 2
src/constants/order.ts

@@ -68,7 +68,7 @@ export function getTHJOrderStatusName(value: number) {
  * @returns 
  */
  export function getApplyStatusList() {
-    return getEnumTypeList('applystatus')
+    return getEnumTypeList('WROutInApplyStatus2')
 }
 
 /**
@@ -76,6 +76,6 @@ export function getTHJOrderStatusName(value: number) {
  * @returns 
  */
 export function getApplyStatusName(value: number) {
-    const enums = getTHJDeliveryModeList()
+    const enums = getApplyStatusList()
     return getEnumTypeName(enums, value)
 }

+ 21 - 0
src/packages/mobile/router/index.ts

@@ -217,6 +217,27 @@ const routes: Array<RouteRecordRaw> = [
         name: 'transfer-detail',
         component: () => import('../views/mine/order/detail/transfer/index.vue'),
       }
+      ,
+      {
+        path: 'hispurchasetradedetail',
+        name: 'his-purchase-trade-detail',
+        component: () => import('../views/mine/order/his/purchasetrade/index.vue'),
+      },
+      {
+        path: 'hiswrtradedetail',
+        name: 'his-wrtrade-detail',
+        component: () => import('../views/mine/order/his/wrtrade/index.vue'),
+      },
+      {
+        path: 'hiswrorderdetail',
+        name: 'his-wrorder-detail',
+        component: () => import('../views/mine/order/his/wrorder/index.vue'),
+      },
+      {
+        path: 'histransferdetail',
+        name: 'his-transfer-detail',
+        component: () => import('../views/mine/order/his/transfer/index.vue'),
+      }
     ]
   },
   {

+ 1 - 1
src/packages/mobile/views/mine/order/detail/purchasetrade/index.vue

@@ -36,7 +36,7 @@
         <template #footer>
             <div class="g-form__footer" v-if="detail">
                 <Button block round type="primary" v-if="detail.orderstatus === 1" @click="showDialog">合同转让</Button>
-                <Button block round type="primary" v-if="detail.orderstatus === 8" @click="spotCancelSubmit">转让撤销</Button>
+                <Button block round type="primary" v-if="detail.orderstatus === 9" @click="spotCancelSubmit">转让撤销</Button>
                 <Button block round type="primary" v-if="detail.orderstatus === 5"
                     @click="spotConfirmSubmit">确认交收</Button>
                 <Button block round type="primary" v-if="detail.orderstatus === 3" @click="spotApplySubmit">违约</Button>

+ 22 - 20
src/packages/mobile/views/mine/order/detail/transfer/index.vue

@@ -3,28 +3,28 @@
         <template #header>
             <app-navbar title="转让订单详情" />
         </template>
-        <div v-if="detail" class="transfer-detail__container g-form__container">
+        <div v-if="details" class="transfer-detail__container g-form__container">
             <CellGroup title="转让信息">
-                <Cell title="商品" :value="details.wrstandardname" />
-                <Cell title="仓库" :value="details.warehousename" />
-                <Cell title="转让价格" :value="details.transferprice" />
-                <Cell title="转让数量" :value="detail.transferqty" />
-                <Cell title="转让金额" :value="details.transferamount" />
-                <Cell title="预售价格" :value="details.tradeprice" />
-                <Cell title="已付定金" :value="details.payeddeposit" />
-                <Cell title="转让状态" :value="details.transferstatus" />
-                <Cell title="受让人" :value="details.buyusername" />
-                <Cell title="转让单号" :value="detail.wrtradedetailid" />
-                <Cell title="合同单号" :value="details.wrstandardid" v-if="details.transferstatus === 4" :is-link="!!details.contractaddrbuy"
-                    @click="openPDF(details?.contractaddrbuy)" />
+                <Cell title="商品" :value="handleNoneValue(details[0]?.wrstandardname)" />
+                <Cell title="仓库" :value="handleNoneValue(details[0]?.warehousename)" />
+                <Cell title="转让价格" :value="details[0]?.transferprice.toFixed(2)" />
+                <Cell title="转让数量" :value="obj?.transferqty" />
+                <Cell title="转让金额" :value="details[0]?.transferamount.toFixed(2)" />
+                <Cell title="预售价格" :value="details[0]?.tradeprice.toFixed(2)" />
+                <Cell title="已付定金" :value="details[0]?.payeddeposit" />
+                <Cell title="转让状态" :value="details[0]?.transferstatus" />
+                <Cell title="受让人" :value="handleNoneValue(details[0]?.buyusername)" />
+                <Cell title="转让单号" :value="handleNoneValue(details[0]?.transferid)" />
+                <Cell title="合同单号" :value="details[0]?.wrstandardid" v-if="details[0]?.transferstatus === 4" :is-link="!!details[0]?.contractaddrbuy"
+                    @click="openPDF(details[0]?.contractaddrbuy)" />
             </CellGroup>
         </div>
         <div v-else>
             <Empty />
         </div>
         <template #footer>
-            <div class="g-form__footer" v-if="detail">
-                <Button block round type="primary" v-if="details.transferstatus === 1" @click="spotCancelSubmit">合同转让</Button>
+            <div class="g-form__footer" v-if="details">
+                <Button block round type="primary" v-if="details[0]?.transferstatus === 1" @click="spotCancelSubmit">撤销</Button>
             </div>
         </template>
     </app-view>
@@ -38,16 +38,17 @@ import { CellGroup, Cell, Empty, Button, Toast } from 'vant'
 import { getUrl } from '@/filters'
 import { useSpotPresaleTransferCancel } from "@/business/trade";
 import { useQueryTTHJPurchaseTransferOrderDetail } from "@/business/order";
+import { handleNoneValue } from '@/filters'
 
 const { router } = useNavigation()
 const { transferCancelSubmit } = useSpotPresaleTransferCancel()
-const {getTHJPurchaseTransferOrderDetail, details} = useQueryTTHJPurchaseTransferOrderDetail()
+const { getTHJPurchaseTransferOrderDetail, details } = useQueryTTHJPurchaseTransferOrderDetail()
 const { route } = useNavigation()
 const item = route.params.item
-const detail = shallowRef<Model.THJPurchaseTransferOrderRsp>()
+const obj = shallowRef<Model.THJPurchaseTransferOrderRsp>()
 
 if (item) {
-    detail.value = JSON.parse(item.toString())
+    obj.value = JSON.parse(item.toString())
 }
 
 // 打开pdf文件
@@ -56,12 +57,13 @@ const openPDF = (file?: string) => {
         window.open(getUrl(file).href)
     }
 }
+
 /// 查询数据
-getTHJPurchaseTransferOrderDetail(detail.value?.wrtradedetailid ?? 0)
+getTHJPurchaseTransferOrderDetail(obj.value?.wrtradedetailid)
 
 /// 转让撤销申请
 const spotCancelSubmit = () => {
-    const param = detail.value
+    const param = obj.value
     if (param) {
         dialog('确认要转让撤销吗?', {
             showCancelButton: true

+ 7 - 0
src/packages/mobile/views/mine/order/his/purchasetrade/index.vue

@@ -0,0 +1,7 @@
+<template>
+    <app-view class="hispurchasetrade-order">
+        <template #header>
+            <app-navbar title="采购订单-已完成" />
+        </template>
+    </app-view>
+</template>

+ 7 - 0
src/packages/mobile/views/mine/order/his/transfer/index.vue

@@ -0,0 +1,7 @@
+<template>
+    <app-view class="histransfer-order">
+        <template #header>
+            <app-navbar title="转让委托-已完成" />
+        </template>
+    </app-view>
+</template>

+ 7 - 0
src/packages/mobile/views/mine/order/his/wrorder/index.vue

@@ -0,0 +1,7 @@
+<template>
+    <app-view class="hiswrorder-order">
+        <template #header>
+            <app-navbar title="供求委托-历史" />
+        </template>
+    </app-view>
+</template>

+ 7 - 0
src/packages/mobile/views/mine/order/his/wrtrade/index.vue

@@ -0,0 +1,7 @@
+<template>
+    <app-view class="hiswrtrade">
+        <template #header>
+            <app-navbar title="供求成交-历史" />
+        </template>
+    </app-view>
+</template>

+ 25 - 19
src/packages/mobile/views/mine/order/list/index.vue

@@ -3,7 +3,7 @@
         <template #header>
             <app-navbar title="我的订单">
                 <template #right>
-                    <!-- <Button round @click="onMoreClick">更多</Button> -->
+                    <Button round @click="onMoreClick" v-if="activeTab != 2">更多</Button>
                 </template>
             </app-navbar>
         </template>
@@ -11,10 +11,10 @@
             <Tab title="采购订单">
                 <purchase-trade />
             </Tab>
-            <Tab title="转让订单">
+            <Tab title="转让委托">
                 <transfer-sell />
             </Tab>
-            <Tab title="受让订单">
+            <Tab title="受让成交">
                 <transfer-buy />
             </Tab>
             <Tab title="供求委托">
@@ -30,30 +30,36 @@
 <script lang="ts" setup>
 import { shallowRef } from 'vue'
 import { Tab, Tabs } from 'vant'
-// import { useNavigation } from '@/hooks/navigation'
+import { useNavigation } from '@/hooks/navigation'
 import PurchaseTrade from './components/purchasetrade/index.vue'
 import WrOrder from './components/wrorder/index.vue'
 import WrTrade from './components/wrtrade/index.vue'
 import TransferBuy from './components/transferbuy/index.vue'
 import TransferSell from './components/transfersell/index.vue'
 
-// const { routerTo } = useNavigation()
+const { routerTo } = useNavigation()
 const activeTab = shallowRef(0)
 
-// const onMoreClick = () => {
-//     switch (activeTab.value) {
-//         case 0: {
-//             break
-//         }
-//         case 1: {
-//             break
-//         }
-//         case 2: {
-//             // routerTo('bank-hisstatement')
-//             break
-//         }
-//     }
-// }
+const onMoreClick = () => {
+    switch (activeTab.value) {
+        case 0: {
+            routerTo('his-purchase-trade-detail')
+            break
+        }
+        case 1: {
+            routerTo('his-transfer-detail')
+            break
+        }
+        case 3: {
+            routerTo('his-wrorder-detail')
+            break
+        }
+        case 4: {
+            routerTo('his-wrtrade-detail')
+            break
+        }
+    }
+}
 </script>
 
 <style lang="less">

+ 7 - 2
src/packages/mobile/views/mine/wareorder/list/components/wroutinapply/index.vue

@@ -2,7 +2,11 @@
     <app-view class="order-list-purchase">
         <app-pull-refresh v-model:error="error" v-model:pageIndex="pageIndex" :page-count="pageCount"
             @refresh="onRefresh">
-            <app-list :columns="columns" :data-list="dataList" @click="onClick" />
+            <app-list :columns="columns" :data-list="dataList" @click="onClick" >
+                <template #applystatus="{ value }">
+                    {{ getApplyStatusName(value) }}
+                </template>
+            </app-list>
         </app-pull-refresh>
     </app-view>
 </template>
@@ -14,6 +18,7 @@ import { useNavigation } from '@/hooks/navigation'
 import { useQueryWrOutInApply } from '@/business/order'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
 import AppList from '@mobile/components/base/list/index.vue'
+import { getApplyStatusName } from "@/constants/order";
 
 const { router } = useNavigation()
 const { pageIndex, pageCount, getWrOutInApply } = useQueryWrOutInApply()
@@ -23,7 +28,7 @@ const error = shallowRef(false)
 const columns: Model.TableColumn[] = [
     { prop: 'wrstandardname', label: '商品' },
     { prop: 'qty', label: '数量' },
-    { prop: 'applytype', label: '类型' },
+    { prop: 'appointmentmodeldisplay', label: '类型' },
     { prop: 'applytime', label: '申请时间' },
     { prop: 'warehousename', label: '仓库' },
     { prop: 'applystatus', label: '状态' },

+ 1 - 1
src/packages/mobile/views/mine/wareorder/wroutinapplydetail/index.vue

@@ -11,7 +11,7 @@
                 <Cell title="提货方式" :value="detail.appointmentmodeldisplay" />
                 <Cell title="联系人" :value="detail.contactname" />
                 <Cell title="联系方式" :value="detail.contactnum" />
-                <Cell title="目的地地址" :value="detail.address" />
+                <Cell title="目的地地址" :value="detail.address" v-if="detail.applytype === 3" />
                 <Cell title="发票信息" :value="detail.appointmentremark" />
                 <Cell title="提货状态" :value="getApplyStatusName(detail.applystatus)" />
             </CellGroup>

+ 7 - 0
src/services/api/goods/index.ts

@@ -62,4 +62,11 @@ export function querySpotGoodsPrice(params: HttpParams<{ req: Model.SpotGoodsPri
  */
 export function queryMarketRun(params: HttpParams<{ req: Model.MarketRunReq, rsp: Model.MarketRunRsp[] }>) {
     return httpRequest('/Market/QueryMarketRun', 'get', params);
+}
+
+/**
+ * 查询市场交易参数配置
+ */
+ export function queryWrMarketTradeConfig(params: HttpParams<{ req: Model.WrMarketTradeConfigReq, rsp: Model.WrMarketTradeConfigRsp[] }>) {
+    return httpRequest('/WrTrade2/QueryWrMarketTradeConfig', 'get', params);
 }

+ 1 - 1
src/services/api/order/index.ts

@@ -60,6 +60,6 @@ import { HttpParams } from '@/services/http/interface'
 /**
  * 查询我的订单-转让/受让订单-详情
  */
- export function queryTHJPurchaseTransferOrderDetail(params: HttpParams<{ req: Model.THJPurchaseTransferOrderDetailReq, rsp: Model.THJPurchaseTransferOrderDetailRsp }>) {
+ export function queryTHJPurchaseTransferOrderDetail(params: HttpParams<{ req: Model.THJPurchaseTransferOrderDetailReq, rsp: Model.THJPurchaseTransferOrderDetailRsp[] }>) {
     return httpRequest('/Ferroalloy/QueryTHJPurchaseTransferOrderDetail', 'get', params);
 }

+ 1 - 1
src/stores/modules/enum.ts

@@ -16,7 +16,7 @@ interface StoreState {
     loading: boolean;
     allEnums: ShallowRef<Model.EnumRsp[]>;
 }
-const enumKeys = ['clientType', 'scoreConfigType', 'accountBusinessCode', 'certificatetype', 'signstatus', 'thjOrderStatus', 'thjDeliveryMode', 'goodsunit', 'applystatus'] as const
+const enumKeys = ['clientType', 'scoreConfigType', 'accountBusinessCode', 'certificatetype', 'signstatus', 'thjOrderStatus', 'thjDeliveryMode', 'goodsunit', 'WROutInApplyStatus2'] as const
 
 /**
  * 枚举存储类

+ 93 - 2
src/types/model/goods.d.ts

@@ -247,7 +247,7 @@ declare namespace Model {
         ystspotgoodsprice: number
     }
 
-    /** 市场运行信息 响应 */
+    /** 市场运行信息 请求 */
     interface MarketRunReq {
         /// 市场ID,不传返回所有
         marketID?: number
@@ -284,4 +284,95 @@ declare namespace Model {
         /// 更新时间
         updatetime: string
     }
-}
+
+    /** 查询市场交易参数配置 请求 */
+    interface WrMarketTradeConfigReq {
+        /// 市场id
+        marketid?: number 
+    }
+
+    /** 查询市场交易参数配置 响应 */
+    interface WrMarketTradeConfigRsp {
+        /// 浮动价基差下限比例(仓单贸易)
+        basisdownratio: number
+        /// 浮动价基差上限比例(仓单贸易)
+        basisupratio: number
+        /// 买方手续费收取方式 1:比率 2:固定
+        buychargealgorithm: number
+        /// 回购买方手续费收取方式 1:比率 2:固定 --77:现货商城
+        buychargealgorithm2: number
+        /// 买方手续费设置值(交易所部分)
+        buychargealgorithmvalue: number
+        /// 买方手续费设置值(会员部分)
+        buychargealgorithmvalue2: number
+        /// 回购买方手续费设置值(交易所部分) --77:现货商城
+        buychargealgorithmvalue3: number
+        /// 回购买方手续费设置值(会员部分) --77:现货商城
+        buychargealgorithmvalue4: number
+        /// 买方出价保证金方式 - 1:比率 2:固定 - [竞拍]
+        buyfirstmarginalgorithm: number
+        /// 买方出价保证金设置值 - [竞拍]
+        buyfirstmarginvalue: number
+        /// 买方保证金方式 - 1:比率 2:固定
+        buymarginalgorithm: number
+        /// 买方保证金设置值
+        buymarginvalue: number
+        /// 买方释放比率[2:分步履约]
+        buyreleaseratio: number
+        /// 执行方式[2:分步履约] - 1:顺序执行 2:交叉执行
+        executemode: number
+        /// 执行方[2:分步履约] - 1:买方 2:卖方
+        executeside: number
+        /// 流拍手续费收取方式 1:比率 2:固定
+        failedchargealgorithm: number
+        /// 流拍手续费设置值
+        failedchargevalue: number
+        /// 流拍卖方手续费设置值
+        failedchargevalue2: number
+        /// 合同期限[2:分步履约]
+        holddays: number
+        /// 挂牌方式 - 1:一口价 2:浮动价 3:贸易圈 4:协议指定
+        listingmode: number
+        /// 市场ID-仓单贸易、竞拍、预售
+        marketid: number
+        /// 最小执行量[2:分步履约]
+        minqty: number
+        /// 修改人
+        modifierid: number
+        /// 是否校验无仓单额度(仓单贸易) - 0:否 1:是
+        nowrquotaflag: number
+        /// 履约计划模板ID(有仓单) - 根据交货模式:1:履约 - 履约计划模板2:分步履约 - 履约计划模板3:分步提货 - 履约方式: 立即执行(-1)
+        performancetempid: number
+        /// 履约计划模板ID(无仓单) - 根据交货模式:1:履约 - 履约计划模板2:分步履约 - 履约计划模板3:分步提货 - 履约方式: 立即执行
+        performancetempid2: number
+        /// 履约计划模板IDs(无仓单) - 根据交货模式, 多个逗号分隔:1:履约 - 履约计划模板2:分步履约 - 履约计划模板3:分步提货 - 履约方式: 立即执行
+        performancetempid2s: string
+        /// 履约计划模板IDs(有仓单)- 根据交货模式, 多个逗号分隔:1:履约 - 履约计划模板2:分步履约 - 履约计划模板3:分步提货 - 履约方式: 立即执行(-1)
+        performancetempids: string
+        /// 交货模式 - 1:履约计划 2:分步履约 3:分步提货[文昌]
+        performanceway: number
+        /// 卖方手续费收取方式 1:比率 2:固定
+        sellchargealgorithm: number
+        /// 回购卖方手续费收取方式 1:比率 2:固定 --77:现货商城
+        sellchargealgorithm2: number
+        /// 卖方手续费设置值(交易所部分)
+        sellchargealgorithmvalue: number
+        /// 卖方手续费设置值(会员部分)
+        sellchargealgorithmvalue2: number
+        /// 回购卖方手续费设置值(交易所部分) --77:现货商城
+        sellchargealgorithmvalue3: number
+        /// 回购卖方手续费设置值(会员部分) --77:现货商城
+        sellchargealgorithmvalue4: number
+        /// 卖方保证金方式 - 1:比率 2:固定
+        sellmarginalgorithm: number
+        /// 卖方保证金设置值
+        sellmarginvalue: number
+        /// 卖方保证金设置值(无仓单)
+        sellmarginvalue2: number
+        /// 卖方释放比率[2:分步履约]
+        sellreleaseratio: number
+        /// 更新时间
+        updatetime: string
+
+    }
+}

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

@@ -632,7 +632,7 @@ declare namespace Model {
     /* 查询我的订单-转让/受让订单-详情 请求*/
     interface THJPurchaseTransferOrderDetailReq {
         /// 采购成交单ID
-        wrtradedetailid: number
+        wrtradedetailid: string
     }
 
     /* 查询我的订单-转让/受让订单-详情 响应*/