diff --git a/package-lock.json b/package-lock.json index 0b0b6316..541ea021 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "sn", + "name": "cn", "version": "0.1.0", "lockfileVersion": 1, "requires": true, @@ -1344,6 +1344,74 @@ "postcss": "^7.0.0" } }, + "@intlify/core-base": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.1.6.tgz", + "integrity": "sha512-d5GDPpsQbqPkisSJA5b6nJFEkalY/IHAd7vOLNd/Sj4YaNRzXtInu2FoqKiOv8e/lQnXGTpurdCZg5Jxq1Gsxw==", + "requires": { + "@intlify/devtools-if": "9.1.6", + "@intlify/message-compiler": "9.1.6", + "@intlify/message-resolver": "9.1.6", + "@intlify/runtime": "9.1.6", + "@intlify/shared": "9.1.6", + "@intlify/vue-devtools": "9.1.6" + } + }, + "@intlify/devtools-if": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.1.6.tgz", + "integrity": "sha512-m8Api+kh+BtFa2FZ/JjIdr1ibsGGqBjdKCzWo5BZecEUxBquIeOQZwpokPh/0K5j+/PZleFXkVAMC5mNt+9WdA==", + "requires": { + "@intlify/shared": "9.1.6" + } + }, + "@intlify/message-compiler": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.1.6.tgz", + "integrity": "sha512-DR8645VOrVK6x/8tkaCpHnckMAIcoOgeNS5j0wB12RfZoXYQp7vAXMaOP511KMll2mXCREgIB0ojpajiof7yzQ==", + "requires": { + "@intlify/message-resolver": "9.1.6", + "@intlify/shared": "9.1.6", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@intlify/message-resolver": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.1.6.tgz", + "integrity": "sha512-UUnbawQa5U9sffd5wRIscqtyY1xWlwJbyfwCLPEWLvBhyAnCwPYlvaHGnnO0CSi0fzJTVwlV9DYzobh3agDeMA==" + }, + "@intlify/runtime": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.1.6.tgz", + "integrity": "sha512-U1QZ+TPf3kQQvWo4BA2mj3cHAxMRHXNTBhu2u+deh6ubTqXdZ19XGBTMSasrXG6RE+zSio9oM+ndoLja7JGtPg==", + "requires": { + "@intlify/message-compiler": "9.1.6", + "@intlify/message-resolver": "9.1.6", + "@intlify/shared": "9.1.6" + } + }, + "@intlify/shared": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.1.6.tgz", + "integrity": "sha512-6MtsKulyfZxdD7OuxjaODjj8QWoHCnLFAk4wkWiHqBCa6UCTC0qXjtEeZ1MxpQihvFmmJZauBUu25EvtngW5qQ==" + }, + "@intlify/vue-devtools": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.1.6.tgz", + "integrity": "sha512-UdNovg4OML9rIr1sOGZzTfNr1nUy4UQpDf5ni4dNC93T6FIkVJz0n1Np7Vp7e6gDjcmufRYcV99tEwjQSN9+5A==", + "requires": { + "@intlify/message-resolver": "9.1.6", + "@intlify/runtime": "9.1.6", + "@intlify/shared": "9.1.6" + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz", @@ -1957,6 +2025,63 @@ "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "ssri": { "version": "8.0.1", "resolved": "https://registry.nlark.com/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1621364626710&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", @@ -1965,6 +2090,28 @@ "requires": { "minipass": "^3.1.1" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.2.0", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.2.0.tgz", + "integrity": "sha512-TitGhqSQ61RJljMmhIGvfWzJ2zk9m1Qug049Ugml6QP3t0e95o0XJjk29roNEiPKJQBEi8Ord5hFuSuELzSp8Q==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } } } }, @@ -4471,8 +4618,8 @@ }, "dayjs": { "version": "1.10.5", - "resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.5.tgz?cache=0&sync_timestamp=1622012259636&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdayjs%2Fdownload%2Fdayjs-1.10.5.tgz", - "integrity": "sha1-VgDfRUj8JFOz8WPrsqu+llzPuYY=" + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", + "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" }, "debug": { "version": "4.3.1", @@ -8561,6 +8708,19 @@ "minimist": "^1.2.5" } }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "moment-timezone": { + "version": "0.5.33", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", + "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", + "requires": { + "moment": ">= 2.9.0" + } + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", @@ -12976,9 +13136,15 @@ "dev": true }, "vue-i18n": { - "version": "8.24.4", - "resolved": "https://registry.nlark.com/vue-i18n/download/vue-i18n-8.24.4.tgz", - "integrity": "sha1-sVhhTB332xg9nK3du3Ph1UAmlJI=" + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.1.6.tgz", + "integrity": "sha512-FEC4HZkTH6QRIu/A0wlo0VS/GH3w/fuCC6xfvoC8IyhhtbG9A+go9NfW+HZ1ZXdAcO4EWcVQi04M+iSwuxgixw==", + "requires": { + "@intlify/core-base": "9.1.6", + "@intlify/shared": "9.1.6", + "@intlify/vue-devtools": "9.1.6", + "@vue/devtools-api": "^6.0.0-beta.7" + } }, "vue-loader": { "version": "15.9.7", @@ -13001,87 +13167,6 @@ } } }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.2.0", - "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.2.0.tgz", - "integrity": "sha1-BGpTMI3Ufljv4g3ewe3sAnzjtG4=", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz", - "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1618847009337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1618847145907&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "vue-router": { "version": "4.0.8", "resolved": "https://registry.nlark.com/vue-router/download/vue-router-4.0.8.tgz?cache=0&sync_timestamp=1620899536020&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-4.0.8.tgz", diff --git a/package.json b/package.json index fb01bca3..6686b5f6 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "dependencies": { "axios": "^0.21.1", "core-js": "^3.6.5", + "dayjs": "^1.10.5", "echarts": "^5.1.1", "element-plus": "^1.0.2-beta.44", "lib-flexible": "^0.3.2", diff --git a/src/App.vue b/src/App.vue index 386191d0..481d1274 100644 --- a/src/App.vue +++ b/src/App.vue @@ -13,6 +13,14 @@ export default { get(`${process.env.BASE_URL}config.json?Timestamp=${new Date().getTime()}`).then(config => { axios.defaults.baseURL = config.baseUrl }) + //处理刷新后 $dayJs的时区变为默认的问题 + const timezone = localStorage.getItem('cn-sys-timezone') || '' + if (timezone){ + $dayJs.tz.setDefault(timezone) + } else { + $dayJs.tz.setDefault() + } } + } diff --git a/src/components/common/pagination.vue b/src/components/common/pagination.vue index 0e32f5ed..d7e3ad43 100644 --- a/src/components/common/pagination.vue +++ b/src/components/common/pagination.vue @@ -7,11 +7,11 @@ .pagination-top .pagination { padding-top: 0; } - .pagination /deep/ .el-pagination { + .pagination :deep(.el-pagination) { max-height: 42px; padding-right: 0; } - .pagination-size-select /deep/ .el-input--mini .el-input__inner{ + .pagination-size-select :deep(.el-input--mini .el-input__inner){ height: 20px; line-height: 20px; margin: 5px 0 5px 5px; @@ -19,7 +19,7 @@ .pagination-size-select input{ } - /deep/ .el-pager li, /deep/ .el-pagination .btn-next,/deep/ .el-pagination .btn-prev { + :deep(.el-pager li), :deep(.el-pagination .btn-next),:deep( .el-pagination .btn-prev ){ margin:5px 5px 0px 5px; padding: 0 4px; font-size: 13px; @@ -33,13 +33,13 @@ border-radius: 2px; border-radius: 2px; } - /deep/ .el-pagination .el-pager li.btn-quicknext, /deep/ .el-pager li.btn-quickprev { + :deep(.el-pagination .el-pager li.btn-quicknext), :deep( .el-pager li.btn-quickprev) { line-height: 20px; } - /deep/ .el-pagination .el-pager .more::before { + :deep(.el-pagination .el-pager .more::before ){ line-height: 20px; } - /deep/ .el-pagination .el-pager .more { + :deep( .el-pagination .el-pager .more) { background-color: $content-right-background-color; } .btn-next, .btn-prev { @@ -48,35 +48,35 @@ .pagination input { background-color: $content-right-background-color !important; } - /deep/ .el-pager li.number{ + :deep(.el-pager li.number){ font-family: NotoSansSC-Regular; color: #666666; letter-spacing: 0; font-weight:normal; background-color: $content-right-background-color; } - /deep/ .el-pager li.number.active{ + :deep( .el-pager li.number.active){ font-family: NotoSansSC-Regular; color: #FFFFFF; letter-spacing: 0; } - /deep/ .el-pagination .el-pager li.active { + :deep( .el-pagination .el-pager li.active) { background-color: $global-text-color-active; border-radius: 2px; border-radius: 2px; } - /deep/ .el-pager li:hover, .el-pagination .btn-next:hover, .el-pagination .btn-prev:hover { + :deep( .el-pager li:hover, .el-pagination .btn-next:hover, .el-pagination .btn-prev:hover) { font-family: NotoSansSC-Regular; color: #666666; letter-spacing: 0; font-weight:normal; } - /deep/ .el-pagination__sizes .el-input .el-input__inner,/deep/ .el-pagination__editor.el-input .el-input__inner{ + :deep( .el-pagination__sizes .el-input .el-input__inner),:deep( .el-pagination__editor.el-input .el-input__inner){ height: 20px; border-color: rgba(154,154,154,0.20); } - /deep/ .el-pagination__sizes .el-input .el-input__inner:hover{ + :deep(.el-pagination__sizes .el-input .el-input__inner:hover){ border-color: rgba(154,154,154,0.20); } diff --git a/src/main.js b/src/main.js index 6dc4c0d7..e2afc500 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,5 @@ import { createApp } from 'vue' import _ from 'lodash' - import router from '@/router' import store from '@/store' import App from '@/App.vue' @@ -11,8 +10,19 @@ import i18n from '@/i18n' import '@/assets/css/main.scss' // 样式入口 import ElementPlus from 'element-plus' +import dayjs from 'dayjs' +import utc from 'dayjs/plugin/utc' // dependent on utc plugin +import timezone from 'dayjs/plugin/timezone' +import advancedFormat from 'dayjs/plugin/advancedFormat' +import weekday from 'dayjs/plugin/weekday' +dayjs.extend(utc) +dayjs.extend(timezone) +dayjs.extend(advancedFormat) +dayjs.extend(weekday) +window.$dayJs = dayjs const app = createApp(App) + app.use(router) app.use(store) app.use(ElementPlus) diff --git a/src/mixins/common.js b/src/mixins/common.js index 01392f23..7bee27a0 100644 --- a/src/mixins/common.js +++ b/src/mixins/common.js @@ -3,6 +3,7 @@ import { hasButton } from '@/permission' export default { data () { return { + dayJs: $dayJs, blockOperation: { save: false, import: false, diff --git a/src/store/modules/user.js b/src/store/modules/user.js index d49f8d9f..b7f251a8 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,7 +1,9 @@ import { post } from '@/utils/http' import router from '@/router' import { sortByOrderNum, getWelcomeMenu } from '@/permission' -import moment from 'moment-timezone' +import dayjs from 'dayjs' +import utc from 'dayjs/plugin/utc' // dependent on utc plugin +dayjs.extend(utc) import bus from '@/utils/bus' import { ElMessage } from 'element-plus' @@ -42,14 +44,15 @@ const user = { }, actions: { loginSuccess (store, res) { + // res.data.timezone = 'America/New_York' + $dayJs.tz.setDefault(res.data.timezone) sessionStorage.setItem('cn-token', res.data.token) localStorage.setItem('cn-sys-name', res.data.systemName) if (res.systemLogo) { localStorage.setItem('cn-sys-logo', res.data.systemLogo) } localStorage.setItem('cn-sys-timezone', res.data.timezone) - localStorage.setItem('timezone-offset', moment.tz(res.data.timezone).format('Z')) - + localStorage.setItem('timezone-offset', dayjs.tz().utcOffset()/60) post('/sys/user/permissions', { token: res.data.token }).then(res => { const menuList = sortByOrderNum(res.data.menus) store.commit('setMenuList', menuList)