From 1b55096ef30804973080285312eaac9a12023feb Mon Sep 17 00:00:00 2001
From: chengxiangling <291105840@qq.com>
Date: 星期三, 14 五月 2025 20:33:28 +0800
Subject: [PATCH] 提交钣金计划大表调整
---
src/views/basicData/calendar/index.vue | 476 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 325 insertions(+), 151 deletions(-)
diff --git a/src/views/basicData/calendar/index.vue b/src/views/basicData/calendar/index.vue
index ea785cc..1857d29 100644
--- a/src/views/basicData/calendar/index.vue
+++ b/src/views/basicData/calendar/index.vue
@@ -111,7 +111,7 @@
class="auto-height-grid"
>
<template #status="{ row }">
- <vxe-tag v-if="row.type === '1'" status="primary">鍛ㄥ伐浣滄棩</vxe-tag>
+ <vxe-tag v-if="row.type === '1'" status="primary">鍛ㄥ伐浣�</vxe-tag>
<vxe-tag v-if="row.type === '2'" status="success">鑺傚亣鏃�</vxe-tag>
</template>
<template #mark="{ row }">
@@ -393,7 +393,8 @@
v-for="(item, index) in form.applicableTranslate"
:key="index"
>
- {{ item.factory }} - {{ item.workshop }} - {{ item.process }}
+ {{ item.factory }} - {{ item.workshop }} -
+ {{ item.process }}
</div>
</div>
</div>
@@ -410,51 +411,147 @@
>
</div>
<div class="grey_bg">
- <el-form
- class="mart10"
- ref="holidaysRef"
- :model="formHolidays"
- :rules="holidayRules"
- :inline="true"
- label-width="105px"
- >
- <template v-for="(item, index) in formHolidays" :key="index">
- <el-form-item label="鑺傚亣鏃ユ弿杩�" prop="description">
- <el-input
- style="width: 130px"
- v-model="item.describe"
- placeholder="璇疯緭鍏ユ弿杩�"
- />
- </el-form-item>
- <el-form-item label="寮�濮嬫椂闂�" prop="startdate">
- <el-date-picker
- style="width: 130px"
- clearable
- v-model="item.startdate"
- type="date"
- :disabled-date="handleDisabledDate"
- :default-value="form.effectiveDate"
- placeholder="閫夋嫨鏃ユ湡"
+ <div
+ class="flex_holidays_set"
+ v-for="(item, index) in formHolidays.holidays"
+ :key="index"
+ >
+ <div class="dis_error_wrap">
+ <div class="flex_item">
+ <div class="flex_item_title">
+ <span class="error_require">*</span><span>鑺傚亣鏃ユ弿杩�</span>
+ </div>
+ <div>
+ <el-input
+ style="width: 130px"
+ v-model="item.describe"
+ placeholder="璇疯緭鍏ユ弿杩�"
+ />
+ </div>
+ </div>
+ <div class="error_text" v-if="item.describe == ''">
+ 璇疯緭鍏ヨ妭鍋囨棩鎻忚堪
+ </div>
+ </div>
+ <div class="dis_error_wrap">
+ <div class="flex_item">
+ <div class="flex_item_title">
+ <span class="error_require">*</span><span>寮�濮嬫椂闂�</span>
+ </div>
+ <div>
+ <el-date-picker
+ style="width: 130px"
+ clearable
+ v-model="item.startdate"
+ type="date"
+ :disabled-date="handleDisabledDate"
+ :default-value="form.effectiveDate"
+ placeholder="閫夋嫨鏃ユ湡"
+ >
+ </el-date-picker>
+ </div>
+ </div>
+ <div class="error_text" v-if="item.startdate == ''">
+ 璇疯緭鍏ュ紑濮嬫椂闂�
+ </div>
+ </div>
+ <div class="dis_error_wrap">
+ <div class="flex_item">
+ <div class="flex_item_title">
+ <span class="error_require">*</span><span>缁撴潫鏃堕棿</span>
+ </div>
+ <div>
+ <el-date-picker
+ style="width: 130px"
+ clearable
+ v-model="item.enddate"
+ type="date"
+ :disabled-date="handleDisabledDate"
+ :default-value="form.expiringDate"
+ placeholder="閫夋嫨鏃ユ湡"
+ >
+ </el-date-picker>
+ </div>
+ </div>
+ <div class="error_text" v-if="item.enddate == ''">
+ 璇疯緭鍏ョ粨鏉熸椂闂�
+ </div>
+ </div>
+ <div class="dis_error_wrap">
+ <div class="flex_item">
+ <el-button
+ v-if="formHolidays.length > 1"
+ type="danger"
+ size="small"
+ @click="handleDelSettingHolidays(item)"
+ >鍒犻櫎</el-button
+ >
+ </div>
+ </div>
+ </div>
+ <!-- <el-form
+ class="mart10"
+ ref="holidaysRef"
+ :model="item"
+ :rules="holidayRules"
+ :inline="true"
+ label-width="105px"
+ >
+ <div v-for="(item, index) in formHolidays.holidays" :key="index">
+ <el-form-item
+ label="鑺傚亣鏃ユ弿杩�"
+ :prop="'holidays.' + index + '.describe'"
+ :rules="{ required: true, message: '璇疯緭鍏ヨ妭鍋囨棩鎻忚堪', trigger: 'blur' }"
>
- </el-date-picker>
- </el-form-item>
- <el-form-item label="缁撴潫鏃堕棿" prop="enddate">
- <el-date-picker
- style="width: 130px"
- clearable
- v-model="item.enddate"
- type="date"
- placeholder="閫夋嫨鏃ユ湡"
- :disabled-date="handleDisabledDate"
- :default-value="form.expiringDate"
+ <el-input
+ style="width: 130px"
+ v-model="item.describe"
+ placeholder="璇疯緭鍏ユ弿杩�"
+ />
+ </el-form-item>
+ <el-form-item
+ label="寮�濮嬫椂闂�"
+ :prop="'holidays.' + index + '.startdate'"
+ :rules="{ required: true, message: '璇疯緭鍏ュ紑濮嬫椂闂�', trigger: 'blur' }"
>
- </el-date-picker>
- </el-form-item>
- <el-form-item label="" prop="">
- <el-button v-if="formHolidays.length>1" type="danger" size="small" @click="handleDelSettingHolidays(item)">鍒犻櫎</el-button>
- </el-form-item>
- </template>
- </el-form>
+ <el-date-picker
+ style="width: 130px"
+ clearable
+ v-model="item.startdate"
+ type="date"
+ :disabled-date="handleDisabledDate"
+ :default-value="form.effectiveDate"
+ placeholder="閫夋嫨鏃ユ湡"
+ >
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item
+ label="缁撴潫鏃堕棿"
+ :prop="'holidays.' + index + '.enddate'"
+ :rules="{ required: true, message: '璇疯緭鍏ョ粨鏉熸椂闂�', trigger: 'blur' }"
+ >
+ <el-date-picker
+ style="width: 130px"
+ clearable
+ v-model="item.enddate"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ :disabled-date="handleDisabledDate"
+ :default-value="form.expiringDate"
+ >
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="" prop="">
+ <el-button
+ v-if="formHolidays.length > 1"
+ type="danger"
+ size="small"
+ @click="handleDelSettingHolidays(item)"
+ >鍒犻櫎</el-button
+ >
+ </el-form-item>
+ </div>
+ </el-form> -->
</div>
</div>
</div>
@@ -486,6 +583,7 @@
import { selectProcessNameList } from "@/api/basicData/processRoute.js";
import { ElMessage } from "element-plus";
const { proxy } = getCurrentInstance();
+const holidaysRef = ref(null);
const { aps_factory } = proxy.useDict("aps_factory");
const tableRef = ref();
const calendarList = ref([]);
@@ -510,13 +608,15 @@
},
],
},
- formHolidays: [
- {
- enddate: "",
- startdate: "",
- describe: "",
- },
- ],
+ formHolidays: {
+ holidays: [
+ {
+ enddate: "",
+ startdate: "",
+ describe: "",
+ },
+ ],
+ },
queryParams: {
pageNum: 1,
pageSize: 10,
@@ -560,17 +660,34 @@
},
],
},
- holidayRules: {
- describe: [
- {
- required: true,
- message: "璇疯緭鍏ヨ妭鍋囨棩鎻忚堪",
- trigger: "blur",
- },
- ],
- },
+ // holidayRules: {
+ // describe: [
+ // {
+ // required: true,
+ // message: "璇疯緭鍏ヨ妭鍋囨棩鎻忚堪",
+ // trigger: "blur",
+ // },
+ // ],
+ // startdate: [
+ // {
+ // required: true,
+ // message: "璇疯緭鍏ュ紑濮嬫椂闂�",
+ // trigger: "blur",
+ // },
+ // ],
+ // enddate: [
+ // {
+ // required: true,
+ // message: "璇疯緭鍏ョ粨鏉熸椂闂�",
+ // trigger: "blur",
+ // },
+ // ],
+ // },
});
-const { queryParams, form, rules, formHolidays, holidayRules } = toRefs(data);
+const holidayRules = {
+ holidays: [{ required: true, message: "鑺傚亣鏃ユ槸蹇呭~椤�", trigger: "blur" }],
+};
+const { queryParams, form, rules, formHolidays } = toRefs(data);
const dateType = ref("鍛ㄥ伐浣�");
const dateTypeList = ref([
{
@@ -667,43 +784,43 @@
align: "center",
slots: { default: "mark" },
},
- {
- title: "閫傜敤宸ュ巶",
- field: "applicableFactory",
- width: 200,
- align: "center",
- formatter: ({ cellValue, row, column }) => {
- if (cellValue) {
- for (let i = 0; i < plantList.value.length; i++) {
- if (cellValue === plantList.value[i].plantCode) {
- return plantList.value[i].plantName;
- }
- }
- }
- },
- },
- {
- title: "閫傜敤杞﹂棿",
- field: "applicableWorkshop",
- width: 200,
- align: "center",
- formatter: ({ cellValue, row, column }) => {
- if (cellValue) {
- for (let i = 0; i < shopList.value.length; i++) {
- if (cellValue === shopList.value[i].id) {
- return shopList.value[i].shopName;
- }
- }
- }
- return "";
- },
- },
- {
- title: "閫傜敤宸ュ簭",
- field: "applicableProcess",
- width: 200,
- align: "center",
- },
+ // {
+ // title: "閫傜敤宸ュ巶",
+ // field: "applicableFactory",
+ // width: 200,
+ // align: "center",
+ // formatter: ({ cellValue, row, column }) => {
+ // if (cellValue) {
+ // for (let i = 0; i < plantList.value.length; i++) {
+ // if (cellValue === plantList.value[i].plantCode) {
+ // return plantList.value[i].plantName;
+ // }
+ // }
+ // }
+ // },
+ // },
+ // {
+ // title: "閫傜敤杞﹂棿",
+ // field: "applicableWorkshop",
+ // width: 200,
+ // align: "center",
+ // formatter: ({ cellValue, row, column }) => {
+ // if (cellValue) {
+ // for (let i = 0; i < shopList.value.length; i++) {
+ // if (cellValue === shopList.value[i].id) {
+ // return shopList.value[i].shopName;
+ // }
+ // }
+ // }
+ // return "";
+ // },
+ // },
+ // {
+ // title: "閫傜敤宸ュ簭",
+ // field: "applicableProcess",
+ // width: 200,
+ // align: "center",
+ // },
{
title: "鍒涘缓鑰�",
field: "createBy",
@@ -847,16 +964,19 @@
applicableTranslate: JSON.parse(row.applicableTranslate),
};
if (!row.holidays) {
- formHolidays.value = [
- {
- enddate: "",
- startdate: "",
- describe: "",
- },
- ];
+ formHolidays.value = {
+ holidays: [
+ {
+ enddate: "",
+ startdate: "",
+ describe: "",
+ },
+ ],
+ };
} else {
- formHolidays.value = JSON.parse(row.holidays.value);
+ formHolidays.value.holidays = JSON.parse(row.holidays.value);
}
+ console.log(formHolidays.value.holidays, "formHolidays.value");
openSetHolidays.value = true;
}
// 绂佺敤鏃ユ湡
@@ -864,18 +984,17 @@
const targetDate = moment(date).valueOf();
const startDate = moment(form.value.effectiveDate).valueOf();
const endDate = moment(form.value.expiringDate).valueOf();
- console.log(targetDate, startDate, endDate, "handleDisabledDate");
return targetDate < startDate || targetDate > endDate;
}
// 鍒犻櫎鑺傚亣鏃ヨ缃�
function handleDelSettingHolidays(row) {
- formHolidays.value = formHolidays.value.filter(item=>{
- return item != row
- })
+ formHolidays.value.holidays = formHolidays.value.holidays.filter((item) => {
+ return item != row;
+ });
}
// 娣诲姞鑺傚亣鏃�
function hanldeAddHolidays() {
- formHolidays.value.push({
+ formHolidays.value.holidays.push({
enddate: "",
startdate: "",
describe: "",
@@ -884,46 +1003,74 @@
function handleToggleExpand() {
expand.value = !expand.value;
}
+// const confirmClick = () => {
+// let formList = [predictionFormRef]
+// let resultArr = [];
+// let validate = (form) => {
+// let result = new Promise((resolve, reject) => {
+// form.value.validate(valid => {
+// if (valid) {
+// resolve()
+// } else {
+// reject()
+// }
+// })
+// })
+// resultArr.push(result)
+// }
+// formList.forEach(item => {
+// validate(item)
+// })
+// Promise.all(resultArr).then(() => {
+// saveRule() // 鏍¢獙鎴愬姛涔嬪悗 淇濆瓨鏁版嵁鐨勬柟娉�
+// })
+// }
+// const submitForm = () => {
+// formRef.value.validate((valid) => {
+// if (valid) {
+// alert('submit!');
+// } else {
+// alert('Form is not valid.');
+// return false;
+// }
+// });
+// };
// 鎻愪氦鑺傚亣鏃�
function handleSaveHolidaysForm() {
- proxy.$refs["holidaysRef"].validate((valid) => {
- if (valid) {
- updateCalendar({
- id: form.value.id,
- // content: {
- // weekdays: weekDaysSettingList.value,
- // },
- holidays: formHolidays.value.map((item) => {
- return {
- startdate: moment(item.startdate).format("YY-MM-DD"),
- enddate: moment(item.enddate).format("YY-MM-DD"),
- };
- }),
- // applicable: applicableSettingList.value.map((item) => {
- // return {
- // factory: item.factory.split(";")[0],
- // process: item.process.split(";")[0],
- // workshop: item.workshop.split(";")[0],
- // };
- // }),
- // applicableTranslate: JSON.stringify(
- // applicableSettingList.value.map((item) => {
- // return {
- // factory: item.factory.split(";")[1],
- // process: item.process.split(";")[1],
- // workshop: item.workshop.split(";")[1],
- // };
- // })
- //),
- // applicableCn:
- //},
- }).then((response) => {
- proxy.$modal.msgSuccess("鏂板鎴愬姛");
- open.value = false;
- getList();
- });
+ const hasValidDates = formHolidays.value.holidays.some(
+ (item) => {
+ console.log(item,"some")
+ if(!item.describe !="" && item.startdate !="" && item.enddate!=="" ){
+ return true
+ }else{
+ return false
+ }
+ console.log(hasValidDates, "hasValidDates");
}
- });
+ );
+ console.log(hasValidDates, "hasValidDates");
+ // holidaysRef.value.validate((valid) => {
+ // if (!valid) {
+ // proxy.$modal.msgSuccess("蹇呭~椤逛笉鑳戒负绌�");
+ // }
+ //if (valid) {
+ if (!hasValidDates) {
+ updateCalendar({
+ id: form.value.id,
+ holidays: formHolidays.value.holidays.map((item) => {
+ return {
+ startdate: moment(item.startdate).format("YYYY-MM-DD"),
+ enddate: moment(item.enddate).format("YYYY-MM-DD"),
+ describe: item.describe,
+ };
+ }),
+ }).then((response) => {
+ proxy.$modal.msgSuccess("鏂板鎴愬姛");
+ open.value = false;
+ getList();
+ });
+ }
+ // });
}
/** 鎻愪氦鎸夐挳 */
function submitForm() {
@@ -964,6 +1111,7 @@
};
}),
applicableProcess: form.value.applicableProcess,
+ type: "1",
}).then((response) => {
proxy.$modal.msgSuccess("淇敼鎴愬姛");
open.value = false;
@@ -1005,6 +1153,7 @@
};
})
),
+ type: "1",
// applicableCn:
//},
}).then((response) => {
@@ -1149,12 +1298,20 @@
}
.h300 {
}
-.height_dialog{
+.height_dialog {
height: 400px;
overflow: hidden;
- .height_dialog_scroll{
+ .height_dialog_scroll {
height: 100%;
overflow: auto;
+ }
+}
+.dis_error_wrap {
+ .error_text {
+ margin-left: 20px;
+ font-size: 12px;
+ color: #f56c6c;
+ margin-left: 120px;
}
}
.grey_bg {
@@ -1162,11 +1319,28 @@
width: 100%;
padding: 10px;
box-sizing: border-box;
+ .flex_holidays_set {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ }
.flex_item {
display: flex;
justify-content: flex-start;
align-items: center;
margin-top: 10px;
+ .flex_item_title {
+ width: 85px;
+ color: #606266;
+ font-size: 14px;
+ font-weight: 600;
+ margin-left: 20px;
+ margin-right: 10px;
+ .error_require {
+ color: #f56c6c;
+ margin-right: 5px;
+ }
+ }
.flex_item_dis {
display: flex;
flex-direction: column;
--
Gitblit v1.9.3