|
@@ -1,283 +0,0 @@
|
|
|
-
|
|
|
-<template>
|
|
|
- <flow-form :data="formData" @submit="submitNextActivity">
|
|
|
- <card title="基础信息">
|
|
|
- <van-form required="true">
|
|
|
- <van-cell-group inset>
|
|
|
- <van-field
|
|
|
- v-model="formData.userNickname"
|
|
|
- name="请假人"
|
|
|
- label="请假人"
|
|
|
- placeholder="请假人"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '未获取请假人' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.deptName"
|
|
|
- name="所在部门"
|
|
|
- label="所在部门"
|
|
|
- placeholder="所在部门"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '未获取所在部门' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.createTime"
|
|
|
- name="申请时间"
|
|
|
- label="申请时间"
|
|
|
- placeholder="申请时间"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '请填写申请时间' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveType"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- name="休假类型"
|
|
|
- label="休假类型"
|
|
|
- placeholder="点击选择休假类型"
|
|
|
- :rules="[{ required: true, message: '请选择休假类型' }]"
|
|
|
- @click="showPicker = true"
|
|
|
- />
|
|
|
- <van-popup v-model:show="showPicker" position="bottom">
|
|
|
- <van-picker
|
|
|
- :columns="columns"
|
|
|
- @confirm="onConfirm"
|
|
|
- @cancel="showPicker = false"
|
|
|
- />
|
|
|
- </van-popup>
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveDays"
|
|
|
- name="休假天数"
|
|
|
- label="休假天数"
|
|
|
- placeholder="休假天数"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '请填写休假天数' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveReason"
|
|
|
- name="请假原因"
|
|
|
- label="请假原因"
|
|
|
- placeholder="请假原因"
|
|
|
- type="textarea"
|
|
|
- rows="3"
|
|
|
- autosize
|
|
|
- :rules="[{ required: true, message: '请填写休假原因' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveDays"
|
|
|
- name="休假天数"
|
|
|
- label="休假天数"
|
|
|
- placeholder="休假天数"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '请填写休假天数' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveReason"
|
|
|
- name="请假原因"
|
|
|
- label="请假原因"
|
|
|
- placeholder="请假原因"
|
|
|
- type="textarea"
|
|
|
- rows="3"
|
|
|
- autosize
|
|
|
- :rules="[{ required: true, message: '请填写休假原因' }]"
|
|
|
- />
|
|
|
- </van-cell-group>
|
|
|
- </van-form>
|
|
|
- </card>
|
|
|
- <card title="详情信息">
|
|
|
- <template #right>
|
|
|
- <button class="add_btn" @click="popupShow = true">新增</button>
|
|
|
- </template>
|
|
|
- <template #default>
|
|
|
- <van-cell-group inset>
|
|
|
- <van-field
|
|
|
- v-model="formData.userNickname"
|
|
|
- name="请假人"
|
|
|
- label="请假人"
|
|
|
- placeholder="请假人"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '未获取请假人' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.deptName"
|
|
|
- name="所在部门"
|
|
|
- label="所在部门"
|
|
|
- placeholder="所在部门"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '未获取所在部门' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.createTime"
|
|
|
- name="申请时间"
|
|
|
- label="申请时间"
|
|
|
- placeholder="申请时间"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '请填写申请时间' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveType"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- name="休假类型"
|
|
|
- label="休假类型"
|
|
|
- placeholder="点击选择休假类型"
|
|
|
- :rules="[{ required: true, message: '请选择休假类型' }]"
|
|
|
- @click="showPicker = true"
|
|
|
- />
|
|
|
- <van-popup v-model:show="showPicker" position="bottom">
|
|
|
- <van-picker
|
|
|
- :columns="columns"
|
|
|
- @confirm="onConfirm"
|
|
|
- @cancel="showPicker = false"
|
|
|
- />
|
|
|
- </van-popup>
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveDays"
|
|
|
- name="休假天数"
|
|
|
- label="休假天数"
|
|
|
- placeholder="休假天数"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '请填写休假天数' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveReason"
|
|
|
- name="请假原因"
|
|
|
- label="请假原因"
|
|
|
- placeholder="请假原因"
|
|
|
- type="textarea"
|
|
|
- rows="3"
|
|
|
- autosize
|
|
|
- :rules="[{ required: true, message: '请填写休假原因' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveDays"
|
|
|
- name="休假天数"
|
|
|
- label="休假天数"
|
|
|
- placeholder="休假天数"
|
|
|
- readonly
|
|
|
- :rules="[{ required: true, message: '请填写休假天数' }]"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.leaveReason"
|
|
|
- name="请假原因"
|
|
|
- label="请假原因"
|
|
|
- placeholder="请假原因"
|
|
|
- type="textarea"
|
|
|
- rows="3"
|
|
|
- autosize
|
|
|
- :rules="[{ required: true, message: '请填写休假原因' }]"
|
|
|
- />
|
|
|
- </van-cell-group>
|
|
|
- </template>
|
|
|
- </card>
|
|
|
- </flow-form>
|
|
|
- <van-popup class="detail-popup" v-model:show="popupShow" position="bottom">
|
|
|
- <h4 class="title">详细信息新增</h4>
|
|
|
- <van-cell-group inset>
|
|
|
- <date-time-range
|
|
|
- label="起始时间"
|
|
|
- v-model="dateTimeRange"
|
|
|
- placeholder="请选择起始时间"
|
|
|
- />
|
|
|
- </van-cell-group>
|
|
|
- <div class="fixed-btn">
|
|
|
- <van-button round block type="primary" @click="saveHandle">
|
|
|
- 保存
|
|
|
- </van-button>
|
|
|
- </div>
|
|
|
- </van-popup>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script setup lang="ts">
|
|
|
-import { useRoute } from 'vue-router';
|
|
|
-import { FlowDTO, getNextActivity } from '@/service/flow';
|
|
|
-import reqest from "@/utils/request";
|
|
|
-import DateTimeRange from '@/components/dateTimeRange.vue';
|
|
|
-import FlowForm from '@/components/flowForm.vue';
|
|
|
-import Card from '@/components/card.vue';
|
|
|
-
|
|
|
-const popupShow = ref<boolean>(false)
|
|
|
-const route = useRoute();
|
|
|
-const formData = ref({
|
|
|
- instanceId: undefined,
|
|
|
- id: undefined,
|
|
|
- leaveHours: undefined,
|
|
|
- userNickname: undefined,
|
|
|
- deptName: undefined,
|
|
|
- createTime: undefined,
|
|
|
- leaveNo: undefined,
|
|
|
- leaveType: undefined,
|
|
|
- leaveDays: undefined,
|
|
|
- leaveReason: undefined,
|
|
|
- leaveTimeCreateList: [],
|
|
|
-})
|
|
|
-const dateTimeRange = ref("2025-10-02 10:30:00")
|
|
|
-const showPicker = ref(false);
|
|
|
-const columns = [
|
|
|
- { text: '事假', value: '11' },
|
|
|
- { text: '病假', value: '12' },
|
|
|
- { text: '婚假', value: '13' },
|
|
|
- { text: '产假', value: '14' },
|
|
|
- { text: '陪产假', value: '15' },
|
|
|
- { text: '工伤', value: '16' },
|
|
|
- { text: '年假', value: '17' },
|
|
|
- { text: '调休', value: '18' },
|
|
|
- { text: '其他', value: '20' },
|
|
|
- ];
|
|
|
-const { activityInstanceId, participantId,flowInstanceId } = route.query as {
|
|
|
- activityInstanceId: string;
|
|
|
- participantId: string;
|
|
|
- flowInstanceId: string;
|
|
|
-};
|
|
|
-const activityData: FlowDTO = {
|
|
|
- activityInstanceId,
|
|
|
- participantId,
|
|
|
- flowOpinion: ''
|
|
|
-}
|
|
|
-const onConfirm = ({ selectedOptions }) => {
|
|
|
- formData.leaveType = selectedOptions[0]?.text;
|
|
|
- showPicker.value = false;
|
|
|
-};
|
|
|
-const submitNextActivity = async () => {
|
|
|
- //更新表单业务数据
|
|
|
- await reqest.post("/business/Leave/update",formData)
|
|
|
- //工作流转件
|
|
|
- activityData.activityInstanceId='018f23b914660a07729e8f224db60203'
|
|
|
- activityData.participantId='018f23b9148b0a07729e8f224db60205'
|
|
|
- activityData.flowOpinion='{"id":"018f23b914970a07729e8f224db60206","opinionContent":"同意","opinionTime":"2024-04-28"}'
|
|
|
- const result = await getNextActivity(jsonToFormData(activityData))
|
|
|
- // getNextActivity(activityData).then(result => {
|
|
|
- // console.log(result)
|
|
|
- // }).catch((err) => {
|
|
|
- // console.error(err)
|
|
|
- // })
|
|
|
-}
|
|
|
-const jsonToFormData = (json: any): FormData | null => {
|
|
|
- const keys: string[] = Object.keys(json)
|
|
|
- if (keys.length > 0) {
|
|
|
- const formData = new FormData();
|
|
|
- keys.forEach((key) => {
|
|
|
- formData.append(key, (json[key] instanceof Object) ? JSON.stringify(json[key]) : json[key]);
|
|
|
- });
|
|
|
- return formData;
|
|
|
- }
|
|
|
- return null;
|
|
|
-}
|
|
|
-
|
|
|
-/** 初始化表单数据 */
|
|
|
-const initFormData= async () => {
|
|
|
- const result = await reqest.get(`/business/Leave/mobileAdd?flowInstanceId=${flowInstanceId}`)
|
|
|
- formData.value = result.data
|
|
|
-}
|
|
|
-const saveHandle = () => {
|
|
|
-
|
|
|
-}
|
|
|
-/** 初始化 */
|
|
|
-onMounted(() => {
|
|
|
- // initFormData()
|
|
|
-})
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="scss" scoped>
|
|
|
-@import "./index.scss";
|
|
|
-</style>
|