소스 검색

时长紫宗计算

duy 2 년 전
부모
커밋
63626eff55
2개의 변경된 파일35개의 추가작업 그리고 2개의 파일을 삭제
  1. 17 0
      src/utils/tools.js
  2. 18 2
      src/views/attendance/business-trip/info.vue

+ 17 - 0
src/utils/tools.js

@@ -38,3 +38,20 @@ export const dateFormat = (date, format) => {
     }
     return '';
 }
+
+//获取两个日期之间的天数
+export const getDiffDay=(date_1, date_2)=> {
+    // 计算两个日期之间的差值
+    let totalDays,diffDate
+    let myDate_1 = Date.parse(date_1)
+    let myDate_2 = Date.parse(date_2)
+    // 将两个日期都转换为毫秒格式,然后做差
+    diffDate = Math.abs(myDate_1 - myDate_2) // 取相差毫秒数的绝对值
+   
+    totalDays = Math.floor(diffDate / (1000 * 3600 * 24)) // 向下取整
+    console.log(totalDays,'天数')    
+   
+    return totalDays    // 相差的天数
+  }
+   
+

+ 18 - 2
src/views/attendance/business-trip/info.vue

@@ -56,7 +56,7 @@
                                                 />
                                             </el-form-item>
                                             <el-form-item label="时长" prop="duration">
-                                                <el-input v-model="item.duration"/>
+                                                <el-input v-model="item.duration" disabled :getdata="getDiffDaydata(item)"/>
                                             </el-form-item>
                                
                             </el-form>
@@ -171,11 +171,12 @@
 </template>
 
 <script setup>
-import {ref, onActivated} from "vue";
+import {ref, onActivated,watch} from "vue";
 import {useRoute, useRouter} from 'vue-router'
 import {getProjectList, getDictInfo} from "~api/other";
 import {arrIndex, deepClone, formValidate, getArrValue} from "js-fast-way";
 import businessApi from '~api/attendance/business-trip.js';
+import {getDiffDay} from "~uti/tools";
 
 const router = useRouter()
 const useRoutes = useRoute()
@@ -263,6 +264,11 @@ const getDetailsData = async () => {
         }
     }
 }
+//获取间隔天数
+const getDiffDaydata=(item)=>{
+   let time= getDiffDay(item.startDate,item.endDate)
+   item.duration=time
+}
 //行程表单
 const formItemRules = {
     isSingletonType: {
@@ -397,6 +403,16 @@ const formRef = ref(null)
 const formModel = ref({
     journeyList:[{}]
 })
+//深度监听
+watch(() => [
+    formModel.value.journeyList
+], ([datas]) => {
+   let timeall=0
+   formModel.value.journeyList.forEach((ele)=>{
+    timeall=ele.duration+timeall
+   })
+   formModel.value.durationAll=timeall//计算总时长
+}, {deep: true})
 const formRules = {
     tripDesc: {
       required: true,