perf:添加商品的规格单位选项

This commit is contained in:
郭永超 2025-09-26 14:19:17 +08:00
parent 480ffc6aa9
commit 8fd822ed0d
5 changed files with 75 additions and 45 deletions

View File

@ -1,69 +1,79 @@
import router from './router' import router from "./router";
import { ElMessage } from 'element-plus' import { ElMessage } from "element-plus";
import NProgress from 'nprogress' import NProgress from "nprogress";
import 'nprogress/nprogress.css' import "nprogress/nprogress.css";
import { getToken } from '@/utils/auth' import { getToken } from "@/utils/auth";
import { isHttp, isPathMatch } from '@/utils/validate' import { isHttp, isPathMatch } from "@/utils/validate";
import { isRelogin } from '@/utils/request' import { isRelogin } from "@/utils/request";
import useUserStore from '@/store/modules/user' import useUserStore from "@/store/modules/user";
import useSettingsStore from '@/store/modules/settings' import useSettingsStore from "@/store/modules/settings";
import usePermissionStore from '@/store/modules/permission' import usePermissionStore from "@/store/modules/permission";
NProgress.configure({ showSpinner: false }) NProgress.configure({ showSpinner: false });
const whiteList = ['/sub-operation-admin/login', '/sub-operation-admin/register'] const whiteList = [
"/sub-operation-admin/login",
"/sub-operation-admin/register",
];
const isWhiteList = (path) => { const isWhiteList = (path) => {
return whiteList.some(pattern => isPathMatch(pattern, path)) return whiteList.some((pattern) => isPathMatch(pattern, path));
} };
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
NProgress.start() NProgress.start();
if (getToken()) { if (getToken()) {
to.meta.title && useSettingsStore().setTitle(to.meta.title) to.meta.title && useSettingsStore().setTitle(to.meta.title);
/* has token*/ /* has token*/
if (to.path === '/sub-operation-admin/login') { if (to.path === "/sub-operation-admin/login") {
next({ path: '/sub-operation-admin' }) next({ path: "/sub-operation-admin" });
NProgress.done() NProgress.done();
} else if (isWhiteList(to.path)) { } else if (isWhiteList(to.path)) {
next() next();
} else { } else {
if (useUserStore().roles.length === 0) { if (useUserStore().roles.length === 0) {
isRelogin.show = true isRelogin.show = true;
// 判断当前用户是否已拉取完user_info信息 // 判断当前用户是否已拉取完user_info信息
useUserStore().getInfo().then(() => { useUserStore()
isRelogin.show = false .getInfo()
usePermissionStore().generateRoutes().then(accessRoutes => { .then(() => {
// 根据roles权限生成可访问的路由表 isRelogin.show = false;
accessRoutes.forEach(route => { usePermissionStore()
if (!isHttp(route.path)) { .generateRoutes()
router.addRoute(route) // 动态添加可访问路由表 .then((accessRoutes) => {
} // 根据roles权限生成可访问的路由表
}) accessRoutes.forEach((route) => {
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 if (!isHttp(route.path)) {
router.addRoute(route); // 动态添加可访问路由表
}
});
next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
});
}) })
}).catch(err => { .catch((err) => {
useUserStore().logOut().then(() => { useUserStore()
ElMessage.error(err) .logOut()
next({ path: '/sub-operation-admin' }) .then(() => {
}) ElMessage.error(err);
}) next({ path: "/sub-operation-admin" });
});
});
} else { } else {
next() next();
} }
} }
} else { } else {
// 没有token // 没有token
if (isWhiteList(to.path)) { if (isWhiteList(to.path)) {
// 在免登录白名单,直接进入 // 在免登录白名单,直接进入
next() next();
} else { } else {
next(`/sub-operation-admin/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 next(`/sub-operation-admin/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页
NProgress.done() NProgress.done();
} }
} }
}) });
router.afterEach(() => { router.afterEach(() => {
NProgress.done() NProgress.done();
}) });

View File

@ -84,6 +84,8 @@
<el-option label="袋" value="袋" /> <el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" /> <el-option label="瓶" value="瓶" />
<el-option label="件" value="件" /> <el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
@ -131,6 +133,8 @@
<el-option label="袋" value="袋" /> <el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" /> <el-option label="瓶" value="瓶" />
<el-option label="件" value="件" /> <el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select> </el-select>
</div> </div>
</div> </div>

View File

@ -84,6 +84,8 @@
<el-option label="袋" value="袋" /> <el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" /> <el-option label="瓶" value="瓶" />
<el-option label="件" value="件" /> <el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
@ -125,8 +127,14 @@
<el-select v-model="item.unit" style="width: 80px; margin-left: 10px"> <el-select v-model="item.unit" style="width: 80px; margin-left: 10px">
<el-option label="kg" value="kg" /> <el-option label="kg" value="kg" />
<el-option label="g" value="g" /> <el-option label="g" value="g" />
<el-option label="ml" value="L" /> <el-option label="L" value="L" />
<el-option label="ml" value="ml" /> <el-option label="ml" value="ml" />
<el-option label="棵" value="棵" />
<el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" />
<el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select> </el-select>
</div> </div>
</div> </div>

View File

@ -80,6 +80,8 @@
<el-option label="袋" value="袋" /> <el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" /> <el-option label="瓶" value="瓶" />
<el-option label="件" value="件" /> <el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
@ -123,6 +125,8 @@
<el-option label="袋" value="袋" /> <el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" /> <el-option label="瓶" value="瓶" />
<el-option label="件" value="件" /> <el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select> </el-select>
</div> </div>
</div> </div>

View File

@ -80,6 +80,8 @@
<el-option label="袋" value="袋" /> <el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" /> <el-option label="瓶" value="瓶" />
<el-option label="件" value="件" /> <el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
@ -123,6 +125,8 @@
<el-option label="袋" value="袋" /> <el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" /> <el-option label="瓶" value="瓶" />
<el-option label="件" value="件" /> <el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select> </el-select>
</div> </div>
</div> </div>