Browse Source

请假添加只读

chenjun 1 year ago
parent
commit
4bcb3260c9
1 changed files with 46 additions and 23 deletions
  1. 46 23
      client_h5/src/pages/leave/index.vue

+ 46 - 23
client_h5/src/pages/leave/index.vue

@@ -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>