diff --git a/src/api/orderProcessPlan.ts b/src/api/orderProcessPlan.ts new file mode 100644 index 0000000..739ba32 --- /dev/null +++ b/src/api/orderProcessPlan.ts @@ -0,0 +1,98 @@ +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:any) { //{ 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: any) { + return request({ url: '/biz/orderProcessPlan', method: 'post', data }) + }, + + // 修改 + update(data: any) { + return request({ url: '/biz/orderProcessPlan', method: 'put', data }) + }, + + // 删除 + delete(ids: string[]) { + return request({ url: `/biz/orderProcessPlan/${ids.join(',')}`, method: 'delete' }) + }, + + //派工 + assignWork(data: any) { + return request({ url: '/biz/orderProcessPlan/assignWork', method: 'put', data }) + }, + + // 导出 + 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/api/submitLog.ts b/src/api/submitLog.ts new file mode 100644 index 0000000..f8d1230 --- /dev/null +++ b/src/api/submitLog.ts @@ -0,0 +1,70 @@ +import { request } from '@/utils/request' + +// 派工工单汇报记录 类型定义 +export interface SubmitLog { + id?: number + + assingWorkId?: number + + processId?: number + + quantity?: number + + createTime?: string + + createBy?: string + +} + +// 派工工单汇报记录 API +export const submitLogApi = { + // 分页查询 + page(params: { page: number; pageSize: number; id?: number }) { + return request({ url: '/biz/submitLog/page', method: 'get', params }) + }, + + // 获取详情 + detail(id: string) { + return request({ url: `/biz/submitLog/${id}`, method: 'get' }) + }, + + // 新增 + create(data: SubmitLog) { + return request({ url: '/biz/submitLog', method: 'post', data }) + }, + + // 修改 + update(data: SubmitLog) { + return request({ url: '/biz/submitLog', method: 'put', data }) + }, + + // 删除 + delete(ids: string[]) { + return request({ url: `/biz/submitLog/${ids.join(',')}`, method: 'delete' }) + }, + + // 导出 + export(params?: { ids?: string[]; id?: number }) { + const p: Record = {} + if (params?.ids?.length) p.ids = params.ids.join(',') + if (params?.id !== undefined && params?.id !== null) p.id = params.id + return request({ url: `/biz/submitLog/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/submitLog/import`, + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) + }, + + // 下载导入模板 + downloadTemplate() { + return request({ url: `/biz/submitLog/template`, method: 'get', responseType: 'blob' }) + } +} diff --git a/src/views/biz/orderItem/gxitem.vue b/src/views/biz/orderItem/gxitem.vue index 7bfb28f..c3d2071 100644 --- a/src/views/biz/orderItem/gxitem.vue +++ b/src/views/biz/orderItem/gxitem.vue @@ -21,6 +21,7 @@ /> + - + @@ -69,7 +69,8 @@ - + + + + + + + + + + + @@ -118,30 +133,19 @@ - - - - - - - - + + - + - - - - - - + @@ -199,33 +203,39 @@ - - + + {{ n.code }}{{n.sort}} {{ n.name }} {{ n.orderItemName }} - --> + @@ -254,16 +264,30 @@ label-placement="top" label-width="80" > - - + + - --> + + + @@ -348,7 +372,10 @@ import { useUserStore } from '@/stores/user' import { VueDraggable } from 'vue-draggable-plus' -import Gxitem from './gxitem.vue' +// import Gxitem from './gxitem.vue' + + +import { userApi } from '@/api/system' const message = useMessage() const dialog = useDialog() @@ -356,7 +383,9 @@ const dialog = useDialog() const userStore = useUserStore() - +function isEven(num:any) { + return num % 2 == 0 +} // 权限检查 const hasPermission = (permission: string) => userStore.hasPermission(permission) @@ -422,9 +451,9 @@ const formRules = { // 表格列 const columns = [ - { - type: 'selection' - }, + // { + // type: 'selection' + // }, { align:'center', minWidth: 150, @@ -647,14 +676,10 @@ function tuozChange() { console.log(planList.value) } -function gxupdata(v:any) { - console.log(planList.value,'planList') - console.log(v,'gx') -} - -let gxsdate = ref(null) - -let gxsdate1 = ref(null) +// function gxupdata(v:any) { +// console.log(planList.value,'planList') +// console.log(v,'gx') +// } // 新增 @@ -699,7 +724,6 @@ function handleEdit(row: OrderItem) { // 提交 async function handleSubmit() { - console.log(planList.value,'planList') await formRef.value?.validate() try { const submitData = { ...formData } as OrderItem @@ -725,18 +749,19 @@ async function handleSubmit() { submitData.assingWorkOperationTime = new Date(submitData.assingWorkOperationTime).toISOString().slice(0, 19).replace('T', ' ') } - let savedata = Object.assign( + + + if (submitData.id) { + await orderItemApi.update(submitData) + message.success('修改成功') + } else { + let savedata = Object.assign( {}, submitData, { planList:planList.value } ) - - if (submitData.id) { - await orderItemApi.update(savedata) - message.success('修改成功') - } else { await orderItemApi.create(savedata) message.success('新增成功') } @@ -751,19 +776,12 @@ async function handleSubmit() { let dispatchmodal = ref(false) let dispatchform = reactive({ id:'', - userid:'' + name:'', + userid:'', + username:'' }) -let yglist = ref([ - { - label: '张三', - value: '1' - }, - { - label: '李四', - value: '2' - } -]) +let yglist = ref([]) const dispatchrules = { userid:[{ required: true, message: '请选择员工', trigger: 'blur' }] @@ -773,14 +791,41 @@ let dispatchddbtn = ref(false) const dispatchformRef = ref() +let loadingRef = ref(false) + +function slehand(v?:any) { + loadingRef.value = true + userApi.page({ + page: 1, + pageSize: 100, + username: v, + }).then((rps:any) =>{ + if(rps.list && rps.list.length > 0){ + yglist.value = rps.list.map((n:any) => { + return { + label:n.username, + value:n.id+'' + } + }) + } + console.log(yglist.value,'12') + loadingRef.value = false + }).catch(() => { + loadingRef.value = false + }) +} + function disphand(v:any){ dispatchmodal.value = true dispatchformRef.value?.restoreValidation() dispatchform.id = v.id + dispatchform.name = v.name dispatchform.userid = '' + slehand() } function dispatchSubmit() { + console.log(dispatchform.userid,'dispatchform.userid') dispatchformRef.value?.validate((v:any) => { if(!v){ // dispatchLoading.value = true diff --git a/src/views/biz/orderProcessPlan/index.vue b/src/views/biz/orderProcessPlan/index.vue new file mode 100644 index 0000000..2d1d586 --- /dev/null +++ b/src/views/biz/orderProcessPlan/index.vue @@ -0,0 +1,946 @@ + + + + + diff --git a/src/views/biz/orderProcessPlan/pgitem.vue b/src/views/biz/orderProcessPlan/pgitem.vue new file mode 100644 index 0000000..ff81789 --- /dev/null +++ b/src/views/biz/orderProcessPlan/pgitem.vue @@ -0,0 +1,125 @@ + + \ No newline at end of file diff --git a/src/views/biz/submitLog/index.vue b/src/views/biz/submitLog/index.vue new file mode 100644 index 0000000..1b19de7 --- /dev/null +++ b/src/views/biz/submitLog/index.vue @@ -0,0 +1,382 @@ + + + + + diff --git a/src/views/production/myassigtask/index.vue b/src/views/production/myassigtask/index.vue index 3b44275..574070b 100644 --- a/src/views/production/myassigtask/index.vue +++ b/src/views/production/myassigtask/index.vue @@ -454,11 +454,13 @@ const pauserules = { qcNum: [ { required: true, message: '请输报检数量', trigger: 'blur' }, { - validator(value: number) { - return value > pauseform.qcNum + validator(rule:any,value: any) { + if(value > pauseform.qcNum){ + return new Error(`报检数量最大为${pauseform.qcNum}`) + } + return true }, - trigger: ['blur'], - message: `报检数量最大为${pauseform.qcNum}` + trigger: ['blur'] } ] }