li.shaoyi vor 2 Jahren
Ursprung
Commit
9e5e1da5f2

+ 5 - 0
oem/qdhs/config/appconfig.json

@@ -0,0 +1,5 @@
+{
+  "version": "1.0.0",
+  "versionCode": "100000",
+  "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204"
+}

+ 7 - 0
src/packages/pc/assets/themes/default/default.less

@@ -157,6 +157,13 @@
             --el-disabled-border-color: var(--el-input-border-color);
         }
 
+        .el-checkbox {
+            --el-checkbox-text-color: #7a8a94;
+            --el-checkbox-checked-text-color: #3a87f7;
+            --el-checkbox-checked-bg-color: var(--el-checkbox-checked-text-color);
+            --el-checkbox-checked-input-border-color: var(--el-checkbox-checked-text-color);
+        }
+
         .el-radio {
             --el-radio-text-color: #7a8a94;
             --el-color-primary: #3a87f7;

+ 12 - 9
src/packages/pc/components/layouts/header/components/setting/index.vue

@@ -1,14 +1,8 @@
 <!-- 快捷设置 -->
 <template>
-    <app-drawer title="快捷设置" width="400" v-model:show="show">
-        <el-form ref="formRef" class="el-form--vertical" label-width="80px" :model="formData">
-            <el-form-item prop="orderFocusType" label="订单焦点">
-                <el-select placeholder="请选择" v-model="formData.orderFocusType">
-                    <el-option label="价格" :value="1" />
-                    <el-option label="数量" :value="2" />
-                </el-select>
-            </el-form-item>
-            <el-form-item prop="orderFocusType" label="价格类型">
+    <app-drawer title="快捷设置" width="420" v-model:show="show">
+        <el-form ref="formRef" class="el-form--vertical" label-width="120px" :model="formData">
+            <el-form-item prop="orderFocusType" label="下单价格类型">
                 <el-select placeholder="请选择" v-model="formData.orderPriceType">
                     <el-option label="现价" :value="1" />
                     <el-option label="对手价" :value="2" />
@@ -16,6 +10,15 @@
                     <el-option label="实时对手价" :value="4" />
                 </el-select>
             </el-form-item>
+            <el-form-item prop="orderFocusType" label="下单后默认焦点">
+                <el-select placeholder="请选择" v-model="formData.orderFocusType">
+                    <el-option label="价格" :value="1" />
+                    <el-option label="数量" :value="2" />
+                </el-select>
+            </el-form-item>
+            <el-form-item prop="orderQtyIsEmpty">
+                <el-checkbox v-model="formData.orderQtyIsEmpty" label="下单后清空数量" />
+            </el-form-item>
         </el-form>
         <template #footer>
             <el-button type="info" @click="resetSettings">恢复默认</el-button>

+ 4 - 2
src/packages/pc/views/market/trade/goods/list/listing/index.vue

@@ -193,8 +193,10 @@ const onSubmit = (buildType: number) => {
                 formData.BuildType = buildType
 
                 formSubmit().then(() => {
-                    formData.OrderQty = undefined
-                    qtyStep.value = 0
+                    if (settingStore.getSettingValue('orderQtyIsEmpty')) {
+                        formData.OrderQty = undefined
+                        qtyStep.value = 0
+                    }
                     ElMessage.success('挂牌成功')
                 }).catch((err) => {
                     ElMessage.error('挂牌失败:' + err)

+ 0 - 3
src/packages/qdhs/views/mine/Index.vue

@@ -62,9 +62,6 @@
                 <li @click="routerTo('order-delivery')">
                     <Iconfont label-direction="bottom" icon="icon-a-zu803">交货提货</Iconfont>
                 </li>
-                <li @click="routerTo('order-performance')">
-                    <Iconfont label-direction="bottom" icon="icon-a-zu802">履约信息</Iconfont>
-                </li>
             </ul>
         </app-block>
         <app-block class="g-navmenu">

+ 9 - 20
src/packages/qdhs/views/order/delivery/Index.vue

@@ -3,29 +3,18 @@
         <template #header>
             <app-navbar title="交收提货" />
         </template>
-        <Tabs class="van-tabs--list" v-model:active="active" :swipe-threshold="4">
-            <Tab title="线上交收单">
-                <component :is="componentMap.get('online')" />
-            </Tab>
-            <Tab title="线下交收单">
-                <component :is="componentMap.get('offline')" />
-            </Tab>
-            <Tab title="现货提货单">
-                <component :is="componentMap.get('spot')" />
-            </Tab>
-        </Tabs>
+        <component :is="components[0].component" />
     </app-view>
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, defineAsyncComponent } from 'vue'
-import { Tab, Tabs } from 'vant'
+import { defineAsyncComponent } from 'vue'
 
-const componentMap = new Map<string, unknown>([
-    ['online', defineAsyncComponent(() => import('@mobile/views/order/delivery/components/online/list/Index.vue'))], // 线上交收单
-    ['offline', defineAsyncComponent(() => import('@mobile/views/order/delivery/components/offline/list/Index.vue'))], // 线下交收单
-    ['spot', defineAsyncComponent(() => import('@mobile/views/order/delivery/components/spot/list/Index.vue'))], // 现货提货单
-])
-
-const active = shallowRef(0)
+const components = [
+    {
+        name: 'offline',
+        title: '线下交收单',
+        component: defineAsyncComponent(() => import('@mobile/views/order/delivery/components/offline/list/Index.vue')),
+    },
+]
 </script>

+ 0 - 18
src/packages/qdhs/views/order/list/Index.vue

@@ -38,24 +38,6 @@ const components = [
         title: '订单成交',
         component: defineAsyncComponent(() => import('@mobile/views/order/list/components/goodstrade/list/Index.vue')),
         history: defineAsyncComponent(() => import('@mobile/views/order/list/components/goodstrade/history/Index.vue')),
-    },
-    {
-        name: 'presale',
-        title: '预售认购',
-        component: defineAsyncComponent(() => import('@mobile/views/order/list/components/presale/list/Index.vue')),
-        history: defineAsyncComponent(() => import('@mobile/views/order/list/components/presale/history/index.vue')),
-    },
-    {
-        name: 'transferorder',
-        title: '转让委托',
-        component: defineAsyncComponent(() => import('@mobile/views/order/list/components/transferorder/list/Index.vue')),
-        history: defineAsyncComponent(() => import('@mobile/views/order/list/components/transferorder/history/index.vue')),
-    },
-    {
-        name: 'transfertrade',
-        title: '转让成交',
-        component: defineAsyncComponent(() => import('@mobile/views/order/list/components/transfertrade/list/Index.vue')),
-        history: defineAsyncComponent(() => import('@mobile/views/order/list/components/transfertrade/history/index.vue')),
     }
 ]
 

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

@@ -3,19 +3,12 @@
         <template #header>
             <app-navbar title="我的持仓" />
         </template>
-        <Tabs class="van-tabs--list" v-model:active="active" :swipe-threshold="4">
-            <template v-for="(item, index) in components" :key="index">
-                <Tab :title="item.title" :name="index">
-                    <component :is="item.component" />
-                </Tab>
-            </template>
-        </Tabs>
+        <component :is="components[0].component" />
     </app-view>
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, defineAsyncComponent } from 'vue'
-import { Tab, Tabs } from 'vant'
+import { defineAsyncComponent } from 'vue'
 
 const components = [
     {
@@ -23,17 +16,5 @@ const components = [
         title: '订单持仓',
         component: defineAsyncComponent(() => import('@mobile/views/order/position/components/goods/list/Index.vue')),
     },
-    {
-        name: 'presale',
-        title: '预售持仓',
-        component: defineAsyncComponent(() => import('@mobile/views/order/position/components/presale/list/Index.vue')),
-    },
-    {
-        name: 'transfer',
-        title: '转让持仓',
-        component: defineAsyncComponent(() => import('@mobile/views/order/position/components/transfer/list/Index.vue')),
-    },
 ]
-
-const active = shallowRef(0)
 </script>

+ 0 - 1
src/services/bus/types.ts

@@ -12,7 +12,6 @@ export enum EventCode {
     WRTradeDealedNtf, // 仓单贸易成交通知
     ListingOrderChangeNtf, // 挂牌委托变更广播通知
     OrderDealedNtf, // 成交通知
-    MarketStatusChangeNtf, // 市场状态变更通知
     OrderRsp, // 委托回应通知
     PosChangedNtf, // 头寸变化通知
 }

+ 16 - 12
src/services/websocket/trade.ts

@@ -14,18 +14,18 @@ export default new (class {
 
     constructor() {
         this.socket.onPush = (p) => {
-            const { funCode } = p
+            const { funCode, content } = p
             const delay = 500 // 延迟推送消息,防止短时间内重复请求
 
             switch (funCode) {
                 case FunCode.LogoutRsp: {
-                    console.log('接收到用户登出通知', funCode)
+                    //console.log('接收到用户登出通知', funCode)
                     // 用户登出通知
-                    eventBus.$emit('LogoutNotify', '网络错误')
+                    eventBus.$emit('LogoutNotify', '账号已登出')
                     break;
                 }
                 case FunCode.MoneyChangedNotify: {
-                    console.log('接收到资金变动通知', funCode)
+                    //console.log('接收到资金变动通知', funCode)
                     timerInterceptor.debounce(() => {
                         // 资金变动通知
                         eventBus.$emit('MoneyChangedNotify')
@@ -33,7 +33,7 @@ export default new (class {
                     break
                 }
                 case FunCode.OrderDealedNtf: {
-                    console.log('接收到成交通知', funCode)
+                    //console.log('接收到成交通知', funCode)
                     timerInterceptor.debounce(() => {
                         // 成交通知
                         eventBus.$emit('OrderDealedNtf')
@@ -41,15 +41,19 @@ export default new (class {
                     break
                 }
                 case FunCode.MarketStatusChangeNtf: {
-                    console.log('接收到市场状态变更通知', funCode)
-                    timerInterceptor.debounce(() => {
-                        // 市场状态变更通知
-                        eventBus.$emit('MarketStatusChangeNtf')
-                    }, delay, funCode.toString())
+                    //console.log('接收到市场状态变更通知', funCode)
+                    if (content) {
+                        const res = new TextDecoder().decode(content)
+                        const { Status } = JSON.parse(res)
+                        if ([1, 23].includes(Status)) {
+                            // 用户登出通知
+                            eventBus.$emit('LogoutNotify', '系统结算,请稍后重新登录')
+                        }
+                    }
                     break
                 }
                 case FunCode.ListingOrderChangeNtf: {
-                    console.log('接收到挂牌委托变更广播通知', funCode)
+                    //console.log('接收到挂牌委托变更广播通知', funCode)
                     timerInterceptor.debounce(() => {
                         // 挂牌委托变更广播通知
                         eventBus.$emit('ListingOrderChangeNtf');
@@ -57,7 +61,7 @@ export default new (class {
                     break;
                 }
                 case FunCode.PosChangedNtf: {
-                    console.log('接收到头寸变化通知', funCode)
+                    //console.log('接收到头寸变化通知', funCode)
                     timerInterceptor.debounce(() => {
                         // 头寸变化通知
                         eventBus.$emit('PosChangedNtf');

+ 1 - 0
src/stores/modules/setting.ts

@@ -19,6 +19,7 @@ export const useSettingStore = defineStore(() => {
         showOrderFailDialog: false,
         orderFocusType: 1,
         orderPriceType: 1,
+        orderQtyIsEmpty: false
     }))
 
     // 获取设置项值

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

@@ -332,6 +332,7 @@ declare global {
             showOrderFailDialog: boolean; // 挂/摘牌失败使用对话框提示
             orderFocusType: number; // 下单后默认焦点对象,1=价格,2=数量
             orderPriceType: number; // 下单默认价格类型,1=现价,2=对手价,3=实时价,4=实时对手价
+            orderQtyIsEmpty: boolean; // 下单后是否清空数量输入框
         }
     }
 }