|
@@ -1,3 +1,75 @@
|
|
|
+
|
|
|
+<template>
|
|
|
+ <van-form @submit="submitNextActivity" 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-cell-group>
|
|
|
+ <div style="margin: 16px;">
|
|
|
+ <van-button round block type="primary" native-type="submit">
|
|
|
+ 转件
|
|
|
+ </van-button>
|
|
|
+ </div>
|
|
|
+ </van-form>
|
|
|
+</template>
|
|
|
+
|
|
|
<script setup lang="ts">
|
|
|
import { onMounted } from 'vue'
|
|
|
import { useRoute } from 'vue-router';
|
|
@@ -6,16 +78,52 @@ import reqest from "@/utils/request";
|
|
|
|
|
|
|
|
|
const route = useRoute();
|
|
|
-const { activityInstanceId, participantId } = route.query as {
|
|
|
+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 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)
|
|
@@ -35,19 +143,18 @@ const jsonToFormData = (json: any): FormData | null => {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+/** 初始化表单数据 */
|
|
|
+const initFormData= async () => {
|
|
|
+ const result = await reqest.get(`/business/Leave/mobileAdd?flowInstanceId=${flowInstanceId}`)
|
|
|
+ formData.value = result.data
|
|
|
+}
|
|
|
+
|
|
|
/** 初始化 */
|
|
|
onMounted(() => {
|
|
|
- activityData.activityInstanceId='018f23b914660a07729e8f224db60203'
|
|
|
- activityData.participantId='018f23b9148b0a07729e8f224db60205'
|
|
|
- activityData.flowOpinion='{"id":"018f23b914970a07729e8f224db60206","opinionContent":"同意","opinionTime":"2024-04-28"}'
|
|
|
- submitNextActivity()
|
|
|
+ initFormData()
|
|
|
})
|
|
|
</script>
|
|
|
|
|
|
-<template>
|
|
|
- <div class="Leave_box"></div>
|
|
|
-</template>
|
|
|
-
|
|
|
<style lang="scss" scoped>
|
|
|
@import "./index.scss";
|
|
|
</style>
|