diff --git a/docs/zh/guide/change-log.md b/docs/zh/guide/change-log.md index 53e98759..b034a455 100644 --- a/docs/zh/guide/change-log.md +++ b/docs/zh/guide/change-log.md @@ -21,6 +21,7 @@ * [ 修改 ] d2-container 组件重构,每种模式现都支持 scroll 属性以及 header footer 插槽 * [ 修改 ] 修复全屏按钮退出全屏状态不更新的 bug * [ 修改 ] 修复多标签页缓存逻辑 bug +* [ 新增 ] 持久化存储根据系统版本区分数据,防止因更新导致数据错乱 ## v1.1.4 diff --git a/src/libs/db.js b/src/libs/db.js index a6c9f309..914d9498 100644 --- a/src/libs/db.js +++ b/src/libs/db.js @@ -1,8 +1,8 @@ import low from 'lowdb' import LocalStorage from 'lowdb/adapters/LocalStorage' -import packJson from '../../package' +import { version } from '../../package' -const adapter = new LocalStorage(`d2admin${packJson.version}`) +const adapter = new LocalStorage(`d2admin-${version}`) const db = low(adapter) db.defaults({ diff --git a/src/libs/util.js b/src/libs/util.js index f24a8351..d94bcfd1 100644 --- a/src/libs/util.js +++ b/src/libs/util.js @@ -1,20 +1,64 @@ -// 插件 import Cookies from 'js-cookie' import axios from 'axios' import semver from 'semver' import dayjs from 'dayjs' import UaParser from 'ua-parser-js' - -// 获取项目信息 -import packJson from '../../package.json' +import { version } from '../../package.json' let util = {} +/** + * @description 存储 uuid 到 cookie + * @param {string} value uuid value + * @param {object} setting cookie setting + */ +util.uuidSet = function (value = '', setting = {}) { + let cookieSetting = { + expires: 1 + } + Object.assign(cookieSetting, setting) + Cookies.set(`d2admin-${version}-uuid`, value, cookieSetting) +} + /** * @description 得到现在的用户 uuid */ -util.uuid = function () { - return Cookies.get('uuid') +util.uuidGet = function () { + return Cookies.get(`d2admin-${version}-uuid`) +} + +/** + * @description 删除用户 uuid + */ +util.uuidRemove = function () { + return Cookies.remove(`d2admin-${version}-uuid`) +} + +/** + * @description 存储 token 到 cookie + * @param {string} value token value + * @param {object} setting cookie setting + */ +util.tokenSet = function (value = '', setting = {}) { + let cookieSetting = { + expires: 1 + } + Object.assign(cookieSetting, setting) + Cookies.set(`d2admin-${version}-token`, value, cookieSetting) +} + +/** + * @description 得到现在的用户 token + */ +util.tokenGet = function () { + return Cookies.get(`d2admin-${version}-token`) +} + +/** + * @description 删除用户 token + */ +util.tokenRemove = function () { + return Cookies.remove(`d2admin-${version}-token`) } /** @@ -66,8 +110,8 @@ util.logCapsule = function (title, info) { util.checkUpdate = function (vm) { axios.get('https://api.github.com/repos/FairyEver/d2-admin/releases/latest') .then(res => { - let version = res.tag_name - const update = semver.lt(packJson.version, version) + let versionGet = res.tag_name + const update = semver.lt(version, versionGet) if (update) { util.logCapsule('D2Admin', `New version ${res.name}`) console.log(`${dayjs(res.created_at).format('YYYY年M月D日')}更新 版本号: ${res.tag_name} | 详情${res.html_url}`) @@ -83,7 +127,7 @@ util.checkUpdate = function (vm) { * @description 显示版本信息 */ util.showInfo = function showInfo () { - util.logCapsule('D2Admin', `v${packJson.version}`) + util.logCapsule('D2Admin', `v${version}`) console.log('Github https://github.com/d2-projects/d2-admin') console.log('Doc http://d2admin.fairyever.com/zh/') } diff --git a/src/router/index.js b/src/router/index.js index 39cf7d8b..c90c70a4 100755 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,6 +1,5 @@ import Vue from 'vue' import VueRouter from 'vue-router' -import Cookies from 'js-cookie' import util from '@/libs/util.js' @@ -20,7 +19,7 @@ router.beforeEach((to, from, next) => { if (to.matched.some(r => r.meta.requiresAuth)) { // 这里暂时将cookie里是否存有token作为验证是否登陆的条件 // 请根据自身业务需要修改 - const token = Cookies.get('token') + const token = util.tokenGet() if (token && token !== 'undefined') { next() } else { diff --git a/src/store/modules/d2admin.js.REMOVED.git-id b/src/store/modules/d2admin.js.REMOVED.git-id index e3b7e2c6..0c776a3c 100644 --- a/src/store/modules/d2admin.js.REMOVED.git-id +++ b/src/store/modules/d2admin.js.REMOVED.git-id @@ -1 +1 @@ -64064c51b45b2afec348c3affc84f8e669fd4ab6 \ No newline at end of file +1e89dc28cf748ef4d1f3174b7b791e527d4a4c1b \ No newline at end of file