feat(mes): 修改执行生产流转卡为完成生产流转卡

pull/871/MERGE
YunaiV 2026-04-04 20:22:47 +08:00
parent 0c4ee24dd3
commit 23799e7f21
5 changed files with 26 additions and 23 deletions

View File

@ -55,9 +55,9 @@ export const ProCardApi = {
return await request.put({ url: `/mes/pro/card/submit?id=` + id })
},
// 执行生产流转卡
executeCard: async (id: number) => {
return await request.put({ url: `/mes/pro/card/execute?id=` + id })
// 完成生产流转卡
finishCard: async (id: number) => {
return await request.put({ url: `/mes/pro/card/finish?id=` + id })
},
// 取消生产流转卡

View File

@ -268,6 +268,7 @@ export enum DICT_TYPE {
MES_INDICATOR_TYPE = 'mes_indicator_type', // MES 检测项类型
MES_QC_RESULT_TYPE = 'mes_qc_result_type', // MES 质检结果值类型
MES_DEFECT_LEVEL = 'mes_defect_level', // MES 缺陷等级
MES_DEFECT_TYPE = 'mes_defect_type', // MES 缺陷检测项类型
MES_PRO_WORK_ORDER_STATUS = 'mes_pro_work_order_status', // MES 生产工单状态
MES_PRO_WORK_ORDER_SOURCE_TYPE = 'mes_pro_work_order_source_type', // MES 工单来源类型
MES_PRO_WORK_ORDER_TYPE = 'mes_pro_work_order_type', // MES 工单类型

View File

@ -86,8 +86,8 @@
>
</el-button>
<el-button v-if="isExecute" @click="handleExecute" type="success" :disabled="formLoading">
<el-button v-if="isFinish" @click="handleFinish" type="success" :disabled="formLoading">
</el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
@ -96,11 +96,11 @@
<script setup lang="ts">
import { ProCardApi, ProCardVO } from '@/api/mes/pro/card'
import { generateRandomStr } from '@/utils'
import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record'
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import CardProcessList from './CardProcessList.vue'
import { MesProCardStatusEnum } from '@/views/mes/utils/constants'
import { MesProCardStatusEnum, MesAutoCodeRuleCode } from '@/views/mes/utils/constants'
defineOptions({ name: 'CardForm' })
const emit = defineEmits(['success'])
@ -108,16 +108,16 @@ const emit = defineEmits(['success'])
const message = useMessage() //
const dialogVisible = ref(false) //
const formLoading = ref(false) //
const formType = ref<string>('create') // 表单的类型create / update / execute / detail
const formType = ref<string>('create') // 表单的类型create / update / finish / detail
const isEditable = computed(() => ['create', 'update'].includes(formType.value)) //
const isExecute = computed(() => formType.value === 'execute') //
const isDetail = computed(() => ['detail', 'execute'].includes(formType.value)) //
const isHeaderReadonly = computed(() => ['execute', 'detail'].includes(formType.value)) //
const isFinish = computed(() => formType.value === 'finish') //
const isDetail = computed(() => ['detail', 'finish'].includes(formType.value)) //
const isHeaderReadonly = computed(() => ['finish', 'detail'].includes(formType.value)) //
const dialogTitle = computed(() => {
const titles: Record<string, string> = {
create: '新增流转卡',
update: '编辑流转卡',
execute: '执行流转卡',
finish: '完成流转卡',
detail: '流转卡详情'
}
return titles[formType.value] || formType.value
@ -142,8 +142,8 @@ const formRef = ref() // 表单 Ref
const originalFormData = ref<string>('') //
/** 生成流转卡编码 */
const generateCode = () => {
formData.value.code = 'CARD' + generateRandomStr(10)
const generateCode = async () => {
formData.value.code = await AutoCodeRecordApi.generateAutoCode(MesAutoCodeRuleCode.PRO_CARD_CODE)
}
/** 打开弹窗 */
@ -211,13 +211,13 @@ const handleSubmit = async () => {
}
}
/** 执行流转卡 */
const handleExecute = async () => {
/** 完成流转卡 */
const handleFinish = async () => {
try {
await message.confirm('确认执行该流转卡?')
await message.confirm('确认完成该流转卡?')
formLoading.value = true
await ProCardApi.executeCard(formData.value.id!)
message.success('执行成功')
await ProCardApi.finishCard(formData.value.id!)
message.success('完成成功')
dialogVisible.value = false
emit('success')
} catch {

View File

@ -109,11 +109,11 @@
<el-button
link
type="success"
@click="openForm('execute', scope.row.id)"
v-hasPermi="['mes:pro-card:update']"
@click="openForm('finish', scope.row.id)"
v-hasPermi="['mes:pro-card:finish']"
v-if="scope.row.status === MesProCardStatusEnum.CONFIRMED"
>
执行
完成
</el-button>
<el-button
link

View File

@ -465,7 +465,9 @@ export const MesAutoCodeRuleCode = {
PRO_PROCESS_CODE: 'PRO_PROCESS_CODE', // 工序编码
PRO_ROUTE_CODE: 'PRO_ROUTE_CODE', // 工艺路线编码
PRO_FEEDBACK_CODE: 'PRO_FEEDBACK_CODE', // 生产报工单编码
PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE' // 生产工单编码
PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE', // 生产工单编码
QC_DEFECT_CODE: 'QC_DEFECT_CODE', // 缺陷类型编码
PRO_CARD_CODE: 'PRO_CARD_CODE' // 流转卡编码
} as const
/** 获取物料/产品标识的标签 */