diff --git a/src/views/backOfficeSystem/service/taskPage/dailyTaskPackage/editAddFormDialog.vue b/src/views/backOfficeSystem/service/taskPage/dailyTaskPackage/editAddFormDialog.vue index 873d65c..4979c45 100644 --- a/src/views/backOfficeSystem/service/taskPage/dailyTaskPackage/editAddFormDialog.vue +++ b/src/views/backOfficeSystem/service/taskPage/dailyTaskPackage/editAddFormDialog.vue @@ -4,25 +4,14 @@
{{ title }}
- 保存 + 保存 关闭
任务包基本信息
- + @@ -50,90 +39,42 @@
任务包下发编辑信息
- + - + 分钟 - + - + - + 公里 - + - -
+
追加打卡
- - + - + @@ -167,25 +105,24 @@ import { ref, reactive, getCurrentInstance, computed, watch } from "vue"; import { updateData } from "@/api/service/dailyTaskPackage"; import DictTag from "@/components/DictTag/index.vue"; import MyTable from "@/components/aboutTable/MyTable.vue"; -import DistributePatrolTeamDialog - from "@/views/backOfficeSystem/service/taskPage/dailyTaskPackage/components/DistributePatrolTeamDialog.vue"; -import AddCheckInCard from "@/views/backOfficeSystem/service/taskPage/dailyTaskPackage/components/addCheckInCard.vue" +import DistributePatrolTeamDialog from "@/views/backOfficeSystem/service/taskPage/dailyTaskPackage/components/DistributePatrolTeamDialog.vue"; +import AddCheckInCard from "@/views/backOfficeSystem/service/taskPage/dailyTaskPackage/components/addCheckInCard.vue"; const { proxy } = getCurrentInstance(); const { D_ZDXL_FGXLRW_YJDJ } = proxy.$dict("D_ZDXL_FGXLRW_YJDJ"); const btnLoading = ref(false); //按钮截流 const title = ref("修改"); const formRef = ref(null); -const addCheckInCardRef = ref(null) +const addCheckInCardRef = ref(null); const infoActive = ref(true); const visible = ref(false); -const checkInCardVisible = ref(false) +const checkInCardVisible = ref(false); const pageData = reactive({ tableConfiger: { - rowKey: 'bddId', + rowKey: "bddId", rowHieght: 61, haveControls: false, - showSelectType: 'checkBox', + showSelectType: "checkBox", defaultSelectKeys: [], loading: false }, @@ -200,9 +137,9 @@ const pageData = reactive({ label: "打卡次数", prop: "xlghDkcs", showSolt: true - }, + } ] -}) +}); //级联选择器配置 const props = defineProps({ @@ -212,7 +149,7 @@ const props = defineProps({ } }); -const emits = defineEmits(['update:modelValue', 'ok']); +const emits = defineEmits(["update:modelValue", "ok"]); const dialogFormVisible = computed({ get() { @@ -221,7 +158,7 @@ const dialogFormVisible = computed({ set(val) { emits("update:modelValue", val); } -}) +}); //表单数据 const form = ref({ @@ -230,31 +167,31 @@ const form = ref({ const isButtonDisabled = computed(() => { // const target = new Date('2025-09-18') - const target = new Date(form.value?.rwRq) - const now = new Date() + const target = new Date(form.value?.rwRq); + const now = new Date(); // 只比较日期,忽略时间 - return target.setHours(0, 0, 0, 0) < now.setHours(0, 0, 0, 0) -}) + return target.setHours(0, 0, 0, 0) < now.setHours(0, 0, 0, 0); +}); const disabled = computed(() => { // const targetDate = new Date(form.value?.rwRq); // const today = new Date(); - return (form.value?.rwZt === '03' || isButtonDisabled.value); -}) + return form.value?.rwZt === "03" || isButtonDisabled.value; +}); // 打卡点验证规则 const checkPointRules = [ - { required: true, message: '请输入打卡次数', trigger: 'change' }, + { required: true, message: "请输入打卡次数", trigger: "change" }, { validator: (rule, value, callback) => { if (value < 1) { - callback(new Error('打卡次数必须大于0')); + callback(new Error("打卡次数必须大于0")); } else { callback(); } }, - trigger: 'change' + trigger: "change" } ]; @@ -287,22 +224,22 @@ const rules = reactive({ message: "请填写盘查车辆", trigger: "change" } - ], + ] }); //新增 function open(row = {}, type) { - infoActive.value = type === 'view'; + infoActive.value = type === "view"; form.value = { ...row, xfbbName: row?.xfxz }; form.value?.bddList?.forEach((item, index) => { - item.index = index // 直接添加index属性 - }) + item.index = index; // 直接添加index属性 + }); - pageData.tableConfiger.defaultSelectKeys = form.value?.bddList?.map(i => { - if (i?.selected) return i?.bddId - }) + pageData.tableConfiger.defaultSelectKeys = form.value?.bddList?.map((i) => { + if (i?.selected) return i?.bddId; + }); - title.value = type === 'view' ? '查看详情' : "编辑信息"; + title.value = type === "view" ? "查看详情" : "编辑信息"; dialogFormVisible.value = true; } @@ -314,102 +251,107 @@ function close() { const handleChange = (val) => { form.value.xfbbId = val?.id; - form.value.xfbbQwJlId = val?.xfbbQwJlId?.[0] + form.value.xfbbQwJlId = val?.xfbbQwJlId?.[0]; form.value.xfbbName = val?.xfbbName; -} +}; -const selectList = ref([]) +const selectList = ref([]); const handleChooseDataChange = (event) => { - selectList.value = [...event] -} + selectList.value = [...event]; +}; // 保存原始bddList的ID用于对比 -const disabledIds = ref(new Set()) +const disabledIds = ref(new Set()); const updateDisabledIds = () => { - disabledIds.value = new Set(form.value?.bddList?.map(i => i.bddId)) -} + disabledIds.value = new Set(form.value?.bddList?.map((i) => i.bddId)); +}; const selectable = (row) => { - return !disabledIds.value.has(row.bddId) -} + return !disabledIds.value.has(row.bddId); +}; const handleSelectChange = (selection) => { - pageData.selectCheckList = selection + pageData.selectCheckList = selection; // 添加新项目 - const newItems = selection.filter(item => !disabledIds.value.has(item.bddId)) - form.value.bddList = [...form.value.bddList, ...newItems] + const newItems = selection.filter( + (item) => !disabledIds.value.has(item.bddId) + ); + form.value.bddList = [...form.value.bddList, ...newItems]; // 更新禁用ID集合 - updateDisabledIds() - emits("ok", false) -} + updateDisabledIds(); + emits("ok", false); +}; // 监听form.bddList的变化,确保禁用集合同步更新 -watch(() => form.value.bddList, () => { - updateDisabledIds() -}, { deep: true }) +watch( + () => form.value.bddList, + () => { + updateDisabledIds(); + }, + { deep: true } +); const checkInCardOpen = () => { - addCheckInCardRef.value?.open(form.value) -} + addCheckInCardRef.value?.open(form.value); +}; -const fieldErrors = ref({}) +const fieldErrors = ref({}); // 检查指定索引是否有错误 const hasError = (index) => { - const propPath = `bddList[${index}].xlghDkcs` - return !!fieldErrors.value[propPath] -} + const propPath = `bddList[${index}].xlghDkcs`; + return !!fieldErrors.value[propPath]; +}; // 获取指定索引的错误信息 const getError = (index) => { - const propPath = `bddList[${index}].xlghDkcs` - return fieldErrors.value[propPath] || '' -} + const propPath = `bddList[${index}].xlghDkcs`; + return fieldErrors.value[propPath] || ""; +}; // 验证单个字段 const validateField = async (propPath) => { return new Promise((resolve) => { formRef.value.validateField(propPath, (errorMessage) => { - fieldErrors.value[propPath] = errorMessage - resolve(!errorMessage) - }) - }) -} + fieldErrors.value[propPath] = errorMessage; + resolve(!errorMessage); + }); + }); +}; const validateAllCheckpoints = async () => { - if (!form.value.bddList) return true - const validations = form.value?.bddList?.map((_, index) => - validateField(`bddList[${index}].xlghDkcs`) - ) || [] + if (!form.value.bddList) return true; + const validations = + form.value?.bddList?.map((_, index) => + validateField(`bddList[${index}].xlghDkcs`) + ) || []; - const results = await Promise.all(validations) - return results.every(result => result) -} + const results = await Promise.all(validations); + return results.every((result) => result); +}; //提交 const submit = async () => { try { - await validateAllCheckpoints() - await formRef.value.validate() + await validateAllCheckpoints(); + await formRef.value.validate(); - await updateData({ ...form.value, bddList: selectList.value || [] }) + await updateData({ ...form.value, bddList: selectList.value || [] }); proxy.$message({ type: "success", message: "修改成功" }); dialogFormVisible.value = false; - emits("ok") - + emits("ok"); } catch (error) { console.log(error); } -} +}; - -defineExpose({ open }) +defineExpose({ open });