wuhongbo 1 rok temu
rodzic
commit
7571aaec03

+ 23 - 5
client/src/views/OaSystem/attendanceCenter/components/depsUpdataDetail.vue

@@ -2,7 +2,7 @@
   <el-dialog
     v-if="dialogVisible"
     v-model="dialogVisible"
-    title="修改"
+    :title="titleName"
     width="30%"
     :before-close="handleClose"
   >
@@ -15,9 +15,13 @@
         <p class="m-b10px">姓名:</p>
         <el-input v-model="userName" disabled />
       </div>
+      <div class="fromBox">
+        <p class="m-b10px m-t20px">日期:</p>
+        <el-input v-model="todayName" disabled />
+      </div>
       <div class="fromBox">
         <p class="m-b10px m-t20px">考勤状态:</p>
-        <el-select v-model="kqState" placeholder="请选择考勤状态">
+        <el-select v-model="kqState" placeholder="请选择考勤状态" style="width: 100%">
           <el-option
             v-for="(item, index) in getDictOptions(DICT_TYPE.ADM_ATTENDANCE_STATUS)"
             :key="index"
@@ -45,6 +49,8 @@ const dialogVisible = ref(false)
 const kqState = ref('')
 const userName = ref('')
 const bmName = ref('')
+const titleName = ref('')
+const todayName = ref('')
 const userParams = ref({
   id: '',
   userId: '',
@@ -56,14 +62,19 @@ const handleClose = (done: () => void) => {
 }
 
 const initShow = (row, item, index, month) => {
-  dialogVisible.value = true
+  kqState.value = ''
   userParams.value.id = row.id
   userParams.value.userId = row.userId
   userParams.value.deptId = row.deptId
   bmName.value = row.deptName
   userName.value = row.nickName
-
+  if (index == 1) {
+    titleName.value = '修改上午考勤'
+  } else {
+    titleName.value = '修改下午考勤'
+  }
   let today = item.date
+  todayName.value = today
   let toMoseMonths: any = []
   toMoseMonths[0] = moment(today).startOf('months').format('YYYY-MM-DD') + ' 00:00:00'
   toMoseMonths[1] = moment(today).endOf('months').format('YYYY-MM-DD') + ' 23:59:59'
@@ -77,6 +88,13 @@ const initShow = (row, item, index, month) => {
       }
     }
   })
+  if (kqState.value == '1') {
+    return
+  }
+  if (kqState.value == '') {
+    return
+  }
+  dialogVisible.value = true
 }
 const emit = defineEmits(['updataInit'])
 const commitClick = () => {
@@ -93,7 +111,7 @@ const commitClick = () => {
     })
   } else {
     MineApi.updateWorkdayList(params).then((res) => {
-      if (res.data) {
+      if (res) {
         dialogVisible.value = false
         emit('updataInit', toMonth.value)
       }

+ 65 - 15
client/src/views/OaSystem/attendanceCenter/dep.vue

@@ -14,6 +14,7 @@
             :data="deptList"
             :props="defaultProps"
             check-strictly
+            default-expand-all
             node-key="id"
             placeholder="请选择部门"
           />
@@ -110,7 +111,7 @@
                   <div class="spans" v-else-if="sco(scope.row, item, 1) == '20'"> 他 </div>
                   <div class="spans" v-else> </div>
                 </div>
-                <div class="xw">
+                <div class="xw" @click="swStateClick(scope.row, item, 2)">
                   <img
                     v-if="sco(scope.row, item, 2) == '1'"
                     src="@/assets/imgs/OA/kq/gouzi.png"
@@ -137,16 +138,66 @@
           </el-table-column>
         </el-table-column>
 
-        <el-table-column prop="kg" label="旷工" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="cd" label="迟到" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="zt" label="早退" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="cc" label="出差" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="sj" label="事假" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="tx" label="调休" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="bj" label="病假" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="nj" label="年假" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="cj" label="产假" width="40" label-class-name="labelModeRl" />
-        <el-table-column prop="qt" label="其他" width="40" label-class-name="labelModeRl" />
+        <el-table-column prop="kg" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>旷工</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">天</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="cd" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>迟到</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">次</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="zt" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>早退</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">次</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="cc" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>出差</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">天</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="sj" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>事假</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">天</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="tx" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>调休</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">天</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="bj" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>病假</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">天</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="nj" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>年假</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">天</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="cj" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>产假</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">天</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="qt" width="40" label-class-name="labelModeRl">
+          <template #header>
+            <span>其他</span>
+            <span class="c-#989FA8 font-size-14px m-t-8px">天</span>
+          </template>
+        </el-table-column>
       </el-table>
     </div>
     <div class="depPages">
@@ -284,8 +335,7 @@ const initWorkDay = async (date: any) => {
 }
 const depsDetailRef = ref()
 const swStateClick = (row, item, index) => {
-  //更改上午考勤
-  console.log(row, item)
+  //更改考勤
   depsDetailRef.value.initShow(row, item, index, fromParams.value.month)
 }
 onMounted(() => {
@@ -429,12 +479,12 @@ onMounted(() => {
 
       .sw:hover {
         .spans {
-          color: pink;
+          color: #989fa8;
         }
       }
       .xw:hover {
         .spans {
-          color: pink;
+          color: #989fa8;
         }
       }
       .xw {

+ 6 - 5
client/src/views/OaSystem/attendanceCenter/mine.vue

@@ -108,7 +108,7 @@
               <h4
                 :style="{
                   color:
-                    item.value == '迟到' || (item.value == '早退' && item.value) || '旷工'
+                    item.value == '迟到' || item.value == '早退' || item.value == '旷工'
                       ? 'red'
                       : ''
                 }"
@@ -379,9 +379,9 @@ const initToMonths = async (date: any) => {
     calendInfoList.value[0].value = ycq
     MineApi.getAttendanceSheetListMine(params).then((res) => {
       if (res) {
-        let arr = res
+        let arr = JSON.parse(JSON.stringify(res))
         let newArr: any = []
-        let setArr: any = res
+        let setArr: any = JSON.parse(JSON.stringify(res))
         arr.forEach((item: any) => {
           item.date = moment(item.attendanceDate).format('YYYY-MM-DD')
           if (item.attendanceStatus != 1) {
@@ -428,12 +428,13 @@ const initToMonths = async (date: any) => {
         calendInfoList.value[3].value = cd
         calendInfoList.value[4].value = zt
         calendInfoList.value[5].value = kg
-        setArr.forEach((item: any) => {
+
+        res.forEach((item: any) => {
           dictAttendAll.value.forEach((l: any) => {
             if (Number(l.value) == item.attendanceStatus) {
               qjCount.value.forEach((k) => {
                 if (k.name == l.label) {
-                  k.value += 1
+                  k.value += 0.5
                 }
               })
             }