diff --git a/package.json b/package.json
index cddb2e4..ce163f6 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"axios": "^1.7.2",
"element-plus": "^2.7.8",
"pinia": "^2.1.7",
+ "pinia-plugin-persistedstate": "^3.2.1",
"vue": "^3.4.29",
"vue-router": "^4.3.3"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c8ec733..2d7d8a3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -20,6 +20,9 @@ importers:
pinia:
specifier: ^2.1.7
version: 2.2.0(vue@3.4.34)
+ pinia-plugin-persistedstate:
+ specifier: ^3.2.1
+ version: 3.2.1(pinia@2.2.0(vue@3.4.34))
vue:
specifier: ^3.4.29
version: 3.4.34
@@ -463,6 +466,11 @@ packages:
picocolors@1.0.1:
resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz}
+ pinia-plugin-persistedstate@3.2.1:
+ resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==, tarball: https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.1.tgz}
+ peerDependencies:
+ pinia: ^2.0.0
+
pinia@2.2.0:
resolution: {integrity: sha512-iPrIh26GMqfpUlMOGyxuDowGmYousTecbTHFwT0xZ1zJvh23oQ+Cj99ZoPQA1TnUPhU6AuRPv6/drkTCJ0VHQA==, tarball: https://registry.npmmirror.com/pinia/-/pinia-2.2.0.tgz}
peerDependencies:
@@ -905,6 +913,10 @@ snapshots:
picocolors@1.0.1: {}
+ pinia-plugin-persistedstate@3.2.1(pinia@2.2.0(vue@3.4.34)):
+ dependencies:
+ pinia: 2.2.0(vue@3.4.34)
+
pinia@2.2.0(vue@3.4.34):
dependencies:
'@vue/devtools-api': 6.6.3
diff --git a/src/main.js b/src/main.js
index ecadf9e..1acd939 100644
--- a/src/main.js
+++ b/src/main.js
@@ -3,6 +3,7 @@ import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
+import pinia from "@/stores/index.js";
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
@@ -19,5 +20,6 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.use(createPinia())
app.use(router)
app.use(ElementPlus)
+app.use(pinia)
app.mount('#app')
diff --git a/src/stores/counter.js b/src/stores/counter.js
deleted file mode 100644
index b6757ba..0000000
--- a/src/stores/counter.js
+++ /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.js b/src/stores/index.js
new file mode 100644
index 0000000..5f4785d
--- /dev/null
+++ b/src/stores/index.js
@@ -0,0 +1,11 @@
+import {createPinia} from 'pinia'
+
+import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
+
+const pinia = createPinia()
+
+pinia.use(piniaPluginPersistedstate)
+
+export default pinia
+
+export * from './modules/login.js'
diff --git a/src/stores/modules/login.js b/src/stores/modules/login.js
new file mode 100644
index 0000000..3b644b3
--- /dev/null
+++ b/src/stores/modules/login.js
@@ -0,0 +1,33 @@
+import {defineStore} from "pinia";
+import {ref} from "vue";
+
+
+export const useAccountStore = defineStore("accountStore", () => {
+ const accounts = ref([])
+
+ const addAccount = (username, password) => {
+ // 如果不存在则新建
+ if (!accounts.value.some(account => account.username === username)) {
+ accounts.value.push({
+ username: username,
+ password: password,
+ })
+ // 如果已经存在则更新密码
+ } else {
+ accounts.value.find(account => account.username === username).password = password
+ }
+ }
+
+ const deleteAccount = (username) => {
+ accounts.value = accounts.value.filter(account => account.username !== username)
+ }
+
+ return {
+ accounts,
+ addAccount, deleteAccount
+ }
+ },
+ {
+ persist: true
+ }
+)
diff --git a/src/views/layout/gameLogin.vue b/src/views/layout/gameLogin.vue
index 24549ba..71682f4 100644
--- a/src/views/layout/gameLogin.vue
+++ b/src/views/layout/gameLogin.vue
@@ -2,6 +2,10 @@
import {ref} from "vue";
import {gameLoginInterface} from '@/api/login.js'
+import {useAccountStore} from "@/stores/index.js";
+import {Delete} from "@element-plus/icons-vue";
+
+const accountStore = useAccountStore();
const form = ref({
username: '',
@@ -20,8 +24,14 @@ const rules = {
const loginForm = ref(null)
const gameLogin = async () => {
await loginForm.value.validate()
- const res = await gameLoginInterface(form.value.context)
- console.log(res.data)
+ // const res = await gameLoginInterface(form.value.username, form.value.password)
+ // console.log(res.data)
+ accountStore.addAccount(form.value.username, form.value.password)
+}
+
+const fillAccount = (username, password) => {
+ form.value.username = username
+ form.value.password = password
}
@@ -48,6 +58,20 @@ const gameLogin = async () => {