style:设备管理-维修单-添加维修项目

main
黄伟杰 2 weeks ago
parent 4a0f6c2130
commit f9d23dc30a

@ -21,7 +21,7 @@
<el-form-item :prop="`${$index}.subjectCode`" :rules="formRules.subjectCode" class="mb-0px!">
<el-input
v-model="row.subjectCode"
:placeholder="t('EquipmentManagement.DvRepair.placeholderLineSubjectCode')"
:placeholder="props.lineMode !== 'edit' ? '' : t('EquipmentManagement.DvRepair.placeholderLineSubjectCode')"
:disabled="props.lineMode !== 'edit'"
/>
</el-form-item>
@ -32,7 +32,7 @@
<el-form-item :prop="`${$index}.subjectName`" :rules="formRules.subjectName" class="mb-0px!">
<el-input
v-model="row.subjectName"
:placeholder="t('EquipmentManagement.DvRepair.placeholderLineSubjectName')"
:placeholder="props.lineMode !== 'edit' ? '' : t('EquipmentManagement.DvRepair.placeholderLineSubjectName')"
:disabled="props.lineMode !== 'edit'"
/>
</el-form-item>
@ -51,7 +51,7 @@
<el-input
type="textarea"
v-model="row.subjectContent"
:placeholder="t('EquipmentManagement.DvRepair.placeholderLineSubjectContent')"
:placeholder="props.lineMode !== 'edit' ? '' : t('EquipmentManagement.DvRepair.placeholderLineSubjectContent')"
:disabled="props.lineMode !== 'edit'"
/>
</el-form-item>
@ -121,16 +121,16 @@
</el-form-item>
</template>
</el-table-column> -->
<!-- <el-table-column align="center" fixed="right" label="操作" width="60">
<el-table-column v-if="props.lineMode === 'edit'" align="center" fixed="right" label="操作" width="80">
<template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button>
<el-button link type="danger" @click="handleDelete($index)"></el-button>
</template>
</el-table-column> -->
</el-table-column>
</el-table>
</el-form>
<!-- <el-row justify="center" class="mt-3">
<el-button @click="handleAdd" round>+ 添加维修项目</el-button>
</el-row> -->
<el-row v-if="props.lineMode === 'edit'" justify="center" class="mt-3">
<el-button @click="handleAdd" round type="primary" plain>+ 添加维修项目</el-button>
</el-row>
</template>
<script setup lang="ts">
import { DvRepairApi } from '@/api/mes/dvrepair'
@ -145,7 +145,31 @@ const formData = ref([])
const formRules = reactive({
repairId: [{ required: true, message: t('EquipmentManagement.DvRepair.validatorLineRepairIdRequired'), trigger: 'blur' }],
subjectId: [{ required: true, message: t('EquipmentManagement.DvRepair.validatorLineSubjectIdRequired'), trigger: 'blur' }],
subjectCode: [{ required: true, message: t('EquipmentManagement.DvRepair.validatorLineSubjectCodeRequired'), trigger: 'blur' }],
subjectCode: [
{ required: true, message: t('EquipmentManagement.DvRepair.validatorLineSubjectCodeRequired'), trigger: 'blur' },
{
validator: (rule: any, value: any, callback: any) => {
const normalized = String(value ?? '').trim()
if (!normalized) {
callback()
return
}
const fullField = String(rule?.fullField ?? rule?.field ?? '')
const indexText = fullField.split('.')[0]
const currentIndex = Number(indexText)
const hasDuplicate = formData.value.some((row: any, idx: number) => {
if (idx === currentIndex) return false
return String(row?.subjectCode ?? '').trim() === normalized
})
if (hasDuplicate) {
callback(new Error('维修编码不能重复'))
return
}
callback()
},
trigger: 'blur',
},
],
subjectContent: [],
remark: [
{
@ -182,7 +206,7 @@ watch(
formData.value = []
// 2. val
if (!val) {
return;
return
}
try {
formLoading.value = true
@ -190,6 +214,7 @@ watch(
} finally {
formLoading.value = false
}
nextTick(() => formRef.value?.clearValidate())
},
{ immediate: true }
)
@ -213,11 +238,13 @@ const handleAdd = () => {
}
row.repairId = props.repairId
formData.value.push(row)
nextTick(() => formRef.value?.clearValidate())
}
/** 删除按钮操作 */
const handleDelete = (index) => {
formData.value.splice(index, 1)
nextTick(() => formRef.value?.clearValidate())
}
/** 表单校验 */
@ -232,6 +259,7 @@ const getData = () => {
const setData = (rows: any[]) => {
formData.value = Array.isArray(rows) ? rows : []
nextTick(() => formRef.value?.clearValidate())
}
defineExpose({ validate, getData, setData })

Loading…
Cancel
Save