fix some thing

main
chenshuichuan 2 years ago
parent b5a4c4677b
commit 7d72b51689

@ -54,4 +54,8 @@ export const FeedingRecordApi = {
getFeedingRecordDetailListByRecordId: async (recordId) => { getFeedingRecordDetailListByRecordId: async (recordId) => {
return await request.get({ url: `/mes/feeding-record/feeding-record-detail/list-by-record-id?recordId=` + recordId }) return await request.get({ url: `/mes/feeding-record/feeding-record-detail/list-by-record-id?recordId=` + recordId })
}, },
// 提交投料记录
updateFeedingRecordStatus: async (id:number, status:string) => {
return await request.put({ url: `/mes/feeding-record/update-status?id=` + id+`&status=`+status })
},
} }

@ -21,6 +21,7 @@ export interface PlanVO {
productionManager: number // 生产主管 productionManager: number // 生产主管
remark: string // 备注 remark: string // 备注
isEnable: boolean // 是否启用 isEnable: boolean // 是否启用
feedingPipeline: string //制浆线
} }
// 生产计划 API // 生产计划 API

@ -20,17 +20,17 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="分类" prop="categoryId"> <!-- <el-form-item label="分类" prop="categoryId">-->
<el-tree-select <!-- <el-tree-select-->
v-model="queryParams.categoryId" <!-- v-model="queryParams.categoryId"-->
:data="categoryList" <!-- :data="categoryList"-->
:props="defaultProps" <!-- :props="defaultProps"-->
check-strictly <!-- check-strictly-->
default-expand-all <!-- default-expand-all-->
placeholder="请输入分类" <!-- placeholder="请输入分类"-->
class="!w-240px" <!-- class="!w-240px"-->
/> <!-- />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <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 @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
@ -57,6 +57,15 @@
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<el-tabs v-model="activeName" @tab-click="handleTabClick">
<el-tab-pane label="产品" name="2" />
<el-tab-pane label="原料" name="1" />
<el-tab-pane label="关键件" name="5" />
<el-tab-pane label="工具" name="3" />
<el-tab-pane label="耗材" name="4" />
<el-tab-pane label="其他" name="0" />
</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">
<el-table-column label="条码" align="center" prop="barCode" /> <el-table-column label="条码" align="center" prop="barCode" />
<el-table-column label="名称" align="center" prop="name" /> <el-table-column label="名称" align="center" prop="name" />
@ -221,4 +230,10 @@ onMounted(async () => {
const categoryData = await ProductCategoryApi.getProductCategorySimpleList() const categoryData = await ProductCategoryApi.getProductCategorySimpleList()
categoryList.value = handleTree(categoryData, 'id', 'parentId') categoryList.value = handleTree(categoryData, 'id', 'parentId')
}) })
/** tab 切换 */
const handleTabClick = (tab: TabsPaneContext) => {
queryParams.categoryId = tab.paneName
handleQuery()
}
</script> </script>

@ -105,7 +105,7 @@
<el-input-number <el-input-number
v-model="row.productPrice" v-model="row.productPrice"
controls-position="right" controls-position="right"
:min="0.01" :min="0.00"
:precision="2" :precision="2"
class="!w-100%" class="!w-100%"
/> />

@ -224,7 +224,7 @@ const open = async (type: string, id?: number, itemList?: ItemRequisitionAndStoc
// //
if(itemList){ if(itemList){
itemFormRef.value.handleItemListAdd(itemList) await itemFormRef.value.handleItemListAdd(itemList)
} }
} }
defineExpose({ open }) // open defineExpose({ open }) // open

@ -126,7 +126,9 @@
</el-table-column> </el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60"> <el-table-column align="center" fixed="right" label="操作" width="60">
<template #default="{ $index }"> <template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button> <el-button @click="handleDelete($index)" link type="danger">
<Icon icon="ep:delete" />
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -266,7 +268,7 @@ const validate = () => {
/** 物料申购会调用 */ /** 物料申购会调用 */
const handleItemListAdd = async (itemList: ItemRequisitionAndStockVO[]) => { const handleItemListAdd = async (itemList: ItemRequisitionAndStockVO[]) => {
//formData.value = []
for (let i = 0; i < itemList.length; i++) { for (let i = 0; i < itemList.length; i++) {
const row = { const row = {
id: undefined, id: undefined,

@ -176,6 +176,15 @@
> >
删除 删除
</el-button> </el-button>
<el-button
link
type="primary"
@click="handleUpdateStatus( scope.row.id, '2')"
v-hasPermi="['mes:feeding-record:update']"
v-if="scope.row.recordStatus=='1'"
>
提交
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -290,4 +299,17 @@ const handleExport = async () => {
onMounted(() => { onMounted(() => {
getList() getList()
}) })
/** 提交记录操作 */
const handleUpdateStatus = async (id: number, status:string) => {
try {
//
await message.confirm("确认提交投料记录?", "一旦提交成功无法撤回!")
//
await FeedingRecordApi.updateFeedingRecordStatus(id,status)
message.success("提交成功!")
//
await getList()
} catch {}
}
</script> </script>

@ -5,7 +5,7 @@
<el-table-column label="原料" align="center" prop="productName" /> <el-table-column label="原料" align="center" prop="productName" />
<el-table-column label="单位" align="center" prop="unitName" /> <el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="需求数量" align="center" prop="number" /> <el-table-column label="需求数量" align="center" prop="number" />
<el-table-column label="已下料" align="center" prop="number" /> <el-table-column label="已下料" align="center" prop="finishNumber" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
</el-table> </el-table>
</ContentWrap> </ContentWrap>

@ -11,6 +11,17 @@
<el-form-item v-show="false" label="计划" prop="planId"> <el-form-item v-show="false" label="计划" prop="planId">
<el-input v-model="formData.planId" placeholder="请输入计划ID" /> <el-input v-model="formData.planId" placeholder="请输入计划ID" />
</el-form-item> </el-form-item>
<el-form-item label="制浆线:" prop="feedingPipeline">
<el-radio-group v-model="formData.feedingPipeline">
<el-radio
v-for="dict in getStrDictOptions(DICT_TYPE.MES_FEEDING_PIPELINE)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="领料人" prop="planId"> <el-form-item label="领料人" prop="planId">
<el-input v-model="formData.workerId" placeholder="请输入领料人" /> <el-input v-model="formData.workerId" placeholder="请输入领料人" />
</el-form-item> </el-form-item>
@ -46,6 +57,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ItemRequisitionApi, ItemRequisitionVO } from '@/api/mes/itemrequisition' import { ItemRequisitionApi, ItemRequisitionVO } from '@/api/mes/itemrequisition'
import {PlanApi} from "@/api/mes/plan"; import {PlanApi} from "@/api/mes/plan";
import {DICT_TYPE, getStrDictOptions} from "@/utils/dict";
/** 生产领料 表单 */ /** 生产领料 表单 */
@ -64,10 +76,12 @@ const formData = ref({
deliveryDate: undefined, deliveryDate: undefined,
planId: undefined, planId: undefined,
workerId: undefined, workerId: undefined,
remark: undefined remark: undefined,
feedingPipeline: undefined
}) })
const formRules = reactive({ const formRules = reactive({
planId: [{ required: true, message: '计划不能为空', trigger: 'blur' }], planId: [{ required: true, message: '计划不能为空', trigger: 'blur' }],
feedingPipeline: [{ required: true, message: '制浆线不能为空', trigger: 'blur' }],
workerId: [{ required: true, message: '下料工人不能为空', trigger: 'blur' }] workerId: [{ required: true, message: '下料工人不能为空', trigger: 'blur' }]
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
@ -113,6 +127,7 @@ const resetForm = () => {
requisitionDate: undefined, requisitionDate: undefined,
deliveryDate: undefined, deliveryDate: undefined,
workerId: undefined, workerId: undefined,
feedingPipeline: undefined,
planId: undefined, planId: undefined,
remark: undefined remark: undefined
} }

@ -52,21 +52,21 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <!-- <el-form-item label="状态" prop="status">-->
<el-select <!-- <el-select-->
v-model="queryParams.status" <!-- v-model="queryParams.status"-->
placeholder="请选择状态" <!-- placeholder="请选择状态"-->
clearable <!-- clearable-->
class="!w-240px" <!-- class="!w-240px"-->
> <!-- >-->
<el-option <!-- <el-option-->
v-for="dict in getIntDictOptions(DICT_TYPE.MES_PLAN_STATUS)" <!-- v-for="dict in getIntDictOptions(DICT_TYPE.MES_PLAN_STATUS)"-->
:key="dict.value" <!-- :key="dict.value"-->
:label="dict.label" <!-- :label="dict.label"-->
:value="dict.value" <!-- :value="dict.value"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="计划开始" prop="planStartTime"> <el-form-item label="计划开始" prop="planStartTime">
<el-date-picker <el-date-picker
v-model="queryParams.planStartTime" v-model="queryParams.planStartTime"
@ -135,33 +135,32 @@
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<el-tabs v-model="activeName" @tab-click="handleTabClick">
<el-tab-pane label="计划" name="0" />
<el-tab-pane label="派工" name="1" />
<el-tab-pane label="开工" name="2" />
<el-tab-pane label="暂停" name="3" />
<el-tab-pane label="完工" name="4" />
<el-tab-pane label="入库" name="5" />
</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">
<el-table-column label="计划编码" align="center" prop="code" /> <el-table-column label="计划编码" align="center" prop="code" min-width="150px" />
<el-table-column label="产品" align="center" prop="productName" min-width="150px"/> <el-table-column label="产品" align="center" prop="productName" min-width="150px"/>
<el-table-column label="任务单" align="center" prop="taskCode" /> <el-table-column label="任务单" align="center" prop="taskCode" min-width="150px" />
<el-table-column label="数量" align="center" prop="planNumber" /> <el-table-column label="数量" align="center" prop="planNumber" />
<el-table-column label="成品数量" align="center" prop="finishNumber" /> <el-table-column label="状态" align="center" prop="status" sortable>
<el-table-column label="状态" align="center" prop="status">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.MES_PLAN_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.MES_PLAN_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="计划开始时间" align="center" sortable prop="planStartTime" :formatter="dateFormatter2" width="150px"/>
label="计划开始时间" <el-table-column label="计划结束时间" align="center" sortable prop="planEndTime" :formatter="dateFormatter2" width="150px"/>
align="center"
prop="planStartTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="计划结束时间"
align="center"
prop="planEndTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="制浆线" align="center" prop="feedingPipeline">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_FEEDING_PIPELINE" :value="scope.row.feedingPipeline" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="250"> <el-table-column label="操作" align="center" fixed="right" width="250">
<template #default="scope"> <template #default="scope">
<el-button <el-button
@ -249,7 +248,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict' import { getIntDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime' import {dateFormatter, dateFormatter2} from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { PlanApi, PlanVO } from '@/api/mes/plan' import { PlanApi, PlanVO } from '@/api/mes/plan'
import PlanForm from './PlanForm.vue' import PlanForm from './PlanForm.vue'
@ -286,6 +285,7 @@ const queryParams = reactive({
productionManagerId: undefined, productionManagerId: undefined,
remark: undefined, remark: undefined,
isEnable: undefined, isEnable: undefined,
feedingPipeline: undefined,
createTime: [] createTime: []
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
@ -393,4 +393,10 @@ const handleStatus = async (planCode:string, id: number,
await getList() await getList()
} catch {} } catch {}
} }
/** tab 切换 */
const handleTabClick = (tab: TabsPaneContext) => {
queryParams.status = tab.paneName
handleQuery()
}
</script> </script>

@ -98,7 +98,9 @@
</el-table-column> </el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60"> <el-table-column align="center" fixed="right" label="操作" width="60">
<template #default="{ $index }"> <template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button> <el-button @click="handleDelete($index)" link type="danger">
<Icon icon="ep:delete" />
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

@ -70,7 +70,7 @@
<el-table-column label="备注" min-width="150"> <el-table-column label="备注" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.remark`" :rules="formRules.remark" class="mb-0px!"> <el-form-item :prop="`${$index}.remark`" :rules="formRules.remark" class="mb-0px!">
<el-input v-model="row.remark" placeholder="请输入备注" /> <el-input v-model="row.remark" placeholder="" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -180,8 +180,27 @@ const setData = (data) => {
formData.value = data formData.value = data
} }
defineExpose({ validate, getData , setData}) defineExpose({ validate, getData , setData})
/** 删除按钮操作 */ /** 复制按钮操作 */
const handleCopy = (row) => { const handleCopy = (row) => {
formData.value.push(row) const newRow = {
id: undefined,
code: undefined,
productId: undefined,
productName: undefined,
planNumber: undefined,
planStartTime: undefined,
planEndTime: undefined,
remark: undefined,
isEnable: undefined,
}
newRow.code = row.code + (Math.floor(Math.random() * 10) + 1)
newRow.productId = row.productId
newRow.remark = row.remark
newRow.isEnable = row.isEnable
newRow.planStartTime = row.planStartTime
newRow.planEndTime = row.planEndTime
newRow.planNumber= row.planNumber
newRow.productName = row.productName
formData.value.push(newRow)
} }
</script> </script>

Loading…
Cancel
Save