You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.9 KiB
121 lines
3.9 KiB
<template>
|
|
<Dialog
|
|
:title="dialogTitle"
|
|
v-model="dialogVisible"
|
|
:close-on-click-modal="true"
|
|
:vLoading="formLoading"
|
|
>
|
|
<template #title>{{ dialogTitle }}</template>
|
|
<el-form>
|
|
<el-form-item label="当前工序">
|
|
<el-input v-model="currentProcess" disabled></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="选择人员">
|
|
<el-select v-model="personSelected">
|
|
<el-option v-for="item in personData" :key="item.workerCode" :label="item.workerName" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="报工数量">
|
|
<el-input-number v-model="reportCount" @change="handleCount"></el-input-number>
|
|
</el-form-item>
|
|
<el-form-item label="工时">
|
|
<el-input-number v-model="workTerm"></el-input-number>
|
|
</el-form-item>
|
|
<el-form-item label="是否已质检">
|
|
<el-switch v-model="checkFlag" active-value="true"> </el-switch>
|
|
</el-form-item>
|
|
<el-form-item label="合格数量">
|
|
<el-input-number
|
|
v-model="qualified"
|
|
:disabled="!checkFlag"
|
|
@change="handleCount"
|
|
></el-input-number>
|
|
</el-form-item>
|
|
<el-form-item label="不合格数量">
|
|
<el-input-number disabled v-model="unqualified"></el-input-number>
|
|
</el-form-item>
|
|
</el-form>
|
|
|
|
<template #footer
|
|
><el-button @click="dialogVisible = false">关闭</el-button>
|
|
<el-button type="primary" @click="saveReport">保存</el-button></template
|
|
>
|
|
</Dialog>
|
|
</template>
|
|
<script lang="ts" setup>
|
|
import { Dialog } from '@/components/Dialog'
|
|
import * as workschedulingApi from '@/api/mes/workScheduling'
|
|
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
|
import dayjs from 'dayjs'
|
|
const message = useMessage() // 消息弹窗
|
|
const { t } = useI18n() // 国际化
|
|
const { wsCache } = useCache()
|
|
const rowData = ref()
|
|
const dialogVisible = ref(false)
|
|
const dialogTitle = ref()
|
|
const formLoading = ref(false)
|
|
const personSelected = ref()
|
|
const currentProcess = ref()
|
|
const personData = ref([{ value: '', label: '' }])
|
|
const reportCount = ref()
|
|
const qualified = ref()
|
|
const checkFlag = ref(false)
|
|
const unqualified = ref(0)
|
|
const workTerm = ref()
|
|
const user = wsCache.get(CACHE_KEY.USER)
|
|
const handleCount = () => {
|
|
if (reportCount.value > rowData.value.planCount) {
|
|
message.alert('报工数量不能超出计划数量!计划数【'+rowData.value.planCount+'】')
|
|
reportCount.value =rowData.value.planCount
|
|
return
|
|
}
|
|
|
|
if (checkFlag) {
|
|
if (reportCount.value < qualified.value) {
|
|
message.alert('合格数不能超出报工数!')
|
|
return
|
|
}
|
|
if (qualified.value == undefined || qualified.value == 0) {
|
|
qualified.value = reportCount.value
|
|
}
|
|
unqualified.value = reportCount.value - qualified.value
|
|
}
|
|
}
|
|
const openDetail = (row: any, titleName: any) => {
|
|
//console.log('workscheduling-finishReport-60', user)
|
|
currentProcess.value = row.workingNode
|
|
rowData.value = row
|
|
dialogVisible.value = true
|
|
dialogTitle.value = titleName
|
|
getCurrentWorkerList(row)
|
|
}
|
|
const getCurrentWorkerList = async (row) => {
|
|
let params = {
|
|
planDayCode: row.planMasterCode,
|
|
processCode: row.workingNode
|
|
}
|
|
personData.value = await workschedulingApi.getCurrentWorkerList(params)
|
|
}
|
|
//提交报工
|
|
const saveReport = () => {
|
|
let data = {
|
|
reportDate: dayjs(new Date()).format('YYYY-MM-DD HH:mm:sss'),
|
|
schedulingCode: rowData.value.schedulingCode,
|
|
processCode: currentProcess.value,
|
|
list: [
|
|
{
|
|
reportCount: reportCount.value,
|
|
workTerm: workTerm.value,
|
|
reportPerson: personSelected.value,
|
|
qualified: qualified.value,
|
|
unqualified: unqualified.value
|
|
}
|
|
]
|
|
}
|
|
workschedulingApi.completeHandle(data)
|
|
}
|
|
// 传递给父类
|
|
const emit = defineEmits(['success', 'close'])
|
|
|
|
defineExpose({ openDetail }) // 提供 open 方法,用于打开弹窗
|
|
</script>
|
|
|