gongchunyi
17 小时以前 492802e4fc1b371ba21a2a490c8dcd67d7c8b29c
fix: 出差和请假审批新增开始与结束日期
已修改3个文件
78 ■■■■ 文件已修改
src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/index.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
@@ -45,6 +45,32 @@
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 请假/出差时间(当 approveType 为 2 或 3 时显示) -->
        <el-row :gutter="30"
                v-if="props.approveType == 2 || props.approveType == 3">
          <el-col :span="12">
            <el-form-item :label="props.approveType == 2 ? '请假开始时间:' : '开始时间:'"
                          prop="startDate">
              <el-date-picker v-model="form.startDate"
                              type="date"
                              value-format="YYYY-MM-DD"
                              format="YYYY-MM-DD"
                              disabled
                              style="width: 100%" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item :label="props.approveType == 2 ? '请假结束时间:' : '结束时间:'"
                          prop="endDate">
              <el-date-picker v-model="form.endDate"
                              type="date"
                              value-format="YYYY-MM-DD"
                              format="YYYY-MM-DD"
                              disabled
                              style="width: 100%" />
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 审批人选择(动态节点) -->
        <el-row :gutter="30">
          <el-col :span="12">
@@ -457,6 +483,8 @@
      approveDeptId: "",
      approveReason: "",
      checkResult: "",
      startDate: "",
      endDate: "",
    },
  });
  const { form } = toRefs(data);
src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
@@ -47,11 +47,11 @@
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 请假时间(仅当 approveType 为 2 时显示) -->
        <!-- 请假/出差时间(当 approveType 为 2 或 3 时显示) -->
        <el-row :gutter="30"
                v-if="props.approveType == 2">
                v-if="props.approveType == 2 || props.approveType == 3">
          <el-col :span="12">
            <el-form-item label="请假开始时间:"
            <el-form-item :label="props.approveType == 2 ? '请假开始时间:' : '开始时间:'"
                          prop="startDate">
              <el-date-picker v-model="form.startDate"
                              type="date"
@@ -63,7 +63,7 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="请假结束时间:"
            <el-form-item :label="props.approveType == 2 ? '请假结束时间:' : '结束时间:'"
                          prop="endDate">
              <el-date-picker v-model="form.endDate"
                              type="date"
@@ -258,10 +258,10 @@
      approveReason: [{ required: true, message: "请输入", trigger: "blur" }],
      checkResult: [{ required: false, message: "请输入", trigger: "blur" }],
      startDate: [
        { required: true, message: "请选择请假开始时间", trigger: "change" },
        { required: true, message: "请选择开始时间", trigger: "change" },
      ],
      endDate: [
        { required: true, message: "请选择请假结束时间", trigger: "change" },
        { required: true, message: "请选择结束时间", trigger: "change" },
      ],
      price: [{ required: true, message: "请输入报销金额", trigger: "blur" }],
      location: [{ required: true, message: "请输入出差地点", trigger: "blur" }],
@@ -388,19 +388,19 @@
      proxy.$modal.msgError("请为所有审批节点选择审批人!");
      return;
    }
    // 当 approveType 为 2 时,校验请假时间
    if (props.approveType == 2) {
    // 当 approveType 为 2 或 3 时,校验请假/出差时间
    if (props.approveType == 2 || props.approveType == 3) {
      if (!form.value.startDate) {
        proxy.$modal.msgError("请选择请假开始时间!");
        proxy.$modal.msgError(props.approveType == 2 ? "请选择请假开始时间!" : "请选择开始时间!");
        return;
      }
      if (!form.value.endDate) {
        proxy.$modal.msgError("请选择请假结束时间!");
        proxy.$modal.msgError(props.approveType == 2 ? "请选择请假结束时间!" : "请选择结束时间!");
        return;
      }
      // 校验结束时间不能早于开始时间
      if (new Date(form.value.endDate) < new Date(form.value.startDate)) {
        proxy.$modal.msgError("请假结束时间不能早于开始时间!");
        proxy.$modal.msgError(props.approveType == 2 ? "请假结束时间不能早于开始时间!" : "结束时间不能早于开始时间!");
        return;
      }
    }
src/views/collaborativeApproval/approvalProcess/index.vue
@@ -186,6 +186,8 @@
  // 动态表格列配置,根据审批类型生成列
  const tableColumnCopy = computed(() => {
    const isLeaveType = currentApproveType.value === 2; // 请假管理
    const isBusinessTripType = currentApproveType.value === 3; // 出差管理
    const showDateRange = isLeaveType || isBusinessTripType; // 是否显示时间段
    const isReimburseType = currentApproveType.value === 4; // 报销管理
    const isQuotationType = currentApproveType.value === 6; // 报价审批
    const isPurchaseType = currentApproveType.value === 5; // 采购审批
@@ -261,19 +263,35 @@
      });
    }
    // 日期列(根据类型动态配置)
    // 基础日期列
    baseColumns.push(
      {
        label: isLeaveType ? "开始日期" : "申请日期",
        prop: isLeaveType ? "startDate" : "approveTime",
        width: 200,
        label: "申请日期",
        prop: "approveTime",
        width: 160,
      },
      {
        label: "审批日期",
        prop: "approveOverTime",
        width: 160,
      }
    );
    // 开始和结束日期列
    if (showDateRange) {
      baseColumns.push(
        {
          label: "开始日期",
          prop: "startDate",
          width: 120,
      },
      {
        label: "结束日期",
        prop: isLeaveType ? "endDate" : "approveOverTime",
          prop: "endDate",
        width: 120,
      }
    );
    }
    // 当前审批人列
    baseColumns.push({