gaoluyang
2025-11-07 a72eca88f85e0a2e1b7383697002817d3c8ae01b
src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
@@ -39,6 +39,63 @@
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 请假时间(仅当 approveType 为 2 时显示) -->
        <el-row :gutter="30" v-if="props.approveType == 2">
          <el-col :span="12">
            <el-form-item label="请假开始时间:" prop="leaveStartTime">
              <el-date-picker
                  v-model="form.leaveStartTime"
                  type="date"
                  placeholder="请选择开始日期"
                  value-format="YYYY-MM-DD"
                  format="YYYY-MM-DD"
                  clearable
                  style="width: 100%"
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="请假结束时间:" prop="leaveEndTime">
              <el-date-picker
                  v-model="form.leaveEndTime"
                  type="date"
                  placeholder="请选择结束日期"
                  value-format="YYYY-MM-DD"
                  format="YYYY-MM-DD"
                  clearable
                  style="width: 100%"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 报销金额(仅当 approveType 为 4 时显示) -->
        <el-row v-if="props.approveType == 4">
          <el-col :span="24">
            <el-form-item label="报销金额:" prop="reimbursementAmount">
              <el-input-number
                  v-model="form.reimbursementAmount"
                  placeholder="请输入报销金额"
                  :min="0"
                  :precision="2"
                  :step="0.01"
                  style="width: 100%"
                  clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 出差地点(仅当 approveType 为 3 时显示) -->
        <el-row v-if="props.approveType == 3">
          <el-col :span="24">
            <el-form-item label="出差地点:" prop="businessTripLocation">
              <el-input
                  v-model="form.businessTripLocation"
                  placeholder="请输入出差地点"
                  clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 审批人选择(动态节点) -->
        <el-row>
          <el-col :span="24">
@@ -175,7 +232,11 @@
    approveReason: "",
    checkResult: "",
    tempFileIds: [],
    approverList: [] // 新增字段,存储所有节点的审批人id
    approverList: [], // 新增字段,存储所有节点的审批人id
    leaveStartTime: "", // 请假开始时间
    leaveEndTime: "", // 请假结束时间
    reimbursementAmount: null, // 报销金额
    businessTripLocation: "" // 出差地点
  },
  rules: {
    approveTime: [{ required: false, message: "请输入", trigger: "change" },],
@@ -184,6 +245,10 @@
      approveDeptId: [{ required: true, message: "请输入", trigger: "blur" }],
    approveReason: [{ required: true, message: "请输入", trigger: "blur" }],
    checkResult: [{ required: false, message: "请输入", trigger: "blur" }],
    leaveStartTime: [{ required: true, message: "请选择请假开始时间", trigger: "change" }],
    leaveEndTime: [{ required: true, message: "请选择请假结束时间", trigger: "change" }],
    reimbursementAmount: [{ required: true, message: "请输入报销金额", trigger: "blur" }],
    businessTripLocation: [{ required: true, message: "请输入出差地点", trigger: "blur" }],
  },
});
const { form, rules } = toRefs(data);
@@ -211,7 +276,6 @@
// 打开弹框
const openDialog = (type, row) => {
  console.log('openDialog', type, row)
  operationType.value = type;
  dialogFormVisible.value = true;
   userListNoPageByTenantId().then((res) => {
@@ -278,6 +342,36 @@
    proxy.$modal.msgError("请为所有审批节点选择审批人!")
    return
  }
  // 当 approveType 为 2 时,校验请假时间
  if (props.approveType == 2) {
    if (!form.value.leaveStartTime) {
      proxy.$modal.msgError("请选择请假开始时间!")
      return
    }
    if (!form.value.leaveEndTime) {
      proxy.$modal.msgError("请选择请假结束时间!")
      return
    }
    // 校验结束时间不能早于开始时间
    if (new Date(form.value.leaveEndTime) < new Date(form.value.leaveStartTime)) {
      proxy.$modal.msgError("请假结束时间不能早于开始时间!")
      return
    }
  }
  // 当 approveType 为 3 时,校验出差地点
  if (props.approveType == 3) {
    if (!form.value.businessTripLocation || form.value.businessTripLocation.trim() === '') {
      proxy.$modal.msgError("请输入出差地点!")
      return
    }
  }
  // 当 approveType 为 4 时,校验报销金额
  if (props.approveType == 4) {
    if (!form.value.reimbursementAmount || form.value.reimbursementAmount <= 0) {
      proxy.$modal.msgError("请输入有效的报销金额!")
      return
    }
  }
  proxy.$refs.formRef.validate(valid => {
    if (valid) {
      if (operationType.value === "add" || currentApproveStatus.value == 3) {