main
kkk-ops 3 months ago
parent fb44601163
commit fdc11058f9

@ -74,7 +74,7 @@
</el-form> </el-form>
<!-- 子表的表单 --> <!-- 子表的表单 -->
<el-tabs v-model="subTabsName" v-if="formData.feedingType=='org'"> <el-tabs v-model="subTabsName" v-if="formData.feedingType=='org'">
<el-tab-pane label="投料记录明细" name="feedingRecordDetail"> <el-tab-pane label="投料明细" name="feedingRecordDetail">
<FeedingRecordDetailForm ref="feedingRecordDetailFormRef" :record-id="formData.id" /> <FeedingRecordDetailForm ref="feedingRecordDetailFormRef" :record-id="formData.id" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>

@ -65,7 +65,7 @@
</el-table> </el-table>
</el-form> </el-form>
<el-row justify="center" class="mt-3"> <el-row justify="center" class="mt-3">
<el-button @click="handleAdd" round>+ 添加投料记录明细</el-button> <el-button @click="handleAdd" round>+ 添加投料明细</el-button>
</el-row> </el-row>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

@ -95,7 +95,7 @@
<el-table-column type="expand"> <el-table-column type="expand">
<template #default="scope"> <template #default="scope">
<el-tabs model-value="feedingRecordDetail"> <el-tabs model-value="feedingRecordDetail">
<el-tab-pane label="投料记录明细" name="feedingRecordDetail"> <el-tab-pane label="投料明细" name="feedingRecordDetail">
<FeedingRecordDetailList :record-id="scope.row.id" /> <FeedingRecordDetailList :record-id="scope.row.id" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>

@ -44,6 +44,31 @@
<el-form-item label="计划编码" prop="code"> <el-form-item label="计划编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入计划编码" /> <el-input v-model="formData.code" placeholder="请输入计划编码" />
</el-form-item> </el-form-item>
<el-form-item label="生产线" prop="feedingPipeline">
<el-tree-select
v-model="formData.feedingPipeline"
:data="organizationTree"
:props="defaultProps"
check-strictly
default-expand-all
placeholder="请选择生产线"
/>
</el-form-item>
<el-form-item label="领料人" prop="workerId">
<el-select
v-model="formData.workerId"
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="productId">--> <!-- <el-form-item label="产品" prop="productId">-->
<!-- <el-select--> <!-- <el-select-->
<!-- :disabled='editDisable'--> <!-- :disabled='editDisable'-->
@ -61,12 +86,23 @@
<!-- />--> <!-- />-->
<!-- </el-select>--> <!-- </el-select>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="成型数量" prop="planNumber"> <el-form-item label="数量" prop="planNumber">
<el-input v-model="formData.planNumber" /> <el-input v-model="formData.planNumber" />
</el-form-item> </el-form-item>
<el-form-item label="热压数量" prop="reyaNumber"> <el-form-item label="是否试生产" prop="isPreProduction">
<el-input v-model="formData.reyaNumber" /> <el-radio-group v-model="formData.isPreProduction">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_PRE_PRODUCTION)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
<!-- <el-form-item label="热压数量" prop="reyaNumber">
<el-input v-model="formData.reyaNumber" />
</el-form-item> -->
<el-form-item label="计划开始" prop="planStartTime"> <el-form-item label="计划开始" prop="planStartTime">
<el-date-picker <el-date-picker
v-model="formData.planStartTime" v-model="formData.planStartTime"
@ -108,9 +144,12 @@
import { PlanApi, PlanVO } from '@/api/mes/plan' import { PlanApi, PlanVO } from '@/api/mes/plan'
import * as UserApi from "@/api/system/user"; import * as UserApi from "@/api/system/user";
import {TaskApi, TaskDetailVO, TaskVO} from "@/api/mes/task"; import { TaskApi, TaskDetailVO, TaskVO} from "@/api/mes/task";
import {ProductApi, ProductVO} from "@/api/erp/product/product"; import { ProductVO } from "@/api/erp/product/product";
import {getIntDictOptions,DICT_TYPE} from "@/utils/dict"; import { defaultProps, handleTree } from '@/utils/tree';
import { OrganizationApi } from '@/api/mes/organization';
import {WorkTeamApi} from "@/api/mes/workteam";
import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
/** 生产计划 表单 */ /** 生产计划 表单 */
defineOptions({ name: 'PlanForm' }) defineOptions({ name: 'PlanForm' })
@ -118,6 +157,7 @@ const userList = ref<UserApi.UserVO[]>([]) // 用户列表
const productList = ref<ProductVO[]>([]) // const productList = ref<ProductVO[]>([]) //
const taskList = ref<TaskVO[]>([]) // const taskList = ref<TaskVO[]>([]) //
const taskDetailList = ref<TaskDetailVO[]>([]) // const taskDetailList = ref<TaskDetailVO[]>([]) //
const organizationTree = ref() //
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
@ -145,15 +185,21 @@ const formData = ref({
productionManagerId: undefined, productionManagerId: undefined,
remark: undefined, remark: undefined,
groupType: undefined, groupType: undefined,
isEnable: undefined isEnable: undefined,
feedingPipeline: undefined,
workerId: undefined,
isPreProduction: undefined
}) })
const formRules = reactive({ const formRules = reactive({
taskDetailId: [{ required: true, message: '明细项不能为空', trigger: 'blur' }], taskDetailId: [{ required: true, message: '明细项不能为空', trigger: 'blur' }],
taskId: [{ required: true, message: '任务单不能为空', trigger: 'blur' }], taskId: [{ required: true, message: '任务单不能为空', trigger: 'blur' }],
planNumber: [{ required: true, message: '成型数量不能为空', trigger: 'blur' }], planNumber: [{ required: true, message: '数量不能为空', trigger: 'blur' }],
reyaNumber: [{ required: true, message: '热压数量不能为空', trigger: 'blur' }], // reyaNumber: [{ required: true, message: '', trigger: 'blur' }],
planStartTime: [{ required: true, message: '计划开始时间不能为空', trigger: 'blur' }], planStartTime: [{ required: true, message: '计划开始时间不能为空', trigger: 'blur' }],
planEndTime: [{ required: true, message: '计划结束时间不能为空', trigger: 'blur' }], planEndTime: [{ required: true, message: '计划结束时间不能为空', trigger: 'blur' }],
feedingPipeline: [{ required: true, message: '生产线不能为空', trigger: 'blur' }],
workerId: [{ required: true, message: '下料工人不能为空', trigger: 'blur' }],
isPreProduction: [{ required: true, message: '试生产不能为空', trigger: 'blur' }],
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
@ -194,11 +240,14 @@ const open = async (type: string, id?: number,
} }
} }
// //
userList.value = await UserApi.getSimpleUserList() //userList.value = await UserApi.getSimpleUserList()
// //
//productList.value = await ProductApi.getMesProductSimpleList() //productList.value = await ProductApi.getMesProductSimpleList()
// //
taskList.value = await TaskApi.getPlanTaskList() taskList.value = await TaskApi.getPlanTaskList()
//
userList.value = await WorkTeamApi.getUserList("zhijiang", '')
await getOrganizationTree()
} }
defineExpose({ open }) // open defineExpose({ open }) // open
@ -244,7 +293,8 @@ const resetForm = () => {
productionManagerId: undefined, productionManagerId: undefined,
remark: undefined, remark: undefined,
groupType: undefined, groupType: undefined,
isEnable: undefined isEnable: undefined,
isPreProduction: 0,
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
@ -257,4 +307,14 @@ const handleTaskChange = async(e) => {
const handleTaskDetailChange = async(e) => { const handleTaskDetailChange = async(e) => {
console.log(e) console.log(e)
} }
/** 获得产线工位树 */
const getOrganizationTree = async () => {
organizationTree.value = []
const req = {orgClass:'pipeline'}
const data = await OrganizationApi.getOrganizationList(req)
const root: Tree = { id: 0, name: '顶级产线工位', children: [] }
root.children = handleTree(data, 'id', 'parentId')
organizationTree.value.push(root)
}
</script> </script>

@ -112,12 +112,14 @@
<ContentWrap> <ContentWrap>
<el-tabs v-model="activeName" @tab-click="handleTabClick"> <el-tabs v-model="activeName" @tab-click="handleTabClick">
<!-- <el-tab-pane label="所有" name="" /> --> <!-- <el-tab-pane label="所有" name="" /> -->
<el-tab-pane label="派工" name="0" /> <!-- <el-tab-pane label="派工" name="0" /> -->
<el-tab-pane label="开工" name="1" /> <el-tab-pane label="已排产" name="1" />
<el-tab-pane label="生产" name="2" /> <el-tab-pane label="试产" name="6" />
<el-tab-pane label="量产" name="2" />
<el-tab-pane label="暂停" name="3" /> <el-tab-pane label="暂停" name="3" />
<el-tab-pane label="完工" name="4" /> <el-tab-pane label="完工" name="4" />
<el-tab-pane label="入库" name="5" /> <el-tab-pane label="待入库" name="7" />
<el-tab-pane label="已入库" name="5" />
</el-tabs> </el-tabs>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<!-- 投料进度子表的列表 --> <!-- 投料进度子表的列表 -->
@ -157,7 +159,7 @@
<el-table-column label="计划结束时间" align="center" sortable prop="planEndTime" :formatter="dateFormatter2" width="150px"/> <el-table-column label="计划结束时间" align="center" sortable prop="planEndTime" :formatter="dateFormatter2" width="150px"/>
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="领料人" align="center" prop="productionManagerName" /> <el-table-column label="领料人" align="center" prop="productionManagerName" />
<el-table-column label="制浆线" align="center" prop="feedingPipeline"> <el-table-column label="生产线" align="center" prop="feedingPipeline">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.MES_FEEDING_PIPELINE" :value="scope.row.feedingPipeline" /> <dict-tag :type="DICT_TYPE.MES_FEEDING_PIPELINE" :value="scope.row.feedingPipeline" />
</template> </template>
@ -421,7 +423,7 @@ const handleStatus = async (planCode:string, id: number,
} }
/** tab 切换 */ /** tab 切换 */
let activeName = '0' let activeName = '1'
const handleTabClick = (tab: TabsPaneContext) => { const handleTabClick = (tab: TabsPaneContext) => {
queryParams.status = tab.paneName queryParams.status = tab.paneName
handleQuery() handleQuery()

Loading…
Cancel
Save