gaoluyang
2025-11-17 c46bf7475742e9b50a8fdcc8d592ba3a86b2754d
src/pages/cooperativeOffice/collaborativeApproval/detail.vue
@@ -39,9 +39,48 @@
      <u-form-item prop="approveTime" label="申请日期" required>
        <u-input
          v-model="form.approveTime"
          placeholder="请选择"
          readonly
          placeholder="请选择"
          @click="showDatePicker"
        />
      </u-form-item>
      <!-- approveType=2 请假相关字段 -->
      <template v-if="approveType === 2">
        <u-form-item prop="startDate" label="请假开始时间" required>
          <u-input
            v-model="form.startDate"
            readonly
            placeholder="请选择开始时间"
            @click="showStartDatePicker"
          />
        </u-form-item>
        <u-form-item prop="endDate" label="请假结束时间" required>
          <u-input
            v-model="form.endDate"
            readonly
            placeholder="请选择结束时间"
            @click="showEndDatePicker"
          />
        </u-form-item>
      </template>
      <!-- approveType=3 出差相关字段 -->
      <u-form-item v-if="approveType === 3" prop="location" label="出差地点" required>
        <u-input
          v-model="form.location"
          placeholder="请输入出差地点"
          clearable
        />
      </u-form-item>
      <!-- approveType=4 报销相关字段 -->
      <u-form-item v-if="approveType === 4" prop="price" label="报销金额" required>
        <u-input
          v-model="form.price"
          type="number"
          placeholder="请输入报销金额"
          clearable
        />
      </u-form-item>
    </u-form>
@@ -56,15 +95,37 @@
    />
    <!-- 日期选择器 -->
    <u-popup v-model="showDate" mode="bottom">
      <u-datetime-picker
    <up-popup :show="showDate" mode="bottom" @close="showDate = false">
      <up-datetime-picker
        :show="true"
        v-model="currentDate"
        title="选择日期"
        mode="date"
        @confirm="onDateConfirm"
        @cancel="showDate = false"
        mode="date"
      />
    </u-popup>
    </up-popup>
    <!-- 请假开始时间选择器 -->
    <up-popup :show="showStartDate" mode="bottom" @close="showStartDate = false">
      <up-datetime-picker
        :show="true"
        v-model="startDateValue"
        @confirm="onStartDateConfirm"
        @cancel="showStartDate = false"
        mode="date"
      />
    </up-popup>
    <!-- 请假结束时间选择器 -->
    <up-popup :show="showEndDate" mode="bottom" @close="showEndDate = false">
      <up-datetime-picker
        :show="true"
        v-model="endDateValue"
        @confirm="onEndDateConfirm"
        @cancel="showEndDate = false"
        mode="date"
      />
    </up-popup>
    <!-- 审核流程区域 -->
    <view class="approval-process">
      <view class="approval-header">
@@ -137,7 +198,11 @@
      approveReason: "",
      checkResult: "",
      tempFileIds: [],
      approverList: [] // 新增字段,存储所有节点的审批人id
      approverList: [], // 新增字段,存储所有节点的审批人id
      startDate: "",
      endDate: "",
      location: "",
      price: ""
   },
   rules: {
      approveTime: [{ required: false, message: "请输入", trigger: "change" },],
@@ -145,6 +210,10 @@
      approveDeptId: [{ required: true, message: "请输入", trigger: "blur" }],
      approveReason: [{ required: true, message: "请输入", trigger: "blur" }],
      checkResult: [{ required: false, message: "请输入", trigger: "blur" }],
      startDate: [{ required: false, message: "请选择开始时间", trigger: "change" }],
      endDate: [{ required: false, message: "请选择结束时间", trigger: "change" }],
      location: [{ required: false, message: "请输入出差地点", trigger: "blur" }],
      price: [{ required: false, message: "请输入报销金额", trigger: "blur" }],
   },
});
const { form, rules } = toRefs(data);
@@ -158,8 +227,13 @@
const formRef = ref(null);
const message = ref("");
const showDate = ref(false)
const currentDate = ref([new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate()])
const currentDate = ref(Date.now())
const showStartDate = ref(false)
const startDateValue = ref(Date.now())
const showEndDate = ref(false)
const endDateValue = ref(Date.now())
const userStore = useUserStore()
const approveType = ref(0)
const getProductOptions = () => {
   getDept().then((res) => {
@@ -184,6 +258,7 @@
      
      // 从本地存储获取参数
      operationType.value = uni.getStorageSync('operationType') || 'add';
      approveType.value = uni.getStorageSync('approveType') || 0;
      
      // 如果是编辑模式,从本地存储获取数据
      if (operationType.value === 'edit') {
@@ -250,6 +325,7 @@
   // 清除本地存储的数据
  uni.removeStorageSync('operationType');
   uni.removeStorageSync('invoiceLedgerEditRow');
   uni.removeStorageSync('approveType');
  uni.navigateBack();
};
@@ -283,7 +359,7 @@
     // 收集所有节点的审批人id
     console.log('approverNodes---', approverNodes.value)
     form.value.approveUserIds = approverNodes.value.map(node => node.userId).join(',')
     form.value.approveType = 0
     form.value.approveType = approveType.value
     if (operationType.value === "add" || currentApproveStatus.value == 3) {
      approveProcessAdd(form.value).then(res => {
        showToast("提交成功");
@@ -366,6 +442,28 @@
   currentDate.value = formatDateToYMD(e.value)
   showDate.value = false;
}
// 显示请假开始时间选择器
const showStartDatePicker = () => {
   showStartDate.value = true
}
// 确认请假开始时间选择
const onStartDateConfirm = (e) => {
  form.value.startDate = formatDateToYMD(e.value)
   showStartDate.value = false
}
const showEndDatePicker = () => {
   showEndDate.value = true
}
// 确认请假结束时间选择
const onEndDateConfirm = (e) => {
  form.value.endDate = formatDateToYMD(e.value)
   showEndDate.value = false
}
// 获取当前日期并格式化为 YYYY-MM-DD
function getCurrentDate() {
   const today = new Date();
@@ -374,6 +472,7 @@
   const day = String(today.getDate()).padStart(2, "0");
   return `${year}-${month}-${day}`;
}
</script>
<style scoped lang="scss">