li.shaoyi 1 년 전
부모
커밋
122c762fa2

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

@@ -107,7 +107,7 @@ export function useLogin(persist = false) {
                     GUID: v4(),
                     LoginType: 0,
                     ClientType: payload.clientType,
-                    Version: '2.0.0.2'
+                    Version: '2.0.0.3'
                 })
                 // 首次登录是否强制修改密码
                 forcedPasswordChange = globalStore.getSystemInfo('forcedPasswordChange') && res.HasUpdatedPwd === 0

+ 4 - 2
src/packages/mobile/views/account/certification/Index.vue

@@ -9,7 +9,8 @@
                     :rules="formRules.username" />
                 <Field name="cardtype" label="证件类型" :rules="formRules.cardtype" is-link>
                     <template #input>
-                        <app-select v-model="formData.cardtype" placeholder="请选择证件类型" :options="getCerTypePersonList()" />
+                        <app-select v-model="formData.cardtype" placeholder="请选择证件类型"
+                            :options="getCerTypePersonList()" />
                     </template>
                 </Field>
                 <Field v-model="formData.cardnum" name="cardnum" label="证件号码" placeholder="请输入证件号码"
@@ -85,7 +86,7 @@ const formRules: { [key in keyof Model.AddAuthReq]?: FieldRule[] } = {
                 if (validateRules.cardno.validate(val)) {
                     if (getIdCardAge(val)) {
                         return '开户失败,您的年龄不符合开户要求'
-                    } 
+                    }
                     return true
                 }
                 return validateRules.cardno.message
@@ -115,6 +116,7 @@ const onSubmit = () => {
                 })
             }
         }).catch((err) => {
+            formData.cardnum = ''
             showFailToast(err)
         })
     })

+ 1 - 0
src/packages/nhgj/views/account/certification/Index.vue

@@ -139,6 +139,7 @@ const onCheckCardNum = () => {
                     router.back()
                 })
             }).catch((err) => {
+                formData.cardnum = ''
                 hideLoading(err, 'fail')
             })
         }).catch((err) => {

+ 2 - 5
src/packages/pc/views/market/trade/spot/index.vue

@@ -59,11 +59,8 @@ const tableColumns = shallowRef<Model.TableColumn[]>([
     { field: 'buyqty', label: '买量' },
 ])
 
-filterOptons.selectList = [
-    {
-        key: 'marketid',
-        options: [],
-    },
+filterOptons.inputList = [
+    { keys: ['dgitemname'], placeholder: '商品要素' }
 ]
 
 filterOptons.buttonList = [

+ 8 - 7
src/packages/sbyj/views/account/certification/Index.vue

@@ -5,17 +5,17 @@
         </template>
         <Form ref="formRef" class="g-form__container" @submit="onCheckCardNum" :loading="loading">
             <CellGroup inset>
-                <Field v-model="formData.username" name="username" label="姓名" placeholder="请输入用户姓名" :rules="formRules.username"
-                    :readonly="isReadonly" />
+                <Field v-model="formData.username" name="username" label="姓名" placeholder="请输入用户姓名"
+                    :rules="formRules.username" :readonly="isReadonly" />
                 <Field v-model="formData.mobile" name="mobile" readonly label="手机号码" />
                 <Field name="idCardType" label="证件类型" :rules="formRules.cardtype" is-link>
                     <template #input>
-                        <app-select v-model="formData.cardtype" placeholder="请选择证件类型"
-                            :options="getCerTypePersonList()" :readonly="isReadonly" />
+                        <app-select v-model="formData.cardtype" placeholder="请选择证件类型" :options="getCerTypePersonList()"
+                            :readonly="isReadonly" />
                     </template>
                 </Field>
-                <Field v-model="formData.cardnum" name="cardnum" label="证件号码" placeholder="请输入证件号码" :rules="formRules.cardnum"
-                    :readonly="isReadonly" />
+                <Field v-model="formData.cardnum" name="cardnum" label="证件号码" placeholder="请输入证件号码"
+                    :rules="formRules.cardnum" :readonly="isReadonly" />
                 <Field name="cardfrontphotourl" label="证件正面照片" :rules="formRules.cardfrontphotourl">
                     <template #input>
                         <Image fit="contain" :src="getFileUrl(formData.cardfrontphotourl)" width="100" height="100"
@@ -109,7 +109,7 @@ const formRules: { [key in keyof Model.AddAuthReq]?: FieldRule[] } = {
                 if (validateRules.cardno.validate(val)) {
                     if (getIdCardAge(val)) {
                         return '开户失败,您的年龄不符合开户要求'
-                    } 
+                    }
                     return true
                 }
                 return validateRules.cardno.message
@@ -139,6 +139,7 @@ const onCheckCardNum = () => {
                     router.back()
                 })
             }).catch((err) => {
+                formData.cardnum = ''
                 hideLoading(err, 'fail')
             })
         }).catch((err) => {

+ 1 - 0
src/packages/thj/views/account/certification/Index.vue

@@ -139,6 +139,7 @@ const onCheckCardNum = () => {
                     router.back()
                 })
             }).catch((err) => {
+                formData.cardnum = ''
                 hideLoading(err, 'fail')
             })
         }).catch((err) => {

+ 1 - 0
src/packages/tjmd/views/account/certification/Index.vue

@@ -139,6 +139,7 @@ const onCheckCardNum = () => {
                     router.back()
                 })
             }).catch((err) => {
+                formData.cardnum = ''
                 hideLoading(err, 'fail')
             })
         }).catch((err) => {

+ 30 - 25
src/services/bus/index.ts

@@ -1,18 +1,18 @@
 import { v4 } from 'uuid'
-import { EventKey, MessageEvent } from './types'
+import { EventKey, EventBus } from './types'
 
 /**
  * 事件总线
  */
 export default new (class {
-    private eventMap = new Map<string, MessageEvent>();
+    private events = new Map<string, EventBus>()
 
     /** 监听事件 */
-    $on(eventKey: EventKey | EventKey[], callback: MessageEvent['callback'], once = false) {
-        const uuid = v4();
-        const keys = Array.isArray(eventKey) ? eventKey : [eventKey];
+    $on(eventKey: EventKey | EventKey[], callback: EventBus['callback'], once = false) {
+        const uuid = v4()
+        const keys = Array.isArray(eventKey) ? eventKey : [eventKey]
 
-        this.eventMap.set(uuid, {
+        this.events.set(uuid, {
             keys,
             once,
             callback
@@ -21,35 +21,40 @@ export default new (class {
         /** 销毁事件,注意离开页面时要手动销毁当前页面订阅的事件,防止事件重复触发 */
         return {
             uuid,
-            cancel: () => this.eventMap.delete(uuid)
+            cancel: () => this.events.delete(uuid)
         }
     }
 
     /** 触发事件 */
     $emit(eventKey: EventKey, ...data: unknown[]) {
-        for (const [uuid, e] of this.eventMap.entries()) {
+        for (const [uuid, e] of this.events.entries()) {
             if (e.keys.includes(eventKey)) {
-                e.callback(...data);
-                e.once && this.eventMap.delete(uuid);
+                e.callback(...data)
+                e.once && this.events.delete(uuid)
             }
         }
     }
 
     /** 取消事件 */
-    $off(...eventkeys: EventKey[]) {
-        if (eventkeys.length) {
-            for (const [uuid, e] of this.eventMap.entries()) {
-                for (let i = e.keys.length - 1; i >= 0; i--) {
-                    if (eventkeys.includes(e.keys[i])) {
-                        e.keys.splice(i, 1);
-                    }
-                }
-                if (!e.keys.length) {
-                    this.eventMap.delete(uuid);
-                }
-            }
-        } else {
-            this.eventMap.clear();
+    $off(...eventKeys: EventKey[]) {  
+        const keySet = new Set(eventKeys)
+        const uuidsToDelete = new Set<string>()
+        
+        for (const [uuid, e] of this.events) {
+          // 使用 filter 方法来创建一个新的 keys 数组,只包含未被取消的事件键
+          const remainingKeys = e.keys.filter(key => !keySet.has(key))
+          if (remainingKeys.length === 0) {
+            // 如果没有剩余的事件键,则添加 UUID 到删除集合中
+            uuidsToDelete.add(uuid)
+          } else if (remainingKeys.length !== e.keys.length) {
+            // 如果事件键被部分取消,则更新事件的 keys 数组
+            this.events.set(uuid, { ...e, keys: remainingKeys })
+          }
         }
-    }
+        
+        // 在遍历完成后,删除需要删除的事件
+        for (const uuid of uuidsToDelete) {  
+          this.events.delete(uuid)
+        }
+      }
 })

+ 5 - 5
src/services/bus/types.ts

@@ -1,7 +1,7 @@
 /**
- * 消息名称
+ * 事件名称
  */
-export enum MessageName {
+export enum EventName {
     DocumentVisibilityStateNotify, // 窗口页面状态通知
     QuotePushNotify, // 行情推送通知
     QuoteServerStatusNotify, // 行情服务连接状态通知
@@ -23,12 +23,12 @@ export enum MessageName {
 /**
  * 事件key
  */
-export type EventKey = keyof typeof MessageName
+export type EventKey = keyof typeof EventName
 
 /**
- * 事件消息
+ * 事件总线
  */
-export interface MessageEvent {
+export interface EventBus {
     keys: EventKey[];
     once: boolean; // 是否只触发一次
     callback: (...data: unknown[]) => void;

+ 7 - 1
src/services/http/index.ts

@@ -26,8 +26,14 @@ export default new (class {
                 //addPending(config) //将当前请求添加到列表中
                 //设置请求头
                 if (globalStore.getSystemInfo('tradeChannel') === 'ws') {
+                    const key = 'dZChvstdjmqIt5fP'
+                    const timestamp = new Date().getTime()
+                    const verification = cryptojs.HmacSHA256(loginStore.token + timestamp, key)
+
                     config.headers = {
-                        Authorization: loginStore.token
+                        Authorization: loginStore.token,
+                        Timestamp: timestamp,
+                        Verification: verification.toString()
                     }
                 } else {
                     config.headers = {