diff --git a/.env.stage b/.env.stage
index 97ff37b..e4c019b 100644
--- a/.env.stage
+++ b/.env.stage
@@ -1,4 +1,4 @@
-NODE_ENV = production
+NODE_ENV = development
VITE_ENV = stage
diff --git a/bun.lockb b/bun.lockb
index 2f17657..40eb7d9 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/package.json b/package.json
index 9735a43..1e5a11b 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"scripts": {
"dev": "vite",
"build": "vite build",
- "build:sta": "vite build --mode stage",
+ "build:sta": "vite build --mode stage",
"preview": "vite preview"
},
"dependencies": {
@@ -19,6 +19,9 @@
"lodash": "^4.17.21",
"moment": "^2.29.4",
"nprogress": "^0.2.0",
+ "pinia": "^2.1.7",
+ "pinia-plugin-persist": "^1.0.0",
+ "pinia-plugin-persistedstate": "^3.2.0",
"pwacompat": "^2.0.17",
"qrcode.vue": "^3.4.1",
"register-service-worker": "^1.7.2",
diff --git a/src/App.vue b/src/App.vue
index 554d89c..b0b4280 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -15,7 +15,11 @@
// import { useStore } from 'vuex'
// const store = useStore()
+// import { useUserStore } from '@/store/user'
+// const userStore = useUserStore();
+
+// userStore.getUserData();
diff --git a/src/views/Member/index.vue b/src/views/Member/index.vue
index 1d80447..e8f90b4 100644
--- a/src/views/Member/index.vue
+++ b/src/views/Member/index.vue
@@ -2,19 +2,23 @@
import _ from 'lodash'
import axios from 'axios'
-import { ref , nextTick, onBeforeMount} from 'vue'
+import { ref, onBeforeMount, onMounted } from 'vue'
import { Cropper } from 'vue-advanced-cropper';
import 'vue-advanced-cropper/dist/style.css';
// import Footer from '@/components/Footer.vue'
import { useStore } from 'vuex'
+
+import { useUserStore } from '@/store/user'
+
import { useRouter } from 'vue-router'
-import { showToast } from 'vant'
-import { showLoadingToast,showSuccessToast } from 'vant';
+import { showToast, showFailToast, showLoadingToast, showSuccessToast } from 'vant';
+
+import { getUserInfo, updateUserInfo, updateCard, searchConnection, addUserFavi, setUserNfcTpl } from '@/api'
-import { getUserInfo, updateUserInfo, updateCard, searchConnection, addUserFavi, setUserNfcTpl} from '@/api'
+import { updateUserExtra, updateUserLink, updateUserAddon } from '@/api/user';
import imgTp1 from '@/assets/images/tp/tp_1.jpg'
import imgTp2 from '@/assets/images/tp/tp_2.jpg'
@@ -24,10 +28,14 @@ import imgTp4 from '@/assets/images/tp/tp_4.jpg'
const URL = window.URL || window.webkitURL;
const store = useStore()
+
+const userStore = useUserStore()
+
const router = useRouter()
-const form = ref({addon:[]})
-const uInfoForm = ref({addon:[]})
+const form = ref({ addon: [] })
+
+const uInfoForm = ref({ addon: [] })
const genderChecked = ref()
@@ -38,54 +46,58 @@ const fileList = ref([]);
const myCrop = ref(null)
const tabActive = ref(0)
+
const tabItemObj = ref([
- {title:"基本資料",icon:"fa-id-card-clip"},
- {title:"社群分享",icon:"fa-share-nodes"},
- {title:"人脈資訊",icon:"fa-gem"},
- {title:"版型設定",icon:"fa-layer-group"}
+ { title: "基本資料", icon: "fa-id-card-clip" },
+ { title: "社群分享", icon: "fa-share-nodes" },
+ { title: "人脈資訊", icon: "fa-gem" },
+ { title: "版型設定", icon: "fa-layer-group" }
]);
-const crop = ref({
- show: false,
- img: null,
-})
-
const validatorUrl = (val) => {
- if(val.length>0){
+ if (val.length > 0) {
return /(https?:\/\/|line:\/\/|tel:|mailto:)\S+/.test(val)
- }else{
+ } else {
return true
}
};
const validatorTel = (val) => {
- if(val.length>0){
+ if (val.length > 0) {
return /(\d{2,3}-?|\(\d{2,3}\))\d{3,4}-?\d{4}/.test(val)
- }else{
+ } else {
return true
}
};
+// START: 基本資料
+
+const crop = ref({
+ show: false,
+ img: null,
+})
-// onMounted(async ()=>{
+onMounted(async () => {
let userRes = await getUserInfo()
- if(userRes.code===200){
- form.value = userRes.data
- }else{
+ if (userRes.code === 200) {
+ form.value = userRes.data
+ } else {
}
-// })
-if (userRes.data.nfc_addon && (userRes.data.nfc_addon.length > 0)) {
+
+ if (userRes.data.nfc_addon && (userRes.data.nfc_addon.length > 0)) {
form.value.addon = JSON.parse(userRes.data.nfc_addon)
-}
-console.log(form,"form")
+ }
+
+})
+
const onCrop = () => {
const { canvas } = myCrop.value.getResult();
if (canvas) {
const imgFile = new FormData();
canvas.toBlob(async (blob) => {
- let ufile = new File([blob], "image.jpg");
+ let ufile = new File([blob], "image.jpg");
imgFile.append("user_id", form.value.user_id)
imgFile.append("fileType", "IMAGE")
imgFile.append('file', ufile)
@@ -106,21 +118,21 @@ const onCrop = () => {
)
if (res.data.code == 200) {
- form.value.avatar = res.data.data
- showSuccessToast('上傳成功');
- }else{
- showToast.fail('上傳失敗');
+ form.value.avatar = res.data.data
+ showSuccessToast('上傳成功');
+ } else {
+ showToast.fail('上傳失敗');
}
}, 'image/jpeg');
- }
-
+ }
+
return
}
-const afterRead = async(file, name) => {
+const afterRead = async (file, name) => {
crop.value.show = true
-
+
const ofile = file.file
crop.value.img = URL.createObjectURL(ofile);
// crop.value.img = ofile
@@ -128,62 +140,62 @@ const afterRead = async(file, name) => {
};
const onAddBtn = () => {
- if(form.value.addon){
- form.value.addon.push({icon:'',name:'',link:''})
- }else{
- form.value.addon = [{icon:'',name:'',link:''}]
+ if (form.value.addon) {
+ form.value.addon.push({ icon: '', name: '', link: '' })
+ } else {
+ form.value.addon = [{ icon: '', name: '', link: '' }]
}
}
const onDelBtn = (index) => {
- form.value.addon.splice(index, 1)
+ form.value.addon.splice(index, 1)
}
const onMoveBtn = (type, index) => {
- if (type === 0) {
- if (index !== 0) {
- [form.value.addon[index], form.value.addon[index - 1]] = [form.value.addon[index - 1], form.value.addon[index]]
- }
- } else {
- if (index + 1 !== form.value.addon.length) {
- [form.value.addon[index + 1], form.value.addon[index]] = [form.value.addon[index], form.value.addon[index + 1]]
- }
+ if (type === 0) {
+ if (index !== 0) {
+ [form.value.addon[index], form.value.addon[index - 1]] = [form.value.addon[index - 1], form.value.addon[index]]
+ }
+ } else {
+ if (index + 1 !== form.value.addon.length) {
+ [form.value.addon[index + 1], form.value.addon[index]] = [form.value.addon[index], form.value.addon[index + 1]]
}
+ }
}
const onSubmit = async () => {
- showLoadingToast({
- duration: 0,
- message: '資料更新中...',
- forbidClick: true,
- });
- // console.log(form.value,"test");
- let res = await updateCard(form.value)
- if(res.code===200){
- showSuccessToast('更新成功')
- store.commit('user/setUserInfo',form.value)
- router.push('/member')
- }else{
- showToast.fail('更新失敗')
- }
+ showLoadingToast({
+ duration: 0,
+ message: '資料更新中...',
+ forbidClick: true,
+ });
+ // console.log(form.value,"test");
+ let res = await updateCard(form.value)
+ if (res.code === 200) {
+ showSuccessToast('更新成功')
+ store.commit('user/setUserInfo', form.value)
+ router.push('/member')
+ } else {
+ showToast.fail('更新失敗')
+ }
};
const userInfoSubmit = async (values) => {
- showLoadingToast({
- duration: 0,
- message: '資料更新中...',
- forbidClick: true,
- });
- console.log("test",values);
- let res = await updateUserInfo(values)
- if(res.code===200){
- showSuccessToast('更新成功')
- store.commit('user/setUserInfo',values)
- router.push('/member')
- }else{
- showToast.fail('更新失敗')
- }
+ showLoadingToast({
+ duration: 0,
+ message: '資料更新中...',
+ forbidClick: true,
+ });
+ console.log("test", values);
+ let res = await updateUserInfo(values)
+ if (res.code === 200) {
+ showSuccessToast('更新成功')
+ store.commit('user/setUserInfo', values)
+ router.push('/member')
+ } else {
+ showToast.fail('更新失敗')
+ }
};
const searchChecked = ref(true);
@@ -198,22 +210,58 @@ const searchOnUpdateValue = (newValue) => {
const userExtraSubmit = async (values) => {
- // showLoadingToast({
- // duration: 0,
- // message: '資料更新中...',
- // forbidClick: true,
- // });
- console.log("test",values);
- let res = await updateUserInfo(values)
- if(res.code===200){
- showSuccessToast('更新成功')
- store.commit('user/setUserInfo',values)
- router.push('/member')
- }else{
- showToast.fail('更新失敗')
- }
+ // showLoadingToast({
+ // duration: 0,
+ // message: '資料更新中...',
+ // forbidClick: true,
+ // });
+ let res = await updateUserExtra(values)
+ if (res.code === 200) {
+ showSuccessToast('更新成功')
+ // router.push('/member')
+ } else {
+ showFailToast('更新失敗')
+ }
+};
+
+// END: 基本資料
+
+// START: 社群分享
+
+const userLinkSubmit = async (values) => {
+ // showLoadingToast({
+ // duration: 0,
+ // message: '資料更新中...',
+ // forbidClick: true,
+ // });
+ let res = await updateUserLink(values)
+ if (res.code === 200) {
+ showSuccessToast('更新成功')
+ // router.push('/member')
+ } else {
+ showFailToast('更新失敗')
+ }
+};
+
+const userAddonSubmit = async (values) => {
+ // showLoadingToast({
+ // duration: 0,
+ // message: '資料更新中...',
+ // forbidClick: true,
+ // });
+ console.log(form.value.addon)
+ let res = await updateUserAddon(form.value.addon)
+ if (res.code === 200) {
+ showSuccessToast('更新成功')
+ } else {
+ showFailToast('更新失敗')
+ }
};
+// END: 社群分享
+
+
+
// START: 人脈資源
const search = ref({
@@ -240,10 +288,10 @@ const tab2OnSearch = async () => {
};
const handleSearch = async () => {
- let res = await searchConnection(search.value);
- if(res.code===200){
- tab2list.value = res.data;
- }
+ let res = await searchConnection(search.value);
+ if (res.code === 200) {
+ tab2list.value = res.data;
+ }
};
const tab2list = ref([]);
@@ -272,9 +320,9 @@ const tab2ListonLoad = () => {
};
const handleAddFavi = async (uf_user_id) => {
- let res = await addUserFavi({uf_user_id});
+ let res = await addUserFavi({ uf_user_id });
- if(res.code===200){
+ if (res.code === 200) {
return showToast({
message: '已加入好友',
duration: 1000,
@@ -291,7 +339,7 @@ const handleAddFavi = async (uf_user_id) => {
const tab3list = ref([]);
onBeforeMount(async () => {
let res = await setUserNfcTpl();
- if(res.code===200){
+ if (res.code === 200) {
tab3list.value = res.data;
}
});
@@ -305,342 +353,184 @@ onBeforeMount(async () => {
會員資料
-
+
-
+
-
{{item.title}}
+
{{ item.title }}
-
-
-
-
-
-
-
![]()
-

-
-
上傳圖片,預設為Line頭像
-
上傳檔案
-
+
+
+
+
+
+
+
![]()
+

+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 男
- 女
-
-
-
-
-
-
-
-
- 是否公開
資料搜尋
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 男
+ 女
+
+
+
+
+
-
-
- 確認修改
-
-
-
-
-
-
-
-
-
- 人脈資訊
-
-
-
-
-
- 一句話介紹自己
-
-
-
- 貴人資源共享
-
- 下面為客製型會員專屬提供被搜尋
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 確認修改
-
-
-
-
+
+ 是否公開
資料搜尋
+
+
+
+
+
+
+
+
+
+ 確認修改
+
+
+
+
+
+
+
+
+
+ 人脈資訊
+
+ 下面為客製型會員專屬提供被搜尋
+
+
+
+
+
+
+ 一句話介紹自己
+
+
+
+ 貴人資源共享
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 確認修改
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- 確認修改
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 確認修改
+
+
+
+
+
+
+
+
+
+ 相關連結
+
+
+
+ 新增連結
-
-
-
-
-
-
-
-
- 相關連結
-
-
-
- 新增連結
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 確認修改
-
-
-
-
+
+
+ 確認修改
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
+
@@ -832,65 +691,73 @@ onBeforeMount(async () => {
\ No newline at end of file
diff --git a/src/views/Shop/index.vue b/src/views/Shop/index.vue
index 1a2fd1d..b527181 100644
--- a/src/views/Shop/index.vue
+++ b/src/views/Shop/index.vue
@@ -1,41 +1,26 @@
@@ -45,7 +30,7 @@ const setlevel = async (level)=>{
立即購買
-
+
@@ -56,25 +41,28 @@ const setlevel = async (level)=>{
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index f25b3b0..0af9cf4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,16 +7,121 @@
resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.6.tgz"
integrity sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==
-"@babel/parser@^7.15.8", "@babel/parser@^7.23.0":
+"@babel/parser@^7.23.0":
version "7.23.0"
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz"
integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
+"@esbuild/android-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
+ integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
+
+"@esbuild/android-arm@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
+ integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
+
+"@esbuild/android-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
+ integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
+
+"@esbuild/darwin-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
+ integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
+
+"@esbuild/darwin-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
+ integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
+
+"@esbuild/freebsd-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
+ integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
+
+"@esbuild/freebsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
+ integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
+
+"@esbuild/linux-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
+ integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
+
+"@esbuild/linux-arm@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
+ integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
+
+"@esbuild/linux-ia32@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
+ integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
+
+"@esbuild/linux-loong64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
+ integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
+
+"@esbuild/linux-mips64el@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
+ integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
+
+"@esbuild/linux-ppc64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
+ integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
+
+"@esbuild/linux-riscv64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
+ integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
+
+"@esbuild/linux-s390x@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
+ integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
+
"@esbuild/linux-x64@0.18.20":
version "0.18.20"
resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz"
integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
+"@esbuild/netbsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
+ integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
+
+"@esbuild/openbsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
+ integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
+
+"@esbuild/sunos-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
+ integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
+
+"@esbuild/win32-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
+ integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
+
+"@esbuild/win32-ia32@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
+ integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
+
+"@esbuild/win32-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
+ integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
+
"@jridgewell/gen-mapping@^0.3.0":
version "0.3.3"
resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz"
@@ -596,7 +701,7 @@
"@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9"
-"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
version "2.0.5"
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
@@ -650,7 +755,7 @@
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz"
integrity sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==
-"@types/node@*", "@types/node@^18.0.0", "@types/node@>= 14":
+"@types/node@*", "@types/node@^18.0.0":
version "18.18.6"
resolved "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz"
integrity sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==
@@ -765,7 +870,7 @@
"@vue/compiler-ssr" "3.3.6"
"@vue/shared" "3.3.6"
-"@vue/shared@^3.0.0", "@vue/shared@3.3.6":
+"@vue/shared@3.3.6", "@vue/shared@^3.0.0":
version "3.3.6"
resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.3.6.tgz"
integrity sha512-Xno5pEqg8SVhomD0kTSmfh30ZEmV/+jZtyh39q6QflrjdJCXah5lrnOLi9KB6a5k5aAHXMXjoMnxlzUkCNfWLQ==
@@ -800,7 +905,7 @@ asn1@~0.2.3:
dependencies:
safer-buffer "~2.1.0"
-assert-plus@^1.0.0, assert-plus@1.0.0:
+assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
@@ -1010,6 +1115,13 @@ debounce@^1.2.0:
resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz"
integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
+debug@2.6.9:
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
debug@^3.2.6:
version "3.2.7"
resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
@@ -1024,16 +1136,9 @@ debug@^4.3.4:
dependencies:
ms "2.1.2"
-debug@2.6.9:
- version "2.6.9"
- resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
deepmerge@^4.2.2:
version "4.3.1"
- resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
define-data-property@^1.1.1:
@@ -1128,7 +1233,7 @@ extend@~3.0.2:
resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-extsprintf@^1.2.0, extsprintf@1.3.0:
+extsprintf@1.3.0, extsprintf@^1.2.0:
version "1.3.0"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
@@ -1205,6 +1310,11 @@ form-data@~2.3.2:
combined-stream "^1.0.6"
mime-types "^2.1.12"
+fsevents@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
@@ -1327,13 +1437,6 @@ http-signature@~1.2.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
-iconv-lite@^0.6.3:
- version "0.6.3"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
- integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
- dependencies:
- safer-buffer ">= 2.1.2 < 3.0.0"
-
iconv-lite@0.4.24:
version "0.4.24"
resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
@@ -1341,6 +1444,13 @@ iconv-lite@0.4.24:
dependencies:
safer-buffer ">= 2.1.2 < 3"
+iconv-lite@^0.6.3:
+ version "0.6.3"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
@@ -1351,7 +1461,7 @@ image-size@~0.5.0:
resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz"
integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
-inherits@^2.0.3, inherits@2.0.4:
+inherits@2.0.4, inherits@^2.0.3:
version "2.0.4"
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -1457,7 +1567,7 @@ jsprim@^1.2.2:
json-schema "0.4.0"
verror "1.10.0"
-less@*, less@^4.2.0:
+less@^4.2.0:
version "4.2.0"
resolved "https://registry.npmjs.org/less/-/less-4.2.0.tgz"
integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==
@@ -1551,11 +1661,6 @@ moment@^2.29.4:
resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz"
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
-ms@^2.1.1:
- version "2.1.3"
- resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
@@ -1566,6 +1671,11 @@ ms@2.1.2:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+ms@^2.1.1:
+ version "2.1.3"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
nanoid@^3.3.6:
version "3.3.6"
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"
@@ -1675,6 +1785,26 @@ pify@^4.0.1:
resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+pinia-plugin-persist@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pinia-plugin-persist/-/pinia-plugin-persist-1.0.0.tgz#fc696f225527f30bd5955109fafadd43c725e888"
+ integrity sha512-M4hBBd8fz/GgNmUPaaUsC29y1M09lqbXrMAHcusVoU8xlQi1TqgkWnnhvMikZwr7Le/hVyMx8KUcumGGrR6GVw==
+ dependencies:
+ vue-demi "^0.12.1"
+
+pinia-plugin-persistedstate@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz#9932ca2ae88aa6c0d6763bebc6447d7bd1f097d0"
+ integrity sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==
+
+pinia@^2.1.7:
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc"
+ integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==
+ dependencies:
+ "@vue/devtools-api" "^6.5.0"
+ vue-demi ">=0.14.5"
+
pngjs@^3.3.3:
version "3.4.0"
resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz"
@@ -1719,11 +1849,6 @@ qrcode.vue@^3.4.1:
resolved "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.4.1.tgz"
integrity sha512-wq/zHsifH4FJ1GXQi8/wNxD1KfQkckIpjK1KPTc/qwYU5/Bkd4me0w4xZSg6EXk6xLBkVDE0zxVagewv5EMAVA==
-qs@~6.5.2:
- version "6.5.3"
- resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz"
- integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
-
qs@6.11.0:
version "6.11.0"
resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
@@ -1731,6 +1856,11 @@ qs@6.11.0:
dependencies:
side-channel "^1.0.4"
+qs@~6.5.2:
+ version "6.5.3"
+ resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz"
+ integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
@@ -1814,7 +1944,7 @@ reusify@^1.0.4:
resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^3.27.1:
+rollup@^3.27.1:
version "3.29.4"
resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz"
integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
@@ -1833,7 +1963,7 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0:
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -1878,7 +2008,7 @@ setprototypeof@1.2.0:
shvl@^2.0.3:
version "2.0.3"
- resolved "https://registry.npmjs.org/shvl/-/shvl-2.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/shvl/-/shvl-2.0.3.tgz#eb4bd37644f5684bba1fc52c3010c96fb5e6afd1"
integrity sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw==
side-channel@^1.0.4:
@@ -1948,7 +2078,7 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-terser@^5.24.0, terser@^5.4.0:
+terser@^5.24.0:
version "5.24.0"
resolved "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz"
integrity sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==
@@ -2097,7 +2227,7 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
-vite@^4.0.0, vite@^4.4.5:
+vite@^4.4.5:
version "4.5.0"
resolved "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz"
integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==
@@ -2122,6 +2252,16 @@ vue-cropper@^0.6.4:
resolved "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.6.4.tgz"
integrity sha512-U3bm17Li/Xwfw2t3pr8/hFE/tYhvwIWqepHK9IFC1TnX1KFd64VyfCD9nMBhPY91RyvMC6jSQgT/DyDNKuTpIQ==
+vue-demi@>=0.14.5:
+ version "0.14.6"
+ resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92"
+ integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==
+
+vue-demi@^0.12.1:
+ version "0.12.5"
+ resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.12.5.tgz#8eeed566a7d86eb090209a11723f887d28aeb2d1"
+ integrity sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==
+
vue-router@^4.2.5:
version "4.2.5"
resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz"
@@ -2129,7 +2269,7 @@ vue-router@^4.2.5:
dependencies:
"@vue/devtools-api" "^6.5.0"
-vue@^3.0.0, vue@^3.2.0, vue@^3.2.25, vue@^3.3.4, "vue@2 || 3", vue@3.3.6:
+vue@^3.3.4:
version "3.3.6"
resolved "https://registry.npmjs.org/vue/-/vue-3.3.6.tgz"
integrity sha512-jJIDETeWJnoY+gfn4ZtMPMS5KtbP4ax+CT4dcQFhTnWEk8xMupFyQ0JxL28nvT/M4+p4a0ptxaV2WY0LiIxvRg==
@@ -2142,13 +2282,13 @@ vue@^3.0.0, vue@^3.2.0, vue@^3.2.25, vue@^3.3.4, "vue@2 || 3", vue@3.3.6:
vuex-persistedstate@^4.1.0:
version "4.1.0"
- resolved "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz#127165f85f5b4534fb3170a5d3a8be9811bd2a53"
integrity sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ==
dependencies:
deepmerge "^4.2.2"
shvl "^2.0.3"
-"vuex@^3.0 || ^4.0.0-rc", vuex@^4.1.0:
+vuex@^4.1.0:
version "4.1.0"
resolved "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz"
integrity sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==