|
@@ -2,7 +2,7 @@
|
|
|
<template>
|
|
|
<flow-form :data="formData" @submit="submitNextActivity">
|
|
|
<card title="基础信息">
|
|
|
- <van-form required="true">
|
|
|
+ <van-form required="auto" :readonly="formRead">
|
|
|
<van-cell-group inset>
|
|
|
<van-field
|
|
|
v-model="formData.userNickname"
|
|
@@ -36,7 +36,7 @@
|
|
|
label="休假类型"
|
|
|
placeholder="点击选择休假类型"
|
|
|
:rules="[{ required: true, message: '请选择休假类型' }]"
|
|
|
- @click="showPicker = true"
|
|
|
+ @click="pickerClick"
|
|
|
/>
|
|
|
<van-popup v-model:show="showPicker" position="bottom">
|
|
|
<van-picker
|
|
@@ -70,11 +70,11 @@
|
|
|
</card>
|
|
|
<card title="请假时间信息">
|
|
|
<template #right>
|
|
|
- <button class="add_btn" @click="popupShow = true">新增</button>
|
|
|
+ <button class="add_btn" @click="popupShow = true" v-if="!formRead">新增</button>
|
|
|
</template>
|
|
|
<template #default>
|
|
|
<div v-for="(item,index) in formData.leaveTimeCreateList" :key="index">
|
|
|
- <van-swipe-cell>
|
|
|
+ <van-swipe-cell :disabled="formRead">
|
|
|
<card-cell>
|
|
|
<van-cell title="起始时间" :value="item.startTime" />
|
|
|
<van-cell title="截止时间" :value="item.endTime" />
|
|
@@ -137,31 +137,34 @@ const route = useRoute();
|
|
|
interface FormDataType {
|
|
|
instanceId: string
|
|
|
id: string
|
|
|
- leaveHours: number
|
|
|
+ leaveHours: number | null
|
|
|
userNickname: string
|
|
|
deptName: string
|
|
|
createTime: string
|
|
|
leaveNo: string
|
|
|
- leaveType: number
|
|
|
+ leaveType: number | null
|
|
|
leaveTypeText: string
|
|
|
leaveDays: string
|
|
|
leaveReason: string
|
|
|
leaveTimeCreateList: {
|
|
|
- text: string
|
|
|
+ leaveId: string,
|
|
|
+ startTime: string,
|
|
|
+ endTime: string,
|
|
|
+ bz1: string
|
|
|
}[]
|
|
|
}
|
|
|
const formData = ref<FormDataType>({
|
|
|
- instanceId: undefined,
|
|
|
- id: undefined,
|
|
|
- leaveHours: undefined,
|
|
|
- userNickname: undefined,
|
|
|
- deptName: undefined,
|
|
|
- createTime: undefined,
|
|
|
- leaveNo: undefined,
|
|
|
- leaveType: '11',
|
|
|
- leaveTypeText: undefined,
|
|
|
- leaveDays: undefined,
|
|
|
- leaveReason: undefined,
|
|
|
+ instanceId: '',
|
|
|
+ id: '',
|
|
|
+ leaveHours: null,
|
|
|
+ userNickname: '',
|
|
|
+ deptName: '',
|
|
|
+ createTime: '',
|
|
|
+ leaveNo: '',
|
|
|
+ leaveType: null,
|
|
|
+ leaveTypeText: '',
|
|
|
+ leaveDays: '',
|
|
|
+ leaveReason: '',
|
|
|
leaveTimeCreateList: []
|
|
|
})
|
|
|
const detailData = ref({
|
|
@@ -170,6 +173,9 @@ const detailData = ref({
|
|
|
endTime: '',
|
|
|
bz1: ''
|
|
|
})
|
|
|
+const detailEdit = ref(false)
|
|
|
+const formRead = ref(false)
|
|
|
+const detailIndex = ref<any>(null)
|
|
|
const leaveTypePiker = ref(['11']);
|
|
|
const showPicker = ref(false);
|
|
|
const columns = [
|
|
@@ -183,10 +189,11 @@ const columns = [
|
|
|
{ text: '调休', value: '18' },
|
|
|
{ text: '其他', value: '20' },
|
|
|
];
|
|
|
-const { activityInstanceId, participantId,flowInstanceId } = route.query as {
|
|
|
+const { activityInstanceId, participantId,flowInstanceId,read } = route.query as {
|
|
|
activityInstanceId: string;
|
|
|
participantId: string;
|
|
|
flowInstanceId: string;
|
|
|
+ read: string;
|
|
|
};
|
|
|
const activityData: FlowDTO = {
|
|
|
activityInstanceId,
|
|
@@ -234,13 +241,16 @@ const jsonToFormData = (json: any): FormData | null => {
|
|
|
const initFormData= async () => {
|
|
|
const result = await reqest.get(`/business/Leave/mobileAdd?flowInstanceId=${flowInstanceId}`)
|
|
|
formData.value = result.data
|
|
|
- leaveTypePiker[0] = result.data.leaveType
|
|
|
}
|
|
|
|
|
|
/** 细节数据保存 */
|
|
|
const saveHandle = async () => {
|
|
|
detailData.value.leaveId = formData.value.id
|
|
|
- formData.value.leaveTimeCreateList.push(detailData.value)
|
|
|
+ if(detailEdit.value){
|
|
|
+ formData.value.leaveTimeCreateList[detailIndex.value] = detailData.value
|
|
|
+ } else {
|
|
|
+ formData.value.leaveTimeCreateList.push(detailData.value)
|
|
|
+ }
|
|
|
detailData.value = {
|
|
|
leaveId: '',
|
|
|
startTime: '',
|
|
@@ -274,15 +284,25 @@ const saveHandle = async () => {
|
|
|
formData.value.leaveHours = totalHours
|
|
|
}
|
|
|
popupShow.value=false
|
|
|
+ detailEdit.value=false
|
|
|
+ detailIndex.value=null
|
|
|
}
|
|
|
|
|
|
/** 细节编辑 */
|
|
|
const detailView = (index:number,item:any) =>{
|
|
|
popupShow.value=true
|
|
|
- console.log(item)
|
|
|
+ detailEdit.value=true
|
|
|
+ detailIndex.value = index
|
|
|
detailData.value = item
|
|
|
- console.log(detailData)
|
|
|
}
|
|
|
+
|
|
|
+/** 选择框事件 */
|
|
|
+const pickerClick = () =>{
|
|
|
+ if(!formRead){
|
|
|
+ showPicker.value=true
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/** 细节删除 */
|
|
|
const detailDelte = (index:number) =>{
|
|
|
formData.value.leaveTimeCreateList.splice(index,1)
|
|
@@ -304,6 +324,9 @@ const endTimeChange = (value:string) =>{
|
|
|
/** 初始化 */
|
|
|
onMounted(() => {
|
|
|
initFormData()
|
|
|
+ if(read==='1'){
|
|
|
+ formRead.value=true
|
|
|
+ }
|
|
|
})
|
|
|
</script>
|
|
|
|