刘洋 преди 1 година
родител
ревизия
78706f8df4

+ 9 - 4
src/api/work-hours.js

@@ -33,10 +33,15 @@ export const workAttendanceListApi = (data) =>
     params: data,
   });
 export const detail = (data) =>
-    request({
-        url: '/api/admin/tb/ding/detail',
-        params: data,
-    });
+  request({
+    url: '/api/admin/tb/ding/detail',
+    params: data,
+  });
+export const dkmxDetailApi = (data) =>
+  request({
+    url: '/api/admin/tb/ding/ding_statistic',
+    params: data,
+  });
 export const workAttendanceInfoApi = (data) =>
   request({
     url: '/api/admin/tb/ding/submit/sub_total',

+ 23 - 18
src/views/system/config-manage/checkin-manage/edit-checkin-dialog.vue

@@ -16,15 +16,16 @@
         </t-col>
 
         <t-col :span="6">
-          <t-form-item label="适用考勤对象" name="dingRoleIds">
-            <select-role
+          <t-form-item label="适用考勤对象">
+            <t-select value="工程师" disabled></t-select>
+            <!-- <select-role
               v-model="formData.dingRoleIds"
               :min-collapsed-num="10"
               :filterable="false"
               :disabled="isEdit"
               multiple
             >
-            </select-role>
+            </select-role> -->
           </t-form-item>
         </t-col>
         <t-col :span="12">
@@ -158,7 +159,7 @@ const { formData, isEdit } = useClearDialog(
     id: null,
     name: '',
     serviceId: '',
-    dingRoleIds: [],
+    // dingRoleIds: [],
     supplierId: '',
     signInTime: ['', ''],
     signOutTime: ['', ''],
@@ -174,9 +175,9 @@ const { formData, isEdit } = useClearDialog(
     }
     formData.signInTime = props.curRow.signInTime.split('~');
     formData.signOutTime = props.curRow.signOutTime.split('~');
-    formData.dingRoleIds = props.curRow.dingObjs
-      .filter((item) => item.type === 'DING')
-      .map((item) => item.roleId);
+    // formData.dingRoleIds = props.curRow.dingObjs
+    //   .filter((item) => item.type === 'DING')
+    //   .map((item) => item.roleId);
     formData.approveRoleIds = props.curRow.dingObjs
       .filter((item) => item.type === 'APPROVE')
       .map((item) => item.roleId);
@@ -206,14 +207,14 @@ const rules = {
       trigger: 'change',
     },
   ],
-  dingRoleIds: [
-    {
-      required: true,
-      message: '适用考勤对象必选',
-      type: 'error',
-      trigger: 'change',
-    },
-  ],
+  // dingRoleIds: [
+  //   {
+  //     required: true,
+  //     message: '适用考勤对象必选',
+  //     type: 'error',
+  //     trigger: 'change',
+  //   },
+  // ],
   supplierId: [
     {
       required: true,
@@ -314,9 +315,13 @@ const save = async () => {
     ? formData.signOutTime.join('~')
     : '';
   data.dingObjs = [
-    ...formData.dingRoleIds.map((item) => {
-      return { roleId: item, type: 'DING' };
-    }),
+    // ...formData.dingRoleIds.map((item) => {
+    //   return { roleId: item, type: 'DING' };
+    // }),
+    {
+      sopRoleType: 'ENGINEER',
+      type: 'DING',
+    },
     ...formData.approveRoleIds.map((item) => {
       return { roleId: item, type: 'APPROVE' };
     }),

+ 2 - 2
src/views/work-hours/work-hours-manage/work-attendance/detail-dialog.vue

@@ -146,7 +146,7 @@ import {
 } from '@/utils/filter';
 import { computed, reactive, watch } from 'vue';
 import useFetchTable from '@/hooks/useFetchTable';
-import { detail } from '@/api/work-hours';
+import { dkmxDetailApi } from '@/api/work-hours';
 import { randomCode } from '@/utils/tool';
 
 const emit = defineEmits(['update:visible', 'confirm']);
@@ -174,7 +174,7 @@ const params = computed(() => {
 });
 
 const { pagination, tableData, fetchData, onChange } = useFetchTable(
-  detail,
+  dkmxDetailApi,
   {
     params,
   },

+ 21 - 11
src/views/work-hours/work-hours-manage/work-attendance/index.vue

@@ -78,13 +78,19 @@
             @action="openDetailDialog(row)"
           ></more-content>
         </template>
-        <template #role="{ col, row }">
+        <!-- <template #role="{ col, row }">
           {{ roleTypeFilter(row[col.colKey]) }}
+        </template> -->
+        <template #scanStartTime="{ col, row }">
+          {{ timestampFilter(row[col.colKey]) }}
+        </template>
+        <template #scanEndTime="{ col, row }">
+          {{ timestampFilter(row[col.colKey]) }}
         </template>
-        <template #enter-time="{ col, row }">
+        <template #markPaperStartTime="{ col, row }">
           {{ timestampFilter(row[col.colKey]) }}
         </template>
-        <template #outer-time="{ col, row }">
+        <template #markPaperEndTime="{ col, row }">
           {{ timestampFilter(row[col.colKey]) }}
         </template>
         <template #submit-time="{ col, row }">
@@ -359,19 +365,23 @@ const columns = [
   { colKey: 'customName', title: '客户名称', width: 120 },
   { colKey: 'province', title: '省份', width: 120 },
   { colKey: 'city', title: '城市', width: 120 },
-  { colKey: 'approachTime', title: '进场时间', cell: 'enter-time', width: 180 },
-  {
-    colKey: 'departureTime',
-    title: '撤场时间',
-    cell: 'outer-time',
-    width: 180,
-  },
+  { colKey: 'scanStartTime', title: '扫描开始时间', width: 180 },
+  { colKey: 'scanEndTime', title: '扫描结束时间', width: 180 },
+  { colKey: 'markPaperStartTime', title: '阅卷开始时间', width: 180 },
+  { colKey: 'markPaperEndTime', title: '阅卷结束时间', width: 180 },
+  // { colKey: 'approachTime', title: '进场时间', cell: 'enter-time', width: 180 },
+  // {
+  //   colKey: 'departureTime',
+  //   title: '撤场时间',
+  //   cell: 'outer-time',
+  //   width: 180,
+  // },
   {
     colKey: 'archivesInfo',
     title: '姓名(人员档案号)',
     width: 260,
   },
-  { colKey: 'roleType', title: '项目角色', width: 120, cell: 'role' },
+  { colKey: 'roleName', title: '项目角色', width: 120 },
   { colKey: 'supplierName', title: '供应商' },
   { colKey: 'actualDays', title: '实际出勤(天)', width: 140 },
   { colKey: 'weekdays', title: '工作日(天)', width: 130 },

+ 30 - 14
src/views/work-hours/work-hours-manage/work-statistics/index.vue

@@ -57,12 +57,24 @@
         <template #user="{ row }">
           {{ row.userName }}({{ row.userNo }})
         </template>
-        <template #start-time="{ col, row }">
+        <template #scanStartTime="{ col, row }">
           {{ timestampFilter(row[col.colKey]) }}
         </template>
-        <template #end-time="{ col, row }">
+        <template #scanEndTime="{ col, row }">
+          {{ timestampFilter(row[col.colKey]) }}
+        </template>
+        <template #markPaperStartTime="{ col, row }">
+          {{ timestampFilter(row[col.colKey]) }}
+        </template>
+        <template #markPaperEndTime="{ col, row }">
           {{ timestampFilter(row[col.colKey]) }}
         </template>
+        <!-- <template #start-time="{ col, row }">
+          {{ timestampFilter(row[col.colKey]) }}
+        </template>
+        <template #end-time="{ col, row }">
+          {{ timestampFilter(row[col.colKey]) }}
+        </template> -->
         <template #submit-time="{ col, row }">
           {{ timestampFilter(row[col.colKey]) }}
         </template>
@@ -222,18 +234,22 @@ const columns = [
   { colKey: 'custom', title: '客户名称', width: 120 },
   { colKey: 'province', title: '省份', width: 120 },
   { colKey: 'city', title: '城市', width: 120 },
-  {
-    colKey: 'examStartTime',
-    title: '项目开始时间',
-    width: 180,
-    cell: 'start-time',
-  },
-  {
-    colKey: 'examEndTime',
-    title: '项目结束时间',
-    width: 180,
-    cell: 'end-time',
-  },
+  // {
+  //   colKey: 'examStartTime',
+  //   title: '项目开始时间',
+  //   width: 180,
+  //   cell: 'start-time',
+  // },
+  // {
+  //   colKey: 'examEndTime',
+  //   title: '项目结束时间',
+  //   width: 180,
+  //   cell: 'end-time',
+  // },
+  { colKey: 'scanStartTime', title: '扫描开始时间', width: 180 },
+  { colKey: 'scanEndTime', title: '扫描结束时间', width: 180 },
+  { colKey: 'markPaperStartTime', title: '阅卷开始时间', width: 180 },
+  { colKey: 'markPaperEndTime', title: '阅卷结束时间', width: 180 },
   { colKey: 'userName', title: '姓名(人员档案号)', cell: 'user', width: 170 },
   { colKey: 'roleName', title: '项目角色', width: 120 },
   { colKey: 'supplier', title: '供应商' },