diff --git a/frontent/ops_vue_js/index.html b/frontent/ops_vue_js/index.html index b19040a..bb4ca71 100644 --- a/frontent/ops_vue_js/index.html +++ b/frontent/ops_vue_js/index.html @@ -2,7 +2,7 @@ - + Vite App diff --git a/frontent/ops_vue_js/package-lock.json b/frontent/ops_vue_js/package-lock.json index 37c25a8..0fdec13 100644 --- a/frontent/ops_vue_js/package-lock.json +++ b/frontent/ops_vue_js/package-lock.json @@ -32,6 +32,7 @@ "cropperjs": "^2.1.0", "litepicker": "^2.0.12", "pinia": "^3.0.4", + "tom-select": "^2.4.3", "vue": "^3.5.22", "vue-cropper": "^0.6.5", "vue-i18n": "^11.1.12", @@ -78,6 +79,7 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1076,6 +1078,7 @@ "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" } @@ -1222,6 +1225,21 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@orchidjs/sifter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@orchidjs/sifter/-/sifter-1.1.0.tgz", + "integrity": "sha512-mYwHCfr736cIWWdhhSZvDbf90AKt2xyrJspKFC3qyIJG1LtrJeJunYEqCGG4Aq2ijENbc4WkOjszcvNaIAS/pQ==", + "license": "Apache-2.0", + "dependencies": { + "@orchidjs/unicode-variants": "^1.1.2" + } + }, + "node_modules/@orchidjs/unicode-variants": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@orchidjs/unicode-variants/-/unicode-variants-1.1.2.tgz", + "integrity": "sha512-5DobW1CHgnBROOEpFlEXytED5OosEWESFvg/VYmH0143oXcijYTprRYJTs+55HzGM4IqxiLFSuqEzu9mPNwVsA==", + "license": "Apache-2.0" + }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", @@ -1544,6 +1562,7 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "license": "MIT", + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -2271,6 +2290,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", @@ -3415,6 +3435,7 @@ "integrity": "sha512-+VUy01yfDqNmIVMd/LLKl2TTtY0ovZN0rTonh+FhKr65mFwIYgU9WzgIZKS7U9/SPCQvWTsTGx9jyt+qRm/XFw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@bufbuild/protobuf": "^2.5.0", "buffer-builder": "^0.2.0", @@ -3883,6 +3904,23 @@ "node": ">=8.0" } }, + "node_modules/tom-select": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tom-select/-/tom-select-2.4.3.tgz", + "integrity": "sha512-MFFrMxP1bpnAMPbdvPCZk0KwYxLqhYZso39torcdoefeV/NThNyDu8dV96/INJ5XQVTL3O55+GqQ78Pkj5oCfw==", + "license": "Apache-2.0", + "dependencies": { + "@orchidjs/sifter": "^1.1.0", + "@orchidjs/unicode-variants": "^1.1.2" + }, + "engines": { + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tom-select" + } + }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", @@ -3961,6 +3999,7 @@ "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -4139,6 +4178,7 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.24.tgz", "integrity": "sha512-uTHDOpVQTMjcGgrqFPSb8iO2m1DUvo+WbGqoXQz8Y1CeBYQ0FXf2z1gLRaBtHjlRz7zZUBHxjVB5VTLzYkvftg==", "license": "MIT", + "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.24", "@vue/compiler-sfc": "3.5.24", diff --git a/frontent/ops_vue_js/package.json b/frontent/ops_vue_js/package.json index 67440e2..ecda95f 100644 --- a/frontent/ops_vue_js/package.json +++ b/frontent/ops_vue_js/package.json @@ -36,6 +36,7 @@ "cropperjs": "^2.1.0", "litepicker": "^2.0.12", "pinia": "^3.0.4", + "tom-select": "^2.4.3", "vue": "^3.5.22", "vue-cropper": "^0.6.5", "vue-i18n": "^11.1.12", diff --git a/frontent/ops_vue_js/public/logo.svg b/frontent/ops_vue_js/public/logo.svg new file mode 100644 index 0000000..74a149f --- /dev/null +++ b/frontent/ops_vue_js/public/logo.svg @@ -0,0 +1,491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontent/ops_vue_js/src/assets/logo.svg b/frontent/ops_vue_js/src/assets/logo.svg index 7565660..74a149f 100644 --- a/frontent/ops_vue_js/src/assets/logo.svg +++ b/frontent/ops_vue_js/src/assets/logo.svg @@ -1 +1,491 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontent/ops_vue_js/src/assets/logo1.svg b/frontent/ops_vue_js/src/assets/logo1.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/frontent/ops_vue_js/src/assets/logo1.svg @@ -0,0 +1 @@ + diff --git a/frontent/ops_vue_js/src/components/tagadder.vue b/frontent/ops_vue_js/src/components/tagadder.vue new file mode 100644 index 0000000..2015164 --- /dev/null +++ b/frontent/ops_vue_js/src/components/tagadder.vue @@ -0,0 +1,53 @@ + + + diff --git a/frontent/ops_vue_js/src/i18n/en.json b/frontent/ops_vue_js/src/i18n/en.json index 8ced4a7..50aaf22 100644 --- a/frontent/ops_vue_js/src/i18n/en.json +++ b/frontent/ops_vue_js/src/i18n/en.json @@ -3,7 +3,8 @@ "404_title": "404 Resource Not Found", "404_msg_title": "Oops… You just found an error page", "404_msg": "We are sorry but the page you are looking for was not found", - "404_back_home": "Take me home" + "404_back_home": "Take me home", + "404_previous_page": "previous page" }, "appname": { "home": "Home", @@ -14,6 +15,11 @@ "purchase": "Purchase", "warehouse": "Warehouse" }, + "tagadder": { + "not_fund_item": "No matching items found", + "loding": "Loading...", + "add": "Add new option: " + }, "cropper": { "select_image": "Select Image", "select_File": "Select File", diff --git a/frontent/ops_vue_js/src/i18n/zh-CN.json b/frontent/ops_vue_js/src/i18n/zh-CN.json index 84075c6..5efd208 100644 --- a/frontent/ops_vue_js/src/i18n/zh-CN.json +++ b/frontent/ops_vue_js/src/i18n/zh-CN.json @@ -3,7 +3,8 @@ "404_title": "404 资源未找到", "404_msg_title": "抱歉…您刚刚发现了一个错误页面", "404_msg": "您所查找的页面不存在", - "404_back_home": "返回首页" + "404_back_home": "返回首页", + "404_previous_page": "上一页" }, "appname": { "home": "主页", @@ -14,6 +15,11 @@ "purchase": "采购", "warehouse": "仓库" }, + "tagadder":{ + "not_fund_item":"没有找到匹配项", + "loding":"正在加载...", + "add":"添加新选项: " + }, "cropper": { "select_image": "选择图片", "select_File": "选择文件", diff --git a/frontent/ops_vue_js/src/router/index.js b/frontent/ops_vue_js/src/router/index.js index 87e8e6a..ab1133e 100644 --- a/frontent/ops_vue_js/src/router/index.js +++ b/frontent/ops_vue_js/src/router/index.js @@ -13,25 +13,21 @@ const router = createRouter({ name: "home", component: HomeView, }, - { - path: "/404", - name: "404", - component: () => import("../views/404.vue"), - }, + { path: "/settings/account", name: "settings account", - component: () => import("../views/settings/account.vue"), + component: () => import("@/views/settings/account.vue"), }, { path: "/settings/contact", name: "settings contact", - component: () => import("../views/settings/contact.vue"), + component: () => import("@/views/settings/contact.vue"), }, { path: "/settings/security", name: "settings security", - component: () => import("../views/settings/security.vue"), + component: () => import("@/views/settings/security.vue"), }, { path: "/about", @@ -39,53 +35,64 @@ const router = createRouter({ // route level code-splitting // this generates a separate chunk (About.[hash].js) for this route // which is lazy-loaded when the route is visited. - component: () => import("../views/AboutView.vue"), + component: () => import("@/views/AboutView.vue"), }, { path: "/test", name: "test", - component: () => import("../views/test.vue"), + component: () => import("@/views/test.vue"), }, { path: "/login", name: "login", - component: () => import("../views/loginView.vue"), + component: () => import("@/views/loginView.vue"), }, { path: "/forgot_password", name: "forgot password", - component: () => import("../views/forgotPassword.vue"), + component: () => import("@/views/forgotPassword.vue"), }, { path: "/register", name: "Register", - component: () => import("../views/registerView.vue"), + component: () => import("@/views/registerView.vue"), }, { path: "/admin", name: "admin", - component: () => import("../views/adminView.vue"), + component: () => import("@/views/adminView.vue"), }, { path: "/schedule", name: "schedule", - component: () => import("../views/scheduleView.vue"), + component: () => import("@/views/scheduleView.vue"), }, { path: "/purchase", name: "purchase", - component: () => import("../views/purchase/purchase.vue"), + component: () => import("@/views/purchase/purchase.vue"), }, - { + { path: "/purchase/addorder", - name: "purchase", - component: () => import("../views/purchase/addorder.vue"), + name: "purchase/addorder", + component: () => import("@/views/purchase/addorder.vue"), }, { path: "/warehouse", name: "warehouse", - component: () => import("../views/warehouse.vue"), + component: () => import("@/views/warehouse.vue"), + }, + { + path: "/404", + name: "404", + component: () => import("@/views/404.vue"), + }, + // 404 页面 - 放在最后 + { + path: "/:pathMatch(.*)*", // 通配符,匹配所有路由 + name: "NotFound", + component: () => import("@/views/404.vue"), }, ], }); diff --git a/frontent/ops_vue_js/src/views/404.vue b/frontent/ops_vue_js/src/views/404.vue index f5ff451..02ead87 100644 --- a/frontent/ops_vue_js/src/views/404.vue +++ b/frontent/ops_vue_js/src/views/404.vue @@ -3,6 +3,10 @@ import { onMounted, watch, ref } from "vue"; import { useI18n } from "vue-i18n"; import { useRouter } from "vue-router"; const { t, locale } = useI18n(); +const router = useRouter(); +function goback() { + router.back(); +} function functionupdataTitle() { document.title = "Operations." + t("errorpage.404_title"); @@ -30,25 +34,44 @@ onMounted(() => { {{ t("errorpage.404_msg") }}

- - + + + + + + + + {{ t("errorpage.404_back_home") }}
diff --git a/frontent/ops_vue_js/src/views/purchase/addorder.vue b/frontent/ops_vue_js/src/views/purchase/addorder.vue index cfbf8a9..6ece80e 100644 --- a/frontent/ops_vue_js/src/views/purchase/addorder.vue +++ b/frontent/ops_vue_js/src/views/purchase/addorder.vue @@ -1,21 +1,284 @@ \ No newline at end of file + +
+
+
+
+
+
+

订单信息

+
+
+
+ + +
+
+ + +
+
+ +
+

采购途径

+
+
+
+ + +
+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
类型数量费用总价货币操作
{{value.type}}{{value.int}}{{value.cost}}{{value.cost*value.int}}{{value.currency_type}} + +
+ +
+
+ 类型 + +
+
+ 数量 + +
+
+ 费用 + +
+
+ 货币 + +
+
+ 操作 + +
+
+
+
+
+ +
+

其他状态

+
+
+
+
+
+ + +
+
+ + +
+
+ 订单状态 + +
+
+
+
+ +
+
+
+
+
+ + +