li.shaoyi 8 月之前
父節點
當前提交
1d59980ec2

+ 4 - 1
src/packages/pc/views/investor/manage/user/components/login/log/index.vue

@@ -17,6 +17,7 @@
 import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { formatDate } from '@/filters'
+import { useEnum } from '@/hooks/enum'
 import { useRequest } from '@/hooks/request'
 import { queryLoginLog } from '@/services/api/investor'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
@@ -31,6 +32,8 @@ const props = defineProps({
     },
 })
 
+const clientTypeEnum = useEnum('clientType') // 终端类型
+
 const { global: { t } } = i18n
 const show = shallowRef(true)
 const refresh = shallowRef(false)
@@ -50,7 +53,7 @@ const tableColumns = shallowRef<Model.TableColumn[]>([
     { field: 'loginflowno', label: 'investor.manage.user.login.log.loginflowno' },
     { field: 'operatetime', label: 'investor.manage.user.login.log.operatetime', formatValue: (val) => formatDate(val) },
     { field: 'loginip', label: 'investor.manage.user.login.log.loginip' },
-    { field: 'clienttype', label: 'investor.manage.user.login.log.clienttype' },
+    { field: 'clienttype', label: 'investor.manage.user.login.log.clienttype', formatValue: (val) => clientTypeEnum.getEnumTypeName(val) },
     { field: 'softversion', label: 'investor.manage.user.login.log.softversion' },
     { field: 'loginretcode', label: 'investor.manage.user.login.log.loginretcode' },
     { field: 'funcode', label: 'investor.manage.user.login.log.funcode' },

+ 4 - 1
src/packages/pc/views/marketrun/monitor/user/index.vue

@@ -28,6 +28,7 @@
 import { shallowRef } from 'vue'
 import { ElMessage } from 'element-plus'
 import { formatDate } from '@/filters'
+import { useEnum } from '@/hooks/enum'
 import { useRequest } from '@/hooks/request'
 import { useDataFilter } from '@/hooks/datatable'
 import { useOperation } from '@/hooks/operation'
@@ -40,6 +41,8 @@ import { i18n } from '@/stores'
 
 const { global: { t } } = i18n
 
+const clientTypeEnum = useEnum('clientType') // 终端类型
+
 const { filterOptons, getQueryParams } = useDataFilter<Model.MarketRunUserLoginReq>()
 
 const { componentMap, componentId, record, openComponent, closeComponent, getActionButtons } = useOperation<Model.MarketRunUserLoginRsp>({
@@ -62,7 +65,7 @@ const tableColumns = shallowRef<Model.TableColumn[]>([
     { field: 'loginip', label: 'marketrun.monitor.user.loginip' },
     { field: 'loginport', label: 'marketrun.monitor.user.loginport' },
     { field: 'logintime', label: 'marketrun.monitor.user.logintime', formatValue: (val) => formatDate(val) },
-    { field: 'clienttype', label: 'marketrun.monitor.user.clienttype' },
+    { field: 'clienttype', label: 'marketrun.monitor.user.clienttype', formatValue: (val) => clientTypeEnum.getEnumTypeName(val) },
     { field: 'softversion', label: 'marketrun.monitor.user.softversion' },
     { field: 'areaname', label: 'marketrun.monitor.user.areaname' },
     { field: 'membername', label: 'marketrun.monitor.user.membername' },

+ 2 - 2
src/packages/pc/views/query/internal/offlinedelivery/index.vue

@@ -115,10 +115,10 @@ const handleOperateButtons = (row: Model.OfflineRsp) => {
 
     if (row.orderstatus === 2) {
         buttons.push('query_internal_offlinedelivery_confirm', 'query_internal_offlinedelivery_cancel')
-        if (row.buyorsell === BuyOrSell.Sell) {
+        if (row.buyorsell === BuyOrSell.Sell && row.trademode === 50) {
             buttons.push('query_internal_offlinedelivery_pay')
         }
-    } else if (row.orderstatus === 9) {
+    } else if (row.orderstatus === 9 && row.trademode === 50) {
         buttons.push('query_internal_offlinedelivery_pay')
     }
 

+ 21 - 17
src/packages/pc/views/query/internal/order/components/details/index.vue

@@ -1,8 +1,10 @@
 <!-- 查询管理-内部订单查询-委托单查询-详情 -->
 <template>
     <app-drawer :title="t('query.internal.order.details.title')" width="960" v-model:show="show">
-        <app-table-details :title="t('query.internal.order.details.subtitle1')" :data="data" :label-width="200" :cell-props="detailProps1" :column="2" />
-        <app-table-details :title="t('query.internal.order.details.subtitle2')" :data="data" :label-width="200" :cell-props="detailProps2" :column="2" />
+        <app-table-details :title="t('query.internal.order.details.subtitle1')" :data="data" :label-width="200"
+            :cell-props="detailProps1" :column="2" />
+        <app-table-details :title="t('query.internal.order.details.subtitle2')" :data="data" :label-width="200"
+            :cell-props="detailProps2" :column="2" />
         <template v-if="data && [7, 8, 9].includes(data.orderstatus)">
             <app-table :data="data.tradeHisResultList" :columns="tableColumns" v-if="record.isHis">
                 <template #headerLeft>
@@ -46,6 +48,8 @@ const { global: { t } } = i18n
 const show = shallowRef(true)
 const refresh = shallowRef(false)
 
+// 挂牌点选类型
+const listingselecttypeEnum = useEnum('listingselecttype')
 // 委托类型
 const buildtypeEnum = useEnum('buildtype')
 // 委托状态
@@ -69,7 +73,7 @@ const { data } = useRequest(queryCommissionSheetDetail, {
 })
 
 const detailProps1 = computed<CellProp[]>(() => {
-    const { trademode = 0, accountid, goodscode, cancelorderid, preorderid, relatedid, retcode } = data.value ?? {}
+    const { trademode = 0, accountid, goodscode, cancelorderid, preorderid, relatedid, retcode, tradeqty, openqty, closeqty, cancelqty } = data.value ?? {}
     const isTradeMode16 = trademode === 16
     const isTradeMode46 = trademode === 46
     const isTradeMode18Or26 = [18, 26].includes(trademode)
@@ -81,8 +85,8 @@ const detailProps1 = computed<CellProp[]>(() => {
         { prop: 'memberaccountname', label: 'query.internal.order.details.memberaccountname' },
         { prop: 'marketname', label: 'query.internal.order.details.marketname' },
         { prop: 'goodsname', label: 'query.internal.order.details.goodsname', formatValue: (val) => val && `${val}/${goodscode}` },
-        { prop: 'listingselecttype', label: 'query.internal.order.details.listingselecttype', show: isTradeMode16 },
-        { prop: 'delistingtype', label: 'query.internal.order.details.delistingtype', show: isTradeMode16 },
+        { prop: 'listingselecttype', label: 'query.internal.order.details.listingselecttype', formatValue: (val) => listingselecttypeEnum.getEnumTypeName(val), show: isTradeMode16 },
+        //{ prop: 'delistingtype', label: 'query.internal.order.details.delistingtype', show: isTradeMode16 },
         { prop: 'buildtype', label: 'query.internal.order.details.buildtype', formatValue: (val) => buildtypeEnum.getEnumTypeName(val) },
         { prop: 'buyorsell', label: 'query.internal.order.details.buyorsell', formatValue: (val) => getBuyOrSellName(val) },
         { prop: 'orderprice', label: 'query.internal.order.details.orderprice', show: !isTradeMode18Or26 },
@@ -90,10 +94,10 @@ const detailProps1 = computed<CellProp[]>(() => {
         { prop: 'orderprice', label: 'query.internal.order.details.orderprice1', show: isTradeMode18Or26 },
         { prop: 'premium', label: 'query.internal.order.details.premium', show: isTradeMode18Or26 },
         { prop: 'orderqty', label: 'query.internal.order.details.orderqty' },
-        { prop: 'tradeqty', label: 'query.internal.order.details.tradeqty' },
-        { prop: 'openqty', label: 'query.internal.order.details.openqty' },
-        { prop: 'closeqty', label: 'query.internal.order.details.closeqty' },
-        { prop: 'cancelqty', label: 'query.internal.order.details.cancelqty' },
+        { prop: 'tradeqty', label: 'query.internal.order.details.tradeqty', show: !!tradeqty },
+        { prop: 'openqty', label: 'query.internal.order.details.openqty', show: !!openqty },
+        { prop: 'closeqty', label: 'query.internal.order.details.closeqty', show: !!closeqty },
+        { prop: 'cancelqty', label: 'query.internal.order.details.cancelqty', show: !!cancelqty },
         { prop: 'pricemode', label: 'query.internal.order.details.pricemode', formatValue: (val) => Pricemode2Enum.getEnumTypeName(val), show: !isTradeMode18Or26 },
         { prop: 'validtype', label: 'query.internal.order.details.validtype', formatValue: (val) => ValidTypeEnum.getEnumTypeName(val), show: !isTradeMode18Or26 },
         { prop: 'validtime', label: 'query.internal.order.details.validtime', show: !isTradeMode18Or26 },
@@ -101,9 +105,9 @@ const detailProps1 = computed<CellProp[]>(() => {
         { prop: 'orderstatus', label: 'query.internal.order.details.orderstatus', formatValue: (val) => orderstatusEnum.getEnumTypeName(val) },
         { prop: 'ordertime', label: 'query.internal.order.details.ordertime', formatValue: (val) => formatDate(val) },
         { prop: 'clientticket', label: 'query.internal.order.details.clientticket' },
-        { prop: 'cancelorderid', label: 'query.internal.order.details.cancelorderid', show: !!cancelorderid },
-        { prop: 'preorderid', label: 'query.internal.order.details.preorderid', show: !!preorderid },
-        { prop: 'relatedid', label: 'query.internal.order.details.relatedid', show: !!relatedid },
+        { prop: 'cancelorderid', label: 'query.internal.order.details.cancelorderid', show: cancelorderid !== '0' },
+        { prop: 'preorderid', label: 'query.internal.order.details.preorderid', show: preorderid !== '0' },
+        { prop: 'relatedid', label: 'query.internal.order.details.relatedid', show: relatedid !== '0' },
         { prop: 'retcode', label: 'query.internal.order.details.retcode', show: !!retcode },
         { prop: 'refgoodsid', label: 'query.internal.order.details.refgoodsid', show: isTradeMode46 },
         { prop: 'swapdays', label: 'query.internal.order.details.swapdays', show: isTradeMode46 },
@@ -111,7 +115,7 @@ const detailProps1 = computed<CellProp[]>(() => {
 })
 
 const detailProps2 = computed<CellProp[]>(() => {
-    const { buildtype = 0, orderstatus = 0, marginalgorithm } = data.value ?? {}
+    const { buildtype = 0, orderstatus = 0, marginalgorithm, openfeealgorithm, closefeealgorithm } = data.value ?? {}
     const isBuildType1Or3 = [1, 3].includes(buildtype)
     const isBuildType2Or3 = [2, 3].includes(buildtype)
 
@@ -125,25 +129,25 @@ const detailProps2 = computed<CellProp[]>(() => {
         {
             prop: 'openexchagechargevalue',
             label: t('query.internal.order.details.openexchagechargevalue'),
-            formatValue: (val) => marginalgorithm ? marginalgorithm === 1 ? parseTenThousand(val) : val : '',
+            formatValue: (val) => openfeealgorithm ? openfeealgorithm === 1 ? parseTenThousand(val) : val : '',
             show: isBuildType1Or3
         },
         {
             prop: 'openmemberchargevalue',
             label: t('query.internal.order.details.openmemberchargevalue'),
-            formatValue: (val) => marginalgorithm ? marginalgorithm === 1 ? parseTenThousand(val) : val : '',
+            formatValue: (val) => openfeealgorithm ? openfeealgorithm === 1 ? parseTenThousand(val) : val : '',
             show: isBuildType1Or3
         },
         {
             prop: 'closeexchagechargevalue',
             label: t('query.internal.order.details.closeexchagechargevalue'),
-            formatValue: (val) => marginalgorithm ? marginalgorithm === 1 ? parseTenThousand(val) : val : '',
+            formatValue: (val) => closefeealgorithm ? closefeealgorithm === 1 ? parseTenThousand(val) : val : '',
             show: isBuildType2Or3
         },
         {
             prop: 'closememberchargevalue',
             label: t('query.internal.order.details.closememberchargevalue'),
-            formatValue: (val) => marginalgorithm ? marginalgorithm === 1 ? parseTenThousand(val) : val : '',
+            formatValue: (val) => closefeealgorithm ? closefeealgorithm === 1 ? parseTenThousand(val) : val : '',
             show: isBuildType2Or3
         },
     ]

+ 20 - 17
src/packages/pc/views/query/internal/trade/components/details/index.vue

@@ -1,8 +1,10 @@
 <!-- 查询管理-内部订单查询-成交单查询-详情 -->
 <template>
     <app-drawer :title="t('query.internal.trade.details.title')" width="960" v-model:show="show">
-        <app-table-details :title="t('query.internal.trade.details.subtitle1')" :data="data" :label-width="200" :cell-props="detailProps1" :column="2" />
-        <app-table-details :title="t('query.internal.trade.details.subtitle2')" :data="data" :label-width="200" :cell-props="detailProps2" :column="2" />
+        <app-table-details :title="t('query.internal.trade.details.subtitle1')" :data="data" :label-width="200"
+            :cell-props="detailProps1" :column="2" />
+        <app-table-details :title="t('query.internal.trade.details.subtitle2')" :data="data" :label-width="200"
+            :cell-props="detailProps2" :column="2" />
         <app-table :data="data.resultList" :columns="tableColumns" v-if="data?.buildtype === 2">
             <template #headerLeft>
                 <b>{{ t('query.internal.trade.details.subtitle3') }}</b>
@@ -86,7 +88,7 @@ const detailProps1 = computed<CellProp[]>(() => {
 })
 
 const detailProps2 = computed<CellProp[]>(() => {
-    const { trademode = 0, buildtype = 0, isconfirmexercise, openfeealgorithm, closefeealgorithm, closepl = 0, premium = 0, tradeqty = 0, buyorsell = 0 } = data.value ?? {}
+    const { trademode = 0, buildtype = 0, tradetype = 0, isconfirmexercise, openfeealgorithm, closefeealgorithm, closepl = 0, premium = 0, tradeqty = 0, buyorsell = 0 } = data.value ?? {}
     const isTradeMode18Or26 = [18, 26].includes(trademode)
     const result: CellProp[] = []
 
@@ -121,6 +123,21 @@ const detailProps2 = computed<CellProp[]>(() => {
                 show: isTradeMode18Or26
             },
         )
+        if (tradetype !== 3) {
+            result.push(
+                { prop: 'closecharge', label: 'query.internal.trade.details.closecharge' },
+                {
+                    prop: 'closeexchagechargevalue',
+                    label: 'query.internal.trade.details.closeexchagechargevalue',
+                    formatValue: (val) => closefeealgorithm ? closefeealgorithm === 1 ? parseTenThousand(val) : val : '',
+                },
+                {
+                    prop: 'closememberchargevalue',
+                    label: 'query.internal.trade.details.closememberchargevalue',
+                    formatValue: (val) => closefeealgorithm ? closefeealgorithm === 1 ? parseTenThousand(val) : val : '',
+                },
+            )
+        }
     }
 
     if (buildtype === 3) {
@@ -153,20 +170,6 @@ const detailProps2 = computed<CellProp[]>(() => {
                 formatValue: (val) => closefeealgorithm ? closefeealgorithm === 1 ? parseTenThousand(val) : val : '',
             },
         )
-    } else {
-        result.push(
-            { prop: 'closecharge', label: 'query.internal.trade.details.closecharge' },
-            {
-                prop: 'closeexchagechargevalue',
-                label: 'query.internal.trade.details.closeexchagechargevalue',
-                formatValue: (val) => closefeealgorithm ? closefeealgorithm === 1 ? parseTenThousand(val) : val : '',
-            },
-            {
-                prop: 'closememberchargevalue',
-                label: 'query.internal.trade.details.closememberchargevalue',
-                formatValue: (val) => closefeealgorithm ? closefeealgorithm === 1 ? parseTenThousand(val) : val : '',
-            },
-        )
     }
 
     return result

+ 4 - 3
src/types/model/order.d.ts

@@ -58,7 +58,7 @@ declare namespace Model {
         accountname: string;
         buildtype: number;// 委托类型
         buyorsell: number;// 方向
-        cancelorderid: number;// 撤单单号
+        cancelorderid: string;// 撤单单号
         cancelqty: number;// 撤单数量
         clientticket: number;// 客户端流水号
         closeexchagechargevalue: number;// 平仓交易所手续费设置值
@@ -94,10 +94,10 @@ declare namespace Model {
         ordertime: string; // 委托时间
         parentusername: string; // 所属机构
         premium: number;// 定货金
-        preorderid: number;// 关联预埋单号
+        preorderid: string;// 关联预埋单号
         pricemode: number;// 取价方式
         refgoodsid: number;// 参考商品
-        relatedid: number;// 关联单号
+        relatedid: string;// 关联单号
         retcode: number;// 错误码
         swapdays: number;// 掉期天数
         tradeHisResultList: {
@@ -1491,6 +1491,7 @@ declare namespace Model {
         orderstatusdisplay: string; // 交收状态
         reqtime: string; // 申请时间
         sucdeliveryqty: string; // 实际交收数量
+        trademode: number;
         username: string; // 申请人
     }