From a191ee0f495760168aa776590793e72c9ecbda0d Mon Sep 17 00:00:00 2001
From: 刘嘉威 <daidaibg@163.com>
Date: 星期一, 24 十月 2022 15:56:08 +0800
Subject: [PATCH] perf: 增加设置弹窗 可设置是否进行自适应

---
 src/views/HomeView.vue                       |   13 +
 /dev/null                                    |   12 -
 src/views/setting.vue                        |  101 +++++++++++++
 package-lock.json                            |  159 +++++++++++-----------
 components.d.ts                              |    4 
 src/components/scale-screen/scale-screen.vue |   51 ++++++-
 package.json                                 |   10 
 src/views/header.vue                         |   24 ++-
 src/assets/img/headers/setting.png           |    0 
 src/stores/index.ts                          |    1 
 src/stores/setting/setting.ts                |   28 ++++
 11 files changed, 282 insertions(+), 121 deletions(-)

diff --git a/components.d.ts b/components.d.ts
index fe6213f..54829db 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -8,6 +8,10 @@
 declare module '@vue/runtime-core' {
   export interface GlobalComponents {
     CountUp: typeof import('./src/components/count-up/count-up.vue')['default']
+    ElButton: typeof import('element-plus/es')['ElButton']
+    ElDrawer: typeof import('element-plus/es')['ElDrawer']
+    ElRadio: typeof import('element-plus/es')['ElRadio']
+    ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
     ItemWrap: typeof import('./src/components/item-wrap/item-wrap.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
diff --git a/package-lock.json b/package-lock.json
index 436dd41..7341b77 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -113,9 +113,9 @@
       "dev": true
     },
     "@types/node": {
-      "version": "18.8.0",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz",
-      "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==",
+      "version": "18.11.4",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.4.tgz",
+      "integrity": "sha512-BxcJpBu8D3kv/GZkx/gSMz6VnTJREBj/4lbzYOQueUOELkt8WrO6zAcSPmp9uRPEW/d+lUO8QK0W2xnS1hEU0A==",
       "dev": true
     },
     "@types/web-bluetooth": {
@@ -130,42 +130,42 @@
       "dev": true
     },
     "@volar/language-core": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.8.tgz",
-      "integrity": "sha512-uxYSOqBk8ZFSzGjUIPOBEFPOg8F3CE6cLO5meK95DODGIlUlPytGiy9sy8QZ9w7RpUH4XMOX3MH/G48SLgP07A==",
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.9.tgz",
+      "integrity": "sha512-5Fty3slLet6svXiJw2YxhYeo6c7wFdtILrql5bZymYLM+HbiZtJbryW1YnUEKAP7MO9Mbeh+TNH4Z0HFxHgIqw==",
       "dev": true,
       "requires": {
-        "@volar/source-map": "1.0.8",
+        "@volar/source-map": "1.0.9",
         "@vue/reactivity": "^3.2.40",
         "muggle-string": "^0.1.0"
       }
     },
     "@volar/source-map": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.8.tgz",
-      "integrity": "sha512-uKMe+alyfl1Abs5SviKejFoe7x9g6jDPVpVt63Tet4qn1Ziy7tFsvtCpM2Y1Ko5qw2nLIeloLslPqm9/gmbBLQ==",
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.9.tgz",
+      "integrity": "sha512-fazB/vy5ZEJ3yKx4fabJyGNI3CBkdLkfEIRVu6+1P3VixK0Mn+eqyUIkLBrzGYaeFM3GybhCLCvsVdNz0Fu/CQ==",
       "dev": true,
       "requires": {
         "muggle-string": "^0.1.0"
       }
     },
     "@volar/typescript": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.8.tgz",
-      "integrity": "sha512-2oY1Apvzcs/5tAn7p1tRlDxNgal5ezaK0h9cutcWALeimsaQBAEE2NAirCrLMHl8DneuDce0tzJqHaQeHw9RmQ==",
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.9.tgz",
+      "integrity": "sha512-dVziu+ShQUWuMukM6bvK2v2O446/gG6l1XkTh2vfkccw1IzjfbiP1TWQoNo1ipTfZOtu5YJGYAx+o5HNrGXWfQ==",
       "dev": true,
       "requires": {
-        "@volar/language-core": "1.0.8"
+        "@volar/language-core": "1.0.9"
       }
     },
     "@volar/vue-language-core": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.8.tgz",
-      "integrity": "sha512-cXb7oTybxcm1vpz003agdYQHyxij7UAaSub60d7W1aMWpqb2iaCbVaq9izgQFlrpC4/JnVs+cJPb/Q6fAUVxBg==",
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.9.tgz",
+      "integrity": "sha512-tofNoR8ShPFenHT1YVMuvoXtXWwoQE+fiXVqSmW0dSKZqEDjWQ3YeXSd0a6aqyKaIbvR7kWWGp34WbpQlwf9Ww==",
       "dev": true,
       "requires": {
-        "@volar/language-core": "1.0.8",
-        "@volar/source-map": "1.0.8",
+        "@volar/language-core": "1.0.9",
+        "@volar/source-map": "1.0.9",
         "@vue/compiler-dom": "^3.2.40",
         "@vue/compiler-sfc": "^3.2.40",
         "@vue/reactivity": "^3.2.40",
@@ -195,49 +195,49 @@
       }
     },
     "@volar/vue-typescript": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.8.tgz",
-      "integrity": "sha512-6jBvA7iwBkRqS2VQx2gLJgfLcF3hcODyJ6Lmiw2tN8D/LVfFCovvzJgPvIQb9Y4i+rha1Y0cpsYOUt9XW2Z7ZA==",
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.9.tgz",
+      "integrity": "sha512-ZLe4y9YNbviACa7uAMCilzxA76gbbSlKfjspXBzk6fCobd8QCIig+VyDYcjANIlm2HhgSCX8jYTzhCKlegh4mw==",
       "dev": true,
       "requires": {
-        "@volar/typescript": "1.0.8",
-        "@volar/vue-language-core": "1.0.8"
+        "@volar/typescript": "1.0.9",
+        "@volar/vue-language-core": "1.0.9"
       }
     },
     "@vue/compiler-core": {
-      "version": "3.2.40",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.40.tgz",
-      "integrity": "sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==",
+      "version": "3.2.41",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz",
+      "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==",
       "dev": true,
       "requires": {
         "@babel/parser": "^7.16.4",
-        "@vue/shared": "3.2.40",
+        "@vue/shared": "3.2.41",
         "estree-walker": "^2.0.2",
         "source-map": "^0.6.1"
       }
     },
     "@vue/compiler-dom": {
-      "version": "3.2.40",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.40.tgz",
-      "integrity": "sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==",
+      "version": "3.2.41",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz",
+      "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==",
       "dev": true,
       "requires": {
-        "@vue/compiler-core": "3.2.40",
-        "@vue/shared": "3.2.40"
+        "@vue/compiler-core": "3.2.41",
+        "@vue/shared": "3.2.41"
       }
     },
     "@vue/compiler-sfc": {
-      "version": "3.2.40",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.40.tgz",
-      "integrity": "sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==",
+      "version": "3.2.41",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz",
+      "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==",
       "dev": true,
       "requires": {
         "@babel/parser": "^7.16.4",
-        "@vue/compiler-core": "3.2.40",
-        "@vue/compiler-dom": "3.2.40",
-        "@vue/compiler-ssr": "3.2.40",
-        "@vue/reactivity-transform": "3.2.40",
-        "@vue/shared": "3.2.40",
+        "@vue/compiler-core": "3.2.41",
+        "@vue/compiler-dom": "3.2.41",
+        "@vue/compiler-ssr": "3.2.41",
+        "@vue/reactivity-transform": "3.2.41",
+        "@vue/shared": "3.2.41",
         "estree-walker": "^2.0.2",
         "magic-string": "^0.25.7",
         "postcss": "^8.1.10",
@@ -245,13 +245,13 @@
       }
     },
     "@vue/compiler-ssr": {
-      "version": "3.2.40",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.40.tgz",
-      "integrity": "sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==",
+      "version": "3.2.41",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz",
+      "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==",
       "dev": true,
       "requires": {
-        "@vue/compiler-dom": "3.2.40",
-        "@vue/shared": "3.2.40"
+        "@vue/compiler-dom": "3.2.41",
+        "@vue/shared": "3.2.41"
       }
     },
     "@vue/devtools-api": {
@@ -260,23 +260,23 @@
       "integrity": "sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw=="
     },
     "@vue/reactivity": {
-      "version": "3.2.40",
-      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.40.tgz",
-      "integrity": "sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==",
+      "version": "3.2.41",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz",
+      "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==",
       "dev": true,
       "requires": {
-        "@vue/shared": "3.2.40"
+        "@vue/shared": "3.2.41"
       }
     },
     "@vue/reactivity-transform": {
-      "version": "3.2.40",
-      "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.40.tgz",
-      "integrity": "sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==",
+      "version": "3.2.41",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz",
+      "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==",
       "dev": true,
       "requires": {
         "@babel/parser": "^7.16.4",
-        "@vue/compiler-core": "3.2.40",
-        "@vue/shared": "3.2.40",
+        "@vue/compiler-core": "3.2.41",
+        "@vue/shared": "3.2.41",
         "estree-walker": "^2.0.2",
         "magic-string": "^0.25.7"
       }
@@ -368,9 +368,9 @@
       }
     },
     "@vue/shared": {
-      "version": "3.2.40",
-      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.40.tgz",
-      "integrity": "sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==",
+      "version": "3.2.41",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz",
+      "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==",
       "dev": true
     },
     "@vue/tsconfig": {
@@ -641,9 +641,9 @@
       "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
     },
     "dayjs": {
-      "version": "1.11.5",
-      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz",
-      "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA=="
+      "version": "1.11.6",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz",
+      "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ=="
     },
     "de-indent": {
       "version": "1.0.2",
@@ -720,9 +720,9 @@
       "dev": true
     },
     "element-plus": {
-      "version": "2.2.18",
-      "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.18.tgz",
-      "integrity": "sha512-2pK2zmVOwP14eFl3rGoR+3BWJwDyO+DZCvzjQ8L6qjUR+hVKwFhgxIcSkKJatbcHFw5Xui6UyN20jV+gQP7mLg==",
+      "version": "2.2.19",
+      "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.19.tgz",
+      "integrity": "sha512-uN0gt9lUus/IHzu5J6vkbYoYJgUtU05osdtFv9RO27bHKOG5GN7dH6uA3OKfkQQ6R2sV8ZxY1rc9PH1X8Dgrow==",
       "requires": {
         "@ctrl/tinycolor": "^3.4.1",
         "@element-plus/icons-vue": "^2.0.6",
@@ -1692,12 +1692,12 @@
       }
     },
     "postcss-nested": {
-      "version": "5.0.6",
-      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
-      "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
+      "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
       "dev": true,
       "requires": {
-        "postcss-selector-parser": "^6.0.6"
+        "postcss-selector-parser": "^6.0.10"
       }
     },
     "postcss-selector-parser": {
@@ -2006,9 +2006,9 @@
       "dev": true
     },
     "tailwindcss": {
-      "version": "3.1.8",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz",
-      "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==",
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.1.tgz",
+      "integrity": "sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==",
       "dev": true,
       "requires": {
         "arg": "^5.0.2",
@@ -2017,18 +2017,19 @@
         "detective": "^5.2.1",
         "didyoumean": "^1.2.2",
         "dlv": "^1.1.3",
-        "fast-glob": "^3.2.11",
+        "fast-glob": "^3.2.12",
         "glob-parent": "^6.0.2",
         "is-glob": "^4.0.3",
         "lilconfig": "^2.0.6",
+        "micromatch": "^4.0.5",
         "normalize-path": "^3.0.0",
         "object-hash": "^3.0.0",
         "picocolors": "^1.0.0",
-        "postcss": "^8.4.14",
+        "postcss": "^8.4.17",
         "postcss-import": "^14.1.0",
         "postcss-js": "^4.0.0",
         "postcss-load-config": "^3.1.4",
-        "postcss-nested": "5.0.6",
+        "postcss-nested": "6.0.0",
         "postcss-selector-parser": "^6.0.10",
         "postcss-value-parser": "^4.2.0",
         "quick-lru": "^5.1.1",
@@ -2366,13 +2367,13 @@
       }
     },
     "vue-tsc": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.8.tgz",
-      "integrity": "sha512-+0sJ+QVH7SHLt8mV/uIw4xlHDk1mWigZkMFugfZTv8rlHpM3S2tCVZ0BWEGclT/0rKdO8j+St+mljpvhWPN/eQ==",
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.9.tgz",
+      "integrity": "sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==",
       "dev": true,
       "requires": {
-        "@volar/vue-language-core": "1.0.8",
-        "@volar/vue-typescript": "1.0.8"
+        "@volar/vue-language-core": "1.0.9",
+        "@volar/vue-typescript": "1.0.9"
       }
     },
     "webpack-sources": {
diff --git a/package.json b/package.json
index 42cebe9..3bc322a 100644
--- a/package.json
+++ b/package.json
@@ -11,9 +11,9 @@
   "dependencies": {
     "axios": "^1.1.3",
     "countup.js": "^2.3.2",
-    "dayjs": "^1.11.5",
+    "dayjs": "^1.11.6",
     "echarts": "^5.4.0",
-    "element-plus": "^2.2.18",
+    "element-plus": "^2.2.19",
     "mockjs": "^1.1.0",
     "pinia": "^2.0.21",
     "vue": "^3.2.41",
@@ -22,18 +22,18 @@
   },
   "devDependencies": {
     "@types/mockjs": "^1.0.7",
-    "@types/node": "^18.8.0",
+    "@types/node": "^18.11.4",
     "@vitejs/plugin-vue": "^3.0.3",
     "@vue/tsconfig": "^0.1.3",
     "autoprefixer": "^10.4.12",
     "npm-run-all": "^4.1.5",
     "postcss": "^8.4.18",
     "sass": "^1.55.0",
-    "tailwindcss": "^3.1.8",
+    "tailwindcss": "^3.2.1",
     "typescript": "~4.7.4",
     "unplugin-auto-import": "^0.11.2",
     "unplugin-vue-components": "^0.22.8",
     "vite": "^3.1.8",
-    "vue-tsc": "^1.0.8"
+    "vue-tsc": "^1.0.9"
   }
 }
diff --git a/src/assets/img/center_map.png b/src/assets/img/center_map.png
deleted file mode 100644
index 71f4036..0000000
--- a/src/assets/img/center_map.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/img/frame.png b/src/assets/img/frame.png
deleted file mode 100644
index 150ec5e..0000000
--- a/src/assets/img/frame.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/img/headers/setting.png b/src/assets/img/headers/setting.png
new file mode 100644
index 0000000..bd4de0d
--- /dev/null
+++ b/src/assets/img/headers/setting.png
Binary files differ
diff --git a/src/components/scale-screen/scale-screen.vue b/src/components/scale-screen/scale-screen.vue
index 9c4395d..d45fa9e 100644
--- a/src/components/scale-screen/scale-screen.vue
+++ b/src/components/scale-screen/scale-screen.vue
@@ -1,5 +1,9 @@
 <template>
-  <section :style="{ ...styles.box, ...boxStyle }" class="v-screen-box">
+  <section
+    :style="{ ...styles.box, ...boxStyle }"
+    class="v-screen-box"
+    ref="box"
+  >
     <div
       :style="{ ...styles.wrapper, ...wrapperStyle }"
       class="screen-wrapper"
@@ -10,7 +14,7 @@
   </section>
 </template>
 <script lang="ts" setup>
-import { nextTick, onMounted, onUnmounted, reactive, ref } from "vue";
+import { nextTick, onMounted, onUnmounted, reactive, ref, watch } from "vue";
 import type { CSSProperties, PropType } from "vue";
 /**
  * 闃叉姈鍑芥暟
@@ -105,11 +109,27 @@
 };
 
 const screenWrapper = ref<HTMLElement>();
+const box = ref<HTMLElement>();
+
+watch(
+  () => props.autoScale,
+  async (newVal: any) => {
+    if (newVal) {
+      onResize();
+      addListener();
+    } else {
+      clearListener();
+      clearScreenWrapperStyle();
+    }
+  }
+);
 /**
  * 鍒濆鍖栧ぇ灞忓鍣ㄥ楂�
  */
 const initSize = () => {
   return new Promise<void>((resolve) => {
+    box.value!.scrollLeft = 0;
+    box.value!.scrollTop = 0;
     nextTick(() => {
       // region 鑾峰彇澶у睆鐪熷疄灏哄
       if (props.width && props.height) {
@@ -144,9 +164,14 @@
     screenWrapper.value!.style.height = `${state.originalHeight}px`;
   }
 };
-
+const clearScreenWrapperStyle = () => {
+  screenWrapper.value!.style.transform = "";
+  screenWrapper.value!.style.margin = "";
+};
 const autoScale = (scale: number) => {
-  if (!props.autoScale) return;
+  if (!props.autoScale) {
+    return;
+  }
   const domWidth = screenWrapper.value!.clientWidth;
   const domHeight = screenWrapper.value!.clientHeight;
   const currentWidth = document.body.clientWidth;
@@ -195,17 +220,27 @@
     attributeOldValue: true,
   });
 };
+
+const clearListener = () => {
+  window.removeEventListener("resize", onResize);
+  // state.observer?.disconnect();
+};
+
+const addListener = () => {
+  window.addEventListener("resize", onResize);
+  // initMutationObserver();
+};
 onMounted(() => {
   nextTick(async () => {
     await initSize();
     updateSize();
     updateScale();
-    window.addEventListener("resize", onResize);
-    initMutationObserver();
+    addListener();
+    // initMutationObserver();
   });
 });
 onUnmounted(() => {
-  window.removeEventListener("resize", onResize);
-  state.observer?.disconnect();
+  clearListener();
+  // state.observer?.disconnect();
 });
 </script>
diff --git a/src/stores/counter.ts b/src/stores/counter.ts
deleted file mode 100644
index b6757ba..0000000
--- a/src/stores/counter.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ref, computed } from 'vue'
-import { defineStore } from 'pinia'
-
-export const useCounterStore = defineStore('counter', () => {
-  const count = ref(0)
-  const doubleCount = computed(() => count.value * 2)
-  function increment() {
-    count.value++
-  }
-
-  return { count, doubleCount, increment }
-})
diff --git a/src/stores/index.ts b/src/stores/index.ts
new file mode 100644
index 0000000..7b3fdbb
--- /dev/null
+++ b/src/stores/index.ts
@@ -0,0 +1 @@
+export * from "./setting/setting"
\ No newline at end of file
diff --git a/src/stores/setting/setting.ts b/src/stores/setting/setting.ts
new file mode 100644
index 0000000..fc8b59a
--- /dev/null
+++ b/src/stores/setting/setting.ts
@@ -0,0 +1,28 @@
+import { ref, computed } from 'vue'
+import { defineStore } from 'pinia'
+// import { storeToRefs } from 'pinia';
+export const useSettingStore = defineStore('setting', () => {
+  const settingShow = ref(false);//璁剧疆寮圭獥鏄鹃殣
+  const isScale = ref(false);//鏄惁杩涜鍏ㄥ眬閫傞厤
+
+  const setSettingShow = (flag:boolean)=>{
+    settingShow.value=flag
+  }
+  const setIsScale = (flag:boolean)=>{
+    isScale.value=flag
+    setSettingData()
+  }
+  const initSetting=()=>{
+    let settingData:any = localStorage.getItem('loftv-settingData')
+    if(settingData){
+        settingData=JSON.parse(settingData)
+        setIsScale(settingData.isScale)
+    }
+  }
+  const setSettingData=()=>{
+    localStorage.setItem('loftv-settingData',JSON.stringify({
+        isScale:isScale.value
+    }))
+  }
+  return { settingShow, setSettingShow,isScale ,setIsScale,initSetting,setSettingData}
+})
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 90a0e71..d225de6 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -3,8 +3,14 @@
 import { RouterView } from "vue-router";
 import ScaleScreen from "@/components/scale-screen";
 import Headers from "./header.vue";
+import Setting from "./setting.vue"
+import { useSettingStore } from "@/stores/index";
+import { storeToRefs } from 'pinia';
+
+const settingStore = useSettingStore();
+const {isScale} =storeToRefs(settingStore)
 const wrapperStyle = {};
-const autoScale = ref(false);
+
 </script>
 
 <template>
@@ -15,16 +21,17 @@
     :fullScreen="false"
     :boxStyle="{
       background: '#03050C',
-      overflow: autoScale ? 'hidden' : 'auto',
+      overflow: isScale ? 'hidden' : 'auto',
     }"
     :wrapperStyle="wrapperStyle"
-    :autoScale="autoScale"
+    :autoScale="isScale"
   >
     <div class="content_wrap">
       <Headers />
       <RouterView />
     </div>
   </scale-screen>
+  <Setting/>
 </template>
 <style lang="scss" scoped>
 .content_wrap {
diff --git a/src/views/header.vue b/src/views/header.vue
index aba80ff..50c5858 100644
--- a/src/views/header.vue
+++ b/src/views/header.vue
@@ -2,13 +2,16 @@
 import { reactive } from "vue";
 import dayjs from 'dayjs';
 import type {DateDataType} from "./index.d"
+import {useSettingStore} from "@/stores/index"
+
 const dateData = reactive<DateDataType>({
   dateDay: "",
   dateYear: "",
   dateWeek: "",
   timing:null
 });
-  
+
+const { setSettingShow} =useSettingStore()
 const weekday= ["鍛ㄦ棩", "鍛ㄤ竴", "鍛ㄤ簩", "鍛ㄤ笁", "鍛ㄥ洓", "鍛ㄤ簲", "鍛ㄥ叚"]
 const timeFn = () => {
   dateData.timing = setInterval(() => {
@@ -17,7 +20,6 @@
   }, 1000);
 };
 timeFn()
-const showSetting = () => {};
 </script>
 
 <template>
@@ -32,11 +34,10 @@
     </div>
     <div class="timers">
       {{ dateData.dateYear }} {{ dateData.dateWeek }} {{ dateData.dateDay }}
-      <i
-        class="blq-icon-shezhi02"
-        style="margin-left: 10px"
-        @click="showSetting"
-      ></i>
+
+      <div class="setting_icon"   @click="setSettingShow(true)">
+          <img src="@/assets/img/headers/setting.png" alt="璁剧疆">
+      </div>
     </div>
   </div>
 </template>
@@ -85,8 +86,15 @@
     display: flex;
     align-items: center;
 
-    .blq-icon-shezhi02 {
+    .setting_icon {
+      width: 20px;
+      height: 20px;
       cursor: pointer;
+      margin-left: 12px;
+      img{
+        width: 100%;
+        height: 100%;
+      }
     }
   }
 }
diff --git a/src/views/setting.vue b/src/views/setting.vue
index 7df5872..d4f17ab 100644
--- a/src/views/setting.vue
+++ b/src/views/setting.vue
@@ -1,13 +1,102 @@
-<script setup lang='ts'>
+<script setup lang="ts">
+import { useSettingStore } from "@/stores/index";
+import { ref } from "vue";
+const isScaleRadio = ref(false);
+const settingStore = useSettingStore();
+const init = () => {
+  settingStore.initSetting();
+  isScaleRadio.value = settingStore.isScale;
+};
+init();
+const handleClose = () => {};
 
+const cancelClick = () => {
+  settingStore.setSettingShow(false);
+};
+
+const confirmClick = () => {};
+const isScaleChange = (flag: boolean) => {
+  settingStore.setIsScale(flag);
+};
+const radiochange = (blag: boolean, type: string) => {
+  console.log(blag, type);
+  settingStore.setIsScale(blag);
+  // this.$store.commit('setting/updateSwiper', { val, type })
+  // if(type==='isScale'){
+  //     // this.$router.go(0)
+  //     // location.reload()
+  //     // window.location.href=window.location.href+"?t="+Date.now()
+  // }
+};
 </script>
 
 <template>
-  <div class=''>
-
-  </div>
+  <el-drawer v-model="settingStore.settingShow" direction="rtl">
+    <template #header>
+      <h2 class="setting-title">璁剧疆</h2>
+    </template>
+    <template #default>
+      <div class="left_shu">鍏ㄥ眬璁剧疆</div>
+      <div class="setting_item">
+        <span class="setting_label">
+          鏄惁杩涜鑷姩閫傞厤<span class="setting_label_tip"
+            >(榛樿鍒嗚鲸鐜�1920*1080)</span
+          >:
+        </span>
+        <div class="setting_content">
+          <el-radio-group v-model="isScaleRadio" @change="isScaleChange">
+            <el-radio :label="true">鏄�</el-radio>
+            <el-radio :label="false">鍚�</el-radio>
+          </el-radio-group>
+        </div>
+      </div>
+    </template>
+    <!-- <template #footer>
+      <div style="flex: auto">
+        <el-button @click="cancelClick">鍙栨秷</el-button>
+        <el-button type="primary" @click="confirmClick">纭畾</el-button>
+      </div>
+    </template> -->
+  </el-drawer>
 </template>
 
-<style scoped lang='scss'>
+<style scoped lang="scss">
+.setting-title {
+  font-size: 20px;
+  color: #000;
+  font-weight: 900;
+  text-align: center;
+  line-height: 1;
+}
+.left_shu {
+  color: #000;
+  font-weight: 900;
+  position: relative;
+  text-indent: 10px;
+  padding: 16px 0 10px 0;
+  line-height: 1;
+  &::before {
+    display: block;
+    content: " ";
+    height: 16px;
+    width: 4px;
+    border-radius: 2px;
+    background: #0072ff;
+    position: absolute;
+    left: 0px;
+  }
+}
+.setting_item {
+  font-size: 14px;
+  line-height: 1.5;
 
-</style>
\ No newline at end of file
+  // display: flex;
+  .setting_label {
+    color: #555454;
+  }
+  .setting_label_tip {
+    font-size: 12px;
+    color: #838282;
+  }
+}
+</style>

--
Gitblit v1.8.0