|
@@ -40,22 +40,6 @@
|
|
disabled
|
|
disabled
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <!--
|
|
|
|
- <el-form-item label="责任人" prop="devicePersons">
|
|
|
|
- <el-input type="text" v-model="formData.devicePersons" disabled/>
|
|
|
|
- </el-form-item>
|
|
|
|
-
|
|
|
|
- <el-form-item label="责任人" prop="responsiblePerson">
|
|
|
|
- <el-select v-model="formData.responsiblePerson" filterable clearable style="width: 100%">
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in deptUsers"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.nickname"
|
|
|
|
- :value="item.id"
|
|
|
|
- />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- -->
|
|
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item :label="t('fault.start')" prop="actualStartTime">
|
|
<el-form-item :label="t('fault.start')" prop="actualStartTime">
|
|
@@ -533,10 +517,76 @@ const formData = ref({
|
|
status: undefined,
|
|
status: undefined,
|
|
devicePersons: '',
|
|
devicePersons: '',
|
|
})
|
|
})
|
|
|
|
+
|
|
const formRules = reactive({
|
|
const formRules = reactive({
|
|
name: [{ required: true, message: '工单名称不能为空', trigger: 'blur' }],
|
|
name: [{ required: true, message: '工单名称不能为空', trigger: 'blur' }],
|
|
- responsiblePerson: [{ required: true, message: '责任人不能为空', trigger: 'blur' }],
|
|
|
|
|
|
+ actualStartTime: [{
|
|
|
|
+ required: true,
|
|
|
|
+ message: t('fault.start') + '不能为空',
|
|
|
|
+ trigger: 'change'
|
|
|
|
+ }, {
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
+ const now = dayjs();
|
|
|
|
+ const start = value ? dayjs(Number(value)) : null;
|
|
|
|
+
|
|
|
|
+ // 验证开始时间 <= 当前日期
|
|
|
|
+ if (start && start.isAfter(now)) {
|
|
|
|
+ callback(new Error(t('fault.start') + '不能超过当前日期'));
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const end = formData.value.actualEndTime
|
|
|
|
+ ? dayjs(Number(formData.value.actualEndTime))
|
|
|
|
+ : null;
|
|
|
|
+
|
|
|
|
+ // 只有当结束时间有效时,才比较开始和结束时间
|
|
|
|
+ if (end && end.isValid() && !end.isAfter(now)) {
|
|
|
|
+ if (start && start.isAfter(end)) {
|
|
|
|
+ callback(new Error(t('fault.start') + '不能超过' + t('fault.end')));
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 触发结束时间的重新校验
|
|
|
|
+ if (formRef.value) {
|
|
|
|
+ formRef.value.validateField('actualEndTime', () => {});
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ callback();
|
|
|
|
+ },
|
|
|
|
+ trigger: 'change'
|
|
|
|
+ }],
|
|
|
|
+ actualEndTime: [{
|
|
|
|
+ required: true,
|
|
|
|
+ message: t('fault.end') + '不能为空',
|
|
|
|
+ trigger: 'change'
|
|
|
|
+ }, {
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
+ const now = dayjs();
|
|
|
|
+ const end = value ? dayjs(Number(value)) : null;
|
|
|
|
+
|
|
|
|
+ // 验证结束时间 <= 当前日期
|
|
|
|
+ if (end && end.isAfter(now)) {
|
|
|
|
+ callback(new Error(t('fault.end') + '不能超过当前日期'));
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const start = formData.value.actualStartTime
|
|
|
|
+ ? dayjs(Number(formData.value.actualStartTime))
|
|
|
|
+ : null;
|
|
|
|
+
|
|
|
|
+ // 验证结束时间 >= 开始时间(仅当开始时间存在时)
|
|
|
|
+ if (start && end && end.isBefore(start)) {
|
|
|
|
+ callback(new Error(t('fault.end') + '必须大于等于' + t('fault.start')));
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ callback();
|
|
|
|
+ },
|
|
|
|
+ trigger: 'change'
|
|
|
|
+ }]
|
|
})
|
|
})
|
|
|
|
+
|
|
const formRef = ref() // 表单 Ref
|
|
const formRef = ref() // 表单 Ref
|
|
|
|
|
|
interface MaterialFormExpose {
|
|
interface MaterialFormExpose {
|
|
@@ -990,8 +1040,6 @@ const resetForm = () => {
|
|
formRef.value?.resetFields()
|
|
formRef.value?.resetFields()
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
materialList.value = []
|
|
materialList.value = []
|
|
const deptId = useUserStore().getUser.deptId
|
|
const deptId = useUserStore().getUser.deptId
|
|
@@ -999,28 +1047,24 @@ onMounted(async () => {
|
|
dept.value = await DeptApi.getDept(deptId)
|
|
dept.value = await DeptApi.getDept(deptId)
|
|
deptUsers.value = await UserApi.getDeptUsersByDeptId(deptId)
|
|
deptUsers.value = await UserApi.getDeptUsersByDeptId(deptId)
|
|
formData.value.deptId = deptId
|
|
formData.value.deptId = deptId
|
|
-
|
|
|
|
try{
|
|
try{
|
|
formType.value = 'update'
|
|
formType.value = 'update'
|
|
// 查询保养工单 主表数据
|
|
// 查询保养工单 主表数据
|
|
const workOrder = await IotMainWorkOrderApi.getIotMainWorkOrder(id);
|
|
const workOrder = await IotMainWorkOrderApi.getIotMainWorkOrder(id);
|
|
formData.value = workOrder
|
|
formData.value = workOrder
|
|
- // 查询保养责任人
|
|
|
|
- // const personId = formData.value.responsiblePerson ? Number(formData.value.responsiblePerson) : 0;
|
|
|
|
- /* UserApi.getUser(personId).then((res) => {
|
|
|
|
- formData.value.responsiblePerson = res.nickname;
|
|
|
|
- }) */
|
|
|
|
// 查询保养工单 明细数据
|
|
// 查询保养工单 明细数据
|
|
const data = await IotMainWorkOrderBomApi.getWorkOrderBOMs(queryParams);
|
|
const data = await IotMainWorkOrderBomApi.getWorkOrderBOMs(queryParams);
|
|
list.value = []
|
|
list.value = []
|
|
if (Array.isArray(data)) {
|
|
if (Array.isArray(data)) {
|
|
- list.value = data.map(item => ({
|
|
|
|
- ...item,
|
|
|
|
- // 这里可以添加必要的字段转换(如果有日期等需要格式化的字段)
|
|
|
|
- lastNaturalDate: item.lastNaturalDate ? dayjs(item.lastNaturalDate).format('YYYY-MM-DD') : null
|
|
|
|
- }))
|
|
|
|
- // 同时查询所有设备的责任人
|
|
|
|
- // await getDevicePersons();
|
|
|
|
|
|
+ // 添加过滤逻辑:只保留 status === 0 的记录
|
|
|
|
+ list.value = data
|
|
|
|
+ .filter(item => item.status === 0) // 关键过滤代码
|
|
|
|
+ .map(item => ({
|
|
|
|
+ ...item,
|
|
|
|
+ lastNaturalDate: item.lastNaturalDate
|
|
|
|
+ ? dayjs(item.lastNaturalDate).format('YYYY-MM-DD')
|
|
|
|
+ : null
|
|
|
|
+ }))
|
|
}
|
|
}
|
|
} catch (error) {
|
|
} catch (error) {
|
|
console.error('数据加载失败:', error)
|
|
console.error('数据加载失败:', error)
|