fix org and machine

main
chenshuichuan 2 years ago
parent 3cab8d3ca6
commit 6f431ead4b

@ -1,5 +1,5 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<Dialog :title="dialogTitle" v-model="dialogVisible" width="1200px">
<el-form
ref="formRef"
:model="formData"
@ -7,72 +7,106 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="父级装备" prop="parentId">
<el-tree-select
v-model="formData.parentId"
:data="machineComponentTree"
:props="defaultProps"
check-strictly
default-expand-all
placeholder="请选择父级"
/>
</el-form-item>
<el-form-item label="装备名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入装备名称" />
</el-form-item>
<el-form-item label="组织类型" prop="componentType">
<el-radio-group v-model="formData.componentType">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_MACHINE_TYPE)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="显示顺序" prop="sort">
<el-input v-model="formData.sort" placeholder="请输入显示顺序" />
</el-form-item>
<el-form-item label="组织机台" prop="orgId">
<el-input v-model="formData.orgId" placeholder="请输入组织机台" />
</el-form-item>
<el-form-item label="装备SN号" prop="serialCode">
<el-input v-model="formData.serialCode" placeholder="请输入装备SN号" />
</el-form-item>
<el-form-item label="出厂日期" prop="outgoingTime">
<el-date-picker
v-model="formData.outgoingTime"
type="date"
value-format="x"
placeholder="选择出厂日期"
/>
</el-form-item>
<el-form-item label="出厂报告" prop="outgoingReport">
<Editor v-model="formData.outgoingReport" height="150px" />
</el-form-item>
<el-form-item label="位置" prop="position">
<el-input v-model="formData.position" placeholder="请输入位置" />
</el-form-item>
<el-form-item label="规格" prop="standard">
<el-input v-model="formData.standard" 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="status">
<el-radio-group v-model="formData.status">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_MACHINE_STATUS)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-row>
<el-col :span="8">
<el-form-item label="父级装备" prop="parentId">
<el-tree-select
v-model="formData.parentId"
:data="machineComponentTree"
:props="defaultProps"
check-strictly
default-expand-all
placeholder="请选择父级"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="组织类型" prop="componentType">
<el-radio-group v-model="formData.componentType">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_MACHINE_TYPE)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="显示顺序" prop="sort">
<el-input v-model="formData.sort" placeholder="请输入显示顺序" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="编码" prop="code">
<el-input disabled v-model="formData.code" placeholder="保存自动生成" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="装备名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入装备名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="装备SN号" prop="serialCode">
<el-input v-model="formData.serialCode" placeholder="请输入装备SN号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="位置" prop="position">
<el-input v-model="formData.position" placeholder="请输入位置" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="规格" prop="standard">
<el-input v-model="formData.standard" placeholder="请输入规格" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="组织机台" prop="orgId">
<el-input v-model="formData.orgId" placeholder="请输入组织机台" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="状态" prop="status">
<el-radio-group v-model="formData.status">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_MACHINE_STATUS)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出厂日期" prop="outgoingTime">
<el-date-picker
v-model="formData.outgoingTime"
type="date"
value-format="x"
placeholder="选择出厂日期"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="机台类型" prop="machineType">
<el-form-item v-if="formData.componentType == 1|| formData.componentType == 2" label="机台类型" prop="machineType">
<el-select v-model="formData.machineType" placeholder="请选择机台类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
@ -82,6 +116,12 @@
/>
</el-select>
</el-form-item>
<el-form-item label="出厂报告" prop="outgoingReport">
<Editor v-model="formData.outgoingReport" height="150px" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
@ -106,6 +146,7 @@ const formLoading = ref(false) // 表单的加载中1修改时的数据加
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
code: undefined,
name: undefined,
parentId: undefined,
sort: undefined,
@ -123,9 +164,6 @@ const formData = ref({
const formRules = reactive({
name: [{ required: true, message: '装备名称不能为空', trigger: 'blur' }],
parentId: [{ required: true, message: '父id不能为空', trigger: 'blur' }],
sort: [{ required: true, message: '显示顺序不能为空', trigger: 'blur' }],
orgId: [{ required: true, message: '组织机台ID不能为空', trigger: 'blur' }],
status: [{ required: true, message: '状态不能为空', trigger: 'blur' }],
componentType: [{ required: true, message: '组织类型不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref

@ -27,15 +27,6 @@
/>
</el-form-item>
<el-form-item label="组织机台" prop="orgId">
<el-input
v-model="queryParams.orgId"
placeholder="请输入组织机台"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="装备SN号" prop="serialCode">
<el-input
v-model="queryParams.serialCode"
@ -149,6 +140,21 @@
<!-- 列表 -->
<ContentWrap>
<el-tabs v-model="activeName" @tab-click="handleTabClick">
<el-tab-pane label="所有" name="" />
<el-tab-pane label="制浆" name="zhijiang" />
<el-tab-pane label="成型" name="chengxing" />
<el-tab-pane label="烘干" name="honggan" />
<el-tab-pane label="转移" name="zhuanyi" />
<el-tab-pane label="加湿" name="jiashi" />
<el-tab-pane label="热压" name="reya" />
<el-tab-pane label="切边" name="qiebian" />
<el-tab-pane label="品检" name="pinjian" />
<el-tab-pane label="打包" name="dabao" />
<el-tab-pane label="贴标" name="tiebiao" />
<el-tab-pane label="塑封" name="sufeng" />
</el-tabs>
<el-table
v-loading="loading"
:data="list"
@ -333,4 +339,10 @@ const toggleExpandAll = async () => {
onMounted(() => {
getList()
})
/** tab 切换 */
let activeName = ''
const handleTabClick = (tab: TabsPaneContext) => {
queryParams.orgType = tab.paneName
handleQuery()
}
</script>

@ -7,6 +7,9 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="编码" prop="code">
<el-input disabled v-model="formData.code" placeholder="保存自动生成" />
</el-form-item>
<el-form-item label="组织名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入组织名称" />
</el-form-item>
@ -42,7 +45,7 @@
</template>
<el-input v-model="formData.sort" placeholder="请输入显示顺序" />
</el-form-item>
<el-form-item label="类型" prop="orgType">
<el-form-item v-if="formData.orgClass == 'workplace' || formData.orgClass == 'process'" label="类型" prop="orgType">
<el-select v-model="formData.orgType" @change="handleOrgTypeChange" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
@ -52,26 +55,9 @@
/>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="workerUserId">
<template #label>
<span>
负责人
<el-tooltip content="工序组长,工位工人,根据上面所选类型会筛选特定类型的班组成员" placement="top">
<Icon icon="ep:question-filled" />
</el-tooltip>
</span>
</template>
<el-select v-model="formData.workerUserId" clearable filterable placeholder="请输入负责人">
<el-option
v-for="item in userList"
:key="item.id"
:label="item.nickname"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="对应机台" prop="machineId">
<el-input v-model="formData.machineId" placeholder="请输入对应机台" />
<el-form-item label="关联机台" prop="machineId">
<el-input v-model="formData.machineId" placeholder="请输入关联机台" />
</el-form-item>
<el-form-item label="组织状态" prop="status">
@ -112,6 +98,7 @@ const formLoading = ref(false) // 表单的加载中1修改时的数据加
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
code: undefined,
name: undefined,
parentId: undefined,
sort: undefined,
@ -127,7 +114,6 @@ const formData = ref({
const formRules = reactive({
name: [{ required: true, message: '组织名称不能为空', trigger: 'blur' }],
parentId: [{ required: true, message: '父组织不能为空', trigger: 'blur' }],
sort: [{ required: true, message: '显示顺序不能为空', trigger: 'blur' }],
orgClass: [{ required: true, message: '组织等级不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
@ -183,6 +169,7 @@ const submitForm = async () => {
const resetForm = () => {
formData.value = {
id: undefined,
code: undefined,
name: undefined,
parentId: undefined,
sort: undefined,

@ -41,10 +41,10 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="对应机台" prop="machineId">
<el-form-item label="关联机台" prop="machineId">
<el-input
v-model="queryParams.machineId"
placeholder="请输入对应机台"
placeholder="请输入关联机台"
clearable
@keyup.enter="handleQuery"
class="!w-240px"

@ -7,17 +7,7 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="报工单id" prop="reportId">
<el-input v-model="formData.reportId" placeholder="请输入报工单id" />
</el-form-item>
<el-form-item label="报工日期" prop="reportDate">
<el-date-picker
v-model="formData.reportDate"
type="date"
value-format="x"
placeholder="选择报工日期"
/>
</el-form-item>
<el-form-item label="生产计划ID" prop="planId">
<el-input v-model="formData.planId" placeholder="请输入生产计划ID" />
</el-form-item>

@ -0,0 +1,184 @@
<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="reportDate">
<el-date-picker
v-model="formData.reportDate"
type="date"
value-format="x"
placeholder="选择报工日期"
/>
</el-form-item>
<el-form-item label="生产计划ID" prop="planId">
<el-input v-model="formData.planId" placeholder="请输入生产计划ID" />
</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="用户ID" prop="userId">
<el-input v-model="formData.userId" placeholder="请输入用户ID" />
</el-form-item>
<el-form-item label="组织ID" prop="orgId">
<el-input v-model="formData.orgId" placeholder="请输入组织ID" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="成品数量" prop="qualityNumber">
<el-input v-model="formData.qualityNumber" placeholder="请输入成品数量" />
</el-form-item>
<el-form-item label="废品数量" prop="wasteNumber">
<el-input v-model="formData.wasteNumber" 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="qualityRate">
<el-input v-model="formData.qualityRate" placeholder="请输入成品率" />
</el-form-item>
<el-form-item label="废品原因" prop="wasteReason">
<el-input v-model="formData.wasteReason" placeholder="请输入废品原因" />
</el-form-item>
<el-form-item label="打包数量" prop="packageNumber">
<el-input v-model="formData.packageNumber" placeholder="请输入打包数量" />
</el-form-item>
<el-form-item label="总时长" prop="totalTime">
<el-input v-model="formData.totalTime" placeholder="请输入总时长" />
</el-form-item>
<el-form-item label="计件时间" prop="reportTime">
<el-input v-model="formData.reportTime" placeholder="请输入计件时间" />
</el-form-item>
<el-form-item label="报工状态" prop="reportStatus">
<el-radio-group v-model="formData.reportStatus">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_RECORD_STATUS)"
: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 {getIntDictOptions, DICT_TYPE, getBoolDictOptions} from '@/utils/dict'
import { ProduceReportDetailApi, ProduceReportDetailVO } from '@/api/mes/producereport'
/** 生产报工明细 表单 */
defineOptions({ name: 'ProduceReportDetailForm' })
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,
reportId: undefined,
planId: undefined,
productId: undefined,
userId: undefined,
orgId: undefined,
qualityRate: undefined,
wasteReason: undefined,
totalTime: undefined,
packageNumber: undefined,
remark: undefined,
isEnable: undefined,
qualityNumber: undefined,
wasteNumber: undefined,
totalNumber: undefined,
reportDate: undefined,
reportTime: undefined,
reportStatus: undefined,
})
const formRules = reactive({
planId: [{ required: true, message: '生产计划ID不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '产品ID不能为空', trigger: 'blur' }],
userId: [{ required: true, message: '用户ID不能为空', trigger: 'blur' }],
orgId: [{ required: true, message: '组织ID不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await ProduceReportDetailApi.getProduceReportDetail(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 as unknown as ProduceReportDetailVO
if (formType.value === 'create') {
await ProduceReportDetailApi.createProduceReportDetail(data)
message.success(t('common.createSuccess'))
} else {
await ProduceReportDetailApi.updateProduceReportDetail(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
reportId: undefined,
planId: undefined,
productId: undefined,
userId: undefined,
orgId: undefined,
qualityRate: undefined,
wasteReason: undefined,
totalTime: undefined,
packageNumber: undefined,
remark: undefined,
isEnable: undefined,
qualityNumber: undefined,
wasteNumber: undefined,
totalNumber: undefined,
reportDate: undefined,
reportTime: undefined,
reportStatus: undefined,
}
formRef.value?.resetFields()
}
</script>
Loading…
Cancel
Save