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 { ElMessage } from 'element-plus'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth'
import { isHttp, isPathMatch } from '@/utils/validate'
import { isRelogin } from '@/utils/request'
import useUserStore from '@/store/modules/user'
import useSettingsStore from '@/store/modules/settings'
import usePermissionStore from '@/store/modules/permission'
import router from "./router";
import { ElMessage } from "element-plus";
import NProgress from "nprogress";
import "nprogress/nprogress.css";
import { getToken } from "@/utils/auth";
import { isHttp, isPathMatch } from "@/utils/validate";
import { isRelogin } from "@/utils/request";
import useUserStore from "@/store/modules/user";
import useSettingsStore from "@/store/modules/settings";
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) => {
return whiteList.some(pattern => isPathMatch(pattern, path))
}
return whiteList.some((pattern) => isPathMatch(pattern, path));
};
router.beforeEach((to, from, next) => {
NProgress.start()
NProgress.start();
if (getToken()) {
to.meta.title && useSettingsStore().setTitle(to.meta.title)
to.meta.title && useSettingsStore().setTitle(to.meta.title);
/* has token*/
if (to.path === '/sub-operation-admin/login') {
next({ path: '/sub-operation-admin' })
NProgress.done()
if (to.path === "/sub-operation-admin/login") {
next({ path: "/sub-operation-admin" });
NProgress.done();
} else if (isWhiteList(to.path)) {
next()
next();
} else {
if (useUserStore().roles.length === 0) {
isRelogin.show = true
isRelogin.show = true;
// 判断当前用户是否已拉取完user_info信息
useUserStore().getInfo().then(() => {
isRelogin.show = false
usePermissionStore().generateRoutes().then(accessRoutes => {
useUserStore()
.getInfo()
.then(() => {
isRelogin.show = false;
usePermissionStore()
.generateRoutes()
.then((accessRoutes) => {
// 根据roles权限生成可访问的路由表
accessRoutes.forEach(route => {
accessRoutes.forEach((route) => {
if (!isHttp(route.path)) {
router.addRoute(route) // 动态添加可访问路由表
router.addRoute(route); // 动态添加可访问路由表
}
});
next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
});
})
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
})
}).catch(err => {
useUserStore().logOut().then(() => {
ElMessage.error(err)
next({ path: '/sub-operation-admin' })
})
})
.catch((err) => {
useUserStore()
.logOut()
.then(() => {
ElMessage.error(err);
next({ path: "/sub-operation-admin" });
});
});
} else {
next()
next();
}
}
} else {
// 没有token
if (isWhiteList(to.path)) {
// 在免登录白名单,直接进入
next()
next();
} else {
next(`/sub-operation-admin/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
NProgress.done()
next(`/sub-operation-admin/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页
NProgress.done();
}
}
})
});
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-select>
</el-form-item>
</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-select>
</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-select>
</el-form-item>
</div>
@ -125,8 +127,14 @@
<el-select v-model="item.unit" style="width: 80px; margin-left: 10px">
<el-option label="kg" value="kg" />
<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="棵" value="棵" />
<el-option label="袋" value="袋" />
<el-option label="瓶" value="瓶" />
<el-option label="件" value="件" />
<el-option label="个" value="个" />
<el-option label="吨" value="吨" />
</el-select>
</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-select>
</el-form-item>
</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-select>
</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-select>
</el-form-item>
</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-select>
</div>
</div>