1
This commit is contained in:
parent
0dc27af2d1
commit
e3f3e42f69
Binary file not shown.
@ -1,71 +1,15 @@
|
||||
{
|
||||
"pages": {
|
||||
"/_not-found/page": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/chunks/app/_not-found/page-63dff3110725cc01.js"
|
||||
"/page": [
|
||||
"static/chunks/webpack.js",
|
||||
"static/chunks/main-app.js",
|
||||
"static/chunks/app/page.js"
|
||||
],
|
||||
"/layout": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/css/d058b374bc2164de.css",
|
||||
"static/chunks/733-a1f3d91858269b2e.js",
|
||||
"static/chunks/app/layout-97d28992dc357af9.js"
|
||||
],
|
||||
"/page": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/chunks/891-f6021cc9fb1f4075.js",
|
||||
"static/chunks/app/page-17e83ee269671b5a.js"
|
||||
],
|
||||
"/chat/page": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/chunks/app/chat/page-259ebe7c6b763203.js"
|
||||
],
|
||||
"/login/page": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/chunks/app/login/page-85bca09c6487284f.js"
|
||||
],
|
||||
"/recommendations/page": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/chunks/891-f6021cc9fb1f4075.js",
|
||||
"static/chunks/app/recommendations/page-80a26fb41740ab9e.js"
|
||||
],
|
||||
"/sectors/page": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/chunks/app/sectors/page-48689923560f4c85.js"
|
||||
],
|
||||
"/stock/[code]/page": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/chunks/app/stock/[code]/page-3a59c8e3fe1fa303.js"
|
||||
],
|
||||
"/users/page": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js",
|
||||
"static/chunks/app/users/page-42113a921614c709.js"
|
||||
"static/chunks/webpack.js",
|
||||
"static/chunks/main-app.js",
|
||||
"static/css/app/layout.css",
|
||||
"static/chunks/app/layout.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -1,32 +1,19 @@
|
||||
{
|
||||
"polyfillFiles": [
|
||||
"static/chunks/polyfills-42372ed130431b0a.js"
|
||||
"static/chunks/polyfills.js"
|
||||
],
|
||||
"devFiles": [],
|
||||
"ampDevFiles": [],
|
||||
"lowPriorityFiles": [
|
||||
"static/dWWzvd20BkDpBrtD733RH/_buildManifest.js",
|
||||
"static/dWWzvd20BkDpBrtD733RH/_ssgManifest.js"
|
||||
"static/development/_buildManifest.js",
|
||||
"static/development/_ssgManifest.js"
|
||||
],
|
||||
"rootMainFiles": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/fd9d1056-adfa616cc092a9a4.js",
|
||||
"static/chunks/117-ecf6156e4230cff0.js",
|
||||
"static/chunks/main-app-7d7e5d1021afd90c.js"
|
||||
"static/chunks/webpack.js",
|
||||
"static/chunks/main-app.js"
|
||||
],
|
||||
"pages": {
|
||||
"/_app": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/framework-f66176bb897dc684.js",
|
||||
"static/chunks/main-9c5f6b283127d940.js",
|
||||
"static/chunks/pages/_app-72b849fbd24ac258.js"
|
||||
],
|
||||
"/_error": [
|
||||
"static/chunks/webpack-76aa9cbbdedb6a49.js",
|
||||
"static/chunks/framework-f66176bb897dc684.js",
|
||||
"static/chunks/main-9c5f6b283127d940.js",
|
||||
"static/chunks/pages/_error-7ba65e1336b92748.js"
|
||||
]
|
||||
"/_app": []
|
||||
},
|
||||
"ampFirstPages": []
|
||||
}
|
||||
2
frontend/.next/cache/.tsbuildinfo
vendored
2
frontend/.next/cache/.tsbuildinfo
vendored
File diff suppressed because one or more lines are too long
@ -1,20 +1 @@
|
||||
{
|
||||
"components/capital-flow.tsx -> echarts": {
|
||||
"id": 9614,
|
||||
"files": [
|
||||
"static/chunks/614.2cf8795c6fba79f8.js"
|
||||
]
|
||||
},
|
||||
"components/kline-chart.tsx -> echarts": {
|
||||
"id": 9614,
|
||||
"files": [
|
||||
"static/chunks/614.2cf8795c6fba79f8.js"
|
||||
]
|
||||
},
|
||||
"components/score-radar.tsx -> echarts": {
|
||||
"id": 9614,
|
||||
"files": [
|
||||
"static/chunks/614.2cf8795c6fba79f8.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
{}
|
||||
@ -1,11 +1,3 @@
|
||||
{
|
||||
"/_not-found/page": "app/_not-found/page.js",
|
||||
"/page": "app/page.js",
|
||||
"/chat/page": "app/chat/page.js",
|
||||
"/api/chat/stream/route": "app/api/chat/stream/route.js",
|
||||
"/login/page": "app/login/page.js",
|
||||
"/recommendations/page": "app/recommendations/page.js",
|
||||
"/sectors/page": "app/sectors/page.js",
|
||||
"/stock/[code]/page": "app/stock/[code]/page.js",
|
||||
"/users/page": "app/users/page.js"
|
||||
"/page": "app/page.js"
|
||||
}
|
||||
@ -1 +1 @@
|
||||
self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]";
|
||||
self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]"
|
||||
@ -1 +1,21 @@
|
||||
self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-76aa9cbbdedb6a49.js","static/chunks/fd9d1056-adfa616cc092a9a4.js","static/chunks/117-ecf6156e4230cff0.js","static/chunks/main-app-7d7e5d1021afd90c.js"],pages:{"/_app":["static/chunks/webpack-76aa9cbbdedb6a49.js","static/chunks/framework-f66176bb897dc684.js","static/chunks/main-9c5f6b283127d940.js","static/chunks/pages/_app-72b849fbd24ac258.js"],"/_error":["static/chunks/webpack-76aa9cbbdedb6a49.js","static/chunks/framework-f66176bb897dc684.js","static/chunks/main-9c5f6b283127d940.js","static/chunks/pages/_error-7ba65e1336b92748.js"]},ampFirstPages:[]},self.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
||||
self.__BUILD_MANIFEST = {
|
||||
"polyfillFiles": [
|
||||
"static/chunks/polyfills.js"
|
||||
],
|
||||
"devFiles": [],
|
||||
"ampDevFiles": [],
|
||||
"lowPriorityFiles": [],
|
||||
"rootMainFiles": [
|
||||
"static/chunks/webpack.js",
|
||||
"static/chunks/main-app.js"
|
||||
],
|
||||
"pages": {
|
||||
"/_app": []
|
||||
},
|
||||
"ampFirstPages": []
|
||||
};
|
||||
self.__BUILD_MANIFEST.lowPriorityFiles = [
|
||||
"/static/" + process.env.__NEXT_BUILD_ID + "/_buildManifest.js",
|
||||
,"/static/" + process.env.__NEXT_BUILD_ID + "/_ssgManifest.js",
|
||||
|
||||
];
|
||||
@ -1 +1 @@
|
||||
self.__REACT_LOADABLE_MANIFEST='{"components/capital-flow.tsx -> echarts":{"id":9614,"files":["static/chunks/614.2cf8795c6fba79f8.js"]},"components/kline-chart.tsx -> echarts":{"id":9614,"files":["static/chunks/614.2cf8795c6fba79f8.js"]},"components/score-radar.tsx -> echarts":{"id":9614,"files":["static/chunks/614.2cf8795c6fba79f8.js"]}}';
|
||||
self.__REACT_LOADABLE_MANIFEST="{}"
|
||||
@ -1 +1 @@
|
||||
self.__NEXT_FONT_MANIFEST='{"pages":{},"app":{},"appUsingSizeAdjust":false,"pagesUsingSizeAdjust":false}';
|
||||
self.__NEXT_FONT_MANIFEST="{\"pages\":{},\"app\":{},\"appUsingSizeAdjust\":false,\"pagesUsingSizeAdjust\":false}"
|
||||
@ -1 +1 @@
|
||||
{"/_app":"pages/_app.js","/_error":"pages/_error.js","/_document":"pages/_document.js","/404":"pages/404.html"}
|
||||
{}
|
||||
@ -1 +1 @@
|
||||
self.__RSC_SERVER_MANIFEST="{\"node\":{},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
|
||||
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"\n}"
|
||||
@ -1 +1,5 @@
|
||||
{"node":{},"edge":{},"encryptionKey":"zQZTP4OVau3TMa/3EnbIENz7Y9ODeKQcCxekJfzqw4o="}
|
||||
{
|
||||
"node": {},
|
||||
"edge": {},
|
||||
"encryptionKey": "t8NqvDMYNuIMnc0JzSsolcrzKZh3QqUqStILpaN7mCE="
|
||||
}
|
||||
@ -1 +1,215 @@
|
||||
(()=>{"use strict";var e={},r={};function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}},u=!0;try{e[o](a,a.exports,t),u=!1}finally{u&&delete r[o]}return a.exports}t.m=e,t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},(()=>{var e,r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;t.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);t.r(a);var u={};e=e||[null,r({}),r([]),r(r)];for(var f=2&n&&o;"object"==typeof f&&!~e.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach(e=>u[e]=()=>o[e]);return u.default=()=>o,t.d(a,u),a}})(),t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>""+e+".js",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.X=(e,r,o)=>{var n=r;o||(r=e,o=()=>t(t.s=n)),r.map(t.e,t);var a=o();return void 0===a?e:a},(()=>{var e={658:1},r=r=>{var o=r.modules,n=r.ids,a=r.runtime;for(var u in o)t.o(o,u)&&(t.m[u]=o[u]);a&&a(t);for(var f=0;f<n.length;f++)e[n[f]]=1};t.f.require=(o,n)=>{e[o]||(658!=o?r(require("./chunks/"+t.u(o))):e[o]=1)},module.exports=t,t.C=r})()})();
|
||||
/*
|
||||
* ATTENTION: An "eval-source-map" devtool has been used.
|
||||
* This devtool is neither made for production nor for readable output files.
|
||||
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
||||
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
||||
* or disable the default devtool with "devtool: false".
|
||||
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
||||
*/
|
||||
/******/ (() => { // webpackBootstrap
|
||||
/******/ "use strict";
|
||||
/******/ var __webpack_modules__ = ({});
|
||||
/************************************************************************/
|
||||
/******/ // The module cache
|
||||
/******/ var __webpack_module_cache__ = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/ // Check if module is in cache
|
||||
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||||
/******/ if (cachedModule !== undefined) {
|
||||
/******/ return cachedModule.exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||||
/******/ id: moduleId,
|
||||
/******/ loaded: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ var threw = true;
|
||||
/******/ try {
|
||||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||
/******/ threw = false;
|
||||
/******/ } finally {
|
||||
/******/ if(threw) delete __webpack_module_cache__[moduleId];
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.loaded = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = __webpack_modules__;
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/ /* webpack/runtime/compat get default export */
|
||||
/******/ (() => {
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = (module) => {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ () => (module['default']) :
|
||||
/******/ () => (module);
|
||||
/******/ __webpack_require__.d(getter, { a: getter });
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/create fake namespace object */
|
||||
/******/ (() => {
|
||||
/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
|
||||
/******/ var leafPrototypes;
|
||||
/******/ // create a fake namespace object
|
||||
/******/ // mode & 1: value is a module id, require it
|
||||
/******/ // mode & 2: merge all properties of value into the ns
|
||||
/******/ // mode & 4: return value when already ns object
|
||||
/******/ // mode & 16: return value when it's Promise-like
|
||||
/******/ // mode & 8|1: behave like require
|
||||
/******/ __webpack_require__.t = function(value, mode) {
|
||||
/******/ if(mode & 1) value = this(value);
|
||||
/******/ if(mode & 8) return value;
|
||||
/******/ if(typeof value === 'object' && value) {
|
||||
/******/ if((mode & 4) && value.__esModule) return value;
|
||||
/******/ if((mode & 16) && typeof value.then === 'function') return value;
|
||||
/******/ }
|
||||
/******/ var ns = Object.create(null);
|
||||
/******/ __webpack_require__.r(ns);
|
||||
/******/ var def = {};
|
||||
/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
|
||||
/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
|
||||
/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
|
||||
/******/ }
|
||||
/******/ def['default'] = () => (value);
|
||||
/******/ __webpack_require__.d(ns, def);
|
||||
/******/ return ns;
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/define property getters */
|
||||
/******/ (() => {
|
||||
/******/ // define getter functions for harmony exports
|
||||
/******/ __webpack_require__.d = (exports, definition) => {
|
||||
/******/ for(var key in definition) {
|
||||
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
||||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/ensure chunk */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.f = {};
|
||||
/******/ // This file contains only the entry chunk.
|
||||
/******/ // The chunk loading function for additional chunks
|
||||
/******/ __webpack_require__.e = (chunkId) => {
|
||||
/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
|
||||
/******/ __webpack_require__.f[key](chunkId, promises);
|
||||
/******/ return promises;
|
||||
/******/ }, []));
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/get javascript chunk filename */
|
||||
/******/ (() => {
|
||||
/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
|
||||
/******/ __webpack_require__.u = (chunkId) => {
|
||||
/******/ // return url for filenames based on template
|
||||
/******/ return "" + chunkId + ".js";
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/getFullHash */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.h = () => ("d5fab7bdabc14f64")
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/make namespace object */
|
||||
/******/ (() => {
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = (exports) => {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/node module decorator */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.nmd = (module) => {
|
||||
/******/ module.paths = [];
|
||||
/******/ if (!module.children) module.children = [];
|
||||
/******/ return module;
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/startup entrypoint */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.X = (result, chunkIds, fn) => {
|
||||
/******/ // arguments: chunkIds, moduleId are deprecated
|
||||
/******/ var moduleId = chunkIds;
|
||||
/******/ if(!fn) chunkIds = result, fn = () => (__webpack_require__(__webpack_require__.s = moduleId));
|
||||
/******/ chunkIds.map(__webpack_require__.e, __webpack_require__)
|
||||
/******/ var r = fn();
|
||||
/******/ return r === undefined ? result : r;
|
||||
/******/ }
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/require chunk loading */
|
||||
/******/ (() => {
|
||||
/******/ // no baseURI
|
||||
/******/
|
||||
/******/ // object to store loaded chunks
|
||||
/******/ // "1" means "loaded", otherwise not loaded yet
|
||||
/******/ var installedChunks = {
|
||||
/******/ "webpack-runtime": 1
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // no on chunks loaded
|
||||
/******/
|
||||
/******/ var installChunk = (chunk) => {
|
||||
/******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
|
||||
/******/ for(var moduleId in moreModules) {
|
||||
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
|
||||
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ if(runtime) runtime(__webpack_require__);
|
||||
/******/ for(var i = 0; i < chunkIds.length; i++)
|
||||
/******/ installedChunks[chunkIds[i]] = 1;
|
||||
/******/
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // require() chunk loading for javascript
|
||||
/******/ __webpack_require__.f.require = (chunkId, promises) => {
|
||||
/******/ // "1" is the signal for "already loaded"
|
||||
/******/ if(!installedChunks[chunkId]) {
|
||||
/******/ if("webpack-runtime" != chunkId) {
|
||||
/******/ installChunk(require("./" + __webpack_require__.u(chunkId)));
|
||||
/******/ } else installedChunks[chunkId] = 1;
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ module.exports = __webpack_require__;
|
||||
/******/ __webpack_require__.C = installChunk;
|
||||
/******/
|
||||
/******/ // no HMR
|
||||
/******/
|
||||
/******/ // no HMR manifest
|
||||
/******/ })();
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/
|
||||
/******/
|
||||
/******/ })()
|
||||
;
|
||||
File diff suppressed because one or more lines are too long
@ -24,17 +24,17 @@ export default function MarketTemp({ data, indices }: MarketTempProps) {
|
||||
const hasMaxStreak = data.max_streak != null && data.max_streak > 0;
|
||||
|
||||
return (
|
||||
<div className="glass-card-static p-5 animate-fade-in-up">
|
||||
<div className="glass-card-static p-4 sm:p-5 animate-fade-in-up">
|
||||
{/* Header */}
|
||||
<div className="flex items-center justify-between mb-4">
|
||||
<div className="flex items-center justify-between mb-3 sm:mb-4">
|
||||
<h2 className="text-xs font-semibold text-text-muted uppercase tracking-wider">市场温度</h2>
|
||||
<span className="text-xs text-text-muted font-mono tabular-nums">{data.trade_date}</span>
|
||||
<span className="text-[10px] sm:text-xs text-text-muted font-mono tabular-nums">{data.trade_date}</span>
|
||||
</div>
|
||||
|
||||
{/* Top row: Gauge + Stats grid */}
|
||||
<div className="flex items-center gap-5 mb-4">
|
||||
<div className="flex items-center gap-3 sm:gap-5 mb-3 sm:mb-4">
|
||||
{/* Circular gauge */}
|
||||
<div className="relative w-24 h-24 flex-shrink-0">
|
||||
<div className="relative w-16 sm:w-20 md:w-24 h-16 sm:h-20 md:h-24 flex-shrink-0">
|
||||
<svg viewBox="0 0 100 100" className="w-full h-full -rotate-90">
|
||||
<defs>
|
||||
<linearGradient id="tempGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
@ -60,13 +60,13 @@ export default function MarketTemp({ data, indices }: MarketTempProps) {
|
||||
/>
|
||||
</svg>
|
||||
<div className="absolute inset-0 flex flex-col items-center justify-center">
|
||||
<span className="text-xl font-bold font-mono tabular-nums" style={{ color }}>{data.temperature}</span>
|
||||
<span className="text-xs text-text-muted font-medium mt-0.5">{label}</span>
|
||||
<span className="text-base sm:text-lg md:text-xl font-bold font-mono tabular-nums" style={{ color }}>{data.temperature}</span>
|
||||
<span className="text-[10px] sm:text-xs text-text-muted font-medium mt-0.5">{label}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Key stats grid 3x2 */}
|
||||
<div className="flex-1 grid grid-cols-3 gap-2">
|
||||
<div className="flex-1 grid grid-cols-3 gap-1.5 sm:gap-2">
|
||||
<StatCard label="涨停">
|
||||
<span className="text-red-400 font-mono tabular-nums font-semibold">{data.limit_up_count}</span>
|
||||
</StatCard>
|
||||
@ -94,26 +94,26 @@ export default function MarketTemp({ data, indices }: MarketTempProps) {
|
||||
|
||||
{/* Middle row: Broken rate + MA20 */}
|
||||
<div className="grid grid-cols-2 gap-2 mb-2">
|
||||
<div className="bg-surface-1 rounded-lg px-3 py-2 border border-border-subtle">
|
||||
<div className="text-xs text-text-muted mb-0.5">炸板率</div>
|
||||
<div className="bg-surface-1 rounded-lg px-2 sm:px-3 py-2 border border-border-subtle">
|
||||
<div className="text-[10px] sm:text-xs text-text-muted mb-0.5">炸板率</div>
|
||||
{hasBrokenRate ? (
|
||||
<div className="flex items-baseline gap-1">
|
||||
<span className="text-sm font-mono tabular-nums font-semibold text-amber-400">
|
||||
<span className="text-xs sm:text-sm font-mono tabular-nums font-semibold text-amber-400">
|
||||
{data.broken_rate!.toFixed(1)}%
|
||||
</span>
|
||||
{data.broken_rate! > 50 && (
|
||||
<span className="text-xs text-amber-500/60">偏高</span>
|
||||
<span className="text-[10px] sm:text-xs text-amber-500/60">偏高</span>
|
||||
)}
|
||||
</div>
|
||||
) : (
|
||||
<span className="text-sm text-text-muted/40">-</span>
|
||||
<span className="text-xs sm:text-sm text-text-muted/40">-</span>
|
||||
)}
|
||||
</div>
|
||||
<div className="bg-surface-1 rounded-lg px-3 py-2 border border-border-subtle">
|
||||
<div className="text-xs text-text-muted mb-0.5">上证均线</div>
|
||||
<div className="bg-surface-1 rounded-lg px-2 sm:px-3 py-2 border border-border-subtle">
|
||||
<div className="text-[10px] sm:text-xs text-text-muted mb-0.5">上证均线</div>
|
||||
<div className="flex items-center gap-1.5">
|
||||
<span className={`w-1.5 h-1.5 rounded-full ${data.index_above_ma20 ? "bg-red-400" : "bg-emerald-400"}`} />
|
||||
<span className={`text-sm font-semibold ${data.index_above_ma20 ? "text-red-400" : "text-emerald-400"}`}>
|
||||
<span className={`text-xs sm:text-sm font-semibold ${data.index_above_ma20 ? "text-red-400" : "text-emerald-400"}`}>
|
||||
{data.index_above_ma20 ? "均线之上" : "均线之下"}
|
||||
</span>
|
||||
</div>
|
||||
@ -124,17 +124,19 @@ export default function MarketTemp({ data, indices }: MarketTempProps) {
|
||||
{indices && indices.length > 0 && (
|
||||
<div className="grid grid-cols-3 gap-2">
|
||||
{indices.map((idx) => (
|
||||
<div key={idx.code} className="bg-surface-1 rounded-lg px-3 py-2 border border-border-subtle">
|
||||
<div className="text-xs text-text-muted mb-0.5">
|
||||
<div key={idx.code} className="bg-surface-1 rounded-lg px-2 sm:px-3 py-2 border border-border-subtle">
|
||||
<div className="text-[10px] sm:text-xs text-text-muted mb-0.5 truncate">
|
||||
{idx.name}
|
||||
{idx.realtime && <span className="text-emerald-400/60 ml-1">· 实时</span>}
|
||||
{idx.realtime && <span className="text-emerald-400/60 ml-0.5">·实时</span>}
|
||||
</div>
|
||||
<div className="flex flex-col sm:flex-row sm:items-baseline gap-0.5 sm:gap-1.5">
|
||||
<span className={`text-xs sm:text-sm font-mono tabular-nums font-semibold ${idx.pct_chg > 0 ? "text-red-400" : idx.pct_chg < 0 ? "text-emerald-400" : "text-text-primary"}`}>
|
||||
{idx.close.toFixed(2)}
|
||||
</span>
|
||||
<span className={`text-[10px] sm:text-xs font-mono tabular-nums ${idx.pct_chg > 0 ? "text-red-400" : idx.pct_chg < 0 ? "text-emerald-400" : "text-text-muted"}`}>
|
||||
{idx.pct_chg > 0 ? "+" : ""}{idx.pct_chg.toFixed(2)}%
|
||||
</span>
|
||||
</div>
|
||||
<span className={`text-sm font-mono tabular-nums font-semibold ${idx.pct_chg > 0 ? "text-red-400" : idx.pct_chg < 0 ? "text-emerald-400" : "text-text-primary"}`}>
|
||||
{idx.close.toFixed(2)}
|
||||
</span>
|
||||
<span className={`text-xs font-mono tabular-nums ml-1.5 ${idx.pct_chg > 0 ? "text-red-400" : idx.pct_chg < 0 ? "text-emerald-400" : "text-text-muted"}`}>
|
||||
{idx.pct_chg > 0 ? "+" : ""}{idx.pct_chg.toFixed(2)}%
|
||||
</span>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
@ -145,9 +147,9 @@ export default function MarketTemp({ data, indices }: MarketTempProps) {
|
||||
|
||||
function StatCard({ label, children }: { label: string; children: React.ReactNode }) {
|
||||
return (
|
||||
<div className="bg-surface-1 rounded-lg px-3 py-2 border border-border-subtle">
|
||||
<div className="text-xs text-text-muted mb-0.5 font-medium">{label}</div>
|
||||
<div className="text-sm">{children}</div>
|
||||
<div className="bg-surface-1 rounded-lg px-2 sm:px-3 py-1.5 sm:py-2 border border-border-subtle">
|
||||
<div className="text-[10px] sm:text-xs text-text-muted mb-0.5 font-medium">{label}</div>
|
||||
<div className="text-xs sm:text-sm">{children}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user