diff --git a/src/api/orderProcessPlan.ts b/src/api/orderProcessPlan.ts new file mode 100644 index 0000000..7671d9d --- /dev/null +++ b/src/api/orderProcessPlan.ts @@ -0,0 +1,93 @@ +import { request } from '@/utils/request' + +// 工序计划 类型定义 +export interface OrderProcessPlan { + id?: number + + name?: string + + code?: string + + sort?: number + + orderItemId?: number + + beginTime?: string + + endTime?: string + + procurement?: number + + outsource?: number + + quantity?: number + + transferNum?: number + + transferOutNum?: number + + createTime?: string + + createBy?: string + + qualityInspection?: number + + storageEntry?: number + +} + +// 工序计划 API +export const orderProcessPlanApi = { + // 分页查询 + page(params: { page: number; pageSize: number; id?: number; name?: string; code?: string; orderItemId?: number }) { + return request({ url: '/biz/orderProcessPlan/page', method: 'get', params }) + }, + + // 获取详情 + detail(id: string) { + return request({ url: `/biz/orderProcessPlan/${id}`, method: 'get' }) + }, + + // 新增 + create(data: OrderProcessPlan) { + return request({ url: '/biz/orderProcessPlan', method: 'post', data }) + }, + + // 修改 + update(data: OrderProcessPlan) { + return request({ url: '/biz/orderProcessPlan', method: 'put', data }) + }, + + // 删除 + delete(ids: string[]) { + return request({ url: `/biz/orderProcessPlan/${ids.join(',')}`, method: 'delete' }) + }, + + // 导出 + export(params?: { ids?: string[]; id?: number; name?: string; code?: string; orderItemId?: number }) { + const p: Record = {} + if (params?.ids?.length) p.ids = params.ids.join(',') + if (params?.id !== undefined && params?.id !== null) p.id = params.id + if (params?.name !== undefined && params?.name !== null) p.name = params.name + if (params?.code !== undefined && params?.code !== null) p.code = params.code + if (params?.orderItemId !== undefined && params?.orderItemId !== null) p.orderItemId = params.orderItemId + return request({ url: `/biz/orderProcessPlan/export`, method: 'get', params: p, responseType: 'blob' }) + }, + + // 导入 + importData(file: File) { + const formData = new FormData() + formData.append('file', file) + return request<{ success: number; fail: number; errors: string[] }>({ + url: `/biz/orderProcessPlan/import`, + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) + }, + + // 下载导入模板 + downloadTemplate() { + return request({ url: `/biz/orderProcessPlan/template`, method: 'get', responseType: 'blob' }) + } +} diff --git a/src/router/index.ts b/src/router/index.ts index e585ff7..cddbf50 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -203,8 +203,8 @@ const routes: RouteRecordRaw[] = [ component: () => import('@/views/test/test/index.vue'), meta: { title: '测试菜单', icon: 'StarOutline' } }, - // 开发工具 { + // 开发工具 path: 'tool/gen', name: 'ToolGen', component: () => import('@/views/tool/gen/index.vue'), @@ -330,22 +330,27 @@ export function resetRouter() { // 路由守卫 router.beforeEach(async (to, _from, next) => { + console.log('路由测试'); const userStore = useUserStore() //document.title = `${to.meta.title || ''} - CSY Admin` - + console.log('开始动态路由11', to.meta, _from); if (to.meta.requiresAuth === false) { next() return } + console.log('开始动态路由2222', to.meta, _from); if (!userStore.token) { next({ name: 'Login', query: { redirect: to.fullPath } }) return } + if (!userStore.user) { try { + console.log('开始动态路由4444', userStore.user, to.meta, _from); + await userStore.getInfo() // 添加动态路由(只添加新的,不影响已有的) addDynamicRoutes(userStore.menus) diff --git a/src/views/biz/orderProcessPlan/index.vue b/src/views/biz/orderProcessPlan/index.vue new file mode 100644 index 0000000..f38e36e --- /dev/null +++ b/src/views/biz/orderProcessPlan/index.vue @@ -0,0 +1,527 @@ + + + + +