From d127865f14508a73d50c8cc6b89a441e08a853cb Mon Sep 17 00:00:00 2001
From: 13684185576 <2731628804@qq.com>
Date: Wed, 5 Nov 2025 09:32:01 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dailyTaskPackage/editAddFormDialog.vue | 267 +++++++-----------
.../service/taskPage/taskProgress/index.vue | 148 +++++++---
2 files changed, 207 insertions(+), 208 deletions(-)
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 @@
任务包基本信息
-
+
@@ -50,90 +39,42 @@
任务包下发编辑信息
-
+
-
+
分钟
-
+
-
+
-
+
公里
-
+
-
-
+
追加打卡
-
-
+
-
+
-
+
-
+
{{ getError($index) }}
@@ -142,12 +83,8 @@
-
+
@@ -158,7 +95,8 @@
-
+
@@ -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 });