Merge remote-tracking branch 'origin/master'

master
夜笙歌 3 weeks ago
commit 26d2673740

@ -0,0 +1,78 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { BaseMaterialInfoVO, BaseMaterialInfoForm, BaseMaterialInfoQuery } from '@/api/qms/baseMaterialInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listBaseMaterialInfo = (query?: BaseMaterialInfoQuery): AxiosPromise<BaseMaterialInfoVO[]> => {
return request({
url: '/qms/baseMaterialInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param materialId
*/
export const getBaseMaterialInfo = (materialId: string | number): AxiosPromise<BaseMaterialInfoVO> => {
return request({
url: '/qms/baseMaterialInfo/' + materialId,
method: 'get'
});
};
/**
*
* @param data
*/
export const addBaseMaterialInfo = (data: BaseMaterialInfoForm) => {
return request({
url: '/qms/baseMaterialInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateBaseMaterialInfo = (data: BaseMaterialInfoForm) => {
return request({
url: '/qms/baseMaterialInfo',
method: 'put',
data: data
});
};
/**
*
* @param materialId
*/
export const delBaseMaterialInfo = (materialId: string | number | Array<string | number>) => {
return request({
url: '/qms/baseMaterialInfo/' + materialId,
method: 'delete'
});
};
/**
*
* @param query
* @returns {*}
*/
export function getBaseMaterialInfoList (query) {
return request({
url: '/qms/baseMaterialInfo/getBaseMaterialInfoList',
method: 'get',
params: query
});
};

@ -0,0 +1,801 @@
export interface BaseMaterialInfoVO {
/**
*
*/
materialId: string | number;
/**
*
*/
tenantId: string | number;
/**
* ERP
*/
erpId: string | number;
/**
*
*/
materialCode: string;
/**
*
*/
oldMaterialCode: string;
/**
*
*/
materialName: string;
/**
* ID
*/
materialTypeId: string | number;
/**
* ()
*/
materialCategoryId: string;
/**
*
*/
materialSubclass: string;
/**
* (0 1)
*/
batchFlag: string;
/**
*
*/
batchAmount: number;
/**
* ID
*/
materialUnitId: string | number;
/**
*
*/
materialUnit: string;
/**
*
*/
materialMatkl: string;
/**
*
*/
materialSpec: string;
/**
*
*/
netWeight: number;
/**
*
*/
grossWeight: number;
/**
* (1 0)
*/
alwaysFlag: string;
/**
*
*/
factoryId: string | number;
/**
*
*/
createOrgId: string | number;
/**
* 使
*/
useOrgId: string | number;
/**
* 线
*/
prodLineId: string | number;
/**
* 1 0
*/
activeFlag: string;
/**
* (0 1)
*/
deletedFlag: string;
/**
*
*/
purchasePriceUnitId: string | number;
/**
*
*/
approveDate: string;
/**
* erp
*/
erpModifyDate: string;
/**
*
*/
maxStockAmount: number;
/**
*
*/
minStockAmount: number;
/**
*
*/
safeStockAmount: number;
/**
* (1 0)
*/
applyFlag: string;
/**
* 1ERP 2 3MES
*/
materialClassfication: string;
/**
* (1 0)
*/
autoOutstockFlag: string;
/**
* (1 0)
*/
accessoriesFlag: string;
/**
* (1 0)
*/
lowValueConsumableFlag: string;
/**
*
*/
brand: string;
/**
*
*/
plyrating: string;
/**
*
*/
pattern: string;
/**
*
*/
speedLevel: string;
/**
*
*/
load: string;
/**
* 1 2 3
*/
tireMarkings: string;
/**
*
*/
minParkingTime: number;
/**
*
*/
maxParkingTime: number;
/**
*
*/
standardWeight: number;
/**
*
*/
weightUpperLimit: number;
/**
*
*/
weightLowerLimit: number;
/**
* (0 1)
*/
innerTubeFlag: string;
/**
* (0 1)
*/
saleType: string;
/**
*
*/
remark: string;
/**
*
*/
createDept: number;
/**
*
*/
createBy: number;
/**
*
*/
createTime: string;
/**
*
*/
updateBy: number;
/**
*
*/
updateTime: string;
/**
*
*/
factoryName: string;//连表查询映射字段
//注意"e":以下两个物料类型名称BaseMaterialType实体类中为matrialTypeIdBaseMaterialInfo实体类中为materialTypeId
/**
*
*/
matrialTypeName: string;//连表查询映射字段
/**
*
*/
materialTypeName: string;//连表查询映射字段
/**
*
*/
materialCategoryName: string;
}
export interface BaseMaterialInfoForm extends BaseEntity {
/**
*
*/
materialId?: string | number;
/**
* ERP
*/
erpId?: string | number;
/**
*
*/
materialCode?: string;
/**
*
*/
oldMaterialCode?: string;
/**
*
*/
materialName?: string;
/**
* ID
*/
materialTypeId?: string | number;
/**
* ()
*/
materialCategoryId: string;
/**
*
*/
materialSubclass?: string;
/**
* (0 1)
*/
batchFlag?: string;
/**
*
*/
batchAmount?: number;
/**
* ID
*/
materialUnitId?: string | number;
/**
*
*/
materialUnit?: string;
/**
*
*/
materialMatkl?: string;
/**
*
*/
materialSpec?: string;
/**
*
*/
netWeight?: number;
/**
*
*/
grossWeight?: number;
/**
* (1 0)
*/
alwaysFlag?: string;
/**
*
*/
factoryId?: string | number;
/**
*
*/
createOrgId?: string | number;
/**
* 使
*/
useOrgId?: string | number;
/**
* 线
*/
prodLineId?: string | number;
/**
* 1 0
*/
activeFlag?: string;
/**
* (0 1)
*/
deletedFlag?: string;
/**
*
*/
purchasePriceUnitId?: string | number;
/**
*
*/
approveDate?: string;
/**
* erp
*/
erpModifyDate?: string;
/**
*
*/
maxStockAmount?: number;
/**
*
*/
minStockAmount?: number;
/**
*
*/
safeStockAmount?: number;
/**
* (1 0)
*/
applyFlag?: string;
/**
* 1ERP 2 3MES
*/
materialClassfication?: string;
/**
* (1 0)
*/
autoOutstockFlag?: string;
/**
* (1 0)
*/
accessoriesFlag?: string;
/**
* (1 0)
*/
lowValueConsumableFlag?: string;
/**
*
*/
brand?: string;
/**
*
*/
plyrating?: string;
/**
*
*/
pattern?: string;
/**
*
*/
speedLevel?: string;
/**
*
*/
load?: string;
/**
* 1 2 3
*/
tireMarkings?: string;
/**
*
*/
minParkingTime?: number;
/**
*
*/
maxParkingTime?: number;
/**
*
*/
standardWeight?: number;
/**
*
*/
weightUpperLimit?: number;
/**
*
*/
weightLowerLimit?: number;
/**
* (0 1)
*/
innerTubeFlag?: string;
/**
* (0 1)
*/
saleType?: string;
/**
*
*/
remark?: string;
minParkingDays?: number;
minParkingHours?: number;
minParkingMinutes?: number;
maxParkingDays?: number;
maxParkingHours?: number;
maxParkingMinutes?: number;
/**
*
*/
materialCategoryName: string;
}
export interface BaseMaterialInfoQuery extends PageQuery {
/**
*
*/
materialId?: string | number;
/**
* ERP
*/
erpId?: string | number;
/**
*
*/
materialCode?: string;
/**
*
*/
oldMaterialCode?: string;
/**
*
*/
materialName?: string;
/**
* ID
*/
materialTypeId?: string | number;
/**
* ()
*/
materialCategoryId: string;
/**
*
*/
materialSubclass?: string;
/**
* (0 1)
*/
batchFlag?: string;
/**
*
*/
batchAmount?: number;
/**
* ID
*/
materialUnitId?: string | number;
/**
*
*/
materialUnit?: string;
/**
*
*/
materialMatkl?: string;
/**
*
*/
materialSpec?: string;
/**
*
*/
netWeight?: number;
/**
*
*/
grossWeight?: number;
/**
* (1 0)
*/
alwaysFlag?: string;
/**
*
*/
factoryId?: string | number;
/**
*
*/
createOrgId?: string | number;
/**
* 使
*/
useOrgId?: string | number;
/**
* 线
*/
prodLineId?: string | number;
/**
* 1 0
*/
activeFlag?: string;
/**
* (0 1)
*/
deletedFlag?: string;
/**
*
*/
purchasePriceUnitId?: string | number;
/**
*
*/
approveDate?: string;
/**
* erp
*/
erpModifyDate?: string;
/**
*
*/
maxStockAmount?: number;
/**
*
*/
minStockAmount?: number;
/**
*
*/
safeStockAmount?: number;
/**
* (1 0)
*/
applyFlag?: string;
/**
* 1ERP 2 3MES
*/
materialClassfication?: string;
/**
* (1 0)
*/
autoOutstockFlag?: string;
/**
* (1 0)
*/
accessoriesFlag?: string;
/**
* (1 0)
*/
lowValueConsumableFlag?: string;
/**
*
*/
brand?: string;
/**
*
*/
plyrating?: string;
/**
*
*/
pattern?: string;
/**
*
*/
speedLevel?: string;
/**
*
*/
load?: string;
/**
* 1 2 3
*/
tireMarkings?: string;
/**
*
*/
minParkingTime?: number;
/**
*
*/
maxParkingTime?: number;
/**
*
*/
standardWeight?: number;
/**
*
*/
weightUpperLimit?: number;
/**
*
*/
weightLowerLimit?: number;
/**
* (0 1)
*/
innerTubeFlag?: string;
/**
* (0 1)
*/
saleType?: string;
/**
*
*/
params?: any;
/**
*
*/
materialCategoryName: string;
}

@ -0,0 +1,88 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { BaseProcessInfoVO, BaseProcessInfoForm, BaseProcessInfoQuery } from '@/api/qms/baseProcessInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listBaseProcessInfo = (query?: BaseProcessInfoQuery): AxiosPromise<BaseProcessInfoVO[]> => {
return request({
url: '/qms/baseProcessInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param processId
*/
export const getBaseProcessInfo = (processId: string | number): AxiosPromise<BaseProcessInfoVO> => {
return request({
url: '/qms/baseProcessInfo/' + processId,
method: 'get'
});
};
/**
*
* @param data
*/
export const addBaseProcessInfo = (data: BaseProcessInfoForm) => {
return request({
url: '/qms/baseProcessInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateBaseProcessInfo = (data: BaseProcessInfoForm) => {
return request({
url: '/qms/baseProcessInfo/edit',
method: 'put',
data: data
});
};
/**
*
* @param data
*/
export const updateBaseProcessInfoUser = (data: BaseProcessInfoForm) => {
return request({
url: '/qms/baseProcessInfo/editUser',
method: 'put',
data: data
});
};
/**
*
* @param processId
*/
export const delBaseProcessInfo = (processId: string | number | Array<string | number>) => {
return request({
url: '/qms/baseProcessInfo/' + processId,
method: 'delete'
});
};
/**
*
* @param query
* @returns {*}
*/
export function getProcessInfoList(query) {
return request({
url: '/qms/baseProcessInfo/getProcessInfoList',
method: 'get',
params: query
});
};

@ -0,0 +1,439 @@
import { BaseProcessResourceVO } from "../baseProcessResource/types";
export interface BaseProcessInfoVO {
/**
*
*/
processId: string | number;
/**
*
*/
processCode: string;
/**
*
*/
processName: string;
/**
* 1 2
*/
processType: string;
/**
*
*/
processQueue: number;
/**
* ;
*/
productionTime: number;
/**
* ID
*/
workshopId: string | number;
/**
* 1 2
*/
outsourcingFlag: string;
/**
* 1 2 3
*/
processProductionType: string;
/**
* %/
*/
defaultYieldRate: number;
/**
* %/
*/
lossRate: number;
/**
* %/
*/
reworkRate: number;
/**
* 1 2 3
*/
materialMethod: string;
/**
*
*/
leadTime: number;
/**
*
*/
setupTime: number;
/**
*
*/
processingTime: number;
/**
*
*/
disassemblyTime: number;
/**
* /
*/
theoreticalCycleTime: number;
/**
* 1 2 3
*/
inspectionMethod: string;
/**
* (1 0)
*/
activeFlag: string;
/**
*
*/
remark: string;
/**
*
*/
createDept: number;
/**
*
*/
createBy: number;
/**
*
*/
createTime: string;
/**
*
*/
updateBy: number;
/**
*
*/
updateTime: string;
prodBaseProcessProdlineVoList?: ProdBaseProcessProdLine[];
prodBaseProcessUserVoList?: ProdBaseProcessUser[];
prodBaseProcessProdlineBoList?: ProdBaseProcessProdLine[];
prodBaseProcessUserBoList?: ProdBaseProcessUser[];
}
export interface BaseProcessInfoForm extends BaseEntity {
/**
*
*/
processId?: string | number;
/**
*
*/
processCode?: string;
/**
*
*/
processName?: string;
/**
* 1 2
*/
processType?: string;
/**
*
*/
processQueue?: number;
/**
* ;
*/
productionTime?: number;
/**
* ID
*/
workshopId?: string | number;
/**
* 1 2
*/
outsourcingFlag?: string;
/**
* 1 2 3
*/
processProductionType?: string;
/**
* %/
*/
defaultYieldRate?: number;
/**
* %/
*/
lossRate?: number;
/**
* %/
*/
reworkRate?: number;
/**
* 1 2 3
*/
materialMethod?: string;
/**
*
*/
leadTime?: number;
/**
*
*/
setupTime?: number;
/**
*
*/
processingTime?: number;
/**
*
*/
disassemblyTime?: number;
/**
* /
*/
theoreticalCycleTime?: number;
/**
* 1 2 3
*/
inspectionMethod?: string;
/**
* (1 0)
*/
activeFlag?: string;
/**
*
*/
remark?: string;
productionTimeDays?: number;
productionTimeHours?: number;
productionTimeMinutes?: number;
prodBaseProcessProdlineVoList?: ProdBaseProcessProdLine[];
prodBaseProcessUserVoList?: ProdBaseProcessUser[];
prodBaseProcessProdlineBoList?: ProdBaseProcessProdLine[];
prodBaseProcessUserBoList?: ProdBaseProcessUser[];
prodBaseProcessResourceList?: BaseProcessResourceVO[];
}
export interface BaseProcessInfoQuery extends PageQuery {
/**
*
*/
processId?: string | number;
/**
*
*/
processCode?: string;
/**
*
*/
processName?: string;
/**
* 1 2
*/
processType?: string;
/**
*
*/
processQueue?: number;
/**
* ;
*/
productionTime?: number;
/**
* ID
*/
workshopId?: string | number;
/**
* 1 2
*/
outsourcingFlag?: string;
/**
* 1 2 3
*/
processProductionType?: string;
/**
* %/
*/
defaultYieldRate?: number;
/**
* %/
*/
lossRate?: number;
/**
* %/
*/
reworkRate?: number;
/**
* 1 2 3
*/
materialMethod?: string;
/**
*
*/
leadTime?: number;
/**
*
*/
setupTime?: number;
/**
*
*/
processingTime?: number;
/**
*
*/
disassemblyTime?: number;
/**
* /
*/
theoreticalCycleTime?: number;
/**
* 1 2 3
*/
inspectionMethod?: string;
/**
* (1 0)
*/
activeFlag?: string;
/**
*
*/
params?: any;
prodBaseProcessProdlineV0List?: ProdBaseProcessProdLine[];
prodBaseProcessUserV0List?: ProdBaseProcessUser[];
prodBaseProcessProdlineBoList?: ProdBaseProcessProdLine[];
prodBaseProcessUserBoList?: ProdBaseProcessUser[];
}
export interface ProdBaseProcessProdLine {
/**
* ID
*/
processId: string | number;
/**
* 线ID
*/
prodLineId: string | number;
/**
*
*/
tenantId: string | number;
/**
*
*/
createBy: string;
/**
*
*/
createTime: string;
}
export interface ProdBaseProcessUser {
/**
* ID
*/
processId: string | number;
/**
* ID
*/
userId: string | number;
/**
*
*/
tenantId: string | number;
/**
*
*/
userName: string;
/**
*
*/
createBy: string;
/**
*
*/
createTime: string;
}

@ -0,0 +1,76 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { BaseStationInfoVO, BaseStationInfoForm, BaseStationInfoQuery } from '@/api/qms/baseStationInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listBaseStationInfo = (query?: BaseStationInfoQuery): AxiosPromise<BaseStationInfoVO[]> => {
return request({
url: '/qms/baseStationInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param stationId
*/
export const getBaseStationInfo = (stationId: string | number): AxiosPromise<BaseStationInfoVO> => {
return request({
url: '/qms/baseStationInfo/' + stationId,
method: 'get'
});
};
/**
*
* @param data
*/
export const addBaseStationInfo = (data: BaseStationInfoForm) => {
return request({
url: '/qms/baseStationInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateBaseStationInfo = (data: BaseStationInfoForm) => {
return request({
url: '/qms/baseStationInfo',
method: 'put',
data: data
});
};
/**
*
* @param stationId
*/
export const delBaseStationInfo = (stationId: string | number | Array<string | number>) => {
return request({
url: '/qms/baseStationInfo/' + stationId,
method: 'delete'
});
};
/**
*
* @param query
* @returns {*}
*/
export function getStationInfoList(query) {
return request({
url: '/qms/baseStationInfo/getStationInfoList',
method: 'get',
params: query
});
};

@ -0,0 +1,201 @@
export interface BaseStationInfoVO {
/**
*
*/
stationId: string | number;
/**
*
*/
tenantId: string | number;
/**
*
*/
stationCode: string;
/**
*
*/
stationName: string;
/**
* (1 2)
*/
stationType: string;
/**
*
*/
processId: string | number;
/**
*
*/
productionTime: number;
/**
* AGV
*/
agvCode: string;
/**
* IP
*/
ipAddress: string;
/**
* (1 0)
*/
activeFlag: string;
/**
*
*/
remark: string;
/**
*
*/
createDept: number;
/**
*
*/
createBy: number;
/**
*
*/
createTime: string;
/**
*
*/
updateBy: number;
/**
*
*/
updateTime: string;
}
export interface BaseStationInfoForm extends BaseEntity {
/**
*
*/
stationId?: string | number;
/**
*
*/
stationCode?: string;
/**
*
*/
stationName?: string;
/**
* (1 2)
*/
stationType?: string;
/**
*
*/
processId?: string | number;
/**
*
*/
productionTime?: number;
/**
* AGV
*/
agvCode?: string;
/**
* IP
*/
ipAddress?: string;
/**
* (1 0)
*/
activeFlag?: string;
/**
*
*/
remark?: string;
/**
* Id
*/
machineId?: string | number;
productionTimeDays?: number;
productionTimeHours?: number;
productionTimeMinutes?: number;
prodBaseStationMaterialtypeList?: [];
}
export interface BaseStationInfoQuery extends PageQuery {
/**
*
*/
stationId?: string | number;
/**
*
*/
stationCode?: string;
/**
*
*/
stationName?: string;
/**
* (1 2)
*/
stationType?: string;
/**
*
*/
processId?: string | number;
/**
*
*/
productionTime?: number;
/**
* AGV
*/
agvCode?: string;
/**
* IP
*/
ipAddress?: string;
/**
* (1 0)
*/
activeFlag?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,77 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { BaseSupplierInfoVO, BaseSupplierInfoForm, BaseSupplierInfoQuery } from '@/api/qms/baseSupplierInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listBaseSupplierInfo = (query?: BaseSupplierInfoQuery): AxiosPromise<BaseSupplierInfoVO[]> => {
return request({
url: '/qms/baseSupplierInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param supplierId
*/
export const getBaseSupplierInfo = (supplierId: string | number): AxiosPromise<BaseSupplierInfoVO> => {
return request({
url: '/qms/baseSupplierInfo/' + supplierId,
method: 'get'
});
};
/**
*
* @param data
*/
export const addBaseSupplierInfo = (data: BaseSupplierInfoForm) => {
return request({
url: '/qms/baseSupplierInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateBaseSupplierInfo = (data: BaseSupplierInfoForm) => {
return request({
url: '/qms/baseSupplierInfo',
method: 'put',
data: data
});
};
/**
*
* @param supplierId
*/
export const delBaseSupplierInfo = (supplierId: string | number | Array<string | number>) => {
return request({
url: '/qms/baseSupplierInfo/' + supplierId,
method: 'delete'
});
};
/**
*
* @param query
* @returns {*}
*/
export function getBaseSupplierInfoList (query) {
return request({
url: '/qms/baseSupplierInfo/getBaseSupplierInfoList',
method: 'get',
params: query
});
};

@ -0,0 +1,161 @@
export interface BaseSupplierInfoVO {
/**
*
*/
supplierId: string | number;
/**
*
*/
tenantId: string | number;
/**
*
*/
supplierCode: string;
/**
*
*/
supplierName: string;
/**
* erp
*/
erpId: string | number;
/**
* 1 0
*/
supplierStatus: string;
/**
*
*/
auditDate: string;
/**
* erp
*/
erpModifyDate: string;
/**
*
*/
remark: string;
/**
*
*/
createDept: number;
/**
*
*/
createBy: number;
/**
*
*/
createTime: string;
/**
*
*/
updateBy: number;
/**
*
*/
updateTime: string;
}
export interface BaseSupplierInfoForm extends BaseEntity {
/**
*
*/
supplierId?: string | number;
/**
*
*/
supplierCode?: string;
/**
*
*/
supplierName?: string;
/**
* erp
*/
erpId?: string | number;
/**
* 1 0
*/
supplierStatus?: string;
/**
*
*/
auditDate?: string;
/**
* erp
*/
erpModifyDate?: string;
/**
*
*/
remark?: string;
}
export interface BaseSupplierInfoQuery extends PageQuery {
/**
*
*/
supplierId?: string | number;
/**
*
*/
supplierCode?: string;
/**
*
*/
supplierName?: string;
/**
* erp
*/
erpId?: string | number;
/**
* 1 0
*/
supplierStatus?: string;
/**
*
*/
auditDate?: string;
/**
* erp
*/
erpModifyDate?: string;
/**
*
*/
params?: any;
}

@ -94,8 +94,17 @@ export interface QcInspectionItemVO {
*/
isDefault: string;
}
/**
*
*/
typeName: string;
/**
*
*/
typeCode: string | number;
}
export interface QcInspectionItemForm extends BaseEntity {
/**
*
@ -192,6 +201,16 @@ export interface QcInspectionItemForm extends BaseEntity {
*/
isDefault?: string;
/**
*
*/
typeName?: string;
/**
*
*/
typeCode?: string | number;
}
export interface QcInspectionItemQuery extends PageQuery {
@ -291,6 +310,17 @@ export interface QcInspectionItemQuery extends PageQuery {
*/
isDefault?: string;
/**
*
*/
typeName?: string;
/**
*
*/
typeCode?: string | number;
/**
*
*/

@ -383,6 +383,7 @@ import { listQcInspectionResult, getQcInspectionResult, delQcInspectionResult, a
import { QcInspectionResultVO, QcInspectionResultQuery, QcInspectionResultForm } from '@/api/qms/qcInspectionResult/types';
import { listQcInspectionItem, getQcInspectionItem, delQcInspectionItem, addQcInspectionItem, updateQcInspectionItem, getQcInspectionItemList } from '@/api/qms/qcInspectionItem';
import { getQcInspectionTypeList } from '@/api/qms/qcInspectionType';
import {getBaseMaterialInfoList} from "@/api/qms/baseMaterialInfo";
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { qc_result, qc_status } = toRefs<any>(proxy?.useDict('qc_result', 'qc_status'));
@ -655,6 +656,7 @@ const handleRowClick = (row: QcInspectionMainVO) => {
/** 新增按钮操作 */
const handleAdd = () => {
reset();
getMaterialList();
dialog.visible = true;
dialog.title = "添加质检结果主表";
}
@ -662,6 +664,7 @@ const handleAdd = () => {
/** 修改按钮操作 */
const handleUpdate = async (row?: QcInspectionMainVO) => {
reset();
getMaterialList();
const _inspectionId = row?.inspectionId || ids.value[0]
const res = await getQcInspectionMain(_inspectionId);
Object.assign(form.value, res.data);
@ -749,7 +752,7 @@ const handleExport = () => {
/** 导出模板按钮操作 */
const handleExportTemplate = () => {
proxy?.download('qms/QcInspectionMain/exportTemplate', {
}, `QcInspectionMain_${new Date().getTime()}.xlsx`)
}
@ -804,6 +807,12 @@ const onFileChange = async (event: Event) => {
}
}
let materialList = ref([]);
const getMaterialList = async () => {
const res = await getBaseMaterialInfoList(null);
materialList.value = res.data;
}
onMounted(() => {
getInspectionItemList();
getInspectionTypeList();

@ -19,8 +19,8 @@
<el-form-item label="检测项类别" prop="categoryId">
<el-input v-model="queryParams.categoryId" placeholder="请输入检测项类别" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="检测类型" prop="inspectionType">
<el-input v-model="queryParams.inspectionType" placeholder="请输入检测类型" clearable @keyup.enter="handleQuery" />
<el-form-item label="检测类型" prop="inspectionType">
<el-input v-model="queryParams.inspectionType" placeholder="请输入检测类型" clearable @keyup.enter="handleQuery" />
</el-form-item> -->
<el-form-item label="检测方法" prop="method">
<el-select v-model="queryParams.method" placeholder="请选择检测方法" clearable >
@ -110,8 +110,8 @@
<el-table-column label="检测项编码" align="center" prop="itemCode" v-if="columns[1].visible"/>
<el-table-column label="检测项名称" align="center" prop="itemName" v-if="columns[2].visible"/>
<el-table-column label="检测位置" align="center" prop="inspectionPosition" v-if="columns[3].visible"/>
<el-table-column label="检测类型" align="center" prop="inspectionType" v-if="columns[4].visible"/>
<el-table-column label="检测项类别" align="center" prop="categoryId" v-if="columns[5].visible"/>
<el-table-column label="检测类型" align="center" prop="typeName" v-if="columns[4].visible"/>
<el-table-column label="检测项类别" align="center" prop="categoryName" v-if="columns[5].visible"/>
<el-table-column label="检测方法" align="center" prop="method" v-if="columns[6].visible">
<template #default="scope">
<dict-tag :options="qc_methond" :value="scope.row.method"/>
@ -172,7 +172,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="检测方式" prop="detectType">
<el-select v-model="form.detectType" placeholder="请选择检测方式">
<el-select v-model="form.detectType" placeholder="请选择检测方式" :disabled="!!form.itemId">
<el-option v-for="dict in detect_type" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
</el-select>
</el-form-item>
@ -197,7 +197,7 @@
<el-col :span="6">
<el-form-item label="检测项类别" prop="categoryId">
<el-select v-model="form.categoryId" placeholder="请选择检测项类别">
<el-option v-for="item in qcInspectionItemCategoryList" :key="item.categoryId" :label="item.categoryName" :value="item.categoryId" />
<el-option v-for="item in filteredCategories" :key="item.categoryId" :label="item.categoryName" :value="item.categoryId" />
</el-select>
</el-form-item>
</el-col>
@ -303,6 +303,7 @@ import { getQcInspectionItemCategoryList } from '@/api/qms/qcInspectionItemCateg
import { QcInspectionItemCategoryVO } from '@/api/qms/qcInspectionItemCategory/types';
import { getQcInspectionTypeList } from '@/api/qms/qcInspectionType';
import { QcInspectionTypeVO } from '@/api/qms/qcInspectionType/types';
import { computed } from 'vue';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { qc_methond, detect_type, control_type, is_default } = toRefs<any>(proxy?.useDict('qc_methond', 'detect_type', 'control_type', 'is_default'));
@ -332,7 +333,7 @@ const columns = ref<FieldOption[]>([
{ key: 1, label: `检测项编码`, visible: true },
{ key: 2, label: `检测项名称`, visible: true },
{ key: 3, label: `检测位置`, visible: true },
{ key: 4, label: `检测类型`, visible: true },
{ key: 4, label: `检测类型`, visible: true },
{ key: 5, label: `检测项类别`, visible: true },
{ key: 6, label: `检测方法`, visible: true },
{ key: 7, label: `检测方式`, visible: true },
@ -515,7 +516,7 @@ const getCategoryList = async () => {
qcInspectionItemCategoryList.value = res.data;
};
/** 查询检测类型列表 */
/** 查询检测类型列表 */
let qcInspectionTypeList = ref([]);
const getTypeList = async () => {
const res = await getQcInspectionTypeList(null);
@ -547,6 +548,25 @@ const onFileChange = async (event: Event) => {
}
}
// (typeId)
const flattenCategories = (categories: QcInspectionItemCategoryVO[]): QcInspectionItemCategoryVO[] => {
let result: QcInspectionItemCategoryVO[] = [];
categories.forEach(cat => {
result.push({ ...cat, children: undefined });
if (cat.children && cat.children.length > 0) {
result = result.concat(flattenCategories(cat.children));
}
});
return result;
};
const allFlatCategories = computed(() => flattenCategories(qcInspectionItemCategoryList.value));
const filteredCategories = computed(() => {
if (!form.value.inspectionType) return [];
return allFlatCategories.value.filter(item => item.typeId === form.value.inspectionType);
});
onMounted(() => {
getList();
getCategoryList();

@ -39,7 +39,7 @@
<el-input v-model="queryParams.categoryName" placeholder="请输入检测项类别名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="检测类型" prop="typeId" label-width="120px">
<!-- <el-input v-model="queryParams.typeId" placeholder="请输入检测类型" clearable @keyup.enter="handleQuery" />-->
<!-- <el-input v-model="queryParams.typeId" placeholder="请输入检测类型" clearable @keyup.enter="handleQuery" />-->
<el-select v-model="queryParams.typeId" placeholder="请选择检测类型">
<el-option v-for="item in qcInspectionTypeList" :key="item.typeId" :label="item.typeName" :value="item.typeId" />
</el-select>
@ -128,7 +128,7 @@
<el-input v-model="form.categoryName" placeholder="请输入检测项类别名称" />
</el-form-item>
<el-form-item label="检测类型" prop="typeId">
<!-- <el-input v-model="form.typeId" placeholder="请输入检测类型" /> -->
<!-- <el-input v-model="form.typeId" placeholder="请输入检测类型" /> -->
<el-select v-model="form.typeId" placeholder="请选择检测类型">
<el-option v-for="item in qcInspectionTypeList" :key="item.typeId" :label="item.typeName" :value="item.typeId" />
</el-select>
@ -361,7 +361,7 @@ const handleNodeClick = (data: QcInspectionTypeVO) => {
};
watch(inspectionTypeName, val => {
inspectionTypeTreeRef.value?.filter(val);
});

@ -97,7 +97,7 @@
<el-form :model="templateItemQueryParams" :inline="true" label-width="100px">
<el-form-item label="检测方式" prop="detectType">
<el-select v-model="templateItemQueryParams.detectType" placeholder="请选择检测方式" clearable>
<el-option v-for="dict in qc_methond" :key="dict.value" :label="dict.label" :value="dict.value"/>
<el-option v-for="dict in detect_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="控制类型" prop="controlType">
@ -123,7 +123,7 @@
<el-table-column label="检测类型" align="center" prop="inspectionType" />
<el-table-column label="检测方式" align="center" prop="detectType">
<template #default="scope">
<dict-tag :options="qc_methond" :value="scope.row.detectType"/>
<dict-tag :options="detect_type" :value="scope.row.detectType"/>
</template>
</el-table-column>
<el-table-column label="控制类型" align="center" prop="controlType">
@ -162,34 +162,48 @@
<el-form-item label="模板名称" prop="templateName">
<el-input v-model="form.templateName" placeholder="请输入模板名称" />
</el-form-item>
<el-form-item label="物料编码" prop="materialCode">
<el-input v-model="form.materialCode" placeholder="请输入物料编码" />
</el-form-item>
<el-form-item label="物料名称" prop="materialName">
<el-input v-model="form.materialName" placeholder="请输入物料名称" />
<el-select v-model="selectedMaterialId" placeholder="请选择物料" filterable clearable @change="handleMaterialChange" style="width: 100%;">
<el-option v-for="item in materialList" :key="item.materialId" :label="item.materialName" :value="item.materialName" />
</el-select>
</el-form-item>
<el-form-item label="关联检测类型表" prop="typeId">
<el-select v-model="form.typeId" placeholder="请选择关联检测类型表">
<el-option v-for="item in qcInspectionTypeList" :key="item.typeId" :label="item.typeName" :value="item.typeId" />
</el-select>
</el-form-item>
<el-form-item label="工位编码" prop="stationCode">
<!-- <el-form-item label="工位编码" prop="stationCode">
<el-input v-model="form.stationCode" placeholder="请输入工位编码" />
</el-form-item>
<el-form-item label="工位名称" prop="stationName">
<el-input v-model="form.stationName" placeholder="请输入工位名称" />
</el-form-item> -->
<el-form-item label="工位名称" prop="stationName">
<el-select v-model="selectedStaionId" placeholder="请选择工位" filterable clearable @change="handleBaseStationInfoChange" style="width: 100%;">
<el-option v-for="item in baseStationInfoList" :key="item.stationId" :label="item.stationName" :value="item.stationName" />
</el-select>
</el-form-item>
<el-form-item label="工序编码" prop="processCode">
<!-- <el-form-item label="工序编码" prop="processCode">
<el-input v-model="form.processCode" placeholder="请输入工序编码" />
</el-form-item>
<el-form-item label="工序名称" prop="processName">
<el-input v-model="form.processName" placeholder="请输入工序名称" />
</el-form-item> -->
<el-form-item label="工序名称" prop="processName">
<el-select v-model="selectedProcessId" placeholder="请选择工序" filterable clearable @change="handleBaseProcessInfoChange" style="width: 100%;">
<el-option v-for="item in baseProcessInfoList" :key="item.processId" :label="item.processName" :value="item.processName" />
</el-select>
</el-form-item>
<el-form-item label="供应商编码" prop="supplierCode">
<!-- <el-form-item label="供应商编码" prop="supplierCode">
<el-input v-model="form.supplierCode" placeholder="请输入供应商编码" />
</el-form-item>
<el-form-item label="供应商名称" prop="supplierName">
<el-input v-model="form.supplierName" placeholder="请输入供应商名称" />
</el-form-item> -->
<el-form-item label="供应商名称" prop="supplierName">
<el-select v-model="selectedSupplierId" placeholder="请选择供应商" filterable clearable @change="handleBaseSupplierInfoChange" style="width: 100%;">
<el-option v-for="item in baseSupplierInfoList" :key="item.supplierId" :label="item.supplierName" :value="item.supplierName" />
</el-select>
</el-form-item>
<el-form-item label="模板说明" prop="description">
<el-input v-model="form.description" placeholder="请输入模板说明" />
@ -219,91 +233,121 @@
</el-col>
<el-col :span="6">
<el-form-item label="关联检测项定义" prop="itemId">
<el-select v-model="templateItemForm.itemId" placeholder="请选择关联检测项定义" style="width: 100%;">
<el-select v-model="templateItemForm.itemId" placeholder="请选择关联检测项定义" style="width: 100%;" @change="handleItemChange">
<el-option v-for="item in qcInspectionItemList" :key="item.itemId" :label="item.itemName" :value="item.itemId" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="检测项编码" prop="itemCode">
<el-input v-model="templateItemForm.itemCode" placeholder="请输入检测项编码" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input v-model="templateItemForm.itemCode" placeholder="请输入检测项编码" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="检测项名称" prop="itemName">
<el-input v-model="templateItemForm.itemName" placeholder="请输入检测项名称" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input v-model="templateItemForm.itemName" placeholder="请输入检测项名称" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="检测方式" prop="detectType">
<el-select v-model="templateItemForm.detectType" placeholder="请选择检测方式" style="width: 100%;">
<el-option v-for="dict in qc_methond" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
</el-select>
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-select v-model="templateItemForm.detectType" placeholder="请选择检测方式" style="width: 100%;" :disabled="true">
<el-option v-for="dict in detect_type" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
</el-select>
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="控制类型" prop="controlType">
<el-select v-model="templateItemForm.controlType" placeholder="请选择控制类型" style="width: 100%;">
<el-option v-for="dict in control_type" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
</el-select>
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-select v-model="templateItemForm.controlType" placeholder="请选择控制类型" style="width: 100%;" :disabled="true">
<el-option v-for="dict in control_type" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
</el-select>
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="检测项目类别" prop="categoryName">
<el-input v-model="templateItemForm.categoryName" placeholder="请输入检测项目类别" />
<el-form-item label="检测项类别" prop="categoryName">
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-select v-model="templateItemForm.categoryName" placeholder="请选择检测项类别" style="width: 100%;" :disabled="true">
<el-option v-for="item in qcInspectionItemCategoryList" :key="item.categoryId" :label="item.categoryName" :value="item.categoryName" />
</el-select>
</el-tooltip>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="检测类型" prop="inspectionType">
<el-input v-model="templateItemForm.inspectionType" placeholder="请输入检测类型" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input v-model="templateItemForm.inspectionType" placeholder="请输入检测类型" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="检测位置" prop="inspectionPosition">
<el-input v-model="templateItemForm.inspectionPosition" placeholder="请输入检测位置" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input v-model="templateItemForm.inspectionPosition" placeholder="请输入检测位置" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="标准值" prop="standardValue" v-if="templateItemForm.detectType === 1">
<el-input-number v-model="templateItemForm.standardValue" placeholder="请输入标准值" style="width: 100%;" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input-number v-model="templateItemForm.standardValue" placeholder="请输入标准值" style="width: 100%;" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="控制上限" prop="upperLimit" v-if="templateItemForm.detectType === 1">
<el-input-number v-model="templateItemForm.upperLimit" placeholder="请输入控制上限" style="width: 100%;" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input-number v-model="templateItemForm.upperLimit" placeholder="请输入控制上限" style="width: 100%;" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="templateItemForm.detectType === 1">
<el-col :span="6">
<el-form-item label="控制下限" prop="lowerLimit">
<el-input-number v-model="templateItemForm.lowerLimit" placeholder="请输入控制下限" style="width: 100%;" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input-number v-model="templateItemForm.lowerLimit" placeholder="请输入控制下限" style="width: 100%;" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规格名称" prop="specName">
<el-input v-model="templateItemForm.specName" placeholder="请输入规格名称" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input v-model="templateItemForm.specName" placeholder="请输入规格名称" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规格上限" prop="specUpper">
<el-input-number v-model="templateItemForm.specUpper" placeholder="请输入规格上限" style="width: 100%;" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input-number v-model="templateItemForm.specUpper" placeholder="请输入规格上限" style="width: 100%;" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规格下限" prop="specLower">
<el-input-number v-model="templateItemForm.specLower" placeholder="请输入规格下限" style="width: 100%;" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input-number v-model="templateItemForm.specLower" placeholder="请输入规格下限" style="width: 100%;" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="检测项说明" prop="description">
<el-input type="textarea" v-model="templateItemForm.description" placeholder="请输入检测项说明" />
<el-tooltip content="此字段由关联检测项自动填充,不可编辑" placement="top">
<el-input type="textarea" v-model="templateItemForm.description" placeholder="请输入检测项说明" :disabled="true" />
</el-tooltip>
</el-form-item>
</el-col>
</el-row>
@ -327,9 +371,14 @@ import { QcTemplateItemVO, QcTemplateItemQuery, QcTemplateItemForm } from '@/api
import { getQcInspectionTypeList } from '@/api/qms/qcInspectionType';
import { QcInspectionTypeVO } from '@/api/qms/qcInspectionType/types';
import { listQcInspectionItem, getQcInspectionItem, delQcInspectionItem, addQcInspectionItem, updateQcInspectionItem, getQcInspectionItemList } from '@/api/qms/qcInspectionItem';
import { getBaseMaterialInfoList } from '@/api/qms/baseMaterialInfo';
import { getStationInfoList } from '@/api/qms/baseStationInfo';
import { getProcessInfoList } from '@/api/qms/baseProcessInfo';
import { getBaseSupplierInfoList } from '@/api/qms/baseSupplierInfo';
import { getQcInspectionItemCategoryList } from '@/api/qms/qcInspectionItemCategory';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { qc_methond, control_type } = toRefs<any>(proxy?.useDict('qc_methond', 'control_type'));
const { detect_type, control_type } = toRefs<any>(proxy?.useDict('detect_type', 'control_type'));
const qcInspectionTemplateList = ref<QcInspectionTemplateVO[]>([]);
const buttonLoading = ref(false);
@ -352,6 +401,11 @@ const templateItemSingle = ref(true);
const templateItemMultiple = ref(true);
const templateItemButtonLoading = ref(false);
const selectedMaterialId = ref(null);
const selectedProcessId = ref(null);
const selectedStaionId = ref(null);
const selectedSupplierId = ref(null);
const queryFormRef = ref<ElFormInstance>();
const qcInspectionTemplateFormRef = ref<ElFormInstance>();
const templateItemFormRef = ref<ElFormInstance>();
@ -373,7 +427,7 @@ const columns = ref<FieldOption[]>([
{ key: 2, label: `模板名称`, visible: true },
{ key: 3, label: `物料编码`, visible: true },
{ key: 4, label: `物料名称`, visible: true },
{ key: 5, label: `关联检测类型表ID`, visible: true },
{ key: 5, label: `关联检测类型表`, visible: true },
{ key: 6, label: `工位编码`, visible: true },
{ key: 7, label: `工位名称`, visible: true },
{ key: 8, label: `工序编码`, visible: true },
@ -524,6 +578,7 @@ const cancel = () => {
const reset = () => {
form.value = {...initFormData};
qcInspectionTemplateFormRef.value?.resetFields();
selectedMaterialId.value = null;
}
/** 子表取消按钮 */
@ -605,18 +660,54 @@ const handleRowClick = (row: QcInspectionTemplateVO) => {
/** 新增按钮操作 */
const handleAdd = () => {
reset();
getMaterialList();
getBaseProcessList();
getBaseStationList();
getBaseSupplierList();
dialog.visible = true;
dialog.title = "添加检测模板主";
dialog.title = "添加检测模板";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: QcInspectionTemplateVO) => {
reset();
await getMaterialList();
await getBaseProcessList();
await getBaseStationList();
await getBaseSupplierList();
const _templateId = row?.templateId || ids.value[0]
const res = await getQcInspectionTemplate(_templateId);
Object.assign(form.value, res.data);
// materialId
if (form.value.materialCode) {
const matched = materialList.value.find(item => item.materialCode === form.value.materialCode);
if (matched) {
selectedMaterialId.value = matched.materialId;
}
}
// stationId
if (form.value.stationCode) {
const matched = baseStationInfoList.value.find(item => item.stationCode === form.value.stationCode);
if (matched) {
selectedStaionId.value = matched.stationId;
}
}
// processId
if (form.value.processCode) {
const matched = baseProcessInfoList.value.find(item => item.processCode === form.value.processCode);
if (matched) {
selectedProcessId.value = matched.processId;
}
}
// supplierId
if (form.value.supplierCode) {
const matched = baseSupplierInfoList.value.find(item => item.supplierCode === form.value.supplierCode);
if (matched) {
selectedSupplierId.value = matched.supplierId;
}
}
dialog.visible = true;
dialog.title = "修改检测模板主";
dialog.title = "修改检测模板";
}
/** 新增检测项 */
@ -633,6 +724,7 @@ const handleUpdateTemplateItem = async (row?: QcTemplateItemVO) => {
const _templateItemId = row?.templateItemId || templateItemIds.value[0];
const res = await getQcTemplateItem(_templateItemId);
Object.assign(templateItemForm.value, res.data);
handleItemChange(templateItemForm.value.itemId);
templateItemDialog.visible = true;
templateItemDialog.title = "修改检测项";
}
@ -703,13 +795,6 @@ const handleExportTemplate = () => {
}, `qcInspectionTemplate_template_${new Date().getTime()}.xlsx`)
}
/** 导出模板按钮操作 */
const handleExportTemplate = () => {
proxy?.download('qms/qcInspectionTemplate/exportTemplate', {
}, `qcInspectionTemplate_template_${new Date().getTime()}.xlsx`)
}
/** 导入按钮操作 */
const fileInput = ref<HTMLInputElement>();
const uploading = ref(false);
@ -735,6 +820,85 @@ const onFileChange = async (event: Event) => {
}
}
/** 查询检测项类别列表 */
let qcInspectionItemCategoryList = ref([]);
const getCategoryList = async () => {
const res = await getQcInspectionItemCategoryList(null);
qcInspectionItemCategoryList.value = res.data;
};
/** 物料名称选择变化 */
const handleMaterialChange = (value) => {
const selected = materialList.value.find(item => item.materialId === value);
if (selected) {
form.value.materialName = selected.materialName;
form.value.materialCode = selected.materialCode;
} else {
form.value.materialName = '';
form.value.materialCode = '';
}
}
/* 工位名称选择变化 */
const handleBaseStationInfoChange = (value) => {
const selected = baseStationInfoList.value.find(item => item.stationId === value);
if (selected) {
form.value.stationName = selected.stationName;
form.value.stationCode = selected.stationCode;
} else {
form.value.stationName = '';
form.value.stationCode = '';
}
}
/*工序名称选择变化 */
const handleBaseProcessInfoChange = (value) => {
const selected = baseProcessInfoList.value.find(item => item.processId === value);
if (selected) {
form.value.processName = selected.processName;
form.value.processCode = selected.processCode;
} else {
form.value.processName = '';
form.value.processCode = '';
}
}
/** 供应商名称选择变化 */
const handleBaseSupplierInfoChange = (value) => {
const selected = baseSupplierInfoList.value.find(item => item.supplierId === value);
if (selected) {
form.value.supplierName = selected.supplierName;
form.value.supplierCode = selected.supplierCode;
} else {
form.value.supplierName = '';
form.value.supplierCode = '';
}
}
/** 关联检测项定义选择变化 */
const handleItemChange = (value) => {
const selected = qcInspectionItemList.value.find(item => item.itemId === value);
if (selected) {
templateItemForm.value.itemCode = selected.itemCode;
templateItemForm.value.itemName = selected.itemName;
templateItemForm.value.detectType = selected.detectType;
templateItemForm.value.controlType = selected.controlType;
templateItemForm.value.categoryName = selected.categoryName || '';
templateItemForm.value.inspectionType = selected.inspectionType;
templateItemForm.value.inspectionPosition = selected.inspectionPosition;
templateItemForm.value.standardValue = selected.standardValue;
templateItemForm.value.upperLimit = selected.upperLimit;
templateItemForm.value.lowerLimit = selected.lowerLimit;
templateItemForm.value.specName = selected.specName;
templateItemForm.value.specUpper = selected.specUpper;
templateItemForm.value.specLower = selected.specLower;
templateItemForm.value.description = selected.description;
} else {
// Optionally reset fields
}
}
//
let qcInspectionTypeList = ref([]);
@ -751,34 +915,41 @@ const getInspectionItemList = async () => {
}
/** 导入按钮操作 */
const fileInput = ref<HTMLInputElement>();
const uploading = ref(false);
const handleImport = () => {
fileInput.value?.click();
//
let materialList = ref([]);
const getMaterialList = async () => {
const res = await getBaseMaterialInfoList(null);
materialList.value = res.data;
}
const onFileChange = async (event: Event) => {
const input = event.target as HTMLInputElement;
if (input.files && input.files.length > 0) {
const file = input.files[0];
uploading.value = true;
try {
await importData(file, true);
proxy?.$modal.msgSuccess("导入成功");
await getList();
} catch (err) {
proxy?.$modal.msgError("导入失败");
console.error(err);
} finally {
uploading.value = false;
input.value = '';
}
}
//
let baseProcessInfoList = ref([]);
const getBaseProcessList = async () => {
const res = await getProcessInfoList(null);
baseProcessInfoList.value = res.data;
}
//
let baseStationInfoList = ref([]);
const getBaseStationList = async () => {
const res = await getStationInfoList(null);
baseStationInfoList.value = res.data;
}
//
let baseSupplierInfoList = ref([]);
const getBaseSupplierList = async () => {
const res = await getBaseSupplierInfoList(null);
baseSupplierInfoList.value = res.data;
}
onMounted(() => {
getList();
getInspectionTypeList();
getInspectionItemList();
getCategoryList();
});
</script>

@ -307,10 +307,11 @@ const handleExport = () => {
}, `qcInspectionType_${new Date().getTime()}.xlsx`)
}
/** 导出模板按钮操作 */
const handleExportTemplate = () => {
proxy?.download('qms/qcInspectionType/exportTemplate', {
}, `qcInspectionType_${new Date().getTime()}.xlsx`)
}, `qcInspectionType_template_${new Date().getTime()}.xlsx`)
}
/** 导入按钮操作 */

Loading…
Cancel
Save