This commit is contained in:
2025-11-27 21:04:28 +08:00
parent 339a21827c
commit 857c9eb1e8
7 changed files with 132 additions and 35 deletions
+86
View File
@@ -8,6 +8,10 @@
"name": "ops_vue_js", "name": "ops_vue_js",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@fullcalendar/daygrid": "^6.1.19",
"@fullcalendar/interaction": "^6.1.19",
"@fullcalendar/timegrid": "^6.1.19",
"@fullcalendar/vue3": "^6.1.19",
"@tabler/core": "^1.4.0", "@tabler/core": "^1.4.0",
"@tabler/icons-vue": "^3.35.0", "@tabler/icons-vue": "^3.35.0",
"axios": "^1.13.2", "axios": "^1.13.2",
@@ -1055,6 +1059,56 @@
"node": ">=18" "node": ">=18"
} }
}, },
"node_modules/@fullcalendar/core": {
"version": "6.1.19",
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.19.tgz",
"integrity": "sha512-z0aVlO5e4Wah6p6mouM0UEqtRf1MZZPt4mwzEyU6kusaNL+dlWQgAasF2cK23hwT4cmxkEmr4inULXgpyeExdQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"preact": "~10.12.1"
}
},
"node_modules/@fullcalendar/daygrid": {
"version": "6.1.19",
"resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.19.tgz",
"integrity": "sha512-IAAfnMICnVWPjpT4zi87i3FEw0xxSza0avqY/HedKEz+l5MTBYvCDPOWDATpzXoLut3aACsjktIyw9thvIcRYQ==",
"license": "MIT",
"peerDependencies": {
"@fullcalendar/core": "~6.1.19"
}
},
"node_modules/@fullcalendar/interaction": {
"version": "6.1.19",
"resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.19.tgz",
"integrity": "sha512-GOciy79xe8JMVp+1evAU3ytdwN/7tv35t5i1vFkifiuWcQMLC/JnLg/RA2s4sYmQwoYhTw/p4GLcP0gO5B3X5w==",
"license": "MIT",
"peerDependencies": {
"@fullcalendar/core": "~6.1.19"
}
},
"node_modules/@fullcalendar/timegrid": {
"version": "6.1.19",
"resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.19.tgz",
"integrity": "sha512-OuzpUueyO9wB5OZ8rs7TWIoqvu4v3yEqdDxZ2VcsMldCpYJRiOe7yHWKr4ap5Tb0fs7Rjbserc/b6Nt7ol6BRg==",
"license": "MIT",
"dependencies": {
"@fullcalendar/daygrid": "~6.1.19"
},
"peerDependencies": {
"@fullcalendar/core": "~6.1.19"
}
},
"node_modules/@fullcalendar/vue3": {
"version": "6.1.19",
"resolved": "https://registry.npmjs.org/@fullcalendar/vue3/-/vue3-6.1.19.tgz",
"integrity": "sha512-j5eUSxx0xIy3ADljo0f5B9PhjqXnCQ+7nUMPfsslc2eGVjp4F74YvY3dyd6OBbg13IvpsjowkjncGipYMQWmTA==",
"license": "MIT",
"peerDependencies": {
"@fullcalendar/core": "~6.1.19",
"vue": "^3.0.11"
}
},
"node_modules/@intlify/core-base": { "node_modules/@intlify/core-base": {
"version": "11.1.12", "version": "11.1.12",
"resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.1.12.tgz", "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.1.12.tgz",
@@ -3213,6 +3267,16 @@
"node": "^10 || ^12 || >=14" "node": "^10 || ^12 || >=14"
} }
}, },
"node_modules/preact": {
"version": "10.12.1",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz",
"integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==",
"license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
}
},
"node_modules/proxy-from-env": { "node_modules/proxy-from-env": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -3305,6 +3369,28 @@
"tslib": "^2.1.0" "tslib": "^2.1.0"
} }
}, },
"node_modules/sass": {
"version": "1.93.3",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.93.3.tgz",
"integrity": "sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"chokidar": "^4.0.0",
"immutable": "^5.0.2",
"source-map-js": ">=0.6.2 <2.0.0"
},
"bin": {
"sass": "sass.js"
},
"engines": {
"node": ">=14.0.0"
},
"optionalDependencies": {
"@parcel/watcher": "^2.4.1"
}
},
"node_modules/sass-embedded": { "node_modules/sass-embedded": {
"version": "1.93.3", "version": "1.93.3",
"resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.93.3.tgz", "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.93.3.tgz",
+4
View File
@@ -12,6 +12,10 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
"@fullcalendar/daygrid": "^6.1.19",
"@fullcalendar/interaction": "^6.1.19",
"@fullcalendar/timegrid": "^6.1.19",
"@fullcalendar/vue3": "^6.1.19",
"@tabler/core": "^1.4.0", "@tabler/core": "^1.4.0",
"@tabler/icons-vue": "^3.35.0", "@tabler/icons-vue": "^3.35.0",
"axios": "^1.13.2", "axios": "^1.13.2",
@@ -183,9 +183,7 @@ onMounted(() => {
aria-label="Open user menu" aria-label="Open user menu"
> >
<img <img
:src=" :src="userStore.getUserAvatarPath()"
userStore.getUserAvatarPath()
"
alt="" alt=""
class="avatar avatar-sm" class="avatar avatar-sm"
/> />
@@ -275,35 +273,26 @@ onMounted(() => {
<div class="row flex-column flex-md-row flex-fill align-items-center"> <div class="row flex-column flex-md-row flex-fill align-items-center">
<div class="col d-flex"> <div class="col d-flex">
<!-- BEGIN NAVBAR MENU --> <!-- BEGIN NAVBAR MENU -->
<ul class="navbar-nav"> <dev class="navbar-nav">
<li class="nav-item active"> <router-link
<router-link to="/" class="nav-link"> to="/"
<span class="nav-link-icon d-md-none d-lg-inline-block" class="nav-item nav-link"
><!-- Download SVG icon from http://tabler.io/icons/icon/home --> active-class="active"
<svg >
xmlns="http://www.w3.org/2000/svg" <span class="nav-link-title">
width="24" {{ t("appname.home") }}
height="24" </span>
viewBox="0 0 24 24" </router-link>
fill="none" <router-link
stroke="currentColor" to="/schedule"
stroke-width="2" class="nav-item nav-link"
stroke-linecap="round" active-class="active"
stroke-linejoin="round" >
class="icon icon-1" <span class="nav-link-title">
> {{ t("appname.schedule") }}
<path d="M5 12l-2 0l9 -9l9 9l-2 0" /> </span>
<path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" /> </router-link>
<path </dev>
d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6"
/></svg
></span>
<span class="nav-link-title">
{{ t("appname.home") }}
</span>
</router-link>
</li>
</ul>
<div class="ms-auto"> <div class="ms-auto">
<select <select
+2 -1
View File
@@ -3,7 +3,8 @@
"home": "Home", "home": "Home",
"login": "Login", "login": "Login",
"forgot_password": "Forgot Password", "forgot_password": "Forgot Password",
"register": "Register" "register": "Register",
"schedule":"Schedule"
}, },
"message": { "message": {
"functionality_not_yet_developed":"Functionality not yet developed", "functionality_not_yet_developed":"Functionality not yet developed",
+2 -1
View File
@@ -3,7 +3,8 @@
"home": "主页", "home": "主页",
"login": "登录", "login": "登录",
"forgot_password": "忘记密码", "forgot_password": "忘记密码",
"register": "注册" "register": "注册",
"schedule":"日程"
}, },
"message": { "message": {
"functionality_not_yet_developed":"功能未开发", "functionality_not_yet_developed":"功能未开发",
+6 -1
View File
@@ -46,11 +46,16 @@ const router = createRouter({
name: "admin", name: "admin",
component: () => import("../views/adminView.vue"), component: () => import("../views/adminView.vue"),
}, },
{ {
path: "/settings/account", path: "/settings/account",
name: "settings account", name: "settings account",
component: () => import("../views/settings/account.vue"), component: () => import("../views/settings/account.vue"),
}, },
{
path: "/schedule",
name: "schedule",
component: () => import("../views/scheduleView.vue"),
},
], ],
}); });
@@ -0,0 +1,11 @@
<script setup>
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'
import timeGridPlugin from '@fullcalendar/timegrid'
import interactionPlugin from "@fullcalendar/interaction"//拖动插件 需要用npm安装
</script>
<template>
<FullCalendar > </FullCalendar>
</template>