add records

main
chenyuan 2 years ago
parent c0e0076e71
commit 62a483141d

@ -102,4 +102,183 @@ export const RecordTemplateApi = {
getRecordSuijiang: async (id: number) => {
return await request.get({ url: `/mes/record-template/record-suijiang/get?id=` + id })
},
// ==================== 子表(热压记录) ====================
// 获得热压记录分页
getRecordReyaPage: async (params) => {
return await request.get({ url: `/mes/record-template/record-reya/page`, params })
},
// 新增热压记录
createRecordReya: async (data) => {
return await request.post({ url: `/mes/record-template/record-reya/create`, data })
},
// 修改热压记录
updateRecordReya: async (data) => {
return await request.put({ url: `/mes/record-template/record-reya/update`, data })
},
// 删除热压记录
deleteRecordReya: async (id: number) => {
return await request.delete({ url: `/mes/record-template/record-reya/delete?id=` + id })
},
// 获得热压记录
getRecordReya: async (id: number) => {
return await request.get({ url: `/mes/record-template/record-reya/get?id=` + id })
},
// ==================== 子表(切边记录) ====================
// 获得切边记录分页
getRecordQiebianPage: async (params) => {
return await request.get({ url: `/mes/record-template/record-qiebian/page`, params })
},
// 新增切边记录
createRecordQiebian: async (data) => {
return await request.post({ url: `/mes/record-template/record-qiebian/create`, data })
},
// 修改切边记录
updateRecordQiebian: async (data) => {
return await request.put({ url: `/mes/record-template/record-qiebian/update`, data })
},
// 删除切边记录
deleteRecordQiebian: async (id: number) => {
return await request.delete({ url: `/mes/record-template/record-qiebian/delete?id=` + id })
},
// 获得切边记录
getRecordQiebian: async (id: number) => {
return await request.get({ url: `/mes/record-template/record-qiebian/get?id=` + id })
},
// ==================== 子表(打包记录) ====================
// 获得打包记录分页
getRecordDabaoPage: async (params) => {
return await request.get({ url: `/mes/record-template/record-dabao/page`, params })
},
// 新增打包记录
createRecordDabao: async (data) => {
return await request.post({ url: `/mes/record-template/record-dabao/create`, data })
},
// 修改打包记录
updateRecordDabao: async (data) => {
return await request.put({ url: `/mes/record-template/record-dabao/update`, data })
},
// 删除打包记录
deleteRecordDabao: async (id: number) => {
return await request.delete({ url: `/mes/record-template/record-dabao/delete?id=` + id })
},
// 获得打包记录
getRecordDabao: async (id: number) => {
return await request.get({ url: `/mes/record-template/record-dabao/get?id=` + id })
},
// ==================== 子表(打浆记录) ====================
// 获得打浆记录分页
getRecordDajiangPage: async (params) => {
return await request.get({ url: `/mes/record-template/record-dajiang/page`, params })
},
// 新增打浆记录
createRecordDajiang: async (data) => {
return await request.post({ url: `/mes/record-template/record-dajiang/create`, data })
},
// 修改打浆记录
updateRecordDajiang: async (data) => {
return await request.put({ url: `/mes/record-template/record-dajiang/update`, data })
},
// 删除打浆记录
deleteRecordDajiang: async (id: number) => {
return await request.delete({ url: `/mes/record-template/record-dajiang/delete?id=` + id })
},
// 获得打浆记录
getRecordDajiang: async (id: number) => {
return await request.get({ url: `/mes/record-template/record-dajiang/get?id=` + id })
},
// ==================== 子表(干燥记录) ====================
// 获得干燥记录分页
getRecordGanzaoPage: async (params) => {
return await request.get({ url: `/mes/record-template/record-ganzao/page`, params })
},
// 新增干燥记录
createRecordGanzao: async (data) => {
return await request.post({ url: `/mes/record-template/record-ganzao/create`, data })
},
// 修改干燥记录
updateRecordGanzao: async (data) => {
return await request.put({ url: `/mes/record-template/record-ganzao/update`, data })
},
// 删除干燥记录
deleteRecordGanzao: async (id: number) => {
return await request.delete({ url: `/mes/record-template/record-ganzao/delete?id=` + id })
},
// 获得干燥记录
getRecordGanzao: async (id: number) => {
return await request.get({ url: `/mes/record-template/record-ganzao/get?id=` + id })
},
// ==================== 子表(加湿记录) ====================
// 获得加湿记录分页
getRecordJiashiPage: async (params) => {
return await request.get({ url: `/mes/record-template/record-jiashi/page`, params })
},
// 新增加湿记录
createRecordJiashi: async (data) => {
return await request.post({ url: `/mes/record-template/record-jiashi/create`, data })
},
// 修改加湿记录
updateRecordJiashi: async (data) => {
return await request.put({ url: `/mes/record-template/record-jiashi/update`, data })
},
// 删除加湿记录
deleteRecordJiashi: async (id: number) => {
return await request.delete({ url: `/mes/record-template/record-jiashi/delete?id=` + id })
},
// 获得加湿记录
getRecordJiashi: async (id: number) => {
return await request.get({ url: `/mes/record-template/record-jiashi/get?id=` + id })
},
// ==================== 子表(检验记录) ====================
// 获得检验记录分页
getRecordPinjianPage: async (params) => {
return await request.get({ url: `/mes/record-template/record-pinjian/page`, params })
},
// 新增检验记录
createRecordPinjian: async (data) => {
return await request.post({ url: `/mes/record-template/record-pinjian/create`, data })
},
// 修改检验记录
updateRecordPinjian: async (data) => {
return await request.put({ url: `/mes/record-template/record-pinjian/update`, data })
},
// 删除检验记录
deleteRecordPinjian: async (id: number) => {
return await request.delete({ url: `/mes/record-template/record-pinjian/delete?id=` + id })
},
// 获得检验记录
getRecordPinjian: async (id: number) => {
return await request.get({ url: `/mes/record-template/record-pinjian/get?id=` + id })
},
}

@ -0,0 +1,410 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组织id" prop="organizationId">
<el-input
v-model="queryParams.organizationId"
placeholder="请输入组织id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="对应机台id" prop="machineId">
<el-input
v-model="queryParams.machineId"
placeholder="请输入对应机台id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="班组id" prop="workTeamId">
<el-input
v-model="queryParams.workTeamId"
placeholder="请输入班组id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长上午审批id" prop="groupManagerApproveId1">
<el-input
v-model="queryParams.groupManagerApproveId1"
placeholder="请输入组长上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长下午审批id" prop="groupManagerApproveId2">
<el-input
v-model="queryParams.groupManagerApproveId2"
placeholder="请输入组长下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管上午审批id" prop="productionManagerApproveId1">
<el-input
v-model="queryParams.productionManagerApproveId1"
placeholder="请输入主管上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管下午审批id" prop="productionManagerApproveId2">
<el-input
v-model="queryParams.productionManagerApproveId2"
placeholder="请输入主管下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input
v-model="queryParams.processInstanceId"
placeholder="请输入流程实例的编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_RECORD_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="记录类型(工序类型)" prop="recordType">
<el-select
v-model="queryParams.recordType"
placeholder="请选择记录类型(工序类型)"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['mes:record-template:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column label="组织id" align="center" prop="id" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="组织id" align="center" prop="organizationId" />
<el-table-column label="对应机台id" align="center" prop="machineId" />
<el-table-column label="班组id" align="center" prop="workTeamId" />
<el-table-column
label="开始时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="结束时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="组长上午审批id" align="center" prop="groupManagerApproveId1" />
<el-table-column label="组长下午审批id" align="center" prop="groupManagerApproveId2" />
<el-table-column label="主管上午审批id" align="center" prop="productionManagerApproveId1" />
<el-table-column label="主管下午审批id" align="center" prop="productionManagerApproveId2" />
<el-table-column label="流程实例的编号" align="center" prop="processInstanceId" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_RECORD_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="记录类型(工序类型)" align="center" prop="recordType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ORG_TYPE" :value="scope.row.recordType" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordTemplateForm ref="formRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="recordDabao">
<el-tab-pane label="打包记录" name="recordDabao">
<RecordDabaoList :record-id="currentRow.id" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { RecordTemplateApi, RecordTemplateVO } from '@/api/mes/record'
import RecordTemplateForm from './RecordTemplateForm.vue'
import RecordDabaoList from './components/RecordDabaoList.vue'
/** 记录表 列表 */
defineOptions({ name: 'RecordTemplate' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<RecordTemplateVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
name: undefined,
organizationId: undefined,
machineId: undefined,
workTeamId: undefined,
startTime: [],
endTime: [],
groupManagerApproveId1: undefined,
groupManagerApproveId2: undefined,
productionManagerApproveId1: undefined,
productionManagerApproveId2: undefined,
processInstanceId: undefined,
status: undefined,
recordType: undefined,
remark: undefined,
isEnable: undefined,
createTime: []
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordTemplatePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordTemplate(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await RecordTemplateApi.exportRecordTemplate(queryParams)
download.excel(data, '记录表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 选中行操作 */
const currentRow = ref({}) //
const handleCurrentChange = (row) => {
currentRow.value = row
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

@ -0,0 +1,410 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组织id" prop="organizationId">
<el-input
v-model="queryParams.organizationId"
placeholder="请输入组织id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="对应机台id" prop="machineId">
<el-input
v-model="queryParams.machineId"
placeholder="请输入对应机台id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="班组id" prop="workTeamId">
<el-input
v-model="queryParams.workTeamId"
placeholder="请输入班组id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长上午审批id" prop="groupManagerApproveId1">
<el-input
v-model="queryParams.groupManagerApproveId1"
placeholder="请输入组长上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长下午审批id" prop="groupManagerApproveId2">
<el-input
v-model="queryParams.groupManagerApproveId2"
placeholder="请输入组长下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管上午审批id" prop="productionManagerApproveId1">
<el-input
v-model="queryParams.productionManagerApproveId1"
placeholder="请输入主管上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管下午审批id" prop="productionManagerApproveId2">
<el-input
v-model="queryParams.productionManagerApproveId2"
placeholder="请输入主管下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input
v-model="queryParams.processInstanceId"
placeholder="请输入流程实例的编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_RECORD_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="记录类型(工序类型)" prop="recordType">
<el-select
v-model="queryParams.recordType"
placeholder="请选择记录类型(工序类型)"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['mes:record-template:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column label="组织id" align="center" prop="id" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="组织id" align="center" prop="organizationId" />
<el-table-column label="对应机台id" align="center" prop="machineId" />
<el-table-column label="班组id" align="center" prop="workTeamId" />
<el-table-column
label="开始时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="结束时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="组长上午审批id" align="center" prop="groupManagerApproveId1" />
<el-table-column label="组长下午审批id" align="center" prop="groupManagerApproveId2" />
<el-table-column label="主管上午审批id" align="center" prop="productionManagerApproveId1" />
<el-table-column label="主管下午审批id" align="center" prop="productionManagerApproveId2" />
<el-table-column label="流程实例的编号" align="center" prop="processInstanceId" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_RECORD_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="记录类型(工序类型)" align="center" prop="recordType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ORG_TYPE" :value="scope.row.recordType" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordTemplateForm ref="formRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="recordDajiang">
<el-tab-pane label="打浆记录" name="recordDajiang">
<RecordDajiangList :record-id="currentRow.id" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { RecordTemplateApi, RecordTemplateVO } from '@/api/mes/record'
import RecordTemplateForm from './RecordTemplateForm.vue'
import RecordDajiangList from './components/RecordDajiangList.vue'
/** 记录表 列表 */
defineOptions({ name: 'RecordTemplate' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<RecordTemplateVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
name: undefined,
organizationId: undefined,
machineId: undefined,
workTeamId: undefined,
startTime: [],
endTime: [],
groupManagerApproveId1: undefined,
groupManagerApproveId2: undefined,
productionManagerApproveId1: undefined,
productionManagerApproveId2: undefined,
processInstanceId: undefined,
status: undefined,
recordType: undefined,
remark: undefined,
isEnable: undefined,
createTime: []
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordTemplatePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordTemplate(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await RecordTemplateApi.exportRecordTemplate(queryParams)
download.excel(data, '记录表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 选中行操作 */
const currentRow = ref({}) //
const handleCurrentChange = (row) => {
currentRow.value = row
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

@ -0,0 +1,410 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组织id" prop="organizationId">
<el-input
v-model="queryParams.organizationId"
placeholder="请输入组织id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="对应机台id" prop="machineId">
<el-input
v-model="queryParams.machineId"
placeholder="请输入对应机台id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="班组id" prop="workTeamId">
<el-input
v-model="queryParams.workTeamId"
placeholder="请输入班组id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长上午审批id" prop="groupManagerApproveId1">
<el-input
v-model="queryParams.groupManagerApproveId1"
placeholder="请输入组长上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长下午审批id" prop="groupManagerApproveId2">
<el-input
v-model="queryParams.groupManagerApproveId2"
placeholder="请输入组长下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管上午审批id" prop="productionManagerApproveId1">
<el-input
v-model="queryParams.productionManagerApproveId1"
placeholder="请输入主管上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管下午审批id" prop="productionManagerApproveId2">
<el-input
v-model="queryParams.productionManagerApproveId2"
placeholder="请输入主管下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input
v-model="queryParams.processInstanceId"
placeholder="请输入流程实例的编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_RECORD_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="记录类型(工序类型)" prop="recordType">
<el-select
v-model="queryParams.recordType"
placeholder="请选择记录类型(工序类型)"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['mes:record-template:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column label="组织id" align="center" prop="id" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="组织id" align="center" prop="organizationId" />
<el-table-column label="对应机台id" align="center" prop="machineId" />
<el-table-column label="班组id" align="center" prop="workTeamId" />
<el-table-column
label="开始时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="结束时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="组长上午审批id" align="center" prop="groupManagerApproveId1" />
<el-table-column label="组长下午审批id" align="center" prop="groupManagerApproveId2" />
<el-table-column label="主管上午审批id" align="center" prop="productionManagerApproveId1" />
<el-table-column label="主管下午审批id" align="center" prop="productionManagerApproveId2" />
<el-table-column label="流程实例的编号" align="center" prop="processInstanceId" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_RECORD_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="记录类型(工序类型)" align="center" prop="recordType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ORG_TYPE" :value="scope.row.recordType" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordTemplateForm ref="formRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="recordGanzao">
<el-tab-pane label="干燥记录" name="recordGanzao">
<RecordGanzaoList :record-id="currentRow.id" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { RecordTemplateApi, RecordTemplateVO } from '@/api/mes/record'
import RecordTemplateForm from './RecordTemplateForm.vue'
import RecordGanzaoList from './components/RecordGanzaoList.vue'
/** 记录表 列表 */
defineOptions({ name: 'RecordTemplate' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<RecordTemplateVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
name: undefined,
organizationId: undefined,
machineId: undefined,
workTeamId: undefined,
startTime: [],
endTime: [],
groupManagerApproveId1: undefined,
groupManagerApproveId2: undefined,
productionManagerApproveId1: undefined,
productionManagerApproveId2: undefined,
processInstanceId: undefined,
status: undefined,
recordType: undefined,
remark: undefined,
isEnable: undefined,
createTime: []
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordTemplatePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordTemplate(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await RecordTemplateApi.exportRecordTemplate(queryParams)
download.excel(data, '记录表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 选中行操作 */
const currentRow = ref({}) //
const handleCurrentChange = (row) => {
currentRow.value = row
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

@ -0,0 +1,410 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组织id" prop="organizationId">
<el-input
v-model="queryParams.organizationId"
placeholder="请输入组织id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="对应机台id" prop="machineId">
<el-input
v-model="queryParams.machineId"
placeholder="请输入对应机台id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="班组id" prop="workTeamId">
<el-input
v-model="queryParams.workTeamId"
placeholder="请输入班组id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长上午审批id" prop="groupManagerApproveId1">
<el-input
v-model="queryParams.groupManagerApproveId1"
placeholder="请输入组长上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长下午审批id" prop="groupManagerApproveId2">
<el-input
v-model="queryParams.groupManagerApproveId2"
placeholder="请输入组长下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管上午审批id" prop="productionManagerApproveId1">
<el-input
v-model="queryParams.productionManagerApproveId1"
placeholder="请输入主管上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管下午审批id" prop="productionManagerApproveId2">
<el-input
v-model="queryParams.productionManagerApproveId2"
placeholder="请输入主管下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input
v-model="queryParams.processInstanceId"
placeholder="请输入流程实例的编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_RECORD_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="记录类型(工序类型)" prop="recordType">
<el-select
v-model="queryParams.recordType"
placeholder="请选择记录类型(工序类型)"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['mes:record-template:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column label="组织id" align="center" prop="id" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="组织id" align="center" prop="organizationId" />
<el-table-column label="对应机台id" align="center" prop="machineId" />
<el-table-column label="班组id" align="center" prop="workTeamId" />
<el-table-column
label="开始时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="结束时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="组长上午审批id" align="center" prop="groupManagerApproveId1" />
<el-table-column label="组长下午审批id" align="center" prop="groupManagerApproveId2" />
<el-table-column label="主管上午审批id" align="center" prop="productionManagerApproveId1" />
<el-table-column label="主管下午审批id" align="center" prop="productionManagerApproveId2" />
<el-table-column label="流程实例的编号" align="center" prop="processInstanceId" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_RECORD_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="记录类型(工序类型)" align="center" prop="recordType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ORG_TYPE" :value="scope.row.recordType" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordTemplateForm ref="formRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="recordJiashi">
<el-tab-pane label="加湿记录" name="recordJiashi">
<RecordJiashiList :record-id="currentRow.id" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { RecordTemplateApi, RecordTemplateVO } from '@/api/mes/record'
import RecordTemplateForm from './RecordTemplateForm.vue'
import RecordJiashiList from './components/RecordJiashiList.vue'
/** 记录表 列表 */
defineOptions({ name: 'RecordTemplate' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<RecordTemplateVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
name: undefined,
organizationId: undefined,
machineId: undefined,
workTeamId: undefined,
startTime: [],
endTime: [],
groupManagerApproveId1: undefined,
groupManagerApproveId2: undefined,
productionManagerApproveId1: undefined,
productionManagerApproveId2: undefined,
processInstanceId: undefined,
status: undefined,
recordType: undefined,
remark: undefined,
isEnable: undefined,
createTime: []
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordTemplatePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordTemplate(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await RecordTemplateApi.exportRecordTemplate(queryParams)
download.excel(data, '记录表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 选中行操作 */
const currentRow = ref({}) //
const handleCurrentChange = (row) => {
currentRow.value = row
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

@ -0,0 +1,410 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组织id" prop="organizationId">
<el-input
v-model="queryParams.organizationId"
placeholder="请输入组织id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="对应机台id" prop="machineId">
<el-input
v-model="queryParams.machineId"
placeholder="请输入对应机台id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="班组id" prop="workTeamId">
<el-input
v-model="queryParams.workTeamId"
placeholder="请输入班组id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长上午审批id" prop="groupManagerApproveId1">
<el-input
v-model="queryParams.groupManagerApproveId1"
placeholder="请输入组长上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组长下午审批id" prop="groupManagerApproveId2">
<el-input
v-model="queryParams.groupManagerApproveId2"
placeholder="请输入组长下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管上午审批id" prop="productionManagerApproveId1">
<el-input
v-model="queryParams.productionManagerApproveId1"
placeholder="请输入主管上午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="主管下午审批id" prop="productionManagerApproveId2">
<el-input
v-model="queryParams.productionManagerApproveId2"
placeholder="请输入主管下午审批id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input
v-model="queryParams.processInstanceId"
placeholder="请输入流程实例的编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_RECORD_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="记录类型(工序类型)" prop="recordType">
<el-select
v-model="queryParams.recordType"
placeholder="请选择记录类型(工序类型)"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['mes:record-template:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column label="组织id" align="center" prop="id" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="组织id" align="center" prop="organizationId" />
<el-table-column label="对应机台id" align="center" prop="machineId" />
<el-table-column label="班组id" align="center" prop="workTeamId" />
<el-table-column
label="开始时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="结束时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="组长上午审批id" align="center" prop="groupManagerApproveId1" />
<el-table-column label="组长下午审批id" align="center" prop="groupManagerApproveId2" />
<el-table-column label="主管上午审批id" align="center" prop="productionManagerApproveId1" />
<el-table-column label="主管下午审批id" align="center" prop="productionManagerApproveId2" />
<el-table-column label="流程实例的编号" align="center" prop="processInstanceId" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_RECORD_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="记录类型(工序类型)" align="center" prop="recordType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ORG_TYPE" :value="scope.row.recordType" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordTemplateForm ref="formRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="recordPinjian">
<el-tab-pane label="检验记录" name="recordPinjian">
<RecordPinjianList :record-id="currentRow.id" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { RecordTemplateApi, RecordTemplateVO } from '@/api/mes/record'
import RecordTemplateForm from './RecordTemplateForm.vue'
import RecordPinjianList from './components/RecordPinjianList.vue'
/** 记录表 列表 */
defineOptions({ name: 'RecordTemplate' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<RecordTemplateVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
name: undefined,
organizationId: undefined,
machineId: undefined,
workTeamId: undefined,
startTime: [],
endTime: [],
groupManagerApproveId1: undefined,
groupManagerApproveId2: undefined,
productionManagerApproveId1: undefined,
productionManagerApproveId2: undefined,
processInstanceId: undefined,
status: undefined,
recordType: undefined,
remark: undefined,
isEnable: undefined,
createTime: []
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordTemplatePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordTemplate(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await RecordTemplateApi.exportRecordTemplate(queryParams)
download.excel(data, '记录表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 选中行操作 */
const currentRow = ref({}) //
const handleCurrentChange = (row) => {
currentRow.value = row
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

@ -0,0 +1,365 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组织id" prop="organizationId">
<el-input
v-model="queryParams.organizationId"
placeholder="请输入组织id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="对应机台id" prop="machineId">
<el-input
v-model="queryParams.machineId"
placeholder="请输入对应机台id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="班组id" prop="workTeamId">
<el-input
v-model="queryParams.workTeamId"
placeholder="请输入班组id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_RECORD_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="工序类型" prop="recordType">
<el-select
v-model="queryParams.recordType"
placeholder="请选择记录类型(工序类型)"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['mes:record-template:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column label="组织id" align="center" prop="id" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="组织id" align="center" prop="organizationId" />
<el-table-column label="对应机台id" align="center" prop="machineId" />
<el-table-column label="班组id" align="center" prop="workTeamId" />
<el-table-column
label="开始时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="结束时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="组长上午审批id" align="center" prop="groupManagerApproveId1" />
<el-table-column label="组长下午审批id" align="center" prop="groupManagerApproveId2" />
<el-table-column label="主管上午审批id" align="center" prop="productionManagerApproveId1" />
<el-table-column label="主管下午审批id" align="center" prop="productionManagerApproveId2" />
<el-table-column label="流程实例的编号" align="center" prop="processInstanceId" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_RECORD_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="记录类型(工序类型)" align="center" prop="recordType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ORG_TYPE" :value="scope.row.recordType" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordTemplateForm ref="formRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="recordQiebian">
<el-tab-pane label="切边记录" name="recordQiebian">
<RecordQiebianList :record-id="currentRow.id" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { RecordTemplateApi, RecordTemplateVO } from '@/api/mes/record'
import RecordTemplateForm from './RecordTemplateForm.vue'
import RecordQiebianList from './components/RecordQiebianList.vue'
/** 记录表 列表 */
defineOptions({ name: 'RecordTemplate' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<RecordTemplateVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
name: undefined,
organizationId: undefined,
machineId: undefined,
workTeamId: undefined,
startTime: [],
endTime: [],
groupManagerApproveId1: undefined,
groupManagerApproveId2: undefined,
productionManagerApproveId1: undefined,
productionManagerApproveId2: undefined,
processInstanceId: undefined,
status: undefined,
recordType: undefined,
remark: undefined,
isEnable: undefined,
createTime: [],
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordTemplatePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordTemplate(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await RecordTemplateApi.exportRecordTemplate(queryParams)
download.excel(data, '记录表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 选中行操作 */
const currentRow = ref({}) //
const handleCurrentChange = (row) => {
currentRow.value = row
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

@ -0,0 +1,366 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="组织id" prop="organizationId">
<el-input
v-model="queryParams.organizationId"
placeholder="请输入组织id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="对应机台id" prop="machineId">
<el-input
v-model="queryParams.machineId"
placeholder="请输入对应机台id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="班组id" prop="workTeamId">
<el-input
v-model="queryParams.workTeamId"
placeholder="请输入班组id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_RECORD_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="记录类型(工序类型)" prop="recordType">
<el-select
v-model="queryParams.recordType"
placeholder="请选择记录类型(工序类型)"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['mes:record-template:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column label="组织id" align="center" prop="id" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="组织id" align="center" prop="organizationId" />
<el-table-column label="对应机台id" align="center" prop="machineId" />
<el-table-column label="班组id" align="center" prop="workTeamId" />
<el-table-column
label="开始时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="结束时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="组长上午审批id" align="center" prop="groupManagerApproveId1" />
<el-table-column label="组长下午审批id" align="center" prop="groupManagerApproveId2" />
<el-table-column label="主管上午审批id" align="center" prop="productionManagerApproveId1" />
<el-table-column label="主管下午审批id" align="center" prop="productionManagerApproveId2" />
<el-table-column label="流程实例的编号" align="center" prop="processInstanceId" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_RECORD_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="记录类型(工序类型)" align="center" prop="recordType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ORG_TYPE" :value="scope.row.recordType" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordTemplateForm ref="formRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="recordReya">
<el-tab-pane label="热压记录" name="recordReya">
<RecordReyaList :record-id="currentRow.id" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { RecordTemplateApi, RecordTemplateVO } from '@/api/mes/record'
import RecordTemplateForm from './RecordTemplateForm.vue'
import RecordReyaList from './components/RecordReyaList.vue'
/** 记录表 列表 */
defineOptions({ name: 'RecordTemplate' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<RecordTemplateVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
name: undefined,
organizationId: undefined,
machineId: undefined,
workTeamId: undefined,
startTime: [],
endTime: [],
groupManagerApproveId1: undefined,
groupManagerApproveId2: undefined,
productionManagerApproveId1: undefined,
productionManagerApproveId2: undefined,
processInstanceId: undefined,
status: undefined,
recordType: undefined,
remark: undefined,
isEnable: undefined,
createTime: [],
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordTemplatePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordTemplate(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await RecordTemplateApi.exportRecordTemplate(queryParams)
download.excel(data, '记录表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 选中行操作 */
const currentRow = ref({}) //
const handleCurrentChange = (row) => {
currentRow.value = row
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

@ -0,0 +1,134 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="产品id" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品id" />
</el-form-item>
<el-form-item label="产量" prop="totalNumber">
<el-input v-model="formData.totalNumber" placeholder="请输入产量" />
</el-form-item>
<el-form-item label="包装材料用量" prop="packageItemUsage">
<el-input v-model="formData.packageItemUsage" placeholder="请输入包装材料用量" />
</el-form-item>
<el-form-item label="每包产品数" prop="packageSize">
<el-input v-model="formData.packageSize" placeholder="请输入每包产品数" />
</el-form-item>
<el-form-item label="包装材料规格" prop="packageItemSpecification">
<el-input v-model="formData.packageItemSpecification" placeholder="请输入包装材料规格" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { RecordTemplateApi } from '@/api/mes/record'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
recordId: undefined,
productId: undefined,
totalNumber: undefined,
packageItemUsage: undefined,
packageSize: undefined,
packageItemSpecification: undefined,
remark: undefined,
isEnable: undefined
})
const formRules = reactive({
recordId: [{ required: true, message: '记录id不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '产品id不能为空', trigger: 'blur' }],
totalNumber: [{ required: true, message: '产量不能为空', trigger: 'blur' }],
packageSize: [{ required: true, message: '每包产品数不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number, recordId: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
formData.value.recordId = recordId
//
if (id) {
formLoading.value = true
try {
formData.value = await RecordTemplateApi.getRecordDabao(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value
if (formType.value === 'create') {
await RecordTemplateApi.createRecordDabao(data)
message.success(t('common.createSuccess'))
} else {
await RecordTemplateApi.updateRecordDabao(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
recordId: undefined,
productId: undefined,
totalNumber: undefined,
packageItemUsage: undefined,
packageSize: undefined,
packageItemSpecification: undefined,
remark: undefined,
isEnable: undefined
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,138 @@
<template>
<!-- 列表 -->
<ContentWrap>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="id" align="center" prop="id" />
<el-table-column label="产品id" align="center" prop="productId" />
<el-table-column label="产量" align="center" prop="totalNumber" />
<el-table-column label="包装材料用量" align="center" prop="packageItemUsage" />
<el-table-column label="每包产品数" align="center" prop="packageSize" />
<el-table-column label="包装材料规格" align="center" prop="packageItemSpecification" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordDabaoForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { RecordTemplateApi } from '@/api/mes/record'
import RecordDabaoForm from './RecordDabaoForm.vue'
const { t } = useI18n() //
const message = useMessage() //
const props = defineProps<{
recordId?: number // id
}>()
const loading = ref(false) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
recordId: undefined as unknown
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.recordId,
(val: number) => {
if (!val) {
return
}
queryParams.recordId = val
handleQuery()
},
{ immediate: true, deep: true }
)
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordDabaoPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
if (!props.recordId) {
message.error('请选择一个记录表')
return
}
formRef.value.open(type, id, props.recordId)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordDabao(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
</script>

@ -0,0 +1,163 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="开机时间" prop="startTime">
<el-date-picker
v-model="formData.startTime"
type="date"
value-format="x"
placeholder="选择开机时间"
/>
</el-form-item>
<el-form-item label="停机时间" prop="endTime">
<el-date-picker
v-model="formData.endTime"
type="date"
value-format="x"
placeholder="选择停机时间"
/>
</el-form-item>
<el-form-item label="浓度%" prop="density">
<el-input v-model="formData.density" placeholder="请输入浓度%" />
</el-form-item>
<el-form-item label="电流A" prop="electricCurrent">
<el-input v-model="formData.electricCurrent" placeholder="请输入电流A" />
</el-form-item>
<el-form-item label="进浆叩解度︒SR" prop="beatingDegreeIn">
<el-input v-model="formData.beatingDegreeIn" placeholder="请输入进浆叩解度︒SR" />
</el-form-item>
<el-form-item label="出浆叩解度︒SR" prop="beatingDegreeOut">
<el-input v-model="formData.beatingDegreeOut" placeholder="请输入出浆叩解度︒SR" />
</el-form-item>
<el-form-item label="湿重" prop="wetWeight">
<el-input v-model="formData.wetWeight" placeholder="请输入湿重" />
</el-form-item>
<el-form-item label="5浆罐浓度%" prop="density5">
<el-input v-model="formData.density5" placeholder="请输入5浆罐浓度%" />
</el-form-item>
<el-form-item label="产浆量T" prop="jiangWeight">
<el-input v-model="formData.jiangWeight" placeholder="请输入产浆量T" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { RecordTemplateApi } from '@/api/mes/record'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
density: undefined,
electricCurrent: undefined,
beatingDegreeIn: undefined,
beatingDegreeOut: undefined,
wetWeight: undefined,
density5: undefined,
jiangWeight: undefined,
remark: undefined,
isEnable: undefined
})
const formRules = reactive({
recordId: [{ required: true, message: '记录id不能为空', trigger: 'blur' }],
startTime: [{ required: true, message: '开机时间不能为空', trigger: 'blur' }],
endTime: [{ required: true, message: '停机时间不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number, recordId: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
formData.value.recordId = recordId
//
if (id) {
formLoading.value = true
try {
formData.value = await RecordTemplateApi.getRecordDajiang(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value
if (formType.value === 'create') {
await RecordTemplateApi.createRecordDajiang(data)
message.success(t('common.createSuccess'))
} else {
await RecordTemplateApi.updateRecordDajiang(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
density: undefined,
electricCurrent: undefined,
beatingDegreeIn: undefined,
beatingDegreeOut: undefined,
wetWeight: undefined,
density5: undefined,
jiangWeight: undefined,
remark: undefined,
isEnable: undefined
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,154 @@
<template>
<!-- 列表 -->
<ContentWrap>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="id" align="center" prop="id" />
<el-table-column
label="开机时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="停机时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="浓度%" align="center" prop="density" />
<el-table-column label="电流A" align="center" prop="electricCurrent" />
<el-table-column label="进浆叩解度︒SR" align="center" prop="beatingDegreeIn" />
<el-table-column label="出浆叩解度︒SR" align="center" prop="beatingDegreeOut" />
<el-table-column label="湿重" align="center" prop="wetWeight" />
<el-table-column label="5浆罐浓度%" align="center" prop="density5" />
<el-table-column label="产浆量T" align="center" prop="jiangWeight" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordDajiangForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { RecordTemplateApi } from '@/api/mes/record'
import RecordDajiangForm from './RecordDajiangForm.vue'
const { t } = useI18n() //
const message = useMessage() //
const props = defineProps<{
recordId?: number // id
}>()
const loading = ref(false) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
recordId: undefined as unknown
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.recordId,
(val: number) => {
if (!val) {
return
}
queryParams.recordId = val
handleQuery()
},
{ immediate: true, deep: true }
)
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordDajiangPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
if (!props.recordId) {
message.error('请选择一个记录表')
return
}
formRef.value.open(type, id, props.recordId)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordDajiang(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
</script>

@ -0,0 +1,154 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="开机时间" prop="startTime">
<el-date-picker
v-model="formData.startTime"
type="date"
value-format="x"
placeholder="选择开机时间"
/>
</el-form-item>
<el-form-item label="停机时间" prop="endTime">
<el-date-picker
v-model="formData.endTime"
type="date"
value-format="x"
placeholder="选择停机时间"
/>
</el-form-item>
<el-form-item label="速度(赫兹)" prop="speed">
<el-input v-model="formData.speed" placeholder="请输入速度(赫兹)" />
</el-form-item>
<el-form-item label="温度℃" prop="temperature">
<el-input v-model="formData.temperature" placeholder="请输入温度℃" />
</el-form-item>
<el-form-item label="产品id" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品id" />
</el-form-item>
<el-form-item label="产品外观" prop="appearance">
<el-input v-model="formData.appearance" placeholder="请输入产品外观" />
</el-form-item>
<el-form-item label="产品重量(g)" prop="productWeight">
<el-input v-model="formData.productWeight" placeholder="请输入产品重量(g)" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { RecordTemplateApi } from '@/api/mes/record'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
speed: undefined,
temperature: undefined,
productId: undefined,
appearance: undefined,
productWeight: undefined,
remark: undefined,
isEnable: undefined
})
const formRules = reactive({
recordId: [{ required: true, message: '记录id不能为空', trigger: 'blur' }],
speed: [{ required: true, message: '速度(赫兹)不能为空', trigger: 'blur' }],
temperature: [{ required: true, message: '温度℃不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '产品id不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number, recordId: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
formData.value.recordId = recordId
//
if (id) {
formLoading.value = true
try {
formData.value = await RecordTemplateApi.getRecordGanzao(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value
if (formType.value === 'create') {
await RecordTemplateApi.createRecordGanzao(data)
message.success(t('common.createSuccess'))
} else {
await RecordTemplateApi.updateRecordGanzao(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
speed: undefined,
temperature: undefined,
productId: undefined,
appearance: undefined,
productWeight: undefined,
remark: undefined,
isEnable: undefined
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,152 @@
<template>
<!-- 列表 -->
<ContentWrap>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="id" align="center" prop="id" />
<el-table-column
label="开机时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="停机时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="速度(赫兹)" align="center" prop="speed" />
<el-table-column label="温度℃" align="center" prop="temperature" />
<el-table-column label="产品id" align="center" prop="productId" />
<el-table-column label="产品外观" align="center" prop="appearance" />
<el-table-column label="产品重量(g)" align="center" prop="productWeight" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordGanzaoForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { RecordTemplateApi } from '@/api/mes/record'
import RecordGanzaoForm from './RecordGanzaoForm.vue'
const { t } = useI18n() //
const message = useMessage() //
const props = defineProps<{
recordId?: number // id
}>()
const loading = ref(false) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
recordId: undefined as unknown
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.recordId,
(val: number) => {
if (!val) {
return
}
queryParams.recordId = val
handleQuery()
},
{ immediate: true, deep: true }
)
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordGanzaoPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
if (!props.recordId) {
message.error('请选择一个记录表')
return
}
formRef.value.open(type, id, props.recordId)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordGanzao(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
</script>

@ -0,0 +1,182 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="开机时间" prop="startTime">
<el-date-picker
v-model="formData.startTime"
type="date"
value-format="x"
placeholder="选择开机时间"
/>
</el-form-item>
<el-form-item label="停机时间" prop="endTime">
<el-date-picker
v-model="formData.endTime"
type="date"
value-format="x"
placeholder="选择停机时间"
/>
</el-form-item>
<el-form-item label="开机时间(S)" prop="machineStartTime">
<el-date-picker
v-model="formData.machineStartTime"
type="date"
value-format="x"
placeholder="选择开机时间(S)"
/>
</el-form-item>
<el-form-item label="停机时间(S)" prop="machineEndTime">
<el-date-picker
v-model="formData.machineEndTime"
type="date"
value-format="x"
placeholder="选择停机时间(S)"
/>
</el-form-item>
<el-form-item label="加湿时间(S)" prop="wetTime">
<el-date-picker
v-model="formData.wetTime"
type="date"
value-format="x"
placeholder="选择加湿时间(S)"
/>
</el-form-item>
<el-form-item label="产品id" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品id" />
</el-form-item>
<el-form-item label="产品进入水分" prop="weightIn">
<el-input v-model="formData.weightIn" placeholder="请输入产品进入水分" />
</el-form-item>
<el-form-item label="产品取出水分" prop="weightOut">
<el-input v-model="formData.weightOut" placeholder="请输入产品取出水分" />
</el-form-item>
<el-form-item label="产量" prop="productNumber">
<el-input v-model="formData.productNumber" placeholder="请输入产量" />
</el-form-item>
<el-form-item label="单重(g)" prop="productWeight">
<el-input v-model="formData.productWeight" placeholder="请输入单重(g)" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { RecordTemplateApi } from '@/api/mes/record'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
machineStartTime: undefined,
machineEndTime: undefined,
wetTime: undefined,
productId: undefined,
weightIn: undefined,
weightOut: undefined,
productNumber: undefined,
productWeight: undefined,
remark: undefined,
isEnable: undefined
})
const formRules = reactive({
recordId: [{ required: true, message: '记录id不能为空', trigger: 'blur' }],
startTime: [{ required: true, message: '开机时间不能为空', trigger: 'blur' }],
endTime: [{ required: true, message: '停机时间不能为空', trigger: 'blur' }],
machineStartTime: [{ required: true, message: '开机时间(S)不能为空', trigger: 'blur' }],
machineEndTime: [{ required: true, message: '停机时间(S)不能为空', trigger: 'blur' }],
wetTime: [{ required: true, message: '加湿时间(S)不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '产品id不能为空', trigger: 'blur' }],
productNumber: [{ required: true, message: '产量不能为空', trigger: 'blur' }],
isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number, recordId: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
formData.value.recordId = recordId
//
if (id) {
formLoading.value = true
try {
formData.value = await RecordTemplateApi.getRecordJiashi(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value
if (formType.value === 'create') {
await RecordTemplateApi.createRecordJiashi(data)
message.success(t('common.createSuccess'))
} else {
await RecordTemplateApi.updateRecordJiashi(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
machineStartTime: undefined,
machineEndTime: undefined,
wetTime: undefined,
productId: undefined,
weightIn: undefined,
weightOut: undefined,
productNumber: undefined,
productWeight: undefined,
remark: undefined,
isEnable: undefined
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,150 @@
<template>
<!-- 列表 -->
<ContentWrap>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="id" align="center" prop="id" />
<el-table-column
label="开机时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="停机时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="开机时间(S)" align="center" prop="machineStartTime" />
<el-table-column label="停机时间(S)" align="center" prop="machineEndTime" />
<el-table-column label="加湿时间(S)" align="center" prop="wetTime" />
<el-table-column label="产品id" align="center" prop="productId" />
<el-table-column label="产品进入水分" align="center" prop="weightIn" />
<el-table-column label="产品取出水分" align="center" prop="weightOut" />
<el-table-column label="产量" align="center" prop="productNumber" />
<el-table-column label="单重(g)" align="center" prop="productWeight" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable" />
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordJiashiForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime'
import { RecordTemplateApi } from '@/api/mes/record'
import RecordJiashiForm from './RecordJiashiForm.vue'
const { t } = useI18n() //
const message = useMessage() //
const props = defineProps<{
recordId?: number // id
}>()
const loading = ref(false) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
recordId: undefined as unknown
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.recordId,
(val: number) => {
if (!val) {
return
}
queryParams.recordId = val
handleQuery()
},
{ immediate: true, deep: true }
)
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordJiashiPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
if (!props.recordId) {
message.error('请选择一个记录表')
return
}
formRef.value.open(type, id, props.recordId)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordJiashi(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
</script>

@ -0,0 +1,154 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="产品id" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品id" />
</el-form-item>
<el-form-item label="外观" prop="appearance">
<el-input v-model="formData.appearance" placeholder="请输入外观" />
</el-form-item>
<el-form-item label="单重(g)" prop="productWeight">
<el-input v-model="formData.productWeight" placeholder="请输入单重(g)" />
</el-form-item>
<el-form-item label="防水" prop="waterproof">
<el-input v-model="formData.waterproof" placeholder="请输入防水" />
</el-form-item>
<el-form-item label="合格品量" prop="qualifiedNumber">
<el-input v-model="formData.qualifiedNumber" placeholder="请输入合格品量" />
</el-form-item>
<el-form-item label="废品量" prop="unqualifiedNumber">
<el-input v-model="formData.unqualifiedNumber" placeholder="请输入废品量" />
</el-form-item>
<el-form-item label="总产量" prop="totalNumber">
<el-input v-model="formData.totalNumber" placeholder="请输入总产量" />
</el-form-item>
<el-form-item label="合格率%" prop="qualifiedRate">
<el-input v-model="formData.qualifiedRate" placeholder="请输入合格率%" />
</el-form-item>
<el-form-item label="废品原因" prop="unqualifiedReason">
<el-input v-model="formData.unqualifiedReason" placeholder="请输入废品原因" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { RecordTemplateApi } from '@/api/mes/record'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
recordId: undefined,
productId: undefined,
appearance: undefined,
productWeight: undefined,
waterproof: undefined,
qualifiedNumber: undefined,
unqualifiedNumber: undefined,
totalNumber: undefined,
qualifiedRate: undefined,
unqualifiedReason: undefined,
remark: undefined,
isEnable: undefined
})
const formRules = reactive({
recordId: [{ required: true, message: '记录id不能为空', trigger: 'blur' }],
qualifiedNumber: [{ required: true, message: '合格品量不能为空', trigger: 'blur' }],
unqualifiedNumber: [{ required: true, message: '废品量不能为空', trigger: 'blur' }],
totalNumber: [{ required: true, message: '总产量不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number, recordId: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
formData.value.recordId = recordId
//
if (id) {
formLoading.value = true
try {
formData.value = await RecordTemplateApi.getRecordPinjian(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value
if (formType.value === 'create') {
await RecordTemplateApi.createRecordPinjian(data)
message.success(t('common.createSuccess'))
} else {
await RecordTemplateApi.updateRecordPinjian(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
recordId: undefined,
productId: undefined,
appearance: undefined,
productWeight: undefined,
waterproof: undefined,
qualifiedNumber: undefined,
unqualifiedNumber: undefined,
totalNumber: undefined,
qualifiedRate: undefined,
unqualifiedReason: undefined,
remark: undefined,
isEnable: undefined
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,142 @@
<template>
<!-- 列表 -->
<ContentWrap>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="id" align="center" prop="id" />
<el-table-column label="产品id" align="center" prop="productId" />
<el-table-column label="外观" align="center" prop="appearance" />
<el-table-column label="单重(g)" align="center" prop="productWeight" />
<el-table-column label="防水" align="center" prop="waterproof" />
<el-table-column label="合格品量" align="center" prop="qualifiedNumber" />
<el-table-column label="废品量" align="center" prop="unqualifiedNumber" />
<el-table-column label="总产量" align="center" prop="totalNumber" />
<el-table-column label="合格率%" align="center" prop="qualifiedRate" />
<el-table-column label="废品原因" align="center" prop="unqualifiedReason" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordPinjianForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { RecordTemplateApi } from '@/api/mes/record'
import RecordPinjianForm from './RecordPinjianForm.vue'
const { t } = useI18n() //
const message = useMessage() //
const props = defineProps<{
recordId?: number // id
}>()
const loading = ref(false) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
recordId: undefined as unknown
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.recordId,
(val: number) => {
if (!val) {
return
}
queryParams.recordId = val
handleQuery()
},
{ immediate: true, deep: true }
)
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordPinjianPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
if (!props.recordId) {
message.error('请选择一个记录表')
return
}
formRef.value.open(type, id, props.recordId)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordPinjian(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
</script>

@ -0,0 +1,167 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="开机时间" prop="startTime">
<el-date-picker
v-model="formData.startTime"
type="date"
value-format="x"
placeholder="选择开机时间"
/>
</el-form-item>
<el-form-item label="停机时间" prop="endTime">
<el-date-picker
v-model="formData.endTime"
type="date"
value-format="x"
placeholder="选择停机时间"
/>
</el-form-item>
<el-form-item label="机台" prop="machineId">
<el-input v-model="formData.machineId" placeholder="请输入机台" />
</el-form-item>
<el-form-item label="切边前单重g" prop="productWeightBefore">
<el-input v-model="formData.productWeightBefore" placeholder="请输入切边前单重g" />
</el-form-item>
<el-form-item label="产品id" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品id" />
</el-form-item>
<el-form-item label="外观" prop="appearance">
<el-input v-model="formData.appearance" placeholder="请输入外观" />
</el-form-item>
<el-form-item label="湿度" prop="wetDegree">
<el-input v-model="formData.wetDegree" placeholder="请输入湿度" />
</el-form-item>
<el-form-item label="单重(g)" prop="productWeight">
<el-input v-model="formData.productWeight" placeholder="请输入单重(g)" />
</el-form-item>
<el-form-item label="切边时间(S)" prop="cutTime">
<el-input v-model="formData.cutTime" placeholder="请输入切边时间(S)" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { RecordTemplateApi } from '@/api/mes/record'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
machineId: undefined,
productWeightBefore: undefined,
productId: undefined,
appearance: undefined,
wetDegree: undefined,
productWeight: undefined,
cutTime: undefined,
remark: undefined,
isEnable: undefined,
})
const formRules = reactive({
recordId: [{ required: true, message: '记录id不能为空', trigger: 'blur' }],
startTime: [{ required: true, message: '开机时间不能为空', trigger: 'blur' }],
endTime: [{ required: true, message: '停机时间不能为空', trigger: 'blur' }],
machineId: [{ required: true, message: '机台不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '产品id不能为空', trigger: 'blur' }],
cutTime: [{ required: true, message: '切边时间(S)不能为空', trigger: 'blur' }],
isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number, recordId: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
formData.value.recordId = recordId
//
if (id) {
formLoading.value = true
try {
formData.value = await RecordTemplateApi.getRecordQiebian(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value
if (formType.value === 'create') {
await RecordTemplateApi.createRecordQiebian(data)
message.success(t('common.createSuccess'))
} else {
await RecordTemplateApi.updateRecordQiebian(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
machineId: undefined,
productWeightBefore: undefined,
productId: undefined,
appearance: undefined,
wetDegree: undefined,
productWeight: undefined,
cutTime: undefined,
remark: undefined,
isEnable: undefined,
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,155 @@
<template>
<!-- 列表 -->
<ContentWrap>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="id" align="center" prop="id" />
<el-table-column
label="开机时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="停机时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="机台" align="center" prop="machineId" />
<el-table-column label="切边前单重g" align="center" prop="productWeightBefore" />
<el-table-column label="产品id" align="center" prop="productId" />
<el-table-column label="外观" align="center" prop="appearance" />
<el-table-column label="湿度" align="center" prop="wetDegree" />
<el-table-column label="单重(g)" align="center" prop="productWeight" />
<el-table-column label="切边时间(S)" align="center" prop="cutTime" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column label="创建者" align="center" prop="creator" />
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordQiebianForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { RecordTemplateApi } from '@/api/mes/record'
import RecordQiebianForm from './RecordQiebianForm.vue'
const { t } = useI18n() //
const message = useMessage() //
const props = defineProps<{
recordId?: number // id
}>()
const loading = ref(false) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
recordId: undefined as unknown
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.recordId,
(val: number) => {
if (!val) {
return
}
queryParams.recordId = val
handleQuery()
},
{ immediate: true, deep: true }
)
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordQiebianPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
if (!props.recordId) {
message.error('请选择一个记录表')
return
}
formRef.value.open(type, id, props.recordId)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordQiebian(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
</script>

@ -0,0 +1,179 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="开机时间" prop="startTime">
<el-date-picker
v-model="formData.startTime"
type="date"
value-format="x"
placeholder="选择开机时间"
/>
</el-form-item>
<el-form-item label="停机时间" prop="endTime">
<el-date-picker
v-model="formData.endTime"
type="date"
value-format="x"
placeholder="选择停机时间"
/>
</el-form-item>
<el-form-item label="机台" prop="machineId">
<el-input v-model="formData.machineId" placeholder="请输入机台" />
</el-form-item>
<el-form-item label="热压时间(S)" prop="reyaTime">
<el-input v-model="formData.reyaTime" placeholder="请输入热压时间(S)" />
</el-form-item>
<el-form-item label="上模温度℃" prop="temperatureMoldUp">
<el-input v-model="formData.temperatureMoldUp" placeholder="请输入上模温度℃" />
</el-form-item>
<el-form-item label="下模温度℃" prop="temperatureMoldDown">
<el-input v-model="formData.temperatureMoldDown" placeholder="请输入下模温度℃" />
</el-form-item>
<el-form-item label="主缸压力KG" prop="mainStress">
<el-input v-model="formData.mainStress" placeholder="请输入主缸压力KG" />
</el-form-item>
<el-form-item label="产品id" prop="productId">
<el-select v-model="formData.productId" placeholder="请选择产品id">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="外观" prop="appearance">
<el-input v-model="formData.appearance" placeholder="请输入外观" />
</el-form-item>
<el-form-item label="湿度" prop="wetDegree">
<el-input v-model="formData.wetDegree" placeholder="请输入湿度" />
</el-form-item>
<el-form-item label="单重(g)" prop="productWeight">
<el-input v-model="formData.productWeight" placeholder="请输入单重(g)" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { RecordTemplateApi } from '@/api/mes/record'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
machineId: undefined,
reyaTime: undefined,
temperatureMoldUp: undefined,
temperatureMoldDown: undefined,
mainStress: undefined,
productId: undefined,
appearance: undefined,
wetDegree: undefined,
productWeight: undefined,
remark: undefined,
isEnable: undefined,
})
const formRules = reactive({
recordId: [{ required: true, message: '记录id不能为空', trigger: 'blur' }],
startTime: [{ required: true, message: '开机时间不能为空', trigger: 'blur' }],
endTime: [{ required: true, message: '停机时间不能为空', trigger: 'blur' }],
machineId: [{ required: true, message: '机台不能为空', trigger: 'blur' }],
reyaTime: [{ required: true, message: '热压时间(S)不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '产品id不能为空', trigger: 'change' }],
isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number, recordId: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
formData.value.recordId = recordId
//
if (id) {
formLoading.value = true
try {
formData.value = await RecordTemplateApi.getRecordReya(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value
if (formType.value === 'create') {
await RecordTemplateApi.createRecordReya(data)
message.success(t('common.createSuccess'))
} else {
await RecordTemplateApi.updateRecordReya(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
recordId: undefined,
startTime: undefined,
endTime: undefined,
machineId: undefined,
reyaTime: undefined,
temperatureMoldUp: undefined,
temperatureMoldDown: undefined,
mainStress: undefined,
productId: undefined,
appearance: undefined,
wetDegree: undefined,
productWeight: undefined,
remark: undefined,
isEnable: undefined,
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,156 @@
<template>
<!-- 列表 -->
<ContentWrap>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:record-template:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="id" align="center" prop="id" />
<el-table-column
label="开机时间"
align="center"
prop="startTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="停机时间"
align="center"
prop="endTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="机台" align="center" prop="machineId" />
<el-table-column label="热压时间(S)" align="center" prop="reyaTime" />
<el-table-column label="上模温度℃" align="center" prop="temperatureMoldUp" />
<el-table-column label="下模温度℃" align="center" prop="temperatureMoldDown" />
<el-table-column label="主缸压力KG" align="center" prop="mainStress" />
<el-table-column label="产品id" align="center" prop="productId" />
<el-table-column label="外观" align="center" prop="appearance" />
<el-table-column label="湿度" align="center" prop="wetDegree" />
<el-table-column label="单重(g)" align="center" prop="productWeight" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:record-template:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['mes:record-template:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<RecordReyaForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { RecordTemplateApi } from '@/api/mes/record'
import RecordReyaForm from './RecordReyaForm.vue'
const { t } = useI18n() //
const message = useMessage() //
const props = defineProps<{
recordId?: number // id
}>()
const loading = ref(false) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
recordId: undefined as unknown
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.recordId,
(val: number) => {
if (!val) {
return
}
queryParams.recordId = val
handleQuery()
},
{ immediate: true, deep: true }
)
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await RecordTemplateApi.getRecordReyaPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
if (!props.recordId) {
message.error('请选择一个记录表')
return
}
formRef.value.open(type, id, props.recordId)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await RecordTemplateApi.deleteRecordReya(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
</script>

@ -41,7 +41,11 @@
<el-table-column label="出渣率%" align="center" prop="slagYield" />
<el-table-column label="浓度%" align="center" prop="density" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
@ -82,6 +86,7 @@
<RecordSuijiangForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { RecordTemplateApi } from '@/api/mes/record'
import RecordSuijiangForm from './RecordSuijiangForm.vue'

Loading…
Cancel
Save