li.shaoyi 1 jaar geleden
bovenliggende
commit
5c9887f915

+ 172 - 172
app/package-lock.json

@@ -1,172 +1,172 @@
-{
-  "name": "muchinfo",
-  "version": "1.0.0",
-  "lockfileVersion": 3,
-  "requires": true,
-  "packages": {
-    "": {
-      "name": "muchinfo",
-      "version": "1.0.0",
-      "dependencies": {
-        "electron-updater": "^6.1.4",
-        "js-yaml": "^4.1.0"
-      }
-    },
-    "node_modules/argparse": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
-      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
-    },
-    "node_modules/builder-util-runtime": {
-      "version": "9.2.1",
-      "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.1.tgz",
-      "integrity": "sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA==",
-      "dependencies": {
-        "debug": "^4.3.4",
-        "sax": "^1.2.4"
-      },
-      "engines": {
-        "node": ">=12.0.0"
-      }
-    },
-    "node_modules/debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-      "dependencies": {
-        "ms": "2.1.2"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "peerDependenciesMeta": {
-        "supports-color": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/electron-updater": {
-      "version": "6.1.4",
-      "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.4.tgz",
-      "integrity": "sha512-yYAJc6RQjjV4WtInZVn+ZcLyXRhbVXoomKEfUUwDqIk5s2wxzLhWaor7lrNgxODyODhipjg4SVPMhJHi5EnsCA==",
-      "dependencies": {
-        "builder-util-runtime": "9.2.1",
-        "fs-extra": "^10.1.0",
-        "js-yaml": "^4.1.0",
-        "lazy-val": "^1.0.5",
-        "lodash.escaperegexp": "^4.1.2",
-        "lodash.isequal": "^4.5.0",
-        "semver": "^7.3.8",
-        "tiny-typed-emitter": "^2.1.0"
-      }
-    },
-    "node_modules/fs-extra": {
-      "version": "10.1.0",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
-      "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
-      "dependencies": {
-        "graceful-fs": "^4.2.0",
-        "jsonfile": "^6.0.1",
-        "universalify": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/graceful-fs": {
-      "version": "4.2.11",
-      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
-      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
-    },
-    "node_modules/js-yaml": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
-      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-      "dependencies": {
-        "argparse": "^2.0.1"
-      },
-      "bin": {
-        "js-yaml": "bin/js-yaml.js"
-      }
-    },
-    "node_modules/jsonfile": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
-      "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
-      "dependencies": {
-        "universalify": "^2.0.0"
-      },
-      "optionalDependencies": {
-        "graceful-fs": "^4.1.6"
-      }
-    },
-    "node_modules/lazy-val": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz",
-      "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q=="
-    },
-    "node_modules/lodash.escaperegexp": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
-      "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
-    },
-    "node_modules/lodash.isequal": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
-      "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
-    },
-    "node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/ms": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-    },
-    "node_modules/sax": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
-      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
-    },
-    "node_modules/semver": {
-      "version": "7.5.4",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
-      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/tiny-typed-emitter": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz",
-      "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA=="
-    },
-    "node_modules/universalify": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
-      "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
-      "engines": {
-        "node": ">= 10.0.0"
-      }
-    },
-    "node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-    }
-  }
-}
+{
+  "name": "trading",
+  "version": "1.0.8",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "trading",
+      "version": "1.0.8",
+      "dependencies": {
+        "electron-updater": "^6.1.4",
+        "js-yaml": "^4.1.0"
+      }
+    },
+    "node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+    },
+    "node_modules/builder-util-runtime": {
+      "version": "9.2.1",
+      "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.1.tgz",
+      "integrity": "sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA==",
+      "dependencies": {
+        "debug": "^4.3.4",
+        "sax": "^1.2.4"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/electron-updater": {
+      "version": "6.1.4",
+      "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.4.tgz",
+      "integrity": "sha512-yYAJc6RQjjV4WtInZVn+ZcLyXRhbVXoomKEfUUwDqIk5s2wxzLhWaor7lrNgxODyODhipjg4SVPMhJHi5EnsCA==",
+      "dependencies": {
+        "builder-util-runtime": "9.2.1",
+        "fs-extra": "^10.1.0",
+        "js-yaml": "^4.1.0",
+        "lazy-val": "^1.0.5",
+        "lodash.escaperegexp": "^4.1.2",
+        "lodash.isequal": "^4.5.0",
+        "semver": "^7.3.8",
+        "tiny-typed-emitter": "^2.1.0"
+      }
+    },
+    "node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+      "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+    },
+    "node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/jsonfile": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+      "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+      "dependencies": {
+        "universalify": "^2.0.0"
+      },
+      "optionalDependencies": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "node_modules/lazy-val": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz",
+      "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q=="
+    },
+    "node_modules/lodash.escaperegexp": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+      "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
+    },
+    "node_modules/lodash.isequal": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+      "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+    },
+    "node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+    },
+    "node_modules/sax": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+    },
+    "node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/tiny-typed-emitter": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz",
+      "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA=="
+    },
+    "node_modules/universalify": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+      "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+      "engines": {
+        "node": ">= 10.0.0"
+      }
+    },
+    "node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+    }
+  }
+}

+ 2 - 2
app/package.json

@@ -1,6 +1,6 @@
 {
-  "name": "trading-beta",
-  "version": "1.0.12",
+  "name": "trading",
+  "version": "1.0.8",
   "main": "main.js",
   "dependencies": {
     "electron-updater": "^6.1.4",

+ 18 - 18
public/config/appconfig.json

@@ -1,19 +1,19 @@
-{
-  "appId": "cn.muchinfo.demo",
-  "appName": "多元世纪",
-  "appTitle": "多元世纪交易中心",
-  "version": "1.0.8",
-  "versionCode": "10008",
-  "apiUrl": "http://192.168.31.158:16240/cfg?key=dev_104",
-  "tradeChannel": "ws",
-  "modules": [
-    "register",
-    "delivery"
-  ],
-  "slogan": "app.title",
-  "quotationPropertys": [
-    "totalvolume",
-    "holdvolume"
-  ],
-  "forcedPasswordChange": false
+{
+  "appId": "cn.muchinfo.demo",
+  "appName": "多元世纪交易中心",
+  "appTitle": "多元世纪交易中心",
+  "version": "1.0.8",
+  "versionCode": "10008",
+  "apiUrl": "http://192.168.31.158:16240/cfg?key=dev_104",
+  "tradeChannel": "ws",
+  "modules": [
+    "register",
+    "delivery"
+  ],
+  "slogan": "app.title",
+  "quotationPropertys": [
+    "totalvolume",
+    "holdvolume"
+  ],
+  "forcedPasswordChange": false
 }

+ 4 - 6
src/components/base/slider-verify/index.vue

@@ -4,7 +4,6 @@
 
 <script setup>
 import { ref, reactive, watch, nextTick } from 'vue'
-import { i18n } from "@/stores"
 
 const props = defineProps({
     // 是否开启服务端验证 
@@ -67,11 +66,10 @@ const props = defineProps({
         default: '#ee0a24'
     },
 
-
     // 验证中提示
     testTip: {
         type: String,
-        default: i18n.global.t('slider.testTip')
+        default: 'Loading'
     },
 
     // 滑块背景色颜色
@@ -83,7 +81,7 @@ const props = defineProps({
     // 滑块背景色颜色
     tipTxt: {
         type: String,
-        default: i18n.global.t('slider.tipTxt')
+        default: '>>>>>'
     },
 
     // 验证通过背景色
@@ -115,13 +113,13 @@ const props = defineProps({
     // 验证成功文字提示
     successTip: {
         type: String,
-        default: i18n.global.t('slider.successTip')
+        default: 'OK'
     },
 
     // 验证失败文字提示
     failTip: {
         type: String,
-        default: i18n.global.t('slider.failTip')
+        default: 'Fail'
     },
 
     // 文本大小

+ 22 - 13
src/packages/pc/components/modules/hqchart/candlestick/index.vue

@@ -76,6 +76,15 @@ const period = computed(() => {
     }
 })
 
+// 创建窗口指标
+const createWindowsIndex = (Index: string) => ({
+    Index,
+    Change: false,
+    Modify: false,
+    Close: false,
+    FloatPrecision: goods.value?.decimalplace
+})
+
 // https://blog.csdn.net/jones2000/article/details/90272733
 const chartOption = {
     Symbol: props.symbol,
@@ -84,9 +93,7 @@ const chartOption = {
     IsApiPeriod: true, // 每次切换周期请求接口数据
     NetworkFilter: (data: NetworkFilterData, callback: NetworkFilterCallback) => networkFilter(data, callback),
     // https://blog.csdn.net/jones2000/article/details/102928907
-    Windows: [
-        { Index: 'MA', Change: false, Close: false, FloatPrecision: goods.value?.decimalplace }
-    ],
+    Windows: [createWindowsIndex('MA')],
     IsCorssOnlyDrawKLine: true,  // 十字光标只能在K线上
     IsShowCorssCursorInfo: true,
     // https://blog.csdn.net/jones2000/article/details/97682466
@@ -201,15 +208,15 @@ const customHistoryDataStringFormat = () => {
             this.Height = 165
             this.Text = `<dl class="app-hqchart-tooltip">`
             this.Text += `<dt><span>${FormatDateString(Date)}</span>${Time ? '<span>' + FormatTimeString(Time) + '</span>' : ''}</dt>`
-            this.Text += `<dd><span>开盘:</span><span class="${handlePriceColor(Open, yclose || Open)}">${handleNumberValue(Open?.toFixed(decimalplace))}</span></dd>`
-            this.Text += `<dd><span>最高:</span><span class="${handlePriceColor(High, yclose || High)}">${handleNumberValue(High?.toFixed(decimalplace))}</span></dd>`
-            this.Text += `<dd><span>最低:</span><span class="${handlePriceColor(Low, yclose || Low)}">${handleNumberValue(Low?.toFixed(decimalplace))}</span></dd>`
-            this.Text += `<dd><span>收盘:</span><span class="${handlePriceColor(Close, yclose || Close)}">${handleNumberValue(Close?.toFixed(decimalplace))}</span></dd>`
-            this.Text += `<dd><span>涨跌:</span><span class="${handlePriceColor(rise)}">${rise.toFixed(decimalplace)}</span></dd>`
-            this.Text += `<dd><span>幅度:</span><span class="${handlePriceColor(increase)}">${parsePercent(increase)}</span></dd>`
+            this.Text += `<dd><span>Open:</span><span class="${handlePriceColor(Open, yclose || Open)}">${handleNumberValue(Open?.toFixed(decimalplace))}</span></dd>`
+            this.Text += `<dd><span>High:</span><span class="${handlePriceColor(High, yclose || High)}">${handleNumberValue(High?.toFixed(decimalplace))}</span></dd>`
+            this.Text += `<dd><span>Low:</span><span class="${handlePriceColor(Low, yclose || Low)}">${handleNumberValue(Low?.toFixed(decimalplace))}</span></dd>`
+            this.Text += `<dd><span>Close:</span><span class="${handlePriceColor(Close, yclose || Close)}">${handleNumberValue(Close?.toFixed(decimalplace))}</span></dd>`
+            this.Text += `<dd><span>CH:</span><span class="${handlePriceColor(rise)}">${rise.toFixed(decimalplace)}</span></dd>`
+            this.Text += `<dd><span>%CH:</span><span class="${handlePriceColor(increase)}">${parsePercent(increase)}</span></dd>`
             if (goods.value?.trademode !== 99) {
-                this.Text += `<dd><span>数量:</span><span>${changeUnit(Vol)}</span></dd>`
-                this.Text += `<dd><span>金额:</span><span>${changeUnit(Amount)}</span></dd>`
+                this.Text += `<dd><span>Volume:</span><span>${changeUnit(Vol)}</span></dd>`
+                this.Text += `<dd><span>Amount:</span><span>${changeUnit(Amount)}</span></dd>`
                 this.Height = 210
             }
             this.Text += `</dd>`
@@ -228,10 +235,12 @@ const changeIndex = (index: number) => {
 const onReady = (chart: unknown) => {
     if (props.showIndex) {
         if (goods.value?.trademode === 99) {
-            chartOption.Windows.push({ Index: 'MACD', Change: true, Close: false })
+            const windowsIndex = createWindowsIndex('MACD')
+            chartOption.Windows.push(windowsIndex)
         } else {
+            const windowsIndex = createWindowsIndex('VOL')
+            chartOption.Windows.push(windowsIndex)
             tabs.unshift({ label: 'VOL', value: 'VOL' })
-            chartOption.Windows.push({ Index: 'VOL', Change: true, Close: false })
         }
     }
     Chart.JSChart.GetDivTooltipDataFormat().DataMap.set('HistoryDataStringFormat', {

+ 7 - 0
src/packages/pc/views/auth/components/layout/index.less

@@ -22,6 +22,7 @@
         }
 
         .right {
+            position: relative;
             display: flex;
             flex-direction: column;
             width: 420px;
@@ -32,6 +33,12 @@
                 text-align: right;
             }
 
+            &-lang {
+                position: absolute;
+                right: 20px;
+                top: 15px;
+            }
+
             &-logo {
                 text-align: center;
                 margin-bottom: 50px;

+ 34 - 32
src/packages/pc/views/auth/components/layout/index.vue

@@ -5,15 +5,17 @@
         <pre>{{ i18n.global.t('app.slogan') }}</pre>
       </div>
       <div class="right">
-        <el-dropdown @command="changeLuanguage">
-          {{ luanguage }}
-          <el-icon class="el-icon--right">
-            <arrow-down />
-          </el-icon>
+        <el-dropdown class="right-lang" @command="changeLuanguage">
+          <div style="cursor: pointer;">
+            <span>{{ luanguage }}</span>
+            <AppIcon icon="CaretBottom" />
+          </div>
           <template #dropdown>
             <el-dropdown-menu>
-            <el-dropdown-item  v-for="item in dataList" :key="item.langcode" :command="item.langcode">{{ item.langname }}</el-dropdown-item>
-          </el-dropdown-menu>
+              <el-dropdown-item v-for="item in dataList" :key="item.langcode" :command="item.langcode">
+                {{ item.langname }}
+              </el-dropdown-item>
+            </el-dropdown-menu>
           </template>
         </el-dropdown>
         <div class="right-logo">
@@ -24,7 +26,7 @@
           <slot></slot>
         </div>
       </div>
-      
+
     </div>
     <div class="sign-layout__footer">
       <span>v1.0.{{ version }}</span>
@@ -38,9 +40,9 @@ import { i18n } from '@/stores'
 import { useRequest } from '@/hooks/request'
 import { getI18nConfigs } from '@/services/api/common'
 import { localData } from '@/stores/storage'
-import { ArrowDown } from '@element-plus/icons-vue'
 import service from '@/services'
 import eventBus from '@/services/bus'
+import AppIcon from '@pc/components/base/icon/index.vue'
 
 defineProps({
   title: {
@@ -57,37 +59,37 @@ const { dataList, run } = useRequest(getI18nConfigs, {
 })
 
 const luanguage = computed(() => {
-    switch (i18n.global.locale) {
-        case 'zh-CN':
-            return '简体中文'
-        case 'en-US':
-            return 'English'
-        case 'zh-TW':
-            return '繁體中文'
-        default:
-            return 'ภาษาไทย'
-    }
+  switch (i18n.global.locale) {
+    case 'zh-CN':
+      return '简体中文'
+    case 'en-US':
+      return 'English'
+    case 'zh-TW':
+      return '繁體中文'
+    default:
+      return 'ภาษาไทย'
+  }
 })
 
 const changeLuanguage = (e: string) => {
   switch (e) {
     case 'zh-CN':
-        i18n.global.locale = 'zh-CN'
-        break;
+      i18n.global.locale = 'zh-CN'
+      break;
     case 'en':
-        i18n.global.locale = 'en-US'
-        break;
+      i18n.global.locale = 'en-US'
+      break;
     case 'zh-TW':
-        i18n.global.locale ='zh-TW'
-        break;
+      i18n.global.locale = 'zh-TW'
+      break;
     default:
-        i18n.global.locale = 'th'
-        break;
-    }
-    /// 设置语言
-    localData.setValue('appLanguage', i18n.global.locale)
-    /// 重新登出
-    eventBus.$emit('LogoutNotify')
+      i18n.global.locale = 'th'
+      break;
+  }
+  /// 设置语言
+  localData.setValue('appLanguage', i18n.global.locale)
+  /// 重新登出
+  eventBus.$emit('LogoutNotify')
 }
 
 service.onReady().then(() => {

+ 10 - 13
src/packages/quote/views/quote/index.vue

@@ -8,8 +8,8 @@
                 <span>
                     {{ serverTime?.format('YYYY/MM/DD HH:mm:ss') }}
                 </span>
-                <span v-if="market">
-                    {{ [2, 6].includes(market.runstatus) ? getRunStatusName(market.runstatus) : '未开盘' }}
+                <span v-if="marketInfo">
+                    {{ [2, 6].includes(marketInfo.runstatus) ? getRunStatusName(marketInfo.runstatus) : '未开盘' }}
                 </span>
             </div>
         </div>
@@ -94,6 +94,7 @@ const serverTime = ref<Moment>()
 
 service.onReady().then(() => {
     enumStore.getAllEnumList()
+    marketRun()
 
     // 获取游客商品列表
     queryTouristGoods().then((res) => {
@@ -112,14 +113,6 @@ service.onReady().then(() => {
             })
             subscribe.start(...subscribeData.value)
 
-            const [firstMarket] = touristTradeGoodsList.value
-            if (firstMarket) {
-                /// 获取市场运行情况
-                marketRun({
-                    marketID: firstMarket.marketid
-                })
-            }
-
             nextTick(() => autoHeight())
         })
     })
@@ -138,15 +131,19 @@ service.onReady().then(() => {
     checkServerTime()
 })
 
-const { data: market, run: marketRun } = useRequest(queryMarketRun, {
+const { dataList: marketList, run: marketRun } = useRequest(queryMarketRun, {
     manual: true,
-    onSuccess: (res) => {
-        market.value = res.data[0]
+    onSuccess: () => {
         // 每1分钟轮询刷新
         timerTask.setTimeout(() => marketRun(), 60 * 1000, 'getMarketRun')
     }
 })
 
+// 市场信息
+const marketInfo = computed(() => {
+    const [firstMarket] = touristTradeGoodsList.value
+    return marketList.value.find((e) => e.marketid === firstMarket?.marketid)
+})
 
 // 构建游客交易商品
 const touristTradeGoodsList = computed(() => {

+ 4 - 3
src/packages/sbyj/views/market/list/index.vue

@@ -7,8 +7,8 @@
                 <span>
                     {{ serverTime?.format('YYYY/MM/DD HH:mm:ss') }}
                 </span>
-                <span v-if="market">
-                    {{ [2, 6].includes(market.runstatus) ? getRunStatusName(market.runstatus) : '未开盘' }}
+                <span v-if="marketInfo">
+                    {{ [2, 6].includes(marketInfo.runstatus) ? getRunStatusName(marketInfo.runstatus) : '未开盘' }}
                 </span>
             </div>
         </template>
@@ -138,7 +138,8 @@ const { dataList: marketList, run: marketRun } = useRequest(queryMarketRun, {
     }
 })
 
-const market = computed(() => {
+// 市场信息
+const marketInfo = computed(() => {
     const [firstMarket] = touristTradeGoodsList.value
     return marketList.value.find((e) => e.marketid === firstMarket?.marketid)
 })