From ac6e97bb4a84cc18ab1326920a960f243cb79d42 Mon Sep 17 00:00:00 2001 From: shaoleiliu-netizen123 <480188199@qq.com> Date: Tue, 2 Jun 2026 09:24:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=B4=A8=E6=A3=80=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/assingRework.ts | 96 +++ src/api/qcResultDetail.ts | 80 +++ src/api/qualityTesting.ts | 101 +++ src/views/biz/qualityTesting/detail.vue | 218 ++++++ src/views/biz/qualityTesting/index.vue | 914 ++++++++++++++++++++++++ 5 files changed, 1409 insertions(+) create mode 100644 src/api/assingRework.ts create mode 100644 src/api/qcResultDetail.ts create mode 100644 src/api/qualityTesting.ts create mode 100644 src/views/biz/qualityTesting/detail.vue create mode 100644 src/views/biz/qualityTesting/index.vue diff --git a/src/api/assingRework.ts b/src/api/assingRework.ts new file mode 100644 index 0000000..0dc122d --- /dev/null +++ b/src/api/assingRework.ts @@ -0,0 +1,96 @@ +import { request } from '@/utils/request' + +// AssingRework 类型定义 +export interface AssingRework { + id?: number + + processId?: number + + userId?: number + + quantity?: number + + completedQuantity?: number + + completedTime?: string + + createTime?: string + + createBy?: string + + qualityReturn?: number + + qualityReturnNum?: string + + qualityIds?: string + + status?: number + + reason?: string + + pauseTime?: string + + assingStatus?: number + + 返工派工单号?: string + +} + +// AssingRework API +export const assingReworkApi = { + // 分页查询 + page(params: { page: number; pageSize: number; id?: number; status?: number }) { + return request({ url: '/biz/assingRework/page', method: 'get', params }) + }, + + // 获取详情 + detail(id: string) { + return request({ url: `/biz/assingRework/${id}`, method: 'get' }) + }, + + // 新增 + create(data: AssingRework) { + return request({ url: '/biz/assingRework', method: 'post', data }) + }, + + // 修改 + update(data: AssingRework) { + return request({ url: '/biz/assingRework', method: 'put', data }) + }, + + // 删除 + delete(ids: string[]) { + return request({ url: `/biz/assingRework/${ids.join(',')}`, method: 'delete' }) + }, + + // 获取列表 + allList() { + return request({ url: '/mes/dispatch/all', method: 'get' }) + }, + + // 导出 + export(params?: { ids?: string[]; id?: number; status?: 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?.status !== undefined && params?.status !== null) p.status = params.status + return request({ url: `/biz/assingRework/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/assingRework/import`, + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) + }, + + // 下载导入模板 + downloadTemplate() { + return request({ url: `/biz/assingRework/template`, method: 'get', responseType: 'blob' }) + } +} \ No newline at end of file diff --git a/src/api/qcResultDetail.ts b/src/api/qcResultDetail.ts new file mode 100644 index 0000000..713b2f1 --- /dev/null +++ b/src/api/qcResultDetail.ts @@ -0,0 +1,80 @@ +import { request } from '@/utils/request' + +// 质检结果明细表 类型定义 +export interface QcResultDetail { + id?: number + + qcId?: number + + resultType?: number + + qty?: string + + traceCode?: string + + defectCode?: string + + handleAction?: string + + actionStatus?: number + + remark?: string + + createTime?: string + + updateTime?: string + +} + +// 质检结果明细表 API +export const qcResultDetailApi = { + // 分页查询 + page(params : { page: number; pageSize: number; id?: number; resultType?: number,traceCode:string,defectCode:string }) { + return request({ url: '/biz/qcResultDetail/page', method: 'get', params }) + }, + + // 获取详情 + detail(id: number) { + return request({ url: `/biz/qcResultDetail/${id}`, method: 'get' }) + }, + + // 新增 + create(data: QcResultDetail) { + return request({ url: '/biz/qcResultDetail', method: 'post', data }) + }, + + // 修改 + update(data: QcResultDetail) { + return request({ url: '/biz/qcResultDetail', method: 'put', data }) + }, + + // 删除 + delete(ids: number[]) { + return request({ url: `/biz/qcResultDetail/${ids.join(',')}`, method: 'delete' }) + }, + + // 导出 + export(params?: { ids?: number[]; 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/qcResultDetail/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/qcResultDetail/import`, + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) + }, + + // 下载导入模板 + downloadTemplate() { + return request({ url: `/biz/qcResultDetail/template`, method: 'get', responseType: 'blob' }) + } +} \ No newline at end of file diff --git a/src/api/qualityTesting.ts b/src/api/qualityTesting.ts new file mode 100644 index 0000000..fd5d34d --- /dev/null +++ b/src/api/qualityTesting.ts @@ -0,0 +1,101 @@ +import { request } from '@/utils/request' + +import {QcResultDetail} from "@/api/qcResultDetail.ts"; + +// 质检单表 类型定义 +export interface QualityTesting { + id?: number + + qcNo?: string + + sourceType?: number + + sourceId?: number + + sourceName?: string + + orderId?: number + + processId?: number + + itemId?: number + + totalQty?: number + + status?: number + + inspectorId?: number + + inspectTime?: string + + traceType?: number + + createBy?: number + + createTime?: string + + updateTime?: string + +} + +// 质检单表 API +export const qualityTestingApi = { + // 分页查询 + page(params: { page: number; pageSize: number; qcNo?: string; status?: number }) { + return request({ url: '/mes/qc/list', method: 'get', params }) + }, + + // 获取详情 + detail(id: number) { + return request({ url: `/mes/qc/${id}`, method: 'get' }) + }, + + // 新增 + create(data: QualityTesting) { + return request({ url: '/mes/qc', method: 'post', data }) + }, + + // 修改 + update(data: QualityTesting) { + return request({ url: '/mes/qc', method: 'put', data }) + }, + + // 删除 + delete(ids: number[]) { + return request({ url: `/mes/qc/${ids.join(',')}`, method: 'delete' }) + }, + //提交判定明细 + submit(data: QcResultDetail[]) { + return request({ url: '/mes/qc/judge', method: 'put', data }) + }, + //质检撤回 + cancel(id: number) { + return request({ url: `/mes/dispatch/revoke/${id}`, method: 'put' }) + }, + + // 导出 + export(params?: { ids?: number[]; id?: number; status?: 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?.status !== undefined && params?.status !== null) p.status = params.status + return request({ url: `/mes/qc/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/qualityTesting/import`, + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) + }, + + // 下载导入模板 + downloadTemplate() { + return request({ url: `/biz/qualityTesting/template`, method: 'get', responseType: 'blob' }) + } +} \ No newline at end of file diff --git a/src/views/biz/qualityTesting/detail.vue b/src/views/biz/qualityTesting/detail.vue new file mode 100644 index 0000000..1047bae --- /dev/null +++ b/src/views/biz/qualityTesting/detail.vue @@ -0,0 +1,218 @@ + + + + + \ No newline at end of file diff --git a/src/views/biz/qualityTesting/index.vue b/src/views/biz/qualityTesting/index.vue new file mode 100644 index 0000000..47a92ef --- /dev/null +++ b/src/views/biz/qualityTesting/index.vue @@ -0,0 +1,914 @@ + + + + + \ No newline at end of file From d76df84354a7e4899c2407b3584aaa2c7430590a Mon Sep 17 00:00:00 2001 From: shaoleiliu-netizen123 <480188199@qq.com> Date: Tue, 2 Jun 2026 15:20:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AE=8C=E5=B7=A5=E6=B1=87=E6=8A=A5?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/submitLog.ts | 9 +- src/views/biz/qualityTesting/index.vue | 37 ++-- src/views/biz/submitLog/index.vue | 232 +++++++++++++++++++++---- src/views/biz/submitLog/statistics.vue | 202 +++++++++++++++++++++ 4 files changed, 433 insertions(+), 47 deletions(-) create mode 100644 src/views/biz/submitLog/statistics.vue diff --git a/src/api/submitLog.ts b/src/api/submitLog.ts index f8d1230..74bdf87 100644 --- a/src/api/submitLog.ts +++ b/src/api/submitLog.ts @@ -19,8 +19,8 @@ export interface SubmitLog { // 派工工单汇报记录 API export const submitLogApi = { // 分页查询 - page(params: { page: number; pageSize: number; id?: number }) { - return request({ url: '/biz/submitLog/page', method: 'get', params }) + page(params: { page: number; pageSize: number; assingStatus?: number }) { + return request({ url: '/mes/report/page', method: 'get', params }) }, // 获取详情 @@ -66,5 +66,10 @@ export const submitLogApi = { // 下载导入模板 downloadTemplate() { return request({ url: `/biz/submitLog/template`, method: 'get', responseType: 'blob' }) + }, + + //汇报统计 + statistics(params?: {time?:string; type?:string}){ + return request({url:'/mes/report/statistics',method:'get',params}) } } diff --git a/src/views/biz/qualityTesting/index.vue b/src/views/biz/qualityTesting/index.vue index 47a92ef..766079a 100644 --- a/src/views/biz/qualityTesting/index.vue +++ b/src/views/biz/qualityTesting/index.vue @@ -58,13 +58,28 @@ :columns="columns" :data="tableData" :loading="loading" - :pagination="pagination" - :row-key="(row) => row.id" - :scroll-x="1200" - @update:page="handlePageChange" - @update:page-size="handlePageSizeChange" - @update:checked-row-keys="handleCheck" + size="small" + remote + :border="false" + :single-line="false" + striped /> +
+ + + +
@@ -338,8 +353,6 @@ const pagination = reactive({ // 搜索表单 const searchForm = reactive({ - page:pagination.page, - pageSize:pagination.pageSize, qcNo: null as number | null, status: null as number | null, }) @@ -571,7 +584,12 @@ const columns: DataTableColumns = [ async function loadData() { loading.value = true try { - const res = await qualityTestingApi.page(searchForm) + const res = await qualityTestingApi.page({ + page:pagination.page, + pageSize: pagination.pageSize, + qcNo:searchForm.qcNo, + status: searchForm.status + }) tableData.value = res.list pagination.itemCount = res.total } finally { @@ -588,7 +606,6 @@ function handleSearch() { // 重置 function handleReset() { searchForm.id = null - searchForm.status = null handleSearch() diff --git a/src/views/biz/submitLog/index.vue b/src/views/biz/submitLog/index.vue index 1b19de7..9c40312 100644 --- a/src/views/biz/submitLog/index.vue +++ b/src/views/biz/submitLog/index.vue @@ -4,8 +4,14 @@
- - + + @@ -25,11 +31,11 @@
- - - 新增 + + + 汇报统计 - +
@@ -49,13 +55,28 @@ :columns="columns" :data="tableData" :loading="loading" - :pagination="pagination" - :row-key="(row) => row.id" - :scroll-x="1200" - @update:page="handlePageChange" - @update:page-size="handlePageSizeChange" - @update:checked-row-keys="handleCheck" + size="small" + remote + :border="false" + :single-line="false" + striped /> +
+ + + +
@@ -109,22 +130,71 @@ 关闭 + + + + +
+ 暂无质检单据数据 +
+ + + + + {{formatDisplayValue("resourceType",item.resourceType) }} + {{formatDisplayValue("status",item.qcStatus) }} + {{ item.totalQty }} + + + + + + + + + + + + + + +
+
+ \ No newline at end of file