update 初始化配方信息

master
yinq 2 months ago
parent db03ac9d17
commit 0b9ec8f636

@ -0,0 +1,77 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { RecipeInfoVO, RecipeInfoForm, RecipeInfoQuery } from '@/api/mes/recipeInfo/types';
/**
* -
* @param query
* @returns {*}
*/
export const listRecipeInfo = (query?: RecipeInfoQuery): AxiosPromise<RecipeInfoVO[]> => {
return request({
url: '/mes/recipeInfo/list',
method: 'get',
params: query
});
};
/**
* -
* @param recipeId
*/
export const getRecipeInfo = (recipeId: string | number): AxiosPromise<RecipeInfoVO> => {
return request({
url: '/mes/recipeInfo/' + recipeId,
method: 'get'
});
};
/**
* -
* @param data
*/
export const addRecipeInfo = (data: RecipeInfoForm) => {
return request({
url: '/mes/recipeInfo',
method: 'post',
data: data
});
};
/**
* -
* @param data
*/
export const updateRecipeInfo = (data: RecipeInfoForm) => {
return request({
url: '/mes/recipeInfo',
method: 'put',
data: data
});
};
/**
* -
* @param recipeId
*/
export const delRecipeInfo = (recipeId: string | number | Array<string | number>) => {
return request({
url: '/mes/recipeInfo/' + recipeId,
method: 'delete'
});
};
/**
* -
* @param query
* @returns {*}
*/
export function getProdRecipeInfoList (query) {
return request({
url: '/mes/recipeInfo/getProdRecipeInfoList',
method: 'get',
params: query
});
};

@ -0,0 +1,931 @@
export interface RecipeInfoVO {
/**
*
*/
recipeId: string | number;
/**
* ID
*/
machineId: string | number;
/**
* ID
*/
materialId: string | number;
/**
*
*/
edtCode: number;
/**
* (1)
*/
recipeType: number;
/**
*
*/
userEdtCode: string;
/**
* (1 0)
*/
recipeState: string;
/**
*
*/
doneTime: number;
/**
*
*/
shelfNum: number;
/**
*
*/
totalWeight: number;
/**
*
*/
fillCoefficient: number;
/**
*
*/
cbRecycleType: string;
/**
*
*/
cbRecycleTime: number;
/**
*
*/
overtempMintime: number;
/**
*
*/
overtimeTime: number;
/**
*
*/
overtempTemp: number;
/**
*
*/
maxInpolytemp: number;
/**
*
*/
minInpolytemp: number;
/**
*
*/
inPolytime: number;
/**
*
*/
inCarbontime: number;
/**
*
*/
inOiltime: number;
/**
*
*/
inPowdertime: number;
/**
*
*/
rollSpeeddiff: number;
/**
*
*/
ramPressdiff: number;
/**
* 使
*/
isUseareatemp: string;
/**
*
*/
sideTemp: string | number;
/**
*
*/
sideTempdiff: string | number;
/**
*
*/
rollTemp: number;
/**
*
*/
rollTempdiff: number;
/**
*
*/
ddoorTemp: number;
/**
*
*/
ddoorTempdiff: number;
/**
*
*/
operCode: string;
/**
*
*/
memNote: string;
/**
*
*/
recipeCode: string;
/**
* 使
*/
startDatetime: string;
/**
*
*/
endDatetime: string;
/**
*
*/
equipPrior: string;
/**
*
*/
recipeTypecode: string;
/**
*
*/
rubTypecode: string;
/**
*
*/
rubType: string;
/**
*
*/
mkindCode: string;
/**
*
*/
ikindCode: string;
/**
*
*/
conglRang: string;
/**
* SDS
*/
sdsTemp: number;
/**
*
*/
miniTime: number;
/**
* 0 1
*/
auditFlag: string;
/**
*
*/
auditName: number;
/**
*
*/
auditDate: string;
/**
*
*/
recipeDic: string;
/**
*
*/
stayTime: number;
/**
*
*/
rearchCode: string;
/**
*
*/
blackReuse: number;
/**
*
*/
reuseTime: number;
/**
*
*/
expireTime: number;
/**
*
*/
overTemp: number;
/**
*
*/
maxTemp: number;
/**
*
*/
minTemp: number;
/**
*
*/
ifNot: string;
/**
*
*/
zzTemp: number;
/**
* ()
*/
xlmTemp: number;
/**
*
*/
pjcontrl: number;
}
export interface RecipeInfoForm extends BaseEntity {
/**
*
*/
recipeId?: string | number;
/**
* ID
*/
machineId?: string | number;
/**
* ID
*/
materialId?: string | number;
/**
*
*/
edtCode?: number;
/**
* (1)
*/
recipeType?: number;
/**
*
*/
userEdtCode?: string;
/**
* (1 0)
*/
recipeState?: string;
/**
*
*/
doneTime?: number;
/**
*
*/
shelfNum?: number;
/**
*
*/
totalWeight?: number;
/**
*
*/
fillCoefficient?: number;
/**
*
*/
cbRecycleType?: string;
/**
*
*/
cbRecycleTime?: number;
/**
*
*/
overtempMintime?: number;
/**
*
*/
overtimeTime?: number;
/**
*
*/
overtempTemp?: number;
/**
*
*/
maxInpolytemp?: number;
/**
*
*/
minInpolytemp?: number;
/**
*
*/
inPolytime?: number;
/**
*
*/
inCarbontime?: number;
/**
*
*/
inOiltime?: number;
/**
*
*/
inPowdertime?: number;
/**
*
*/
rollSpeeddiff?: number;
/**
*
*/
ramPressdiff?: number;
/**
* 使
*/
isUseareatemp?: string;
/**
*
*/
sideTemp?: string | number;
/**
*
*/
sideTempdiff?: string | number;
/**
*
*/
rollTemp?: number;
/**
*
*/
rollTempdiff?: number;
/**
*
*/
ddoorTemp?: number;
/**
*
*/
ddoorTempdiff?: number;
/**
*
*/
operCode?: string;
/**
*
*/
memNote?: string;
/**
*
*/
recipeCode?: string;
/**
* 使
*/
startDatetime?: string;
/**
*
*/
endDatetime?: string;
/**
*
*/
equipPrior?: string;
/**
*
*/
recipeTypecode?: string;
/**
*
*/
rubTypecode?: string;
/**
*
*/
rubType?: string;
/**
*
*/
mkindCode?: string;
/**
*
*/
ikindCode?: string;
/**
*
*/
conglRang?: string;
/**
* SDS
*/
sdsTemp?: number;
/**
*
*/
miniTime?: number;
/**
* 0 1
*/
auditFlag?: string;
/**
*
*/
auditName?: number;
/**
*
*/
auditDate?: string;
/**
*
*/
recipeDic?: string;
/**
*
*/
stayTime?: number;
/**
*
*/
rearchCode?: string;
/**
*
*/
blackReuse?: number;
/**
*
*/
reuseTime?: number;
/**
*
*/
expireTime?: number;
/**
*
*/
overTemp?: number;
/**
*
*/
maxTemp?: number;
/**
*
*/
minTemp?: number;
/**
*
*/
ifNot?: string;
/**
*
*/
zzTemp?: number;
/**
* ()
*/
xlmTemp?: number;
/**
*
*/
pjcontrl?: number;
}
export interface RecipeInfoQuery extends PageQuery {
/**
*
*/
recipeId?: string | number;
/**
* ID
*/
machineId?: string | number;
/**
* ID
*/
materialId?: string | number;
/**
*
*/
edtCode?: number;
/**
* (1)
*/
recipeType?: number;
/**
*
*/
userEdtCode?: string;
/**
* (1 0)
*/
recipeState?: string;
/**
*
*/
doneTime?: number;
/**
*
*/
shelfNum?: number;
/**
*
*/
totalWeight?: number;
/**
*
*/
fillCoefficient?: number;
/**
*
*/
cbRecycleType?: string;
/**
*
*/
cbRecycleTime?: number;
/**
*
*/
overtempMintime?: number;
/**
*
*/
overtimeTime?: number;
/**
*
*/
overtempTemp?: number;
/**
*
*/
maxInpolytemp?: number;
/**
*
*/
minInpolytemp?: number;
/**
*
*/
inPolytime?: number;
/**
*
*/
inCarbontime?: number;
/**
*
*/
inOiltime?: number;
/**
*
*/
inPowdertime?: number;
/**
*
*/
rollSpeeddiff?: number;
/**
*
*/
ramPressdiff?: number;
/**
* 使
*/
isUseareatemp?: string;
/**
*
*/
sideTemp?: string | number;
/**
*
*/
sideTempdiff?: string | number;
/**
*
*/
rollTemp?: number;
/**
*
*/
rollTempdiff?: number;
/**
*
*/
ddoorTemp?: number;
/**
*
*/
ddoorTempdiff?: number;
/**
*
*/
operCode?: string;
/**
*
*/
memNote?: string;
/**
*
*/
recipeCode?: string;
/**
* 使
*/
startDatetime?: string;
/**
*
*/
endDatetime?: string;
/**
*
*/
equipPrior?: string;
/**
*
*/
recipeTypecode?: string;
/**
*
*/
rubTypecode?: string;
/**
*
*/
rubType?: string;
/**
*
*/
mkindCode?: string;
/**
*
*/
ikindCode?: string;
/**
*
*/
conglRang?: string;
/**
* SDS
*/
sdsTemp?: number;
/**
*
*/
miniTime?: number;
/**
* 0 1
*/
auditFlag?: string;
/**
*
*/
auditName?: number;
/**
*
*/
auditDate?: string;
/**
*
*/
recipeDic?: string;
/**
*
*/
stayTime?: number;
/**
*
*/
rearchCode?: string;
/**
*
*/
blackReuse?: number;
/**
*
*/
reuseTime?: number;
/**
*
*/
expireTime?: number;
/**
*
*/
overTemp?: number;
/**
*
*/
maxTemp?: number;
/**
*
*/
minTemp?: number;
/**
*
*/
ifNot?: string;
/**
*
*/
zzTemp?: number;
/**
* ()
*/
xlmTemp?: number;
/**
*
*/
pjcontrl?: number;
/**
*
*/
params?: any;
}

@ -0,0 +1,77 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { RecipeMixingVO, RecipeMixingForm, RecipeMixingQuery } from '@/api/mes/recipeMixing/types';
/**
*
* @param query
* @returns {*}
*/
export const listRecipeMixing = (query?: RecipeMixingQuery): AxiosPromise<RecipeMixingVO[]> => {
return request({
url: '/mes/recipeMixing/list',
method: 'get',
params: query
});
};
/**
*
* @param mixingId
*/
export const getRecipeMixing = (mixingId: string | number): AxiosPromise<RecipeMixingVO> => {
return request({
url: '/mes/recipeMixing/' + mixingId,
method: 'get'
});
};
/**
*
* @param data
*/
export const addRecipeMixing = (data: RecipeMixingForm) => {
return request({
url: '/mes/recipeMixing',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateRecipeMixing = (data: RecipeMixingForm) => {
return request({
url: '/mes/recipeMixing',
method: 'put',
data: data
});
};
/**
*
* @param mixingId
*/
export const delRecipeMixing = (mixingId: string | number | Array<string | number>) => {
return request({
url: '/mes/recipeMixing/' + mixingId,
method: 'delete'
});
};
/**
*
* @param query
* @returns {*}
*/
export function getProdRecipeMixingList (query) {
return request({
url: '/mes/recipeMixing/getProdRecipeMixingList',
method: 'get',
params: query
});
};

@ -0,0 +1,346 @@
export interface RecipeMixingVO {
/**
*
*/
mixingId: string | number;
/**
* ID
*/
recipeId: string | number;
/**
*
*/
mixId: string | number;
/**
* ID
*/
machineId: string | number;
/**
*
*/
edtCode: number;
/**
*
*/
condCode: string;
/**
*
*/
mixingTime: number;
/**
*
*/
mixingTemp: number;
/**
*
*/
mixingEnergy: number;
/**
*
*/
mixingPower: number;
/**
*
*/
mixingPress: number;
/**
*
*/
mixingSpeed: number;
/**
*
*/
actCode: string;
/**
*
*/
fatherCode: string;
/**
*
*/
childCode: string;
/**
*
*/
termCode: string;
/**
*
*/
setTime: number;
/**
*
*/
setTemp: number;
/**
*
*/
setEnergy: number;
/**
*
*/
setPower: number;
/**
*
*/
setPres: number;
/**
*
*/
setRota: number;
}
export interface RecipeMixingForm extends BaseEntity {
/**
*
*/
mixingId?: string | number;
/**
* ID
*/
recipeId?: string | number;
/**
*
*/
mixId?: string | number;
/**
* ID
*/
machineId?: string | number;
/**
*
*/
edtCode?: number;
/**
*
*/
condCode?: string;
/**
*
*/
mixingTime?: number;
/**
*
*/
mixingTemp?: number;
/**
*
*/
mixingEnergy?: number;
/**
*
*/
mixingPower?: number;
/**
*
*/
mixingPress?: number;
/**
*
*/
mixingSpeed?: number;
/**
*
*/
actCode?: string;
/**
*
*/
fatherCode?: string;
/**
*
*/
childCode?: string;
/**
*
*/
termCode?: string;
/**
*
*/
setTime?: number;
/**
*
*/
setTemp?: number;
/**
*
*/
setEnergy?: number;
/**
*
*/
setPower?: number;
/**
*
*/
setPres?: number;
/**
*
*/
setRota?: number;
}
export interface RecipeMixingQuery extends PageQuery {
/**
*
*/
mixingId?: string | number;
/**
* ID
*/
recipeId?: string | number;
/**
*
*/
mixId?: string | number;
/**
* ID
*/
machineId?: string | number;
/**
*
*/
edtCode?: number;
/**
*
*/
condCode?: string;
/**
*
*/
mixingTime?: number;
/**
*
*/
mixingTemp?: number;
/**
*
*/
mixingEnergy?: number;
/**
*
*/
mixingPower?: number;
/**
*
*/
mixingPress?: number;
/**
*
*/
mixingSpeed?: number;
/**
*
*/
actCode?: string;
/**
*
*/
fatherCode?: string;
/**
*
*/
childCode?: string;
/**
*
*/
termCode?: string;
/**
*
*/
setTime?: number;
/**
*
*/
setTemp?: number;
/**
*
*/
setEnergy?: number;
/**
*
*/
setPower?: number;
/**
*
*/
setPres?: number;
/**
*
*/
setRota?: number;
/**
*
*/
params?: any;
}

@ -0,0 +1,77 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { RecipeWeightVO, RecipeWeightForm, RecipeWeightQuery } from '@/api/mes/recipeWeight/types';
/**
*
* @param query
* @returns {*}
*/
export const listRecipeWeight = (query?: RecipeWeightQuery): AxiosPromise<RecipeWeightVO[]> => {
return request({
url: '/mes/recipeWeight/list',
method: 'get',
params: query
});
};
/**
*
* @param weightId
*/
export const getRecipeWeight = (weightId: string | number): AxiosPromise<RecipeWeightVO> => {
return request({
url: '/mes/recipeWeight/' + weightId,
method: 'get'
});
};
/**
*
* @param data
*/
export const addRecipeWeight = (data: RecipeWeightForm) => {
return request({
url: '/mes/recipeWeight',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateRecipeWeight = (data: RecipeWeightForm) => {
return request({
url: '/mes/recipeWeight',
method: 'put',
data: data
});
};
/**
*
* @param weightId
*/
export const delRecipeWeight = (weightId: string | number | Array<string | number>) => {
return request({
url: '/mes/recipeWeight/' + weightId,
method: 'delete'
});
};
/**
*
* @param query
* @returns {*}
*/
export function getProdRecipeWeightList (query) {
return request({
url: '/mes/recipeWeight/getProdRecipeWeightList',
method: 'get',
params: query
});
};

@ -0,0 +1,241 @@
export interface RecipeWeightVO {
/**
*
*/
weightId: string | number;
/**
* ID
*/
recipeId: string | number;
/**
*
*/
weightSeq: number;
/**
* ID
*/
machineId: string | number;
/**
*
*/
edtCode: number;
/**
*
*/
weightType: string;
/**
*
*/
scaleCode: number;
/**
*
*/
actCode: string;
/**
*
*/
setWeight: number;
/**
*
*/
errorAllow: number;
/**
*
*/
fatherCode: string;
/**
*
*/
unitId: string | number;
/**
*
*/
childCode: string;
/**
* 使
*/
ifUseBat: string;
/**
*
*/
maxRate: string;
}
export interface RecipeWeightForm extends BaseEntity {
/**
*
*/
weightId?: string | number;
/**
* ID
*/
recipeId?: string | number;
/**
*
*/
weightSeq?: number;
/**
* ID
*/
machineId?: string | number;
/**
*
*/
edtCode?: number;
/**
*
*/
weightType?: string;
/**
*
*/
scaleCode?: number;
/**
*
*/
actCode?: string;
/**
*
*/
setWeight?: number;
/**
*
*/
errorAllow?: number;
/**
*
*/
fatherCode?: string;
/**
*
*/
unitId?: string | number;
/**
*
*/
childCode?: string;
/**
* 使
*/
ifUseBat?: string;
/**
*
*/
maxRate?: string;
}
export interface RecipeWeightQuery extends PageQuery {
/**
*
*/
weightId?: string | number;
/**
* ID
*/
recipeId?: string | number;
/**
*
*/
weightSeq?: number;
/**
* ID
*/
machineId?: string | number;
/**
*
*/
edtCode?: number;
/**
*
*/
weightType?: string;
/**
*
*/
scaleCode?: number;
/**
*
*/
actCode?: string;
/**
*
*/
setWeight?: number;
/**
*
*/
errorAllow?: number;
/**
*
*/
fatherCode?: string;
/**
*
*/
unitId?: string | number;
/**
*
*/
childCode?: string;
/**
* 使
*/
ifUseBat?: string;
/**
*
*/
maxRate?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,692 @@
<template>
<div class='p-2'>
<transition :enter-active-class='proxy?.animate.searchAnimate.enter'
:leave-active-class='proxy?.animate.searchAnimate.leave'>
<div v-show='showSearch' class='mb-[10px]'>
<el-card shadow='hover'>
<el-form ref='queryFormRef' :model='queryParams' :inline='true'>
<el-form-item label='配方状态' prop='recipeState'>
<el-select v-model='queryParams.recipeState' placeholder='请选择配方状态' clearable>
<el-option v-for='dict in recipe_state' :key='dict.value' :label='dict.label' :value='dict.value' />
</el-select>
</el-form-item>
<el-form-item>
<el-button type='primary' icon='Search' @click='handleQuery'>搜索</el-button>
<el-button icon='Refresh' @click='resetQuery'>重置</el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow='never'>
<template #header>
<el-row :gutter='10' class='mb8'>
<el-col :span='1.5'>
<el-button type='primary' plain icon='Plus' @click='handleAdd' v-hasPermi="['mes:recipeInfo:add']">
</el-button>
</el-col>
<el-col :span='1.5'>
<el-button type='success' plain icon='Edit' :disabled='single' @click='handleUpdate()'
v-hasPermi="['mes:recipeInfo:edit']">修改
</el-button>
</el-col>
<el-col :span='1.5'>
<el-button type='danger' plain icon='Delete' :disabled='multiple' @click='handleDelete()'
v-hasPermi="['mes:recipeInfo:remove']">删除
</el-button>
</el-col>
<el-col :span='1.5'>
<el-button type='warning' plain icon='Download' @click='handleExport'
v-hasPermi="['mes:recipeInfo:export']">导出
</el-button>
</el-col>
<right-toolbar v-model:showSearch='showSearch' :columns='columns' :search='true'
@queryTable='getList'></right-toolbar>
</el-row>
</template>
<el-table v-loading='loading' :data='recipeInfoList' @selection-change='handleSelectionChange'>
<el-table-column type='selection' width='55' align='center' />
<el-table-column label='主键标识' align='center' prop='recipeId' v-if='columns[0].visible' />
<el-table-column label='机台ID' align='center' prop='machineId' v-if='columns[1].visible' />
<el-table-column label='物料ID' align='center' prop='materialId' v-if='columns[2].visible' />
<el-table-column label='版本号' align='center' prop='edtCode' v-if='columns[3].visible' />
<el-table-column label='配方类型' align='center' prop='recipeType' v-if='columns[4].visible'>
<template #default='scope'>
<dict-tag :options='recipe_type' :value='scope.row.recipeType' />
</template>
</el-table-column>
<el-table-column label='用户版本' align='center' prop='userEdtCode' v-if='columns[5].visible' />
<el-table-column label='配方状态' align='center' prop='recipeState' v-if='columns[6].visible'>
<template #default='scope'>
<dict-tag :options='recipe_state' :value='scope.row.recipeState' />
</template>
</el-table-column>
<el-table-column label='完成时间' align='center' prop='doneTime' v-if='columns[7].visible' />
<el-table-column label='架子车数' align='center' prop='shelfNum' v-if='columns[8].visible' />
<el-table-column label='配方重量' align='center' prop='totalWeight' v-if='columns[9].visible' />
<el-table-column label='填充系数' align='center' prop='fillCoefficient' v-if='columns[10].visible' />
<el-table-column label='炭黑回收类型' align='center' prop='cbRecycleType' v-if='columns[11].visible' />
<el-table-column label='炭黑回收时间' align='center' prop='cbRecycleTime' v-if='columns[12].visible' />
<el-table-column label='超温排胶最短时间' align='center' prop='overtempMintime' v-if='columns[13].visible' />
<el-table-column label='超时排胶时间' align='center' prop='overtimeTime' v-if='columns[14].visible' />
<el-table-column label='超温排胶温度' align='center' prop='overtempTemp' v-if='columns[15].visible' />
<el-table-column label='最大进胶温度' align='center' prop='maxInpolytemp' v-if='columns[16].visible' />
<el-table-column label='最小进胶温度' align='center' prop='minInpolytemp' v-if='columns[17].visible' />
<el-table-column label='进胶时间' align='center' prop='inPolytime' v-if='columns[18].visible' />
<el-table-column label='进炭黑时间' align='center' prop='inCarbontime' v-if='columns[19].visible' />
<el-table-column label='进油时间' align='center' prop='inOiltime' v-if='columns[20].visible' />
<el-table-column label='进粉时间' align='center' prop='inPowdertime' v-if='columns[21].visible' />
<el-table-column label='辊速差' align='center' prop='rollSpeeddiff' v-if='columns[22].visible' />
<el-table-column label='上顶栓压力差' align='center' prop='ramPressdiff' v-if='columns[23].visible' />
<el-table-column label='是否使用区域温度' align='center' prop='isUseareatemp' v-if='columns[24].visible' />
<el-table-column label='侧温' align='center' prop='sideTemp' v-if='columns[25].visible' />
<el-table-column label='侧温温差' align='center' prop='sideTempdiff' v-if='columns[26].visible' />
<el-table-column label='辊温' align='center' prop='rollTemp' v-if='columns[27].visible' />
<el-table-column label='辊温温差' align='center' prop='rollTempdiff' v-if='columns[28].visible' />
<el-table-column label='卸料门温度' align='center' prop='ddoorTemp' v-if='columns[29].visible' />
<el-table-column label='卸料门温差' align='center' prop='ddoorTempdiff' v-if='columns[30].visible' />
<el-table-column label='操作者' align='center' prop='operCode' v-if='columns[31].visible' />
<el-table-column label='备注' align='center' prop='memNote' v-if='columns[32].visible' />
<el-table-column label='配方编码' align='center' prop='recipeCode' v-if='columns[33].visible' />
<el-table-column label='开始使用时间' align='center' prop='startDatetime' v-if='columns[34].visible' />
<el-table-column label='停用时间' align='center' prop='endDatetime' v-if='columns[35].visible' />
<el-table-column label='机台优先级' align='center' prop='equipPrior' v-if='columns[36].visible' />
<el-table-column label='配方类型编码' align='center' prop='recipeTypecode' v-if='columns[37].visible' />
<el-table-column label='胶种编码' align='center' prop='rubTypecode' v-if='columns[38].visible' />
<el-table-column label='胶种类型' align='center' prop='rubType' v-if='columns[39].visible' />
<el-table-column label='物料种类编码' align='center' prop='mkindCode' v-if='columns[40].visible' />
<el-table-column label='物料分类编码' align='center' prop='ikindCode' v-if='columns[41].visible' />
<el-table-column label='共混范围' align='center' prop='conglRang' v-if='columns[42].visible' />
<el-table-column label='SDS温度' align='center' prop='sdsTemp' v-if='columns[43].visible' />
<el-table-column label='最短时间' align='center' prop='miniTime' v-if='columns[44].visible' />
<el-table-column label='审核标志' align='center' prop='auditFlag' v-if='columns[45].visible' />
<el-table-column label='审核者' align='center' prop='auditName' v-if='columns[46].visible' />
<el-table-column label='审核日期' align='center' prop='auditDate' width='180' v-if='columns[47].visible'>
<template #default='scope'>
<span>{{ parseTime(scope.row.auditDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label='配方字典' align='center' prop='recipeDic' v-if='columns[48].visible' />
<el-table-column label='停放时间' align='center' prop='stayTime' v-if='columns[49].visible' />
<el-table-column label='研究编码' align='center' prop='rearchCode' v-if='columns[50].visible' />
<el-table-column label='黑胶回用' align='center' prop='blackReuse' v-if='columns[51].visible' />
<el-table-column label='回用时间' align='center' prop='reuseTime' v-if='columns[52].visible' />
<el-table-column label='过期时间' align='center' prop='expireTime' v-if='columns[53].visible' />
<el-table-column label='超温' align='center' prop='overTemp' v-if='columns[54].visible' />
<el-table-column label='最高温度' align='center' prop='maxTemp' v-if='columns[55].visible' />
<el-table-column label='最低温度' align='center' prop='minTemp' v-if='columns[56].visible' />
<el-table-column label='是否不控' align='center' prop='ifNot' v-if='columns[57].visible' />
<el-table-column label='主机温度' align='center' prop='zzTemp' v-if='columns[58].visible' />
<el-table-column label='卸料门温度(小料门)' align='center' prop='xlmTemp' v-if='columns[59].visible' />
<el-table-column label='排胶控制' align='center' prop='pjcontrl' v-if='columns[60].visible' />
<el-table-column label='操作' align='center' class-name='small-padding fixed-width'>
<template #default='scope'>
<el-tooltip content='修改' placement='top'>
<el-button link type='primary' icon='Edit' @click='handleUpdate(scope.row)'
v-hasPermi="['mes:recipeInfo:edit']"></el-button>
</el-tooltip>
<el-tooltip content='删除' placement='top'>
<el-button link type='primary' icon='Delete' @click='handleDelete(scope.row)'
v-hasPermi="['mes:recipeInfo:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show='total > 0' :total='total' v-model:page='queryParams.pageNum'
v-model:limit='queryParams.pageSize' @pagination='getList' />
</el-card>
<!-- 添加或修改配方-基础信息对话框 -->
<el-dialog :title='dialog.title' v-model='dialog.visible' width='500px' append-to-body>
<el-form ref='recipeInfoFormRef' :model='form' :rules='rules' label-width='120px'>
<el-form-item label='主键标识' prop='recipeId'>
<el-input v-model='form.recipeId' placeholder='请输入主键标识' />
</el-form-item>
<el-form-item label='机台ID' prop='machineId'>
<el-input v-model='form.machineId' placeholder='请输入机台ID' />
</el-form-item>
<el-form-item label='物料ID' prop='materialId'>
<el-input v-model='form.materialId' placeholder='请输入物料ID' />
</el-form-item>
<el-form-item label='版本号' prop='edtCode'>
<el-input v-model='form.edtCode' placeholder='请输入版本号' />
</el-form-item>
<el-form-item label='配方类型' prop='recipeType'>
<el-select v-model='form.recipeType' placeholder='请选择配方类型'>
<el-option
v-for='dict in recipe_type'
:key='dict.value'
:label='dict.label'
:value='parseInt(dict.value)'
></el-option>
</el-select>
</el-form-item>
<el-form-item label='用户版本' prop='userEdtCode'>
<el-input v-model='form.userEdtCode' placeholder='请输入用户版本' />
</el-form-item>
<el-form-item label='配方状态' prop='recipeState'>
<el-select v-model='form.recipeState' placeholder='请选择配方状态'>
<el-option
v-for='dict in recipe_state'
:key='dict.value'
:label='dict.label'
:value='dict.value'
></el-option>
</el-select>
</el-form-item>
<el-form-item label='完成时间' prop='doneTime'>
<el-input v-model='form.doneTime' placeholder='请输入完成时间' />
</el-form-item>
<el-form-item label='架子车数' prop='shelfNum'>
<el-input v-model='form.shelfNum' placeholder='请输入架子车数' />
</el-form-item>
<el-form-item label='配方重量' prop='totalWeight'>
<el-input v-model='form.totalWeight' placeholder='请输入配方重量' />
</el-form-item>
<el-form-item label='填充系数' prop='fillCoefficient'>
<el-input v-model='form.fillCoefficient' placeholder='请输入填充系数' />
</el-form-item>
<el-form-item label='超温排胶最短时间' prop='overtempMintime'>
<el-input v-model='form.overtempMintime' placeholder='请输入超温排胶最短时间' />
</el-form-item>
<el-form-item label='超时排胶时间' prop='overtimeTime'>
<el-input v-model='form.overtimeTime' placeholder='请输入超时排胶时间' />
</el-form-item>
<el-form-item label='超温排胶温度' prop='overtempTemp'>
<el-input v-model='form.overtempTemp' placeholder='请输入超温排胶温度' />
</el-form-item>
<el-form-item label='最大进胶温度' prop='maxInpolytemp'>
<el-input v-model='form.maxInpolytemp' placeholder='请输入最大进胶温度' />
</el-form-item>
<el-form-item label='最小进胶温度' prop='minInpolytemp'>
<el-input v-model='form.minInpolytemp' placeholder='请输入最小进胶温度' />
</el-form-item>
<el-form-item label='进胶时间' prop='inPolytime'>
<el-input v-model='form.inPolytime' placeholder='请输入进胶时间' />
</el-form-item>
<el-form-item label='进炭黑时间' prop='inCarbontime'>
<el-input v-model='form.inCarbontime' placeholder='请输入进炭黑时间' />
</el-form-item>
<el-form-item label='进油时间' prop='inOiltime'>
<el-input v-model='form.inOiltime' placeholder='请输入进油时间' />
</el-form-item>
<el-form-item label='进粉时间' prop='inPowdertime'>
<el-input v-model='form.inPowdertime' placeholder='请输入进粉时间' />
</el-form-item>
<el-form-item label='辊速差' prop='rollSpeeddiff'>
<el-input v-model='form.rollSpeeddiff' placeholder='请输入辊速差' />
</el-form-item>
<el-form-item label='上顶栓压力差' prop='ramPressdiff'>
<el-input v-model='form.ramPressdiff' placeholder='请输入上顶栓压力差' />
</el-form-item>
<el-form-item label='侧温' prop='sideTemp'>
<el-input v-model='form.sideTemp' placeholder='请输入侧温' />
</el-form-item>
<el-form-item label='侧温温差' prop='sideTempdiff'>
<el-input v-model='form.sideTempdiff' placeholder='请输入侧温温差' />
</el-form-item>
<el-form-item label='辊温' prop='rollTemp'>
<el-input v-model='form.rollTemp' placeholder='请输入辊温' />
</el-form-item>
<el-form-item label='辊温温差' prop='rollTempdiff'>
<el-input v-model='form.rollTempdiff' placeholder='请输入辊温温差' />
</el-form-item>
<el-form-item label='卸料门温度' prop='ddoorTemp'>
<el-input v-model='form.ddoorTemp' placeholder='请输入卸料门温度' />
</el-form-item>
<el-form-item label='卸料门温差' prop='ddoorTempdiff'>
<el-input v-model='form.ddoorTempdiff' placeholder='请输入卸料门温差' />
</el-form-item>
<el-form-item label='操作者' prop='operCode'>
<el-input v-model='form.operCode' placeholder='请输入操作者' />
</el-form-item>
<el-form-item label='备注' prop='memNote'>
<el-input v-model='form.memNote' placeholder='请输入备注' />
</el-form-item>
<el-form-item label='配方编码' prop='recipeCode'>
<el-input v-model='form.recipeCode' placeholder='请输入配方编码' />
</el-form-item>
<el-form-item label='开始使用时间' prop='startDatetime'>
<el-input v-model='form.startDatetime' placeholder='请输入开始使用时间' />
</el-form-item>
<el-form-item label='停用时间' prop='endDatetime'>
<el-input v-model='form.endDatetime' placeholder='请输入停用时间' />
</el-form-item>
<el-form-item label='机台优先级' prop='equipPrior'>
<el-input v-model='form.equipPrior' placeholder='请输入机台优先级' />
</el-form-item>
<el-form-item label='配方类型编码' prop='recipeTypecode'>
<el-input v-model='form.recipeTypecode' placeholder='请输入配方类型编码' />
</el-form-item>
<el-form-item label='胶种编码' prop='rubTypecode'>
<el-input v-model='form.rubTypecode' placeholder='请输入胶种编码' />
</el-form-item>
<el-form-item label='物料种类编码' prop='mkindCode'>
<el-input v-model='form.mkindCode' placeholder='请输入物料种类编码' />
</el-form-item>
<el-form-item label='物料分类编码' prop='ikindCode'>
<el-input v-model='form.ikindCode' placeholder='请输入物料分类编码' />
</el-form-item>
<el-form-item label='共混范围' prop='conglRang'>
<el-input v-model='form.conglRang' placeholder='请输入共混范围' />
</el-form-item>
<el-form-item label='SDS温度' prop='sdsTemp'>
<el-input v-model='form.sdsTemp' placeholder='请输入SDS温度' />
</el-form-item>
<el-form-item label='最短时间' prop='miniTime'>
<el-input v-model='form.miniTime' placeholder='请输入最短时间' />
</el-form-item>
<el-form-item label='审核标志' prop='auditFlag'>
<el-input v-model='form.auditFlag' placeholder='请输入审核标志' />
</el-form-item>
<el-form-item label='审核者' prop='auditName'>
<el-input v-model='form.auditName' placeholder='请输入审核者' />
</el-form-item>
<el-form-item label='审核日期' prop='auditDate'>
<el-date-picker clearable
v-model='form.auditDate'
type='datetime'
value-format='YYYY-MM-DD HH:mm:ss'
placeholder='请选择审核日期'>
</el-date-picker>
</el-form-item>
<el-form-item label='配方字典' prop='recipeDic'>
<el-input v-model='form.recipeDic' placeholder='请输入配方字典' />
</el-form-item>
<el-form-item label='停放时间' prop='stayTime'>
<el-input v-model='form.stayTime' placeholder='请输入停放时间' />
</el-form-item>
<el-form-item label='研究编码' prop='rearchCode'>
<el-input v-model='form.rearchCode' placeholder='请输入研究编码' />
</el-form-item>
<el-form-item label='黑胶回用' prop='blackReuse'>
<el-input v-model='form.blackReuse' placeholder='请输入黑胶回用' />
</el-form-item>
<el-form-item label='回用时间' prop='reuseTime'>
<el-input v-model='form.reuseTime' placeholder='请输入回用时间' />
</el-form-item>
<el-form-item label='过期时间' prop='expireTime'>
<el-input v-model='form.expireTime' placeholder='请输入过期时间' />
</el-form-item>
<el-form-item label='超温' prop='overTemp'>
<el-input v-model='form.overTemp' placeholder='请输入超温' />
</el-form-item>
<el-form-item label='最高温度' prop='maxTemp'>
<el-input v-model='form.maxTemp' placeholder='请输入最高温度' />
</el-form-item>
<el-form-item label='最低温度' prop='minTemp'>
<el-input v-model='form.minTemp' placeholder='请输入最低温度' />
</el-form-item>
<el-form-item label='是否不控' prop='ifNot'>
<el-input v-model='form.ifNot' placeholder='请输入是否不控' />
</el-form-item>
<el-form-item label='主机温度' prop='zzTemp'>
<el-input v-model='form.zzTemp' placeholder='请输入主机温度' />
</el-form-item>
<el-form-item label='卸料门温度(小料门)' prop='xlmTemp'>
<el-input v-model='form.xlmTemp' placeholder='请输入卸料门温度(小料门)' />
</el-form-item>
<el-form-item label='排胶控制' prop='pjcontrl'>
<el-input v-model='form.pjcontrl' placeholder='请输入排胶控制' />
</el-form-item>
</el-form>
<template #footer>
<div class='dialog-footer'>
<el-button :loading='buttonLoading' type='primary' @click='submitForm'> </el-button>
<el-button @click='cancel'> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name='RecipeInfo' lang='ts'>
import { listRecipeInfo, getRecipeInfo, delRecipeInfo, addRecipeInfo, updateRecipeInfo } from '@/api/mes/recipeInfo';
import { RecipeInfoVO, RecipeInfoQuery, RecipeInfoForm } from '@/api/mes/recipeInfo/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { recipe_type, recipe_state } = toRefs<any>(proxy?.useDict('recipe_type', 'recipe_state'));
const recipeInfoList = ref<RecipeInfoVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const recipeInfoFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
//
const columns = ref<FieldOption[]>([
{ key: 0, label: `主键标识`, visible: true },
{ key: 1, label: `机台ID`, visible: true },
{ key: 2, label: `物料ID`, visible: true },
{ key: 3, label: `版本号`, visible: true },
{ key: 4, label: `配方类型`, visible: true },
{ key: 5, label: `用户版本`, visible: true },
{ key: 6, label: `配方状态`, visible: true },
{ key: 7, label: `完成时间`, visible: true },
{ key: 8, label: `架子车数`, visible: true },
{ key: 9, label: `配方重量`, visible: true },
{ key: 10, label: `填充系数`, visible: true },
{ key: 11, label: `炭黑回收类型`, visible: true },
{ key: 12, label: `炭黑回收时间`, visible: true },
{ key: 13, label: `超温排胶最短时间`, visible: true },
{ key: 14, label: `超时排胶时间`, visible: true },
{ key: 15, label: `超温排胶温度`, visible: true },
{ key: 16, label: `最大进胶温度`, visible: true },
{ key: 17, label: `最小进胶温度`, visible: true },
{ key: 18, label: `进胶时间`, visible: true },
{ key: 19, label: `进炭黑时间`, visible: true },
{ key: 20, label: `进油时间`, visible: true },
{ key: 21, label: `进粉时间`, visible: true },
{ key: 22, label: `辊速差`, visible: true },
{ key: 23, label: `上顶栓压力差`, visible: true },
{ key: 24, label: `是否使用区域温度`, visible: true },
{ key: 25, label: `侧温`, visible: true },
{ key: 26, label: `侧温温差`, visible: true },
{ key: 27, label: `辊温`, visible: true },
{ key: 28, label: `辊温温差`, visible: true },
{ key: 29, label: `卸料门温度`, visible: true },
{ key: 30, label: `卸料门温差`, visible: true },
{ key: 31, label: `操作者`, visible: true },
{ key: 32, label: `备注`, visible: true },
{ key: 33, label: `配方编码`, visible: true },
{ key: 34, label: `开始使用时间`, visible: true },
{ key: 35, label: `停用时间`, visible: true },
{ key: 36, label: `机台优先级`, visible: true },
{ key: 37, label: `配方类型编码`, visible: true },
{ key: 38, label: `胶种编码`, visible: true },
{ key: 39, label: `胶种类型`, visible: true },
{ key: 40, label: `物料种类编码`, visible: true },
{ key: 41, label: `物料分类编码`, visible: true },
{ key: 42, label: `共混范围`, visible: true },
{ key: 43, label: `SDS温度`, visible: true },
{ key: 44, label: `最短时间`, visible: true },
{ key: 45, label: `审核标志`, visible: true },
{ key: 46, label: `审核者`, visible: true },
{ key: 47, label: `审核日期`, visible: true },
{ key: 48, label: `配方字典`, visible: true },
{ key: 49, label: `停放时间`, visible: true },
{ key: 50, label: `研究编码`, visible: true },
{ key: 51, label: `黑胶回用`, visible: true },
{ key: 52, label: `回用时间`, visible: true },
{ key: 53, label: `过期时间`, visible: true },
{ key: 54, label: `超温`, visible: true },
{ key: 55, label: `最高温度`, visible: true },
{ key: 56, label: `最低温度`, visible: true },
{ key: 57, label: `是否不控`, visible: true },
{ key: 58, label: `主机温度`, visible: true },
{ key: 59, label: `卸料门温度(小料门)`, visible: true },
{ key: 60, label: `排胶控制`, visible: true },
{ key: 61, label: `租户编号`, visible: true },
{ key: 62, label: `创建部门`, visible: true },
{ key: 63, label: `创建者`, visible: true },
{ key: 64, label: `创建时间`, visible: true },
{ key: 65, label: `更新者`, visible: true },
{ key: 66, label: `更新时间`, visible: true },
{ key: 67, label: `删除标志`, visible: true }
]);
const initFormData: RecipeInfoForm = {
recipeId: undefined,
machineId: undefined,
materialId: undefined,
edtCode: undefined,
recipeType: undefined,
userEdtCode: undefined,
recipeState: undefined,
doneTime: undefined,
shelfNum: undefined,
totalWeight: undefined,
fillCoefficient: undefined,
cbRecycleType: undefined,
cbRecycleTime: undefined,
overtempMintime: undefined,
overtimeTime: undefined,
overtempTemp: undefined,
maxInpolytemp: undefined,
minInpolytemp: undefined,
inPolytime: undefined,
inCarbontime: undefined,
inOiltime: undefined,
inPowdertime: undefined,
rollSpeeddiff: undefined,
ramPressdiff: undefined,
isUseareatemp: undefined,
sideTemp: undefined,
sideTempdiff: undefined,
rollTemp: undefined,
rollTempdiff: undefined,
ddoorTemp: undefined,
ddoorTempdiff: undefined,
operCode: undefined,
memNote: undefined,
recipeCode: undefined,
startDatetime: undefined,
endDatetime: undefined,
equipPrior: undefined,
recipeTypecode: undefined,
rubTypecode: undefined,
rubType: undefined,
mkindCode: undefined,
ikindCode: undefined,
conglRang: undefined,
sdsTemp: undefined,
miniTime: undefined,
auditFlag: undefined,
auditName: undefined,
auditDate: undefined,
recipeDic: undefined,
stayTime: undefined,
rearchCode: undefined,
blackReuse: undefined,
reuseTime: undefined,
expireTime: undefined,
overTemp: undefined,
maxTemp: undefined,
minTemp: undefined,
ifNot: undefined,
zzTemp: undefined,
xlmTemp: undefined,
pjcontrl: undefined
};
const data = reactive<PageData<RecipeInfoForm, RecipeInfoQuery>>({
form: { ...initFormData },
queryParams: {
pageNum: 1,
pageSize: 10,
recipeId: undefined,
machineId: undefined,
materialId: undefined,
edtCode: undefined,
recipeType: undefined,
userEdtCode: undefined,
recipeState: undefined,
doneTime: undefined,
shelfNum: undefined,
totalWeight: undefined,
fillCoefficient: undefined,
cbRecycleType: undefined,
cbRecycleTime: undefined,
overtempMintime: undefined,
overtimeTime: undefined,
overtempTemp: undefined,
maxInpolytemp: undefined,
minInpolytemp: undefined,
inPolytime: undefined,
inCarbontime: undefined,
inOiltime: undefined,
inPowdertime: undefined,
rollSpeeddiff: undefined,
ramPressdiff: undefined,
isUseareatemp: undefined,
sideTemp: undefined,
sideTempdiff: undefined,
rollTemp: undefined,
rollTempdiff: undefined,
ddoorTemp: undefined,
ddoorTempdiff: undefined,
operCode: undefined,
memNote: undefined,
recipeCode: undefined,
startDatetime: undefined,
endDatetime: undefined,
equipPrior: undefined,
recipeTypecode: undefined,
rubTypecode: undefined,
rubType: undefined,
mkindCode: undefined,
ikindCode: undefined,
conglRang: undefined,
sdsTemp: undefined,
miniTime: undefined,
auditFlag: undefined,
auditName: undefined,
auditDate: undefined,
recipeDic: undefined,
stayTime: undefined,
rearchCode: undefined,
blackReuse: undefined,
reuseTime: undefined,
expireTime: undefined,
overTemp: undefined,
maxTemp: undefined,
minTemp: undefined,
ifNot: undefined,
zzTemp: undefined,
xlmTemp: undefined,
pjcontrl: undefined,
params: {}
},
rules: {
machineId: [
{ required: true, message: '机台ID不能为空', trigger: 'blur' }
],
rollTempdiff: [
{ required: true, message: '辊温温差不能为空', trigger: 'blur' }
],
operCode: [
{ required: true, message: '操作者不能为空', trigger: 'blur' }
],
memNote: [
{ required: true, message: '备注不能为空', trigger: 'blur' }
],
recipeCode: [
{ required: true, message: '配方编码不能为空', trigger: 'blur' }
],
auditDate: [
{ required: true, message: '审核日期不能为空', trigger: 'blur' }
],
recipeDic: [
{ required: true, message: '配方字典不能为空', trigger: 'blur' }
]
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询配方-基础信息列表 */
const getList = async () => {
loading.value = true;
const res = await listRecipeInfo(queryParams.value);
recipeInfoList.value = res.rows;
total.value = res.total;
loading.value = false;
};
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
};
/** 表单重置 */
const reset = () => {
form.value = { ...initFormData };
recipeInfoFormRef.value?.resetFields();
};
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
};
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
};
/** 多选框选中数据 */
const handleSelectionChange = (selection: RecipeInfoVO[]) => {
ids.value = selection.map(item => item.recipeId);
single.value = selection.length != 1;
multiple.value = !selection.length;
};
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = '添加配方-基础信息';
};
/** 修改按钮操作 */
const handleUpdate = async (row?: RecipeInfoVO) => {
reset();
const _recipeId = row?.recipeId || ids.value[0];
const res = await getRecipeInfo(_recipeId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = '修改配方-基础信息';
};
/** 提交按钮 */
const submitForm = () => {
recipeInfoFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.recipeId) {
await updateRecipeInfo(form.value).finally(() => buttonLoading.value = false);
} else {
await addRecipeInfo(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess('操作成功');
dialog.visible = false;
await getList();
}
});
};
/** 删除按钮操作 */
const handleDelete = async (row?: RecipeInfoVO) => {
const _recipeIds = row?.recipeId || ids.value;
await proxy?.$modal.confirm('是否确认删除配方-基础信息编号为"' + _recipeIds + '"的数据项?').finally(() => loading.value = false);
await delRecipeInfo(_recipeIds);
proxy?.$modal.msgSuccess('删除成功');
await getList();
};
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('mes/recipeInfo/export', {
...queryParams.value
}, `recipeInfo_${new Date().getTime()}.xlsx`);
};
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,431 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true" >
<el-form-item label="主键标识" prop="mixingId">
<el-input v-model="queryParams.mixingId" placeholder="请输入主键标识" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="配方ID" prop="recipeId">
<el-input v-model="queryParams.recipeId" placeholder="请输入配方ID" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="混炼序号" prop="mixId">
<el-input v-model="queryParams.mixId" placeholder="请输入混炼序号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="机台ID" prop="machineId">
<el-input v-model="queryParams.machineId" placeholder="请输入机台ID" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="版本号" prop="edtCode">
<el-input v-model="queryParams.edtCode" placeholder="请输入版本号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="条件编码" prop="condCode">
<el-input v-model="queryParams.condCode" placeholder="请输入条件编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="混炼时间" prop="mixingTime">
<el-input v-model="queryParams.mixingTime" placeholder="请输入混炼时间" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="混炼温度" prop="mixingTemp">
<el-input v-model="queryParams.mixingTemp" placeholder="请输入混炼温度" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="混炼能量" prop="mixingEnergy">
<el-input v-model="queryParams.mixingEnergy" placeholder="请输入混炼能量" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="混炼功率" prop="mixingPower">
<el-input v-model="queryParams.mixingPower" placeholder="请输入混炼功率" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="混炼压力" prop="mixingPress">
<el-input v-model="queryParams.mixingPress" placeholder="请输入混炼压力" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="混炼转速" prop="mixingSpeed">
<el-input v-model="queryParams.mixingSpeed" placeholder="请输入混炼转速" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="动作编码" prop="actCode">
<el-input v-model="queryParams.actCode" placeholder="请输入动作编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="父级编码" prop="fatherCode">
<el-input v-model="queryParams.fatherCode" placeholder="请输入父级编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="子级编码" prop="childCode">
<el-input v-model="queryParams.childCode" placeholder="请输入子级编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="工步编码" prop="termCode">
<el-input v-model="queryParams.termCode" placeholder="请输入工步编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设定时间" prop="setTime">
<el-input v-model="queryParams.setTime" placeholder="请输入设定时间" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设定温度" prop="setTemp">
<el-input v-model="queryParams.setTemp" placeholder="请输入设定温度" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设定能量" prop="setEnergy">
<el-input v-model="queryParams.setEnergy" placeholder="请输入设定能量" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设定功率" prop="setPower">
<el-input v-model="queryParams.setPower" placeholder="请输入设定功率" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设定压力" prop="setPres">
<el-input v-model="queryParams.setPres" placeholder="请输入设定压力" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设定转速" prop="setRota">
<el-input v-model="queryParams.setRota" placeholder="请输入设定转速" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['mes:recipeMixing:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['mes:recipeMixing:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['mes:recipeMixing:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['mes:recipeMixing:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" :columns="columns" :search="true" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" :data="recipeMixingList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="mixingId" v-if="columns[0].visible"/>
<el-table-column label="配方ID" align="center" prop="recipeId" v-if="columns[1].visible"/>
<el-table-column label="混炼序号" align="center" prop="mixId" v-if="columns[2].visible"/>
<el-table-column label="机台ID" align="center" prop="machineId" v-if="columns[3].visible"/>
<el-table-column label="版本号" align="center" prop="edtCode" v-if="columns[4].visible"/>
<el-table-column label="条件编码" align="center" prop="condCode" v-if="columns[5].visible"/>
<el-table-column label="混炼时间" align="center" prop="mixingTime" v-if="columns[6].visible"/>
<el-table-column label="混炼温度" align="center" prop="mixingTemp" v-if="columns[7].visible"/>
<el-table-column label="混炼能量" align="center" prop="mixingEnergy" v-if="columns[8].visible"/>
<el-table-column label="混炼功率" align="center" prop="mixingPower" v-if="columns[9].visible"/>
<el-table-column label="混炼压力" align="center" prop="mixingPress" v-if="columns[10].visible"/>
<el-table-column label="混炼转速" align="center" prop="mixingSpeed" v-if="columns[11].visible"/>
<el-table-column label="动作编码" align="center" prop="actCode" v-if="columns[12].visible"/>
<el-table-column label="父级编码" align="center" prop="fatherCode" v-if="columns[13].visible"/>
<el-table-column label="子级编码" align="center" prop="childCode" v-if="columns[14].visible"/>
<el-table-column label="工步编码" align="center" prop="termCode" v-if="columns[15].visible"/>
<el-table-column label="设定时间" align="center" prop="setTime" v-if="columns[16].visible"/>
<el-table-column label="设定温度" align="center" prop="setTemp" v-if="columns[17].visible"/>
<el-table-column label="设定能量" align="center" prop="setEnergy" v-if="columns[18].visible"/>
<el-table-column label="设定功率" align="center" prop="setPower" v-if="columns[19].visible"/>
<el-table-column label="设定压力" align="center" prop="setPres" v-if="columns[20].visible"/>
<el-table-column label="设定转速" align="center" prop="setRota" v-if="columns[21].visible"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['mes:recipeMixing:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['mes:recipeMixing:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改配方混炼信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="recipeMixingFormRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="主键标识" prop="mixingId">
<el-input v-model="form.mixingId" placeholder="请输入主键标识" />
</el-form-item>
<el-form-item label="配方ID" prop="recipeId">
<el-input v-model="form.recipeId" placeholder="请输入配方ID" />
</el-form-item>
<el-form-item label="混炼序号" prop="mixId">
<el-input v-model="form.mixId" placeholder="请输入混炼序号" />
</el-form-item>
<el-form-item label="机台ID" prop="machineId">
<el-input v-model="form.machineId" placeholder="请输入机台ID" />
</el-form-item>
<el-form-item label="版本号" prop="edtCode">
<el-input v-model="form.edtCode" placeholder="请输入版本号" />
</el-form-item>
<el-form-item label="条件编码" prop="condCode">
<el-input v-model="form.condCode" placeholder="请输入条件编码" />
</el-form-item>
<el-form-item label="混炼时间" prop="mixingTime">
<el-input v-model="form.mixingTime" placeholder="请输入混炼时间" />
</el-form-item>
<el-form-item label="混炼温度" prop="mixingTemp">
<el-input v-model="form.mixingTemp" placeholder="请输入混炼温度" />
</el-form-item>
<el-form-item label="混炼能量" prop="mixingEnergy">
<el-input v-model="form.mixingEnergy" placeholder="请输入混炼能量" />
</el-form-item>
<el-form-item label="混炼功率" prop="mixingPower">
<el-input v-model="form.mixingPower" placeholder="请输入混炼功率" />
</el-form-item>
<el-form-item label="混炼压力" prop="mixingPress">
<el-input v-model="form.mixingPress" placeholder="请输入混炼压力" />
</el-form-item>
<el-form-item label="混炼转速" prop="mixingSpeed">
<el-input v-model="form.mixingSpeed" placeholder="请输入混炼转速" />
</el-form-item>
<el-form-item label="动作编码" prop="actCode">
<el-input v-model="form.actCode" placeholder="请输入动作编码" />
</el-form-item>
<el-form-item label="父级编码" prop="fatherCode">
<el-input v-model="form.fatherCode" placeholder="请输入父级编码" />
</el-form-item>
<el-form-item label="子级编码" prop="childCode">
<el-input v-model="form.childCode" placeholder="请输入子级编码" />
</el-form-item>
<el-form-item label="工步编码" prop="termCode">
<el-input v-model="form.termCode" placeholder="请输入工步编码" />
</el-form-item>
<el-form-item label="设定时间" prop="setTime">
<el-input v-model="form.setTime" placeholder="请输入设定时间" />
</el-form-item>
<el-form-item label="设定温度" prop="setTemp">
<el-input v-model="form.setTemp" placeholder="请输入设定温度" />
</el-form-item>
<el-form-item label="设定能量" prop="setEnergy">
<el-input v-model="form.setEnergy" placeholder="请输入设定能量" />
</el-form-item>
<el-form-item label="设定功率" prop="setPower">
<el-input v-model="form.setPower" placeholder="请输入设定功率" />
</el-form-item>
<el-form-item label="设定压力" prop="setPres">
<el-input v-model="form.setPres" placeholder="请输入设定压力" />
</el-form-item>
<el-form-item label="设定转速" prop="setRota">
<el-input v-model="form.setRota" placeholder="请输入设定转速" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="RecipeMixing" lang="ts">
import { listRecipeMixing, getRecipeMixing, delRecipeMixing, addRecipeMixing, updateRecipeMixing } from '@/api/mes/recipeMixing';
import { RecipeMixingVO, RecipeMixingQuery, RecipeMixingForm } from '@/api/mes/recipeMixing/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const recipeMixingList = ref<RecipeMixingVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const recipeMixingFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
//
const columns = ref<FieldOption[]>([
{ key: 0, label: `主键标识`, visible: true },
{ key: 1, label: `配方ID`, visible: true },
{ key: 2, label: `混炼序号`, visible: true },
{ key: 3, label: `机台ID`, visible: true },
{ key: 4, label: `版本号`, visible: true },
{ key: 5, label: `条件编码`, visible: true },
{ key: 6, label: `混炼时间`, visible: true },
{ key: 7, label: `混炼温度`, visible: true },
{ key: 8, label: `混炼能量`, visible: true },
{ key: 9, label: `混炼功率`, visible: true },
{ key: 10, label: `混炼压力`, visible: true },
{ key: 11, label: `混炼转速`, visible: true },
{ key: 12, label: `动作编码`, visible: true },
{ key: 13, label: `父级编码`, visible: true },
{ key: 14, label: `子级编码`, visible: true },
{ key: 15, label: `工步编码`, visible: true },
{ key: 16, label: `设定时间`, visible: true },
{ key: 17, label: `设定温度`, visible: true },
{ key: 18, label: `设定能量`, visible: true },
{ key: 19, label: `设定功率`, visible: true },
{ key: 20, label: `设定压力`, visible: true },
{ key: 21, label: `设定转速`, visible: true },
{ key: 22, label: `租户编号`, visible: true },
{ key: 23, label: `创建部门`, visible: true },
{ key: 24, label: `创建者`, visible: true },
{ key: 25, label: `创建时间`, visible: true },
{ key: 26, label: `更新者`, visible: true },
{ key: 27, label: `更新时间`, visible: true },
{ key: 28, label: `删除标志`, visible: true },
]);
const initFormData: RecipeMixingForm = {
mixingId: undefined,
recipeId: undefined,
mixId: undefined,
machineId: undefined,
edtCode: undefined,
condCode: undefined,
mixingTime: undefined,
mixingTemp: undefined,
mixingEnergy: undefined,
mixingPower: undefined,
mixingPress: undefined,
mixingSpeed: undefined,
actCode: undefined,
fatherCode: undefined,
childCode: undefined,
termCode: undefined,
setTime: undefined,
setTemp: undefined,
setEnergy: undefined,
setPower: undefined,
setPres: undefined,
setRota: undefined,
}
const data = reactive<PageData<RecipeMixingForm, RecipeMixingQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
mixingId: undefined,
recipeId: undefined,
mixId: undefined,
machineId: undefined,
edtCode: undefined,
condCode: undefined,
mixingTime: undefined,
mixingTemp: undefined,
mixingEnergy: undefined,
mixingPower: undefined,
mixingPress: undefined,
mixingSpeed: undefined,
actCode: undefined,
fatherCode: undefined,
childCode: undefined,
termCode: undefined,
setTime: undefined,
setTemp: undefined,
setEnergy: undefined,
setPower: undefined,
setPres: undefined,
setRota: undefined,
params: {
}
},
rules: {
recipeId: [
{ required: true, message: "配方ID不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询配方混炼信息列表 */
const getList = async () => {
loading.value = true;
const res = await listRecipeMixing(queryParams.value);
recipeMixingList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
recipeMixingFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: RecipeMixingVO[]) => {
ids.value = selection.map(item => item.mixingId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加配方混炼信息";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: RecipeMixingVO) => {
reset();
const _mixingId = row?.mixingId || ids.value[0]
const res = await getRecipeMixing(_mixingId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改配方混炼信息";
}
/** 提交按钮 */
const submitForm = () => {
recipeMixingFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.mixingId) {
await updateRecipeMixing(form.value).finally(() => buttonLoading.value = false);
} else {
await addRecipeMixing(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: RecipeMixingVO) => {
const _mixingIds = row?.mixingId || ids.value;
await proxy?.$modal.confirm('是否确认删除配方混炼信息编号为"' + _mixingIds + '"的数据项?').finally(() => loading.value = false);
await delRecipeMixing(_mixingIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('mes/recipeMixing/export', {
...queryParams.value
}, `recipeMixing_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,403 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true" >
<el-form-item label="主键标识" prop="weightId">
<el-input v-model="queryParams.weightId" placeholder="请输入主键标识" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="配方ID" prop="recipeId">
<el-input v-model="queryParams.recipeId" placeholder="请输入配方ID" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="称量序号" prop="weightSeq">
<el-input v-model="queryParams.weightSeq" placeholder="请输入称量序号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="机台ID" prop="machineId">
<el-input v-model="queryParams.machineId" placeholder="请输入机台ID" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="版本号" prop="edtCode">
<el-input v-model="queryParams.edtCode" placeholder="请输入版本号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="称量类型" prop="weightType">
<el-input v-model="queryParams.weightType" placeholder="请输入称量类型" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="秤编码" prop="scaleCode">
<el-input v-model="queryParams.scaleCode" placeholder="请输入秤编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="动作编码" prop="actCode">
<el-input v-model="queryParams.actCode" placeholder="请输入动作编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设定重量" prop="setWeight">
<el-input v-model="queryParams.setWeight" placeholder="请输入设定重量" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="误差允许" prop="errorAllow">
<el-input v-model="queryParams.errorAllow" placeholder="请输入误差允许" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="父级编码" prop="fatherCode">
<el-input v-model="queryParams.fatherCode" placeholder="请输入父级编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="单位" prop="unitId">
<el-input v-model="queryParams.unitId" placeholder="请输入单位" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="子级编码" prop="childCode">
<el-input v-model="queryParams.childCode" placeholder="请输入子级编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否使用批次" prop="ifUseBat">
<el-input v-model="queryParams.ifUseBat" placeholder="请输入是否使用批次" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="最大比例" prop="maxRate">
<el-input v-model="queryParams.maxRate" placeholder="请输入最大比例" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['mes:recipeWeight:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['mes:recipeWeight:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['mes:recipeWeight:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['mes:recipeWeight:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" :columns="columns" :search="true" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" :data="recipeWeightList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="weightId" v-if="columns[0].visible"/>
<el-table-column label="配方ID" align="center" prop="recipeId" v-if="columns[1].visible"/>
<el-table-column label="称量序号" align="center" prop="weightSeq" v-if="columns[2].visible"/>
<el-table-column label="机台ID" align="center" prop="machineId" v-if="columns[3].visible"/>
<el-table-column label="版本号" align="center" prop="edtCode" v-if="columns[4].visible"/>
<el-table-column label="称量类型" align="center" prop="weightType" v-if="columns[5].visible"/>
<el-table-column label="秤编码" align="center" prop="scaleCode" v-if="columns[6].visible"/>
<el-table-column label="动作编码" align="center" prop="actCode" v-if="columns[7].visible"/>
<el-table-column label="设定重量" align="center" prop="setWeight" v-if="columns[8].visible"/>
<el-table-column label="误差允许" align="center" prop="errorAllow" v-if="columns[9].visible"/>
<el-table-column label="父级编码" align="center" prop="fatherCode" v-if="columns[10].visible"/>
<el-table-column label="单位" align="center" prop="unitId" v-if="columns[11].visible"/>
<el-table-column label="子级编码" align="center" prop="childCode" v-if="columns[12].visible"/>
<el-table-column label="是否使用批次" align="center" prop="ifUseBat" v-if="columns[13].visible"/>
<el-table-column label="最大比例" align="center" prop="maxRate" v-if="columns[14].visible"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['mes:recipeWeight:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['mes:recipeWeight:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改配方称量信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="recipeWeightFormRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="主键标识" prop="weightId">
<el-input v-model="form.weightId" placeholder="请输入主键标识" />
</el-form-item>
<el-form-item label="配方ID" prop="recipeId">
<el-input v-model="form.recipeId" placeholder="请输入配方ID" />
</el-form-item>
<el-form-item label="称量序号" prop="weightSeq">
<el-input v-model="form.weightSeq" placeholder="请输入称量序号" />
</el-form-item>
<el-form-item label="机台ID" prop="machineId">
<el-input v-model="form.machineId" placeholder="请输入机台ID" />
</el-form-item>
<el-form-item label="版本号" prop="edtCode">
<el-input v-model="form.edtCode" placeholder="请输入版本号" />
</el-form-item>
<el-form-item label="称量类型" prop="weightType">
<el-input v-model="form.weightType" placeholder="请输入称量类型" />
</el-form-item>
<el-form-item label="秤编码" prop="scaleCode">
<el-input v-model="form.scaleCode" placeholder="请输入秤编码" />
</el-form-item>
<el-form-item label="动作编码" prop="actCode">
<el-input v-model="form.actCode" placeholder="请输入动作编码" />
</el-form-item>
<el-form-item label="设定重量" prop="setWeight">
<el-input v-model="form.setWeight" placeholder="请输入设定重量" />
</el-form-item>
<el-form-item label="误差允许" prop="errorAllow">
<el-input v-model="form.errorAllow" placeholder="请输入误差允许" />
</el-form-item>
<el-form-item label="父级编码" prop="fatherCode">
<el-input v-model="form.fatherCode" placeholder="请输入父级编码" />
</el-form-item>
<el-form-item label="单位" prop="unitId">
<el-input v-model="form.unitId" placeholder="请输入单位" />
</el-form-item>
<el-form-item label="子级编码" prop="childCode">
<el-input v-model="form.childCode" placeholder="请输入子级编码" />
</el-form-item>
<el-form-item label="是否使用批次" prop="ifUseBat">
<el-input v-model="form.ifUseBat" placeholder="请输入是否使用批次" />
</el-form-item>
<el-form-item label="最大比例" prop="maxRate">
<el-input v-model="form.maxRate" placeholder="请输入最大比例" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="RecipeWeight" lang="ts">
import { listRecipeWeight, getRecipeWeight, delRecipeWeight, addRecipeWeight, updateRecipeWeight } from '@/api/mes/recipeWeight';
import { RecipeWeightVO, RecipeWeightQuery, RecipeWeightForm } from '@/api/mes/recipeWeight/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const recipeWeightList = ref<RecipeWeightVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const recipeWeightFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
//
const columns = ref<FieldOption[]>([
{ key: 0, label: `主键标识`, visible: true },
{ key: 1, label: `配方ID`, visible: true },
{ key: 2, label: `称量序号`, visible: true },
{ key: 3, label: `机台ID`, visible: true },
{ key: 4, label: `版本号`, visible: true },
{ key: 5, label: `称量类型`, visible: true },
{ key: 6, label: `秤编码`, visible: true },
{ key: 7, label: `动作编码`, visible: true },
{ key: 8, label: `设定重量`, visible: true },
{ key: 9, label: `误差允许`, visible: true },
{ key: 10, label: `父级编码`, visible: true },
{ key: 11, label: `单位`, visible: true },
{ key: 12, label: `子级编码`, visible: true },
{ key: 13, label: `是否使用批次`, visible: true },
{ key: 14, label: `最大比例`, visible: true },
{ key: 15, label: `租户编号`, visible: true },
{ key: 16, label: `创建部门`, visible: true },
{ key: 17, label: `创建者`, visible: true },
{ key: 18, label: `创建时间`, visible: true },
{ key: 19, label: `更新者`, visible: true },
{ key: 20, label: `更新时间`, visible: true },
{ key: 21, label: `删除标志`, visible: true },
]);
const initFormData: RecipeWeightForm = {
weightId: undefined,
recipeId: undefined,
weightSeq: undefined,
machineId: undefined,
edtCode: undefined,
weightType: undefined,
scaleCode: undefined,
actCode: undefined,
setWeight: undefined,
errorAllow: undefined,
fatherCode: undefined,
unitId: undefined,
childCode: undefined,
ifUseBat: undefined,
maxRate: undefined,
}
const data = reactive<PageData<RecipeWeightForm, RecipeWeightQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
weightId: undefined,
recipeId: undefined,
weightSeq: undefined,
machineId: undefined,
edtCode: undefined,
weightType: undefined,
scaleCode: undefined,
actCode: undefined,
setWeight: undefined,
errorAllow: undefined,
fatherCode: undefined,
unitId: undefined,
childCode: undefined,
ifUseBat: undefined,
maxRate: undefined,
params: {
}
},
rules: {
weightId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
recipeId: [
{ required: true, message: "配方ID不能为空", trigger: "blur" }
],
weightSeq: [
{ required: true, message: "称量序号不能为空", trigger: "blur" }
],
machineId: [
{ required: true, message: "机台ID不能为空", trigger: "blur" }
],
edtCode: [
{ required: true, message: "版本号不能为空", trigger: "blur" }
],
weightType: [
{ required: true, message: "称量类型不能为空", trigger: "blur" }
],
scaleCode: [
{ required: true, message: "秤编码不能为空", trigger: "blur" }
],
actCode: [
{ required: true, message: "动作编码不能为空", trigger: "blur" }
],
setWeight: [
{ required: true, message: "设定重量不能为空", trigger: "blur" }
],
errorAllow: [
{ required: true, message: "误差允许不能为空", trigger: "blur" }
],
fatherCode: [
{ required: true, message: "父级编码不能为空", trigger: "blur" }
],
unitId: [
{ required: true, message: "单位不能为空", trigger: "blur" }
],
childCode: [
{ required: true, message: "子级编码不能为空", trigger: "blur" }
],
ifUseBat: [
{ required: true, message: "是否使用批次不能为空", trigger: "blur" }
],
maxRate: [
{ required: true, message: "最大比例不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询配方称量信息列表 */
const getList = async () => {
loading.value = true;
const res = await listRecipeWeight(queryParams.value);
recipeWeightList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
recipeWeightFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: RecipeWeightVO[]) => {
ids.value = selection.map(item => item.weightId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加配方称量信息";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: RecipeWeightVO) => {
reset();
const _weightId = row?.weightId || ids.value[0]
const res = await getRecipeWeight(_weightId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改配方称量信息";
}
/** 提交按钮 */
const submitForm = () => {
recipeWeightFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.weightId) {
await updateRecipeWeight(form.value).finally(() => buttonLoading.value = false);
} else {
await addRecipeWeight(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: RecipeWeightVO) => {
const _weightIds = row?.weightId || ids.value;
await proxy?.$modal.confirm('是否确认删除配方称量信息编号为"' + _weightIds + '"的数据项?').finally(() => loading.value = false);
await delRecipeWeight(_weightIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('mes/recipeWeight/export', {
...queryParams.value
}, `recipeWeight_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>
Loading…
Cancel
Save