li.shaoyi 3 年之前
父節點
當前提交
391b6d358d
共有 43 個文件被更改,包括 1330 次插入474 次删除
  1. 72 0
      public/proto/gz.proto
  2. 141 0
      src/business/order/index.ts
  3. 1 1
      src/business/search/index.ts
  4. 39 1
      src/business/table/index.ts
  5. 1 1
      src/business/trade/desting.ts
  6. 98 70
      src/business/trade/list.ts
  7. 1 1
      src/business/trade/listing.ts
  8. 9 0
      src/constants/funcode.ts
  9. 159 39
      src/mock/router.ts
  10. 0 0
      src/packages/pc/views/bargain/buy/components/audit/index.vue
  11. 7 7
      src/packages/pc/views/bargain/buy/index.vue
  12. 41 0
      src/packages/pc/views/bargain/sell/components/audit/index.vue
  13. 39 1
      src/packages/pc/views/bargain/sell/index.vue
  14. 66 0
      src/packages/pc/views/order/main/components/contracted/index.vue
  15. 65 0
      src/packages/pc/views/order/main/components/delay/index.vue
  16. 65 0
      src/packages/pc/views/order/main/components/edit/index.vue
  17. 59 0
      src/packages/pc/views/order/main/components/manual/index.vue
  18. 2 2
      src/packages/pc/views/order/main/index.vue
  19. 1 1
      src/packages/pc/views/trade/bargain/components/cancel/index.vue
  20. 1 1
      src/packages/pc/views/trade/bargain/index.vue
  21. 1 1
      src/packages/pc/views/trade/buy/components/delisting/index.vue
  22. 0 0
      src/packages/pc/views/trade/buy/components/details/index.vue
  23. 1 1
      src/packages/pc/views/trade/buy/index.vue
  24. 6 1
      src/packages/pc/views/trade/delisting/index.vue
  25. 1 1
      src/packages/pc/views/trade/purchase/components/add/index.vue
  26. 1 1
      src/packages/pc/views/trade/purchase/components/cancel/index.vue
  27. 1 1
      src/packages/pc/views/trade/purchase/index.vue
  28. 1 1
      src/packages/pc/views/trade/sale/components/add/index.vue
  29. 1 1
      src/packages/pc/views/trade/sale/components/cancel/index.vue
  30. 0 0
      src/packages/pc/views/trade/sale/components/details/index.vue
  31. 1 1
      src/packages/pc/views/trade/sale/index.vue
  32. 1 1
      src/packages/pc/views/trade/sell/index.vue
  33. 1 1
      src/packages/pc/views/warehousing/goods/components/buy/index.vue
  34. 0 1
      src/packages/pc/views/warehousing/goods/components/edit/index.vue
  35. 1 1
      src/packages/pc/views/warehousing/goods/components/inquiry/index.vue
  36. 1 1
      src/packages/pc/views/warehousing/goods/components/pull/index.vue
  37. 1 1
      src/packages/pc/views/warehousing/goods/components/put/index.vue
  38. 2 2
      src/services/api/bank/index.ts
  39. 12 97
      src/services/api/order/index.ts
  40. 117 0
      src/services/api/trade/index.ts
  41. 0 0
      src/types/ermcp/trade.d.ts
  42. 54 235
      src/types/proto/order.d.ts
  43. 259 0
      src/types/proto/trade.d.ts

+ 72 - 0
public/proto/gz.proto

@@ -491,6 +491,78 @@ message WarehouseApplyRsp {
 	optional uint64 warehouseid = 4; // uint64 仓库ID
 }
 
+// 违约申请请求 0 20 9
+message PerformanceContractedApplyReq {
+	optional MessageHead Header = 1; // MessageHead
+	optional uint64 PerformancePlanID = 2; // uint64 履约计划ID
+	optional uint32 BreachType = 3; // uint32 违约方类型
+	optional uint64 Applicant = 4; // uint64 违约申请人
+	optional string ApplyRemark = 5; // string 申请备注
+	optional string Attachment = 6; // string 附件
+}
+
+// 违约申请应答 0 20 10
+message PerformanceContractedApplyRsp {
+	optional MessageHead Header = 1; // MessageHead 消息头
+	optional int32 RetCode = 2; // int32 返回码
+	optional string RetDesc = 3; // string 描述信息
+	optional uint64 PerformancePlanID = 4; // uint64 履约计划ID
+}
+
+// 延期申请请求 0 20 5
+message PerformanceDelayApplyReq {
+	optional MessageHead Header = 1; // MessageHead
+	optional uint64 PerformancePlanStepID = 2; // uint64 履约计划步骤ID
+	optional uint32 delaydays = 3; // uint32 申请延期天数
+	optional uint64 applicant = 4; // uint64 申请人
+	optional string applyremark = 5; // string 申请备注
+}
+
+// 延期申请应答 0 20 6
+message PerformanceDelayApplyRsp {
+	optional MessageHead Header = 1; // MessageHead 消息头
+	optional int32 RetCode = 2; // int32 返回码
+	optional string RetDesc = 3; // string 描述信息
+	optional uint64 PerformancePlanStepID = 4; // uint64 履约计划步骤ID
+	optional uint64 applicant = 5; // uint64 申请人
+}
+
+// 履约手动确认请求 0 20 3
+message PerformanceManualConfirmReq {
+	optional MessageHead Header = 1; // MessageHead
+	optional uint64 PerformancePlanStepID = 2; // uint64 履约计划步骤ID
+	optional double OverShortAmount = 3; // double 溢短金额
+	optional uint32 PerformanceExecuteSide = 4; // uint32 履约步骤执行方 1买方 2 卖方
+	optional string StepRemark = 5; // string 步骤备注
+	optional double OverShortQty = 6; // double 溢短数量
+	optional double ExpressFee = 7; // double 运费金额
+}
+
+// 履约手动确认应答 0 20 4
+message PerformanceManualConfirmRsp {
+	optional MessageHead Header = 1; // MessageHead 消息头
+	optional int32 RetCode = 2; // int32 返回码
+	optional string RetDesc = 3; // string 描述信息
+	optional uint64 PerformancePlanStepID = 4; // uint64 履约计划步骤ID
+}
+
+// 履约修改联络信息请求 0 20 15
+message PerformanceModifyContactReq {
+	optional MessageHead Header = 1; // MessageHead
+	optional uint64 PerformancePlanID = 2; // uint64 履约计划ID
+	optional uint64 AccountID = 3; // uint64 账号
+	optional string ContactInfo = 4; // string 联络信息
+}
+
+// 履约修改联络信息回应 0 20 16
+message PerformanceModifyContactRsp {
+	optional MessageHead Header = 1; // MessageHead 消息头
+	optional int32 RetCode = 2; // int32 返回码
+	optional string RetDesc = 3; // string 描述信息
+	optional uint64 PerformancePlanID = 4; // uint64 履约计划ID
+	optional uint64 AccountID = 5; // uint64 账号
+}
+
 // 钻石属性
 message GZWRStandardExInfo {
 	optional uint32 ZSCategory = 1; // 钻石分类,必填

+ 141 - 0
src/business/order/index.ts

@@ -0,0 +1,141 @@
+import { shallowRef, reactive } from 'vue'
+import { useDataTable } from '@/hooks/datatable'
+import { getTableColumns } from '@/business/table'
+import { queryMyPerformance, performanceManualConfirm, performanceDelayApply, performanceContractedApply, performanceModifyContact } from '@/services/api/order'
+import { sessionData } from '@/stores'
+import { BuyOrSell } from '@/constants/order'
+import Long from 'long'
+
+// 我的履约
+export function usePerformance(buyorsell?: BuyOrSell) {
+    const { dataList, total, pageIndex, pageSize, inputList, buttonList, filterMethod, getQueryParam } = useDataTable<Ermcp.MyPerformancRsp>()
+    const loading = shallowRef(false)
+    const columns = shallowRef(getTableColumns('order'))
+
+    inputList.value = [
+        { label: '商品', keys: ['goodsno'] },
+    ]
+
+    filterMethod.onReset = () => {
+        getPerformanceList()
+    }
+
+    filterMethod.onSearch = () => {
+        getPerformanceList()
+    }
+
+    const getPerformanceList = () => {
+        const param = getQueryParam()
+        loading.value = true
+        return queryMyPerformance({
+            data: {
+                userid: sessionData.getLoginInfo('UserID'),
+                page: pageIndex.value,
+                pagesize: pageSize.value,
+                buyorsell,
+                zsallproperties: param.goodsno,
+            },
+            success: (res) => {
+                total.value = res.total
+                dataList.value = res.data
+            },
+            complete: () => {
+                loading.value = false
+            }
+        })
+    }
+
+    return {
+        loading,
+        dataList,
+        total,
+        pageIndex,
+        pageSize,
+        columns,
+        inputList,
+        buttonList,
+        getPerformanceList,
+    }
+}
+
+// 履约手动申请
+export function usePerformanceManual(selectedRow: Ermcp.MyPerformancRsp) {
+    const loading = shallowRef(false)
+
+    const formData = reactive<Proto.PerformanceManualConfirmReq>({
+        PerformancePlanStepID: Long.fromString(selectedRow.curstepid), // uint64 履约计划步骤ID
+        PerformanceExecuteSide: 1, // uint32 履约步骤执行方 1买方 2 卖方
+        StepRemark: '',
+    })
+
+    const formSubmit = () => {
+        loading.value = true
+        return performanceManualConfirm({
+            data: formData,
+            complete: () => {
+                loading.value = false
+            }
+        })
+    }
+
+    return {
+        loading,
+        formData,
+        formSubmit
+    }
+}
+
+// 履约延期申请
+export function usePerformanceDelay(selectedRow: Ermcp.MyPerformancRsp) {
+    const { UserID } = sessionData.getValue('loginInfo')
+    const loading = shallowRef(false)
+
+    const formData = reactive<Proto.PerformanceDelayApplyReq>({
+        PerformancePlanStepID: Long.fromString(selectedRow.curstepid), // uint64 履约计划步骤ID
+        applicant: UserID, // uint64 申请人
+    })
+
+    const formSubmit = () => {
+        loading.value = true
+        return performanceDelayApply({
+            data: formData,
+            complete: () => {
+                loading.value = false
+            }
+        })
+    }
+
+    return {
+        loading,
+        formData,
+        formSubmit
+    }
+}
+
+// 履约违约申请
+export function usePerformanceContracted(selectedRow: Ermcp.MyPerformancRsp) {
+    const { UserID } = sessionData.getValue('loginInfo')
+    const loading = shallowRef(false)
+
+    const formData = reactive<Proto.PerformanceContractedApplyReq>({
+        PerformancePlanID: Long.fromString(selectedRow.curstepid), // uint64 履约计划ID
+        BreachType: 0, // uint32 违约方类型
+        Applicant: UserID, // uint64 违约申请人
+    })
+
+    const formSubmit = () => {
+        loading.value = true
+        return performanceContractedApply({
+            data: formData,
+            complete: () => {
+                loading.value = false
+            }
+        })
+    }
+
+    return {
+        loading,
+        formData,
+        formSubmit
+    }
+}

+ 1 - 1
src/business/search/index.ts

@@ -2,7 +2,7 @@ import { ref, shallowRef, computed } from 'vue'
 import { useDataTable } from '@/hooks/datatable'
 import { getTableColumns } from '@/business/table'
 import { sessionData } from '@/stores'
-import { searchSellOrder } from '@/services/api/order'
+import { searchSellOrder } from '@/services/api/trade'
 import { queryWarehouseInfo } from '@/services/api/warehouse'
 import {
     Category,

+ 39 - 1
src/business/table/index.ts

@@ -2,7 +2,7 @@ import { shallowRef } from 'vue'
 import { sessionData } from '@/stores'
 
 type TableColumnKey = typeof tableColumnKeys[number]
-const tableColumnKeys = ['system_menu', 'system_role', 'warehousing_diamond', 'warehousing_warehouse', 'mine_capital', 'listing_sellorder', 'listing_buyorder', 'listing_saleorder', 'listing_purchaseorder', 'listing_delisting', 'listing_bargain_buy', 'listing_bargain_sell', 'mine_address', 'mine_invoice', 'favorite', 'order'] as const
+const tableColumnKeys = ['system_menu', 'system_role', 'warehousing_diamond', 'warehousing_warehouse', 'mine_capital', 'listing_sellorder', 'listing_buyorder', 'listing_saleorder', 'listing_purchaseorder', 'listing_delisting', 'listing_bargain_buy', 'listing_bargain_sell', 'mine_address', 'mine_invoice', 'favorite', 'order', 'bargain_buy', 'bargain_sell'] as const
 
 /**
  * PC端表格列
@@ -227,6 +227,44 @@ const pcTableColumnMap = new Map<TableColumnKey, Ermcp.TableColumn[]>([
         { prop: 'performancestatus', label: '履约状态' },
         { prop: 'curstepid', label: '当前步骤' },
         { prop: 'remaindays', label: '剩余天数' },
+        { prop: 'operate', label: '操作', width: 380 }
+    ]],
+    // 询价消息-求购
+    ['bargain_buy', [
+        { prop: 'warehousenamedisplay', label: '仓库' },
+        { prop: 'zsshapetypedisplay', label: '形状', width: 200 },
+        { prop: 'zscolortype1display', label: '颜色' },
+        { prop: 'zsclaritytype1display', label: '净度' },
+        { prop: 'zscuttype1display', label: '切工' },
+        { prop: 'zspolishtype1display', label: '抛光' },
+        { prop: 'zssymmetrytype1display', label: '对称' },
+        { prop: 'zsfluorescencetype1display', label: '荧光' },
+        { prop: 'sizedisplay', label: '尺寸' },
+        { prop: 'price', label: '价格' },
+        { prop: 'qty', label: '克拉重量' },
+        { prop: 'priceper', label: '克拉单价' },
+        { prop: 'buyusername', label: '买方' },
+        { prop: 'applyprice', label: '买方出价' },
+        { prop: 'applystatus', label: '申请状态' },
+        { prop: 'applytime', label: '申请时间', width: 200 },
+        { prop: 'operate', label: '操作', width: 180 }
+    ]],
+    // 询价消息-出售
+    ['bargain_sell', [
+        { prop: 'zsshapetypedisplay', label: '形状', width: 200 },
+        { prop: 'zscolortypedisplay', label: '颜色' },
+        { prop: 'zsclaritytypedisplay', label: '净度' },
+        { prop: 'zscuttypedisplay', label: '切工' },
+        { prop: 'zspolishtypedisplay', label: '抛光' },
+        { prop: 'zssymmetrytypedisplay', label: '对称' },
+        { prop: 'zsfluorescencetypedisplay', label: '荧光' },
+        { prop: 'zssizedisplay', label: '尺寸' },
+        { prop: 'sellusername', label: '卖方' },
+        { prop: 'goodsno', label: '卖方商品' },
+        { prop: 'applyqty', label: '克拉重量' },
+        { prop: 'applyprice', label: '卖方出价' },
+        { prop: 'applystatus', label: '申请状态' },
+        { prop: 'applytime', label: '申请时间', width: 200 },
         { prop: 'operate', label: '操作', width: 180 }
     ]],
 ])

+ 1 - 1
src/business/order/desting.ts → src/business/trade/desting.ts

@@ -4,7 +4,7 @@ import { ClientType } from '@/constants/client'
 import { Market } from '@/constants/market'
 import { useDataTable } from '@/hooks/datatable'
 import { queryDiamondList } from '@/services/api/goods'
-import { zsBuyOrderDesting, zsBuyOrderDestingNegPrice, zsSellOrderDestingApply, zsBuyOrderDestingNegPriceOperate, zsSellOrderDestingApplyOperate } from '@/services/api/order'
+import { zsBuyOrderDesting, zsBuyOrderDestingNegPrice, zsSellOrderDestingApply, zsBuyOrderDestingNegPriceOperate, zsSellOrderDestingApplyOperate } from '@/services/api/trade'
 import { sessionData } from '@/stores'
 import moment from 'moment'
 import Long from 'long'

+ 98 - 70
src/business/order/list.ts → src/business/trade/list.ts

@@ -2,7 +2,7 @@ import { shallowRef, reactive } from 'vue'
 import { useDataTable } from '@/hooks/datatable'
 import { FilterSelect, FilterButton } from '@/hooks/datatable/interface'
 import { getTableColumns } from '@/business/table'
-import { queryBuyOrder, querySellOrder, queryMyBuyOrder, queryMySellOrder, queryMyDeListing, queryMyBargainApply, queryMyDelistingApply, queryMyPerformance } from '@/services/api/order'
+import { queryBuyOrder, querySellOrder, queryMyBuyOrder, queryMySellOrder, queryMyDeListing, queryMyBargainApply, queryMyDelistingApply, queryMyPerformance } from '@/services/api/trade'
 import { sessionData } from '@/stores'
 import { getBuyOrSellList, BuyOrSell } from '@/constants/order'
 import { Category } from '@/constants/diamond'
@@ -357,58 +357,6 @@ export function useDelistingOrder() {
 }
 
 /**
- * 我的询价-求购
- */
-export function useBargainBuyOrder(type: 0 | 1) {
-    const { dataList, total, pageIndex, pageSize } = useDataTable<Ermcp.MyBargainApplyRsp>()
-    const loading = shallowRef(false)
-    const columns = shallowRef(getTableColumns('listing_bargain_buy'))
-
-    const selectList = reactive<FilterSelect<{ buyorsell: number, status: number }>[]>([
-        {
-            label: '状态',
-            key: 'status',
-            selectedValue: 1,
-            options: [
-                { label: '全部', value: 0 },
-                { label: '待确认', value: 1 }
-            ],
-        },
-    ])
-
-    const buttonList: FilterButton[] = [
-        {
-            lable: '查询',
-            className: 'el-button--primary',
-            onClick: () => {
-                getBargainOrderList()
-            }
-        },
-    ]
-
-    // 获取我的询价列表
-    const getBargainOrderList = () => {
-        loading.value = true
-        return queryMyBargainApply({
-            data: {
-                type,
-                page: pageIndex.value,
-                pagesize: pageSize.value,
-                userid: sessionData.getLoginInfo('UserID'),
-                applystatus: selectList[0].selectedValue,
-            },
-            success: (res) => {
-                total.value = res.total
-                dataList.value = res.data
-            },
-            complete: () => {
-                loading.value = false
-            }
-        })
-    }
-}
-
-/**
  * 我的询价
  */
 export function useBargainOrder(type: 0 | 1) {
@@ -442,6 +390,7 @@ export function useBargainOrder(type: 0 | 1) {
             lable: '查询',
             className: 'el-button--primary',
             onClick: () => {
+                pageIndex.value = 1
                 getBargainOrderList()
             }
         },
@@ -507,33 +456,112 @@ export function useBargainOrder(type: 0 | 1) {
     }
 }
 
-export function usePerformance(buyorsell?: BuyOrSell) {
-    const { dataList, total, pageIndex, pageSize, inputList, buttonList, filterMethod, getQueryParam } = useDataTable<Ermcp.MyPerformancRsp>()
+/**
+ * 我的询价-求购
+ */
+export function useBargainBuyOrder(type: 0 | 1) {
+    const { dataList, total, pageIndex, pageSize } = useDataTable<Ermcp.MyBargainApplyRsp>()
     const loading = shallowRef(false)
-    const columns = shallowRef(getTableColumns('order'))
+    const columns = shallowRef(getTableColumns('bargain_buy'))
 
-    inputList.value = [
-        { label: '商品', keys: ['goodsno'] },
+    const selectList = reactive<FilterSelect<{ buyorsell: number, status: number }>[]>([
+        {
+            label: '状态',
+            key: 'status',
+            selectedValue: 1,
+            options: [
+                { label: '全部', value: 0 },
+                { label: '待确认', value: 1 }
+            ],
+        },
+    ])
+
+    const buttonList: FilterButton[] = [
+        {
+            lable: '查询',
+            className: 'el-button--primary',
+            onClick: () => {
+                pageIndex.value = 1
+                getBargainOrderList()
+            }
+        },
     ]
 
-    filterMethod.onReset = () => {
-        getPerformanceList()
+    // 获取我的询价列表
+    const getBargainOrderList = () => {
+        loading.value = true
+        return queryMyBargainApply({
+            data: {
+                type,
+                page: pageIndex.value,
+                pagesize: pageSize.value,
+                userid: sessionData.getLoginInfo('UserID'),
+                applystatus: selectList[0].selectedValue,
+            },
+            success: (res) => {
+                total.value = res.total
+                dataList.value = res.data
+            },
+            complete: () => {
+                loading.value = false
+            }
+        })
     }
 
-    filterMethod.onSearch = () => {
-        getPerformanceList()
+    return {
+        loading,
+        dataList,
+        total,
+        pageIndex,
+        pageSize,
+        columns,
+        selectList,
+        buttonList,
+        getBargainOrderList,
     }
+}
 
-    const getPerformanceList = () => {
-        const param = getQueryParam()
+/**
+ * 我的询价-出售
+ */
+export function useBargainSellOrder(type: 0 | 1) {
+    const { dataList, total, pageIndex, pageSize } = useDataTable<Ermcp.MyDelistingApplyRsp>()
+    const loading = shallowRef(false)
+    const columns = shallowRef(getTableColumns('bargain_sell'))
+
+    const selectList = reactive<FilterSelect<{ buyorsell: number, status: number }>[]>([
+        {
+            label: '状态',
+            key: 'status',
+            selectedValue: 1,
+            options: [
+                { label: '全部', value: 0 },
+                { label: '待确认', value: 1 }
+            ],
+        },
+    ])
+
+    const buttonList: FilterButton[] = [
+        {
+            lable: '查询',
+            className: 'el-button--primary',
+            onClick: () => {
+                pageIndex.value = 1
+                getBargainOrderList()
+            }
+        },
+    ]
+
+    // 获取我的询价列表
+    const getBargainOrderList = () => {
         loading.value = true
-        return queryMyPerformance({
+        return queryMyDelistingApply({
             data: {
-                userid: sessionData.getLoginInfo('UserID'),
+                type,
                 page: pageIndex.value,
                 pagesize: pageSize.value,
-                buyorsell,
-                zsallproperties: param.goodsno,
+                userid: sessionData.getLoginInfo('UserID'),
+                applystatus: selectList[0].selectedValue,
             },
             success: (res) => {
                 total.value = res.total
@@ -552,8 +580,8 @@ export function usePerformance(buyorsell?: BuyOrSell) {
         pageIndex,
         pageSize,
         columns,
-        inputList,
+        selectList,
         buttonList,
-        getPerformanceList,
+        getBargainOrderList,
     }
 }

+ 1 - 1
src/business/order/listing.ts → src/business/trade/listing.ts

@@ -4,7 +4,7 @@ import { ClientType } from '@/constants/client'
 import { useDataTable } from '@/hooks/datatable'
 import { Market } from '@/constants/market'
 import { queryDiamondList } from '@/services/api/goods'
-import { zsBuyOrderListing, zsSellOrderListing, wrListingCancelOrder } from '@/services/api/order'
+import { zsBuyOrderListing, zsSellOrderListing, wrListingCancelOrder } from '@/services/api/trade'
 import { sessionData } from '@/stores'
 import {
     Category,

+ 9 - 0
src/constants/funcode.ts

@@ -70,4 +70,13 @@ export enum FunCode {
     UserReceiptInfoRsp = 1900550, // 新增修改用户发票信息响应
     DelUserReceiptInfoReq = 1900551, // 删除用户发票信息请求
     DelUserReceiptInfoRsp = 1900552, // 删除用户发票信息请求响应
+
+    PerformanceManualConfirmReq = 1310723, // 履约手动确认请求
+    PerformanceManualConfirmRsp = 1310724, // 履约手动确认应答
+    PerformanceDelayApplyReq = 1310725, // 延期申请请求
+    PerformanceDelayApplyRsp = 1310726, // 延期申请应答
+    PerformanceContractedApplyReq = 1310729, // 违约申请请求
+    PerformanceContractedApplyRsp = 1310730, // 违约申请应答
+    PerformanceModifyContactReq = 1310735, // 履约修改联络信息请求
+    PerformanceModifyContactRsp = 1310736, // 履约修改联络信息回应
 }

+ 159 - 39
src/mock/router.ts

@@ -60,8 +60,8 @@ const appmenu = {
                 authType: 1,
                 sort: 3,
                 title: '挂牌大厅',
-                code: 'listing',
-                url: '/listing',
+                code: 'trade',
+                url: '/trade',
                 urlType: 1,
                 component: 'Main',
                 icon: 'List',
@@ -70,15 +70,15 @@ const appmenu = {
                         authType: 1,
                         sort: 1,
                         title: '出售大厅',
-                        code: 'listing_sell',
+                        code: 'trade_sell',
                         url: '',
                         urlType: 1,
-                        component: 'views/listing/sell/index.vue',
+                        component: 'views/trade/sell/index.vue',
                         children: [
                             {
                                 authType: 3,
                                 title: '详情',
-                                code: 'listing_sell_details',
+                                code: 'trade_sell_details',
                                 component: 'views/warehousing/goods/components/details/index.vue',
                                 buttonName: 'details',
                                 buttonType: 'primary',
@@ -86,7 +86,7 @@ const appmenu = {
                             {
                                 authType: 3,
                                 title: '收藏',
-                                code: 'listing_sell_favorite',
+                                code: 'trade_sell_favorite',
                                 component: 'views/warehousing/goods/components/favorite/index.vue',
                                 buttonName: 'favorite',
                                 buttonType: 'primary',
@@ -97,24 +97,24 @@ const appmenu = {
                         authType: 1,
                         sort: 1,
                         title: '求购大厅',
-                        code: 'listing_buy',
+                        code: 'trade_buy',
                         url: 'buy',
                         urlType: 1,
-                        component: 'views/listing/buy/index.vue',
+                        component: 'views/trade/buy/index.vue',
                         children: [
                             {
                                 authType: 3,
                                 title: '详情',
-                                code: 'listing_buy_details',
-                                component: 'views/listing/buy/components/details/index.vue',
+                                code: 'trade_buy_details',
+                                component: 'views/trade/buy/components/details/index.vue',
                                 buttonName: 'details',
                                 buttonType: 'primary',
                                 children: [
                                     {
                                         authType: 2,
                                         title: '摘牌',
-                                        code: 'listing_buy_delisting',
-                                        component: 'views/listing/buy/components/delisting/index.vue',
+                                        code: 'trade_buy_delisting',
+                                        component: 'views/trade/buy/components/delisting/index.vue',
                                         buttonName: 'delisting',
                                         buttonType: 'primary',
                                     },
@@ -126,32 +126,32 @@ const appmenu = {
                         authType: 1,
                         sort: 1,
                         title: '我的出售',
-                        code: 'listing_sale',
+                        code: 'trade_sale',
                         url: 'sale',
                         urlType: 1,
-                        component: 'views/listing/sale/index.vue',
+                        component: 'views/trade/sale/index.vue',
                         children: [
                             {
                                 authType: 3,
                                 title: '我要出售',
-                                code: 'listing_sale_add',
-                                component: 'views/listing/sale/components/add/index.vue',
+                                code: 'trade_sale_add',
+                                component: 'views/trade/sale/components/add/index.vue',
                                 buttonName: 'add',
                                 buttonType: 'primary',
                             },
                             {
                                 authType: 3,
                                 title: '详情',
-                                code: 'listing_sale_details',
-                                component: 'views/listing/sale/components/details/index.vue',
+                                code: 'trade_sale_details',
+                                component: 'views/trade/sale/components/details/index.vue',
                                 buttonName: 'details',
                                 buttonType: 'primary',
                             },
                             {
                                 authType: 3,
                                 title: '撤销',
-                                code: 'listing_sale_cancel',
-                                component: 'views/listing/sale/components/cancel/index.vue',
+                                code: 'trade_sale_cancel',
+                                component: 'views/trade/sale/components/cancel/index.vue',
                                 buttonName: 'cancel',
                                 buttonType: 'primary',
                             },
@@ -161,32 +161,32 @@ const appmenu = {
                         authType: 1,
                         sort: 1,
                         title: '我的求购',
-                        code: 'listing_purchase',
+                        code: 'trade_purchase',
                         url: 'purchase',
                         urlType: 1,
-                        component: 'views/listing/purchase/index.vue',
+                        component: 'views/trade/purchase/index.vue',
                         children: [
                             {
                                 authType: 3,
                                 title: '我要求购',
-                                code: 'listing_purchase_add',
-                                component: 'views/listing/purchase/components/add/index.vue',
+                                code: 'trade_purchase_add',
+                                component: 'views/trade/purchase/components/add/index.vue',
                                 buttonName: 'add',
                                 buttonType: 'primary',
                             },
                             {
                                 authType: 3,
                                 title: '详情',
-                                code: 'listing_purchase_details',
-                                component: 'views/listing/purchase/components/details/index.vue',
+                                code: 'trade_purchase_details',
+                                component: 'views/trade/purchase/components/details/index.vue',
                                 buttonName: 'details',
                                 buttonType: 'primary',
                             },
                             {
                                 authType: 3,
                                 title: '撤销',
-                                code: 'listing_purchase_cancel',
-                                component: 'views/listing/purchase/components/cancel/index.vue',
+                                code: 'trade_purchase_cancel',
+                                component: 'views/trade/purchase/components/cancel/index.vue',
                                 buttonName: 'cancel',
                                 buttonType: 'primary',
                             },
@@ -196,16 +196,16 @@ const appmenu = {
                         authType: 1,
                         sort: 1,
                         title: '我的摘牌',
-                        code: 'listing_delisting',
+                        code: 'trade_delisting',
                         url: 'delisting',
                         urlType: 1,
-                        component: 'views/listing/delisting/index.vue',
+                        component: 'views/trade/delisting/index.vue',
                         children: [
                             {
                                 authType: 3,
                                 title: '详情',
-                                code: 'listing_delisting_details',
-                                component: 'views/listing/delisting/components/details/index.vue',
+                                code: 'trade_delisting_details',
+                                component: 'views/trade/delisting/components/details/index.vue',
                                 buttonName: 'details',
                                 buttonType: 'primary',
                             },
@@ -215,24 +215,24 @@ const appmenu = {
                         authType: 1,
                         sort: 1,
                         title: '我的询价',
-                        code: 'listing_bargain',
+                        code: 'trade_bargain',
                         url: 'bargain',
                         urlType: 1,
-                        component: 'views/listing/bargain/index.vue',
+                        component: 'views/trade/bargain/index.vue',
                         children: [
                             {
                                 authType: 3,
                                 title: '详情',
-                                code: 'listing_bargain_details',
-                                component: 'views/listing/bargain/components/details/index.vue',
+                                code: 'trade_bargain_details',
+                                component: 'views/trade/bargain/components/details/index.vue',
                                 buttonName: 'details',
                                 buttonType: 'primary',
                             },
                             {
                                 authType: 3,
                                 title: '撤销',
-                                code: 'listing_bargain_cancel',
-                                component: 'views/listing/bargain/components/cancel/index.vue',
+                                code: 'trade_bargain_cancel',
+                                component: 'views/trade/bargain/components/cancel/index.vue',
                                 buttonName: 'cancel',
                                 buttonType: 'primary',
                             },
@@ -286,6 +286,48 @@ const appmenu = {
                         url: '',
                         urlType: 1,
                         component: 'views/order/main/index.vue',
+                        children: [
+                            {
+                                authType: 3,
+                                title: '详情',
+                                code: 'order_buy_details',
+                                component: 'views/order/main/components/details/index.vue',
+                                buttonName: 'details',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '手动',
+                                code: 'order_buy_manual',
+                                component: 'views/order/main/components/manual/index.vue',
+                                buttonName: 'manual',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '延期',
+                                code: 'order_buy_delay',
+                                component: 'views/order/main/components/delay/index.vue',
+                                buttonName: 'delay',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '违约',
+                                code: 'order_buy_contracted',
+                                component: 'views/order/main/components/contracted/index.vue',
+                                buttonName: 'contracted',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '修改',
+                                code: 'order_buy_edit',
+                                component: 'views/order/main/components/edit/index.vue',
+                                buttonName: 'edit',
+                                buttonType: 'primary',
+                            },
+                        ]
                     },
                     {
                         authType: 1,
@@ -294,7 +336,49 @@ const appmenu = {
                         code: 'order_sell',
                         url: 'sell',
                         urlType: 1,
-                        component: 'views/order/main/index.vue'
+                        component: 'views/order/main/index.vue',
+                        children: [
+                            {
+                                authType: 3,
+                                title: '详情',
+                                code: 'order_sell_details',
+                                component: 'views/order/main/components/details/index.vue',
+                                buttonName: 'details',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '手动',
+                                code: 'order_sell_manual',
+                                component: 'views/order/main/components/manual/index.vue',
+                                buttonName: 'manual',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '延期',
+                                code: 'order_sell_delay',
+                                component: 'views/order/main/components/delay/index.vue',
+                                buttonName: 'delay',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '违约',
+                                code: 'order_sell_contracted',
+                                component: 'views/order/main/components/contracted/index.vue',
+                                buttonName: 'contracted',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '修改',
+                                code: 'order_sell_edit',
+                                component: 'views/order/main/components/edit/index.vue',
+                                buttonName: 'edit',
+                                buttonType: 'primary',
+                            },
+                        ]
                     },
                 ]
             },
@@ -577,6 +661,24 @@ const appmenu = {
                         url: '',
                         urlType: 1,
                         component: 'views/bargain/buy/index.vue',
+                        children: [
+                            {
+                                authType: 3,
+                                title: '同意',
+                                code: 'bargain_buy_agree',
+                                component: 'views/bargain/buy/components/audit/index.vue',
+                                buttonName: 'agree',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '拒绝',
+                                code: 'bargain_buy_refuse',
+                                component: 'views/bargain/buy/components/audit/index.vue',
+                                buttonName: 'refuse',
+                                buttonType: 'primary',
+                            }
+                        ]
                     },
                     {
                         authType: 1,
@@ -586,6 +688,24 @@ const appmenu = {
                         url: 'sell',
                         urlType: 1,
                         component: 'views/bargain/sell/index.vue',
+                        children: [
+                            {
+                                authType: 3,
+                                title: '同意',
+                                code: 'bargain_sell_agree',
+                                component: 'views/bargain/sell/components/audit/index.vue',
+                                buttonName: 'agree',
+                                buttonType: 'primary',
+                            },
+                            {
+                                authType: 3,
+                                title: '拒绝',
+                                code: 'bargain_sell_refuse',
+                                component: 'views/bargain/sell/components/audit/index.vue',
+                                buttonName: 'refuse',
+                                buttonType: 'primary',
+                            }
+                        ]
                     }
                 ]
             },

+ 0 - 0
src/packages/pc/views/bargain/buy/components/audit/index.vue


+ 7 - 7
src/packages/pc/views/bargain/buy/index.vue

@@ -2,7 +2,7 @@
 <template>
     <app-view>
         <template #header>
-            <app-filter v-bind="{ selectList,  buttonList }" :loading="loading" />
+            <app-filter v-bind="{ selectList, buttonList }" :loading="loading" />
         </template>
         <!-- 表格数据 -->
         <app-table :data="dataList" v-model:columns="columns" :loading="loading">
@@ -25,21 +25,21 @@
 
 <script lang="ts" setup>
 import { ElMessage } from 'element-plus'
-import { useBargainOrder } from '@/business/order/list'
+import { useBargainBuyOrder } from '@/business/trade/list'
 import { getApplyStatusName, ApplyStatus } from '@/constants/order'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
 import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'
 import AppFilter from '@pc/components/base/table-filter/index.vue'
 
-const { loading, dataList, total, pageIndex, pageSize, columns, selectList, buttonList, getBargainOrderList } = useBargainOrder(1)
+const { loading, dataList, total, pageIndex, pageSize, columns, selectList, buttonList, getBargainOrderList } = useBargainBuyOrder(1)
 
-// “待确认”状态 有撤销按钮
-const handleTableButtons = (row: Ermcp.MyBargainApplyRsp | Ermcp.MyDelistingApplyRsp) => {
+// “待确认”有操作 ”同意“、”拒绝“
+const handleTableButtons = (row: Ermcp.MyBargainApplyRsp) => {
     if (row.applystatus === ApplyStatus.Pending) {
-        return ['details', 'cancel']
+        return ['agree', 'refuse']
     }
-    return ['details']
+    return []
 }
 
 getBargainOrderList().catch((err) => ElMessage.error(err))

+ 41 - 0
src/packages/pc/views/bargain/sell/components/audit/index.vue

@@ -0,0 +1,41 @@
+<template>
+    <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
+        <div style="font-size:16px;text-align:center">是否收藏该商品?</div>
+        <template #footer>
+            <el-button @click="onCancel(false)" plain>取消</el-button>
+            <el-button type="primary" @click="onSubmit">确认</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, PropType } from 'vue'
+import { ElMessage } from 'element-plus'
+import { useDiamondFavorite } from '@/business/goods'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Ermcp.MyWRPositionRsp | Ermcp.SellOrderRsp>,
+        default: () => ({})
+    },
+})
+
+const { loading, formSubmit } = useDiamondFavorite(props.selectedRow)
+const show = shallowRef(true)
+const refresh = shallowRef(false)
+
+const onCancel = (isRefresh = false) => {
+    show.value = false
+    refresh.value = isRefresh
+}
+
+const onSubmit = () => {
+    formSubmit(1).then(() => {
+        ElMessage.success('提交成功')
+        onCancel(true)
+    }).catch((err) => {
+        ElMessage.error('提交失败:' + err)
+    })
+}
+</script>

+ 39 - 1
src/packages/pc/views/bargain/sell/index.vue

@@ -1,8 +1,46 @@
+<!-- 询价消息-卖方询价 -->
 <template>
     <app-view>
-        卖方询价
+        <template #header>
+            <app-filter v-bind="{ selectList, buttonList }" :loading="loading" />
+        </template>
+        <!-- 表格数据 -->
+        <app-table :data="dataList" v-model:columns="columns" :loading="loading">
+            <!-- 申请状态 -->
+            <template #applystatus="{ value }">
+                {{ getApplyStatusName(value) }}
+            </template>
+            <!-- 操作 -->
+            <template #operate="{ row }">
+                <app-auth-operation :menus="handleTableButtons(row)" :options="{ selectedRow: row }"
+                    @closed="getBargainOrderList" />
+            </template>
+            <template #footer>
+                <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
+                    @change="getBargainOrderList" />
+            </template>
+        </app-table>
     </app-view>
 </template>
 
 <script lang="ts" setup>
+import { ElMessage } from 'element-plus'
+import { useBargainSellOrder } from '@/business/trade/list'
+import { getApplyStatusName, ApplyStatus } from '@/constants/order'
+import AppTable from '@pc/components/base/table/index.vue'
+import AppPagination from '@pc/components/base/pagination/index.vue'
+import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'
+import AppFilter from '@pc/components/base/table-filter/index.vue'
+
+const { loading, dataList, total, pageIndex, pageSize, columns, selectList, buttonList, getBargainOrderList } = useBargainSellOrder(1)
+
+// “待确认”有操作 ”同意“、”拒绝“
+const handleTableButtons = (row: Ermcp.MyBargainApplyRsp) => {
+    if (row.applystatus === ApplyStatus.Pending) {
+        return ['agree', 'refuse']
+    }
+    return []
+}
+
+getBargainOrderList().catch((err) => ElMessage.error(err))
 </script>

+ 66 - 0
src/packages/pc/views/order/main/components/contracted/index.vue

@@ -0,0 +1,66 @@
+<!-- 订单管理-我的履约-违约申请 -->
+<template>
+    <app-drawer title="违约申请" :width="480" v-model:show="show" :loading="loading" :refresh="refresh">
+        <el-form ref="formRef" label-width="80px" :model="formData" :rules="formRules">
+            <el-form-item label="关联单号">
+                <span>{{ selectedRow.relatedorderid }}</span>
+            </el-form-item>
+            <el-form-item label="当前步骤">
+                <span>{{ selectedRow.curstepid }}</span>
+            </el-form-item>
+            <el-form-item label="备注" prop="ApplyRemark">
+                <el-input type="textarea" :rows="3" v-model="formData.ApplyRemark" />
+            </el-form-item>
+            <el-form-item label="附件" prop="Attachment">
+                <app-upload />
+            </el-form-item>
+        </el-form>
+        <template #footer>
+            <el-button @click="onCancel(false)" plain>取消</el-button>
+            <el-button type="primary" @click="onSubmit">确认</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { ref, PropType } from 'vue'
+import { ElMessage } from 'element-plus'
+import type { FormInstance, FormRules } from 'element-plus'
+import { usePerformanceContracted } from '@/business/order'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+import AppUpload from '@/components/base/upload/index.vue'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Ermcp.MyPerformancRsp>,
+        default: () => ({})
+    }
+})
+
+const { loading, formData, formSubmit } = usePerformanceContracted(props.selectedRow)
+const show = ref(true)
+const refresh = ref(false)
+const formRef = ref<FormInstance>()
+
+const formRules: FormRules = {
+    ApplyRemark: [{ required: true, message: '请输入备注', trigger: 'blur' }],
+}
+
+const onCancel = (isRefresh = false) => {
+    show.value = false
+    refresh.value = isRefresh
+}
+
+const onSubmit = () => {
+    formRef.value?.validate((valid) => {
+        if (valid) {
+            formSubmit().then(() => {
+                ElMessage.success('提交成功')
+                onCancel(true)
+            }).catch((err) => {
+                ElMessage.error('提交失败:' + err)
+            })
+        }
+    })
+}
+</script>

+ 65 - 0
src/packages/pc/views/order/main/components/delay/index.vue

@@ -0,0 +1,65 @@
+<!-- 订单管理-我的履约-延期申请 -->
+<template>
+    <app-drawer title="延期申请" :width="480" v-model:show="show" :loading="loading" :refresh="refresh">
+        <el-form ref="formRef" label-width="110px" :model="formData" :rules="formRules">
+            <el-form-item label="关联单号">
+                <span>{{ selectedRow.relatedorderid }}</span>
+            </el-form-item>
+            <el-form-item label="当前步骤">
+                <span>{{ selectedRow.curstepid }}</span>
+            </el-form-item>
+            <el-form-item label="申请延期天数" prop="delaydays">
+                <el-input type="number" placeholder="请输入" v-model.number="formData.delaydays" />
+            </el-form-item>
+            <el-form-item label="备注" prop="applyremark">
+                <el-input type="textarea" :rows="3" v-model="formData.applyremark" />
+            </el-form-item>
+        </el-form>
+        <template #footer>
+            <el-button @click="onCancel(false)" plain>取消</el-button>
+            <el-button type="primary" @click="onSubmit">确认</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { ref, PropType } from 'vue'
+import { ElMessage } from 'element-plus'
+import type { FormInstance, FormRules } from 'element-plus'
+import { usePerformanceDelay } from '@/business/order'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Ermcp.MyPerformancRsp>,
+        default: () => ({})
+    }
+})
+
+const { loading, formData, formSubmit } = usePerformanceDelay(props.selectedRow)
+const show = ref(true)
+const refresh = ref(false)
+const formRef = ref<FormInstance>()
+
+const formRules: FormRules = {
+    delaydays: [{ required: true, message: '请输入延期天数', trigger: 'blur' }],
+}
+
+const onCancel = (isRefresh = false) => {
+    show.value = false
+    refresh.value = isRefresh
+}
+
+const onSubmit = () => {
+    formRef.value?.validate((valid) => {
+        if (valid) {
+            formSubmit().then(() => {
+                ElMessage.success('提交成功')
+                onCancel(true)
+            }).catch((err) => {
+                ElMessage.error('提交失败:' + err)
+            })
+        }
+    })
+}
+</script>

+ 65 - 0
src/packages/pc/views/order/main/components/edit/index.vue

@@ -0,0 +1,65 @@
+<!-- 订单管理-我的履约-修改联络信息 -->
+<template>
+    <app-drawer title="买方联络信息" :width="480" v-model:show="show" :loading="loading" :refresh="refresh">
+        <el-form ref="formRef" label-width="80px" :model="formData" :rules="formRules">
+            <el-form-item label="履约计划">
+                <span>{{ selectedRow.curstepid }}</span>
+            </el-form-item>
+            <el-form-item label="联络信息" prop="ApplyRemark">
+                <el-input type="textarea" :rows="3" v-model="formData.ApplyRemark" />
+            </el-form-item>
+            <el-form-item label="收货地址" prop="ApplyRemark">
+                <el-input type="textarea" :rows="3" v-model="formData.ApplyRemark" />
+            </el-form-item>
+            <el-form-item label="发票信息" prop="ApplyRemark">
+                <el-input type="textarea" :rows="3" v-model="formData.ApplyRemark" />
+            </el-form-item>
+        </el-form>
+        <template #footer>
+            <el-button @click="onCancel(false)" plain>取消</el-button>
+            <el-button type="primary" @click="onSubmit">确认</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { ref, PropType } from 'vue'
+import { ElMessage } from 'element-plus'
+import type { FormInstance, FormRules } from 'element-plus'
+import { usePerformanceContracted } from '@/business/order'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Ermcp.MyPerformancRsp>,
+        default: () => ({})
+    }
+})
+
+const { loading, formData, formSubmit } = usePerformanceContracted(props.selectedRow)
+const show = ref(true)
+const refresh = ref(false)
+const formRef = ref<FormInstance>()
+
+const formRules: FormRules = {
+    ApplyRemark: [{ required: true, message: '请输入备注', trigger: 'blur' }],
+}
+
+const onCancel = (isRefresh = false) => {
+    show.value = false
+    refresh.value = isRefresh
+}
+
+const onSubmit = () => {
+    formRef.value?.validate((valid) => {
+        if (valid) {
+            formSubmit().then(() => {
+                ElMessage.success('提交成功')
+                onCancel(true)
+            }).catch((err) => {
+                ElMessage.error('提交失败:' + err)
+            })
+        }
+    })
+}
+</script>

+ 59 - 0
src/packages/pc/views/order/main/components/manual/index.vue

@@ -0,0 +1,59 @@
+<!-- 订单管理-我的履约-手动执行 -->
+<template>
+    <app-drawer title="手动执行" :width="480" v-model:show="show" :loading="loading" :refresh="refresh">
+        <el-form ref="formRef" label-width="60px" :model="formData" :rules="formRules">
+            <el-form-item>
+                <span>是否执行当前步骤【卖方支付】?</span>
+            </el-form-item>
+            <el-form-item label="备注" prop="StepRemark">
+                <el-input type="textarea" :rows="3" v-model="formData.StepRemark" />
+            </el-form-item>
+        </el-form>
+        <template #footer>
+            <el-button @click="onCancel(false)" plain>取消</el-button>
+            <el-button type="primary" @click="onSubmit">确认</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { ref, PropType } from 'vue'
+import { ElMessage } from 'element-plus'
+import type { FormInstance, FormRules } from 'element-plus'
+import { usePerformanceManual } from '@/business/order'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Ermcp.MyPerformancRsp>,
+        default: () => ({})
+    }
+})
+
+const { loading, formData, formSubmit } = usePerformanceManual(props.selectedRow)
+const show = ref(true)
+const refresh = ref(false)
+const formRef = ref<FormInstance>()
+
+const formRules: FormRules = {
+    StepRemark: [{ required: true, message: '请输入备注', trigger: 'blur' }],
+}
+
+const onCancel = (isRefresh = false) => {
+    show.value = false
+    refresh.value = isRefresh
+}
+
+const onSubmit = () => {
+    formRef.value?.validate((valid) => {
+        if (valid) {
+            formSubmit().then(() => {
+                ElMessage.success('提交成功')
+                onCancel(true)
+            }).catch((err) => {
+                ElMessage.error('提交失败:' + err)
+            })
+        }
+    })
+}
+</script>

+ 2 - 2
src/packages/pc/views/order/main/index.vue

@@ -1,4 +1,4 @@
-<!-- 订单管理-我的履约 -->
+<!-- 订单管理-我的履约 -->
 <template>
     <app-view>
         <template #header>
@@ -21,7 +21,7 @@
 import { ElMessage } from 'element-plus'
 import { useRoute } from 'vue-router'
 import { BuyOrSell } from '@/constants/order'
-import { usePerformance } from '@/business/order/list'
+import { usePerformance } from '@/business/order'
 import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'

+ 1 - 1
src/packages/pc/views/listing/bargain/components/cancel/index.vue → src/packages/pc/views/trade/bargain/components/cancel/index.vue

@@ -12,7 +12,7 @@
 <script lang="ts" setup>
 import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
-import { useInquiryOperate } from '@/business/order/desting'
+import { useInquiryOperate } from '@/business/trade/desting'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({

+ 1 - 1
src/packages/pc/views/listing/bargain/index.vue → src/packages/pc/views/trade/bargain/index.vue

@@ -25,7 +25,7 @@
 
 <script lang="ts" setup>
 import { ElMessage } from 'element-plus'
-import { useBargainOrder } from '@/business/order/list'
+import { useBargainOrder } from '@/business/trade/list'
 import { getApplyStatusName, ApplyStatus } from '@/constants/order'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'

+ 1 - 1
src/packages/pc/views/listing/buy/components/delisting/index.vue → src/packages/pc/views/trade/buy/components/delisting/index.vue

@@ -24,7 +24,7 @@ import { ref, PropType } from 'vue'
 import Long from 'long'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
-import { useSellOrderInquiry } from '@/business/order/desting'
+import { useSellOrderInquiry } from '@/business/trade/desting'
 import AppTable from '@pc/components/base/table/index.vue'
 
 const props = defineProps({

+ 0 - 0
src/packages/pc/views/listing/buy/components/details/index.vue → src/packages/pc/views/trade/buy/components/details/index.vue


+ 1 - 1
src/packages/pc/views/listing/buy/index.vue → src/packages/pc/views/trade/buy/index.vue

@@ -21,7 +21,7 @@
 
 <script lang="ts" setup>
 import { ElMessage } from 'element-plus'
-import { useBuyOrder } from '@/business/order/list'
+import { useBuyOrder } from '@/business/trade/list'
 import { sessionData } from '@/stores'
 import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'
 import AppTable from '@pc/components/base/table/index.vue'

+ 6 - 1
src/packages/pc/views/listing/delisting/index.vue → src/packages/pc/views/trade/delisting/index.vue

@@ -6,6 +6,10 @@
         </template>
         <!-- 表格数据 -->
         <app-table :data="dataList" v-model:columns="columns" :loading="loading">
+            <!-- 类型 -->
+            <template #buyorsell="{ value }">
+                {{ getBuyOrSellName(value) }}
+            </template>
             <!-- 操作 -->
             <template #operate="{ row }">
                 <app-auth-operation :menus="['details']" :options="{ selectedRow: row }"
@@ -21,7 +25,8 @@
 
 <script lang="ts" setup>
 import { ElMessage } from 'element-plus'
-import { useDelistingOrder } from '@/business/order/list'
+import { getBuyOrSellName } from '@/constants/order'
+import { useDelistingOrder } from '@/business/trade/list'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
 import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'

+ 1 - 1
src/packages/pc/views/listing/purchase/components/add/index.vue → src/packages/pc/views/trade/purchase/components/add/index.vue

@@ -84,7 +84,7 @@
 import { ref, defineAsyncComponent } from 'vue'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
-import { useBuyOrderListing } from '@/business/order/listing'
+import { useBuyOrderListing } from '@/business/trade/listing'
 import { Category } from '@/constants/diamond'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppMultiple from '@pc/components/base/multiple/index.vue'

+ 1 - 1
src/packages/pc/views/listing/purchase/components/cancel/index.vue → src/packages/pc/views/trade/purchase/components/cancel/index.vue

@@ -13,7 +13,7 @@
 import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { BuyOrSell } from '@/constants/order'
-import { useListingCancel } from '@/business/order/listing'
+import { useListingCancel } from '@/business/trade/listing'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({

+ 1 - 1
src/packages/pc/views/listing/purchase/index.vue → src/packages/pc/views/trade/purchase/index.vue

@@ -24,7 +24,7 @@
 
 <script lang="ts" setup>
 import { ElMessage } from 'element-plus'
-import { usePurchaseOrder } from '@/business/order/list'
+import { usePurchaseOrder } from '@/business/trade/list'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
 import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'

+ 1 - 1
src/packages/pc/views/listing/sale/components/add/index.vue → src/packages/pc/views/trade/sale/components/add/index.vue

@@ -43,7 +43,7 @@ import { ref, defineAsyncComponent } from 'vue'
 import Long from 'long'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
-import { useSellOrderListing } from '@/business/order/listing'
+import { useSellOrderListing } from '@/business/trade/listing'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppTable from '@pc/components/base/table/index.vue'
 

+ 1 - 1
src/packages/pc/views/listing/sale/components/cancel/index.vue → src/packages/pc/views/trade/sale/components/cancel/index.vue

@@ -13,7 +13,7 @@
 import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { BuyOrSell } from '@/constants/order'
-import { useListingCancel } from '@/business/order/listing'
+import { useListingCancel } from '@/business/trade/listing'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({

+ 0 - 0
src/packages/pc/views/listing/sale/components/details/index.vue → src/packages/pc/views/trade/sale/components/details/index.vue


+ 1 - 1
src/packages/pc/views/listing/sale/index.vue → src/packages/pc/views/trade/sale/index.vue

@@ -24,7 +24,7 @@
 
 <script lang="ts" setup>
 import { ElMessage } from 'element-plus'
-import { useSaleOrder } from '@/business/order/list'
+import { useSaleOrder } from '@/business/trade/list'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
 import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'

+ 1 - 1
src/packages/pc/views/listing/sell/index.vue → src/packages/pc/views/trade/sell/index.vue

@@ -21,7 +21,7 @@
 
 <script lang="ts" setup>
 import { ElMessage } from 'element-plus'
-import { useSellOrder } from '@/business/order/list'
+import { useSellOrder } from '@/business/trade/list'
 import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'

+ 1 - 1
src/packages/pc/views/warehousing/goods/components/buy/index.vue

@@ -12,7 +12,7 @@
 <script lang="ts" setup>
 import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
-import { useBuyOrderDesting } from '@/business/order/desting'
+import { useBuyOrderDesting } from '@/business/trade/desting'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({

+ 0 - 1
src/packages/pc/views/warehousing/goods/components/edit/index.vue

@@ -1,4 +1,3 @@
-<!-- 账号权限 -->
 <template>
     <app-drawer :title="code === 'warehousing_stock_sell' ? '商品上架' : '添加商品'" :width="960" v-model:show="show"
         :loading="formRef?.loading" :refresh="refresh">

+ 1 - 1
src/packages/pc/views/warehousing/goods/components/inquiry/index.vue

@@ -23,7 +23,7 @@
 import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
-import { useBuyOrderInquiry } from '@/business/order/desting'
+import { useBuyOrderInquiry } from '@/business/trade/desting'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({

+ 1 - 1
src/packages/pc/views/warehousing/goods/components/pull/index.vue

@@ -13,7 +13,7 @@
 import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { BuyOrSell } from '@/constants/order'
-import { useListingCancel } from '@/business/order/listing'
+import { useListingCancel } from '@/business/trade/listing'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({

+ 1 - 1
src/packages/pc/views/warehousing/goods/components/put/index.vue

@@ -20,7 +20,7 @@
 import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
-import { useSellOrderListing } from '@/business/order/listing'
+import { useSellOrderListing } from '@/business/trade/listing'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppPerformance from '@pc/components/modules/performance/index.vue'
 

+ 2 - 2
src/services/api/bank/index.ts

@@ -4,14 +4,14 @@ import { tradeServerRequest } from '@/services/socket/trade'
 import { TradeRequest } from '@/services/socket/trade/interface'
 
 /**
- * 签约
+ * 银行签约
  */
 export function t2bBankSign(params: TradeRequest<Partial<Proto.t2bBankSignReq>, Proto.t2bBankSignRsp>) {
     return tradeServerRequest('t2bBankSignReq', 't2bBankSignRsp', params);
 }
 
 /**
- * 解约
+ * 银行解约
  */
 export function t2bBankCancelSign(params: TradeRequest<Proto.t2bBankCancelSignReq, Proto.t2bBankCancelSignRsp>) {
     return tradeServerRequest('t2bBankCancelSignReq', 't2bBankCancelSignRsp', params);

+ 12 - 97
src/services/api/order/index.ts

@@ -2,118 +2,33 @@ import { httpRequest } from '@/services/http'
 import { HttpRequest } from '@/services/http/interface'
 import { tradeServerRequest } from '@/services/socket/trade'
 import { TradeRequest } from '@/services/socket/trade/interface'
-import { Market } from '@/constants/market'
 
 /**
- * 钻石买挂牌
+ * 履约违约申请
  */
-export function zsBuyOrderListing(params: TradeRequest<Proto.ZSBuyOrderListingReq, Proto.ZSBuyOrderListingRsp>) {
-    return tradeServerRequest('ZSBuyOrderListingReq', 'ZSBuyOrderListingRsp', params, Market.GZ);
+export function performanceContractedApply(params: TradeRequest<Proto.PerformanceContractedApplyReq, Proto.PerformanceContractedApplyRsp>) {
+    return tradeServerRequest('PerformanceContractedApplyReq', 'PerformanceContractedApplyRsp', params);
 }
 
 /**
- * 钻石卖挂牌
+ * 履约延期申请
  */
-export function zsSellOrderListing(params: TradeRequest<Proto.ZSSellOrderListingReq, Proto.ZSSellOrderListingRsp>) {
-    return tradeServerRequest('ZSSellOrderListingReq', 'ZSSellOrderListingRsp', params, Market.GZ);
+export function performanceDelayApply(params: TradeRequest<Proto.PerformanceDelayApplyReq, Proto.PerformanceDelayApplyRsp>) {
+    return tradeServerRequest('PerformanceDelayApplyReq', 'PerformanceDelayApplyRsp', params);
 }
 
 /**
- * 钻石买摘牌
+ * 履约手动申请
  */
-export function zsBuyOrderDesting(params: TradeRequest<Proto.ZSBuyOrderDestingReq, Proto.ZSBuyOrderDestingRsp>) {
-    return tradeServerRequest('ZSBuyOrderDestingReq', 'ZSBuyOrderDestingRsp', params, Market.GZ);
+export function performanceManualConfirm(params: TradeRequest<Proto.PerformanceManualConfirmReq, Proto.PerformanceManualConfirmRsp>) {
+    return tradeServerRequest('PerformanceManualConfirmReq', 'PerformanceManualConfirmRsp', params);
 }
 
 /**
- * 钻石买摘牌询价
+ * 履约修改联络信息
  */
-export function zsBuyOrderDestingNegPrice(params: TradeRequest<Proto.ZSBuyOrderDestingNegPriceReq, Proto.ZSBuyOrderDestingNegPriceRsp>) {
-    return tradeServerRequest('ZSBuyOrderDestingNegPriceReq', 'ZSBuyOrderDestingNegPriceRsp', params, Market.GZ);
-}
-
-/**
- * 钻石卖摘牌申请
- */
-export function zsSellOrderDestingApply(params: TradeRequest<Proto.ZSSellOrderDestingApplyReq, Proto.ZSSellOrderDestingApplyRsp>) {
-    return tradeServerRequest('ZSSellOrderDestingApplyReq', 'ZSSellOrderDestingApplyRsp', params, Market.GZ);
-}
-
-/**
- * 钻石买询价操作
- */
-export function zsBuyOrderDestingNegPriceOperate(params: TradeRequest<Proto.ZSBuyOrderDestingNegPriceOperateReq, Proto.ZSBuyOrderDestingNegPriceOperateRsp>) {
-    return tradeServerRequest('ZSBuyOrderDestingNegPriceOperateReq', 'ZSBuyOrderDestingNegPriceOperateRsp', params, Market.GZ);
-}
-
-/**
- * 钻石卖询价操作
- */
-export function zsSellOrderDestingApplyOperate(params: TradeRequest<Proto.ZSSellOrderDestingApplyOperateReq, Proto.ZSSellOrderDestingApplyOperateRsp>) {
-    return tradeServerRequest('ZSSellOrderDestingApplyOperateReq', 'ZSSellOrderDestingApplyOperateRsp', params, Market.GZ);
-}
-
-/**
- * 钻石挂牌撤单
- */
-export function wrListingCancelOrder(params: TradeRequest<Proto.WRListingCancelOrderReq, Proto.WRListingCancelOrderRsp>) {
-    return tradeServerRequest('WRListingCancelOrderReq', 'WRListingCancelOrderRsp', params, Market.GZ);
-}
-
-/**
- * 查询求购大厅委托单
- */
-export function queryBuyOrder(params: HttpRequest<{ req: Ermcp.BuyOrderReq, rsp: Ermcp.BuyOrderRsp[] }>) {
-    return httpRequest('/Guangzuan/QueryBuyOrder', 'get', params);
-}
-
-/**
- * 查询我的求购
- */
-export function queryMyBuyOrder(params: HttpRequest<{ req: Ermcp.MyBuyOrderReq, rsp: Ermcp.MyBuyOrderRsp[] }>) {
-    return httpRequest('/Guangzuan/QueryMyBuyOrder', 'get', params);
-}
-
-/**
- * 搜索出售大厅委托单
- */
-export function searchSellOrder(params: HttpRequest<{ req: Ermcp.SellOrderSearchReq, rsp: Ermcp.SellOrderRsp[] }>) {
-    return httpRequest('/Guangzuan/QueryDiamond', 'post', params);
-}
-
-/**
- * 查询出售大厅委托单
- */
-export function querySellOrder(params: HttpRequest<{ req: Ermcp.SellOrderReq, rsp: Ermcp.SellOrderRsp[] }>) {
-    return httpRequest('/Guangzuan/QuerySellOrder', 'get', params);
-}
-
-/**
- * 查询我的出售
- */
-export function queryMySellOrder(params: HttpRequest<{ req: Ermcp.MySellOrderReq, rsp: Ermcp.MySellOrderRsp[] }>) {
-    return httpRequest('/Guangzuan/QueryMySellOrder', 'get', params);
-}
-
-/**
- * 查询我的摘牌
- */
-export function queryMyDeListing(params: HttpRequest<{ req: Ermcp.MyDeListingReq, rsp: Ermcp.MyDeListingRsp[] }>) {
-    return httpRequest('/Guangzuan/QueryMyDeListing', 'get', params);
-}
-
-/**
- * 查询我的询价-求购
- */
-export function queryMyBargainApply(params: HttpRequest<{ req: Ermcp.MyBargainApplyReq, rsp: Ermcp.MyBargainApplyRsp[] }>) {
-    return httpRequest('/Guangzuan/QueryMyBargainApply', 'get', params);
-}
-
-/**
- * 查询我的询价-出售
- */
-export function queryMyDelistingApply(params: HttpRequest<{ req: Ermcp.MyDelistingApplyReq, rsp: Ermcp.MyDelistingApplyRsp[] }>) {
-    return httpRequest('/Guangzuan/QueryMyDelistingApply', 'get', params);
+export function performanceModifyContact(params: TradeRequest<Proto.PerformanceModifyContactReq, Proto.PerformanceModifyContactRsp>) {
+    return tradeServerRequest('PerformanceModifyContactReq', 'PerformanceModifyContactRsp', params);
 }
 
 /**

+ 117 - 0
src/services/api/trade/index.ts

@@ -0,0 +1,117 @@
+import { httpRequest } from '@/services/http'
+import { HttpRequest } from '@/services/http/interface'
+import { tradeServerRequest } from '@/services/socket/trade'
+import { TradeRequest } from '@/services/socket/trade/interface'
+import { Market } from '@/constants/market'
+
+/**
+ * 钻石买挂牌
+ */
+export function zsBuyOrderListing(params: TradeRequest<Proto.ZSBuyOrderListingReq, Proto.ZSBuyOrderListingRsp>) {
+    return tradeServerRequest('ZSBuyOrderListingReq', 'ZSBuyOrderListingRsp', params, Market.GZ);
+}
+
+/**
+ * 钻石卖挂牌
+ */
+export function zsSellOrderListing(params: TradeRequest<Proto.ZSSellOrderListingReq, Proto.ZSSellOrderListingRsp>) {
+    return tradeServerRequest('ZSSellOrderListingReq', 'ZSSellOrderListingRsp', params, Market.GZ);
+}
+
+/**
+ * 钻石买摘牌
+ */
+export function zsBuyOrderDesting(params: TradeRequest<Proto.ZSBuyOrderDestingReq, Proto.ZSBuyOrderDestingRsp>) {
+    return tradeServerRequest('ZSBuyOrderDestingReq', 'ZSBuyOrderDestingRsp', params, Market.GZ);
+}
+
+/**
+ * 钻石买摘牌询价
+ */
+export function zsBuyOrderDestingNegPrice(params: TradeRequest<Proto.ZSBuyOrderDestingNegPriceReq, Proto.ZSBuyOrderDestingNegPriceRsp>) {
+    return tradeServerRequest('ZSBuyOrderDestingNegPriceReq', 'ZSBuyOrderDestingNegPriceRsp', params, Market.GZ);
+}
+
+/**
+ * 钻石卖摘牌申请
+ */
+export function zsSellOrderDestingApply(params: TradeRequest<Proto.ZSSellOrderDestingApplyReq, Proto.ZSSellOrderDestingApplyRsp>) {
+    return tradeServerRequest('ZSSellOrderDestingApplyReq', 'ZSSellOrderDestingApplyRsp', params, Market.GZ);
+}
+
+/**
+ * 钻石买询价操作
+ */
+export function zsBuyOrderDestingNegPriceOperate(params: TradeRequest<Proto.ZSBuyOrderDestingNegPriceOperateReq, Proto.ZSBuyOrderDestingNegPriceOperateRsp>) {
+    return tradeServerRequest('ZSBuyOrderDestingNegPriceOperateReq', 'ZSBuyOrderDestingNegPriceOperateRsp', params, Market.GZ);
+}
+
+/**
+ * 钻石卖询价操作
+ */
+export function zsSellOrderDestingApplyOperate(params: TradeRequest<Proto.ZSSellOrderDestingApplyOperateReq, Proto.ZSSellOrderDestingApplyOperateRsp>) {
+    return tradeServerRequest('ZSSellOrderDestingApplyOperateReq', 'ZSSellOrderDestingApplyOperateRsp', params, Market.GZ);
+}
+
+/**
+ * 钻石挂牌撤单
+ */
+export function wrListingCancelOrder(params: TradeRequest<Proto.WRListingCancelOrderReq, Proto.WRListingCancelOrderRsp>) {
+    return tradeServerRequest('WRListingCancelOrderReq', 'WRListingCancelOrderRsp', params, Market.GZ);
+}
+
+/**
+ * 查询求购大厅委托单
+ */
+export function queryBuyOrder(params: HttpRequest<{ req: Ermcp.BuyOrderReq, rsp: Ermcp.BuyOrderRsp[] }>) {
+    return httpRequest('/Guangzuan/QueryBuyOrder', 'get', params);
+}
+
+/**
+ * 查询我的求购
+ */
+export function queryMyBuyOrder(params: HttpRequest<{ req: Ermcp.MyBuyOrderReq, rsp: Ermcp.MyBuyOrderRsp[] }>) {
+    return httpRequest('/Guangzuan/QueryMyBuyOrder', 'get', params);
+}
+
+/**
+ * 搜索出售大厅委托单
+ */
+export function searchSellOrder(params: HttpRequest<{ req: Ermcp.SellOrderSearchReq, rsp: Ermcp.SellOrderRsp[] }>) {
+    return httpRequest('/Guangzuan/QueryDiamond', 'post', params);
+}
+
+/**
+ * 查询出售大厅委托单
+ */
+export function querySellOrder(params: HttpRequest<{ req: Ermcp.SellOrderReq, rsp: Ermcp.SellOrderRsp[] }>) {
+    return httpRequest('/Guangzuan/QuerySellOrder', 'get', params);
+}
+
+/**
+ * 查询我的出售
+ */
+export function queryMySellOrder(params: HttpRequest<{ req: Ermcp.MySellOrderReq, rsp: Ermcp.MySellOrderRsp[] }>) {
+    return httpRequest('/Guangzuan/QueryMySellOrder', 'get', params);
+}
+
+/**
+ * 查询我的摘牌
+ */
+export function queryMyDeListing(params: HttpRequest<{ req: Ermcp.MyDeListingReq, rsp: Ermcp.MyDeListingRsp[] }>) {
+    return httpRequest('/Guangzuan/QueryMyDeListing', 'get', params);
+}
+
+/**
+ * 查询我的询价-求购
+ */
+export function queryMyBargainApply(params: HttpRequest<{ req: Ermcp.MyBargainApplyReq, rsp: Ermcp.MyBargainApplyRsp[] }>) {
+    return httpRequest('/Guangzuan/QueryMyBargainApply', 'get', params);
+}
+
+/**
+ * 查询我的询价-出售
+ */
+export function queryMyDelistingApply(params: HttpRequest<{ req: Ermcp.MyDelistingApplyReq, rsp: Ermcp.MyDelistingApplyRsp[] }>) {
+    return httpRequest('/Guangzuan/QueryMyDelistingApply', 'get', params);
+}

+ 0 - 0
src/types/ermcp/order.d.ts → src/types/ermcp/trade.d.ts


+ 54 - 235
src/types/proto/order.d.ts

@@ -3,257 +3,76 @@ import Long from 'long'
 
 declare global {
     namespace Proto {
-        /** 钻石买挂牌接口请求 */
-        interface ZSBuyOrderListingReq {
+        /** 违约申请请求 */
+        interface PerformanceContractedApplyReq {
             Header?: IMessageHead;
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 资金账号,必填
-            GZ_BuyOrderDetailExInfo: GZBuyOrderDetailExInfo; // 钻石买摘牌属性
-            PerformanceTemplateID?: number; // 履约计划模板ID
-            MarketID: number; // 市场ID,必填
-            OrderSrc: number; // 委托来源
-            ClientOrderTime?: string; // 客户端委托时间
-            ClientType?: number; // 终端类型
-            ClientSerialNo: string; // 客户端流水号
+            PerformancePlanID: Long; // uint64 履约计划ID
+            BreachType: number; // uint32 违约方类型
+            Applicant: number; // uint64 违约申请人
+            ApplyRemark?: string; // string 申请备注
+            Attachment?: string; // string 附件
         }
 
-        /** 钻石买挂牌接口应答 */
-        interface ZSBuyOrderListingRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode?: number; // 返回码
-            RetDesc?: string; // 描述信息
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账户ID
-            WRTradeOrderID: number; // 仓单贸易委托单ID
-            OrderTime: string; // 接收委托交易的时间
-            ClientSerialNo: string; // 客户端流水号
-        }
-
-        /** 钻石买摘牌属性 */
-        interface GZBuyOrderDetailExInfo {
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账户ID
-            ZSCategory: number; // 钻石分类
-            ZSCurrencyType: number[]; // 货币类型
-            ZSShapeType: number[]; // 形状
-            ZSColorType: number[]; // 颜色
-            ZSClarityType: number[]; // 净度
-            ZSCutType: number[]; // 切工
-            ZSSymmetryType: number[]; // 对称度
-            ZSPolishType: number[]; // 抛光度
-            ZSFluorescenceType: number[]; // 荧光
-            Size: number[]; // 尺寸
-            ZSCrystalType: number[]; // 晶型
-            Origin: string; // 原产地
-            ZSStyleType: number[]; // 款式
-            ZSCZColor1Type: number[]; // 彩钻颜色1
-            ZSCZColor2Type?: number[]; // 彩钻颜色2
-            ZSCZColor3Type?: number[]; // 彩钻颜色3
-            Remark?: string; // 备注
-            WarehouseIDs?: number[]; // 仓库ID
-        }
-
-        /** 钻石卖挂牌接口请求 */
-        interface ZSSellOrderListingReq {
+        /** 违约申请应答 */
+        interface PerformanceContractedApplyRsp {
             Header?: IMessageHead;
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 资金账户ID,必填
-            WRStandardID: number; // 现货商品ID,必填
-            WRFactorTypeID?: number; // 仓单要素类型ID,必填
-            OrderQty: number; // 挂牌数量,必填2位小数,为WeigthAvg的整数倍
-            LadingBillID: Long; // 提单ID,必填
-            SubNum: number; // 提单子单号,必填
-            PerformanceTemplateID?: number; // 履约计划模板ID
-            TimevalidType: number; // 时间有效类型
-            ValidTime?: string; // 有效期限
-            OrderSrc: number; // 委托来源
-            ClientSerialNo: string; // 客户端流水号
-            ClientOrderTime: string; // 客户端委托时间
-            ClientType: number; // 终端类型
-            MarketID: number; // 市场ID,必填
-        }
-
-        /** 钻石卖挂牌接口响应 */
-        interface ZSSellOrderListingRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode?: number; // 返回码
-            RetDesc?: string; // 描述信息
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账户ID
-            WRTradeOrderID: number; // 仓单贸易委托单ID
-            FreezeQty: number; // 冻结数量
-            OrderTime: string; // 接收委托交易的时间
-            ClientSerialNo: string; // 客户端流水号
-        }
-
-        /** 钻石买摘牌接口请求 */
-        interface ZSBuyOrderDestingReq {
-            Header?: IMessageHead; // 消息头
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 资金账号,必填
-            RelatedWRTradeOrderID: Long; // 卖委托单号,必填
-            OrderQty: number; // 委托数量,必填2位小数,为WeigthAvg的整数倍
-            OrderSrc: number; // 委托来源
-            ClientSerialNo: string; // 客户端流水号
-            ClientOrderTime: string; // 客户端委托时间
-            ClientType: number; // 终端类型
-            OperatorID: number; // 操作员账号ID
-            MarketID: number; // 市场ID,必填
-        }
-
-        /** 钻石买摘牌接口响应 */
-        interface ZSBuyOrderDestingRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode: number; // 返回码
-            RetDesc: string; // 描述信息
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账号
-            WRTradeOrderID: number; // 仓单贸易委托单ID
-            RelatedWRTradeOrderID: number; // 关联委托单号(摘牌委托关联挂牌委托单ID)
-            FreezeAmount: number; // 冻结货款
-            OrderTime: string; // 接收委托交易的时间
-            ClientSerialNo: string; // 客户端流水号
-        }
-
-        /** 买摘牌询价接口请求 */
-        interface ZSBuyOrderDestingNegPriceReq {
-            Header?: IMessageHead; // 消息头
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 资金账号,必填
-            RelatedOrderID: Long; // 卖委托单号,必填
-            OrderQty: number; // 议价数量,2位小数,必填
-            ApplyPrice?: number; // 协议价格,2位小数,必填
-            OrderSrc: number; // 委托来源
-            ClientSerialNo?: string; // 客户端流水号
-            ClientOrderTime?: string; // 客户端委托时间
-            ClientType: number; // 终端类型
-            OperatorID: number; // 操作员账号ID
-            MarketID: number; // 市场ID,必填
-            ApplyRemark: string; // 申请备注
+            RetCode: number; // int32 返回码
+            RetDesc: string; // string 描述信息
+            PerformancePlanID: number; // uint64 履约计划ID
         }
 
-        /** 买摘牌询价接口应答 */
-        interface ZSBuyOrderDestingNegPriceRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode: number; // 返回码
-            RetDesc: string; // 描述信息
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账号
-            WRTradeOrderID: number; // 摘牌委托单ID
-            WRBargainID: number; // 议价申请单ID
-            OrderTime: string; // 接收委托交易的时间
-            ClientSerialNo: string; // 客户端流水号
-        }
-
-        /** 钻石买询价操作接口请求 */
-        interface ZSBuyOrderDestingNegPriceOperateReq {
-            Header?: IMessageHead; // 消息头
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 资金账号,必填
-            WRBargainID: Long; // 议价申请单ID,必填
-            AuditRemark?: string; // 备注
-            OperateType: number; // 操作类型,1:撤销2:拒绝
-            MarketID: number; // 市场ID,必填
-            ClientType: number; // 终端类型
-            OrderSrc: number; // 委托来源
-            ClientSerialNo: string; // 客户端流水号
-        }
-
-        /** 钻石买询价操作接口应答 */
-        interface ZSBuyOrderDestingNegPriceOperateRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode: number; // 返回码
-            RetDesc: string; // 描述信息
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账号
-            WRBargainID: number; // 卖委托单号
-            ClientSerialNo: string; // 客户端流水号
-        }
-
-        /** 钻石卖摘牌申请接口请求 */
-        interface ZSSellOrderDestingApplyReq {
-            Header?: IMessageHead; // 消息头
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 资金账户ID,必填
-            BuyWRTradeOrderID: Long; // 买挂牌委托单ID,必填
-            WRStandardID: number; // 现货商品ID,必填
-            WRFactorTypeID?: number; // 仓单要素类型ID,必填
-            ApplyQty: number; // 申请数量,必填,2位小数
-            ApplyPrice?: number; // 申请价格,必填,2位小数
-            LadingBillID: Long; // 提单ID,必填
-            SubNum: number; // 提单子单号,必填
-            ApplyRemark?: string; // 备注
-            ClientType: number; // 终端类型
-            ClientSerialNo: string; // 客户端流水号
-            MarketID: number; // 市场ID,必填
+        /** 延期申请请求 */
+        interface PerformanceDelayApplyReq {
+            Header?: IMessageHead;
+            PerformancePlanStepID: Long; // uint64 履约计划步骤ID
+            delaydays?: number; // uint32 申请延期天数
+            applicant: number; // uint64 申请人
+            applyremark?: string; // string 申请备注
         }
 
-        /** 钻石卖摘牌申请接口响应 */
-        interface ZSSellOrderDestingApplyRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode: number; // 返回码
-            RetDesc: string; // 描述信息
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账号
-            ApplyID: number; // 仓单贸易委托单ID
-            ClientSerialNo: string; // 客户端流水号
+        /** 延期申请应答 */
+        interface PerformanceDelayApplyRsp {
+            Header?: IMessageHead;
+            RetCode: number; // int32 返回码
+            RetDesc: string; // string 描述信息
+            PerformancePlanStepID: Long; // uint64 履约计划步骤ID
+            applicant: number; // uint64 申请人
         }
 
-        /** 钻石卖询价操作接口请求 */
-        interface ZSSellOrderDestingApplyOperateReq {
-            Header?: IMessageHead; // 消息头
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 资金账号
-            SellDelistingApplyID: Long; // 卖摘牌申请ID,必填
-            AuditRemark?: string; // 备注
-            OperateType: number; // 操作类型,1:撤销2:拒绝
-            MarketID: number; // 市场ID,必填
-            ClientType: number; // 终端类型
-            OrderSrc: number; // 委托来源
-            ClientSerialNo: string; // 客户端流水号
+        /** 履约手动确认请求 */
+        interface PerformanceManualConfirmReq {
+            Header?: IMessageHead;
+            PerformancePlanStepID: Long; // uint64 履约计划步骤ID
+            OverShortAmount?: number; // double 溢短金额
+            PerformanceExecuteSide: number; // uint32 履约步骤执行方 1买方 2 卖方
+            StepRemark: string; // string 步骤备注
+            OverShortQty?: number; // double 溢短数量
+            ExpressFee?: number; // double 运费金额
         }
 
-        /** 钻石卖询价操作接口应答 */
-        interface ZSSellOrderDestingApplyOperateRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode: number; // 返回码
-            RetDesc: string; // 描述信息
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账号
-            SellDelistingApplyID: number; // 卖摘牌申请ID
-            WRTradeOrderID: number; // 仓单贸易委托单ID
-            FreezeAmount: number; // 冻结货款
-            OrderTime: string; // 接收委托交易的时间
-            ClientSerialNo: string; // 客户端流水号
+        /** 履约手动确认应答 */
+        interface PerformanceManualConfirmRsp {
+            Header?: IMessageHead;
+            RetCode: number; // int32 返回码
+            RetDesc: string; // string 描述信息
+            PerformancePlanStepID: number; // uint64 履约计划步骤ID
         }
 
-        /** 钻石挂牌撤单请求 */
-        interface WRListingCancelOrderReq {
-            Header?: IMessageHead; // 消息头
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账号
-            OldWRTradeOrderID: Long; // 目标仓单贸易委托单ID
-            OrderSrc: number; // 委托来源
-            ClientSerialNo: string; // 客户端流水号
-            ClientOrderTime: string; // 客户端委托时间
-            ClientType: number; // 终端类型
-            OperatorID: number; // 操作员账号ID
-            BuyOrSell: number; // 买卖方向
-            WRID?: number; // 仓单ID,卖的时候填写
+        /** 履约修改联络信息请求 */
+        interface PerformanceModifyContactReq {
+            Header?: IMessageHead;
+            PerformancePlanID: number; // uint64 履约计划ID
+            AccountID: number; // uint64 账号
+            ContactInfo: string; // string 联络信息
         }
 
-        /** 钻石挂牌撤单应答 */
-        interface WRListingCancelOrderRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode: number; // 返回码
-            RetDesc: string; // 描述信息
-            WRTradeCancelID: number; // 仓单贸易撤单号
-            OldWRTradeOrderID: number; // 目标仓单贸易委托单ID
-            UserID: number; // 用户ID
-            AccountID: number; // 资金账号
-            CancelQty: number; // 撤单数量
-            OrderTime: string; // 接受撤单的时间
-            ClientSerialNo: string; // 客户端流水号
+        /** 履约修改联络信息回应 */
+        interface PerformanceModifyContactRsp {
+            Header?: IMessageHead;
+            RetCode: number; // int32 返回码
+            RetDesc: string; // string 描述信息
+            PerformancePlanID: number; // uint64 履约计划ID
+            AccountID: number; // uint64 账号
         }
     }
 }

+ 259 - 0
src/types/proto/trade.d.ts

@@ -0,0 +1,259 @@
+import { IMessageHead } from '@/services/socket/trade/protobuf/proto'
+import Long from 'long'
+
+declare global {
+    namespace Proto {
+        /** 钻石买挂牌接口请求 */
+        interface ZSBuyOrderListingReq {
+            Header?: IMessageHead;
+            UserID: number; // 用户ID,必填
+            AccountID: number; // 资金账号,必填
+            GZ_BuyOrderDetailExInfo: GZBuyOrderDetailExInfo; // 钻石买摘牌属性
+            PerformanceTemplateID?: number; // 履约计划模板ID
+            MarketID: number; // 市场ID,必填
+            OrderSrc: number; // 委托来源
+            ClientOrderTime?: string; // 客户端委托时间
+            ClientType?: number; // 终端类型
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石买挂牌接口应答 */
+        interface ZSBuyOrderListingRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode?: number; // 返回码
+            RetDesc?: string; // 描述信息
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账户ID
+            WRTradeOrderID: number; // 仓单贸易委托单ID
+            OrderTime: string; // 接收委托交易的时间
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石买摘牌属性 */
+        interface GZBuyOrderDetailExInfo {
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账户ID
+            ZSCategory: number; // 钻石分类
+            ZSCurrencyType: number[]; // 货币类型
+            ZSShapeType: number[]; // 形状
+            ZSColorType: number[]; // 颜色
+            ZSClarityType: number[]; // 净度
+            ZSCutType: number[]; // 切工
+            ZSSymmetryType: number[]; // 对称度
+            ZSPolishType: number[]; // 抛光度
+            ZSFluorescenceType: number[]; // 荧光
+            Size: number[]; // 尺寸
+            ZSCrystalType: number[]; // 晶型
+            Origin: string; // 原产地
+            ZSStyleType: number[]; // 款式
+            ZSCZColor1Type: number[]; // 彩钻颜色1
+            ZSCZColor2Type?: number[]; // 彩钻颜色2
+            ZSCZColor3Type?: number[]; // 彩钻颜色3
+            Remark?: string; // 备注
+            WarehouseIDs?: number[]; // 仓库ID
+        }
+
+        /** 钻石卖挂牌接口请求 */
+        interface ZSSellOrderListingReq {
+            Header?: IMessageHead;
+            UserID: number; // 用户ID,必填
+            AccountID: number; // 资金账户ID,必填
+            WRStandardID: number; // 现货商品ID,必填
+            WRFactorTypeID?: number; // 仓单要素类型ID,必填
+            OrderQty: number; // 挂牌数量,必填2位小数,为WeigthAvg的整数倍
+            LadingBillID: Long; // 提单ID,必填
+            SubNum: number; // 提单子单号,必填
+            PerformanceTemplateID?: number; // 履约计划模板ID
+            TimevalidType: number; // 时间有效类型
+            ValidTime?: string; // 有效期限
+            OrderSrc: number; // 委托来源
+            ClientSerialNo: string; // 客户端流水号
+            ClientOrderTime: string; // 客户端委托时间
+            ClientType: number; // 终端类型
+            MarketID: number; // 市场ID,必填
+        }
+
+        /** 钻石卖挂牌接口响应 */
+        interface ZSSellOrderListingRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode?: number; // 返回码
+            RetDesc?: string; // 描述信息
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账户ID
+            WRTradeOrderID: number; // 仓单贸易委托单ID
+            FreezeQty: number; // 冻结数量
+            OrderTime: string; // 接收委托交易的时间
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石买摘牌接口请求 */
+        interface ZSBuyOrderDestingReq {
+            Header?: IMessageHead; // 消息头
+            UserID: number; // 用户ID,必填
+            AccountID: number; // 资金账号,必填
+            RelatedWRTradeOrderID: Long; // 卖委托单号,必填
+            OrderQty: number; // 委托数量,必填2位小数,为WeigthAvg的整数倍
+            OrderSrc: number; // 委托来源
+            ClientSerialNo: string; // 客户端流水号
+            ClientOrderTime: string; // 客户端委托时间
+            ClientType: number; // 终端类型
+            OperatorID: number; // 操作员账号ID
+            MarketID: number; // 市场ID,必填
+        }
+
+        /** 钻石买摘牌接口响应 */
+        interface ZSBuyOrderDestingRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账号
+            WRTradeOrderID: number; // 仓单贸易委托单ID
+            RelatedWRTradeOrderID: number; // 关联委托单号(摘牌委托关联挂牌委托单ID)
+            FreezeAmount: number; // 冻结货款
+            OrderTime: string; // 接收委托交易的时间
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 买摘牌询价接口请求 */
+        interface ZSBuyOrderDestingNegPriceReq {
+            Header?: IMessageHead; // 消息头
+            UserID: number; // 用户ID,必填
+            AccountID: number; // 资金账号,必填
+            RelatedOrderID: Long; // 卖委托单号,必填
+            OrderQty: number; // 议价数量,2位小数,必填
+            ApplyPrice?: number; // 协议价格,2位小数,必填
+            OrderSrc: number; // 委托来源
+            ClientSerialNo?: string; // 客户端流水号
+            ClientOrderTime?: string; // 客户端委托时间
+            ClientType: number; // 终端类型
+            OperatorID: number; // 操作员账号ID
+            MarketID: number; // 市场ID,必填
+            ApplyRemark: string; // 申请备注
+        }
+
+        /** 买摘牌询价接口应答 */
+        interface ZSBuyOrderDestingNegPriceRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账号
+            WRTradeOrderID: number; // 摘牌委托单ID
+            WRBargainID: number; // 议价申请单ID
+            OrderTime: string; // 接收委托交易的时间
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石买询价操作接口请求 */
+        interface ZSBuyOrderDestingNegPriceOperateReq {
+            Header?: IMessageHead; // 消息头
+            UserID: number; // 用户ID,必填
+            AccountID: number; // 资金账号,必填
+            WRBargainID: Long; // 议价申请单ID,必填
+            AuditRemark?: string; // 备注
+            OperateType: number; // 操作类型,1:撤销2:拒绝
+            MarketID: number; // 市场ID,必填
+            ClientType: number; // 终端类型
+            OrderSrc: number; // 委托来源
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石买询价操作接口应答 */
+        interface ZSBuyOrderDestingNegPriceOperateRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账号
+            WRBargainID: number; // 卖委托单号
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石卖摘牌申请接口请求 */
+        interface ZSSellOrderDestingApplyReq {
+            Header?: IMessageHead; // 消息头
+            UserID: number; // 用户ID,必填
+            AccountID: number; // 资金账户ID,必填
+            BuyWRTradeOrderID: Long; // 买挂牌委托单ID,必填
+            WRStandardID: number; // 现货商品ID,必填
+            WRFactorTypeID?: number; // 仓单要素类型ID,必填
+            ApplyQty: number; // 申请数量,必填,2位小数
+            ApplyPrice?: number; // 申请价格,必填,2位小数
+            LadingBillID: Long; // 提单ID,必填
+            SubNum: number; // 提单子单号,必填
+            ApplyRemark?: string; // 备注
+            ClientType: number; // 终端类型
+            ClientSerialNo: string; // 客户端流水号
+            MarketID: number; // 市场ID,必填
+        }
+
+        /** 钻石卖摘牌申请接口响应 */
+        interface ZSSellOrderDestingApplyRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账号
+            ApplyID: number; // 仓单贸易委托单ID
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石卖询价操作接口请求 */
+        interface ZSSellOrderDestingApplyOperateReq {
+            Header?: IMessageHead; // 消息头
+            UserID: number; // 用户ID,必填
+            AccountID: number; // 资金账号
+            SellDelistingApplyID: Long; // 卖摘牌申请ID,必填
+            AuditRemark?: string; // 备注
+            OperateType: number; // 操作类型,1:撤销2:拒绝
+            MarketID: number; // 市场ID,必填
+            ClientType: number; // 终端类型
+            OrderSrc: number; // 委托来源
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石卖询价操作接口应答 */
+        interface ZSSellOrderDestingApplyOperateRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账号
+            SellDelistingApplyID: number; // 卖摘牌申请ID
+            WRTradeOrderID: number; // 仓单贸易委托单ID
+            FreezeAmount: number; // 冻结货款
+            OrderTime: string; // 接收委托交易的时间
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 钻石挂牌撤单请求 */
+        interface WRListingCancelOrderReq {
+            Header?: IMessageHead; // 消息头
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账号
+            OldWRTradeOrderID: Long; // 目标仓单贸易委托单ID
+            OrderSrc: number; // 委托来源
+            ClientSerialNo: string; // 客户端流水号
+            ClientOrderTime: string; // 客户端委托时间
+            ClientType: number; // 终端类型
+            OperatorID: number; // 操作员账号ID
+            BuyOrSell: number; // 买卖方向
+            WRID?: number; // 仓单ID,卖的时候填写
+        }
+
+        /** 钻石挂牌撤单应答 */
+        interface WRListingCancelOrderRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            WRTradeCancelID: number; // 仓单贸易撤单号
+            OldWRTradeOrderID: number; // 目标仓单贸易委托单ID
+            UserID: number; // 用户ID
+            AccountID: number; // 资金账号
+            CancelQty: number; // 撤单数量
+            OrderTime: string; // 接受撤单的时间
+            ClientSerialNo: string; // 客户端流水号
+        }
+    }
+}