|
|
@@ -1787,7 +1787,25 @@
|
|
|
:label="$t('other.attendanceData')"
|
|
|
prop="cardTime"
|
|
|
align="center"
|
|
|
- v-if="user.timeType.syncCorpwxTime == 1"></el-table-column>
|
|
|
+ v-if="user.timeType.syncCorpwxTime == 1">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="scope.row.cardTime">{{ scope.row.cardTime }}</span>
|
|
|
+ <el-link
|
|
|
+ v-if="scope.row.cardTime && scope.row.modifiedByAdmin === 1"
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="openLeaveDialog(scope.row)">
|
|
|
+ {{ $t('修改请假') }}
|
|
|
+ </el-link>
|
|
|
+ <el-link
|
|
|
+ v-else-if="!scope.row.cardTime"
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="openLeaveDialog(scope.row)">
|
|
|
+ {{ $t('补填请假') }}
|
|
|
+ </el-link>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
<el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isFlag" :title="$t('message.loading')+'...'" type="success" center :closable="false" show-icon></el-alert>
|
|
|
<el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="success" center show-icon></el-alert>
|
|
|
@@ -2351,7 +2369,40 @@
|
|
|
</el-timeline>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
+ <!--请假弹框-->
|
|
|
+ <el-dialog
|
|
|
+ :title="hasManualLeaveRecord(currentLeaveRecord) ? $t('修改请假') : $t('补填请假')"
|
|
|
+ :visible.sync="leaveDialogVisible"
|
|
|
+ width="500px">
|
|
|
+ <el-form ref="leaveForm" :model="leaveForm" :rules="leaveFormRules" label-width="120px">
|
|
|
+ <el-form-item :label="$t('请假开始时间')" prop="startTime">
|
|
|
+ <el-time-picker
|
|
|
+ v-model="leaveForm.startTime"
|
|
|
+ format="HH:mm"
|
|
|
+ value-format="HH:mm"
|
|
|
+ :placeholder="$t('请选择开始时间')"
|
|
|
+ >
|
|
|
+ </el-time-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('请假结束时间')" prop="endTime">
|
|
|
+ <el-time-picker
|
|
|
+ v-model="leaveForm.endTime"
|
|
|
+ format="HH:mm"
|
|
|
+ value-format="HH:mm"
|
|
|
+ :placeholder="$t('请选择结束时间')"
|
|
|
+ >
|
|
|
+ </el-time-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('请假时长')" prop="duration">
|
|
|
+ <el-input-number v-model="leaveForm.duration" :min="0.0" :step="0.5" :disabled="false"></el-input-number>
|
|
|
+ <span style="margin-left: 10px;">小时</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button @click="leaveDialogVisible = false">{{$t('btn.cancel')}}</el-button>
|
|
|
+ <el-button type="primary" @click="submitLeaveForm">{{$t('btn.submit')}}</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
<!-- 威派格定制 -->
|
|
|
<TransferWorkingHours v-model="transferWorkingHoursVisable" :projectList="projectList" :userList="usersList"></TransferWorkingHours>
|
|
|
</section>
|
|
|
@@ -2694,6 +2745,21 @@
|
|
|
|
|
|
nodeModelData: localStorage.getItem('nodeModelDataKey') ? JSON.parse(localStorage.getItem('nodeModelDataKey')) : [],
|
|
|
|
|
|
+ leaveDialogVisible: false,
|
|
|
+ currentLeaveRecord: {},
|
|
|
+ leaveForm: {
|
|
|
+ startTime: '',
|
|
|
+ endTime: '',
|
|
|
+ duration: 0.0,
|
|
|
+ corpwxUserId: '',
|
|
|
+ createDate: ''
|
|
|
+ },
|
|
|
+ leaveFormRules: {
|
|
|
+ startTime: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
|
|
|
+ endTime: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
|
|
|
+ duration: [{ required: true, message: '请输入请假时长', trigger: 'blur' }]
|
|
|
+ },
|
|
|
+
|
|
|
weekIndex: 1,
|
|
|
weekParentData: {},
|
|
|
deptIdForNoReport:[],
|
|
|
@@ -2892,6 +2958,66 @@
|
|
|
}
|
|
|
);
|
|
|
},
|
|
|
+ openLeaveDialog(row) {
|
|
|
+ this.currentLeaveRecord = row;
|
|
|
+ //如果已有手动请假记录,初始化表单数据
|
|
|
+ if (this.hasManualLeaveRecord(row)) {
|
|
|
+ //从已有记录中获取数据并填充表单
|
|
|
+ const parts = row.cardTime.split(', ');
|
|
|
+ const timeRange = parts[0];
|
|
|
+ const hours = parts[1];
|
|
|
+ const timeParts = timeRange.split('~');
|
|
|
+ const startTime = timeParts[0] === 'null' ? null : timeParts[0];
|
|
|
+ const endTime = timeParts[1] === 'null' ? null : timeParts[1];
|
|
|
+
|
|
|
+ const leaveHours = hours ? parseFloat(hours.replace('h', '')) : 0;
|
|
|
+ this.leaveForm = {
|
|
|
+ startTime: startTime,
|
|
|
+ endTime: endTime,
|
|
|
+ duration: leaveHours
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ //清空表单
|
|
|
+ this.leaveForm = {
|
|
|
+ startTime: '',
|
|
|
+ endTime: '',
|
|
|
+ duration: 0
|
|
|
+ };
|
|
|
+ }
|
|
|
+ this.leaveForm.corpwxUserId = row.corpwxUserId;
|
|
|
+ this.leaveForm.createDate = row.createDate;
|
|
|
+ console.log("this.leaveForm.corpwxUserId+++>>>222",this.leaveForm.corpwxUserId)
|
|
|
+ console.log("this.leaveForm.createDate+++>>>222",this.leaveForm.createDate)
|
|
|
+ console.log("this.leaveForm+++>>>",this.leaveForm)
|
|
|
+ this.leaveDialogVisible = true;
|
|
|
+ },
|
|
|
+
|
|
|
+ hasManualLeaveRecord(row) {
|
|
|
+ return row.modifiedByAdmin === 1;
|
|
|
+ },
|
|
|
+
|
|
|
+ submitLeaveForm() {
|
|
|
+ this.$refs.leaveForm.validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ let params= {
|
|
|
+ corpwxUserId: this.leaveForm.corpwxUserId,
|
|
|
+ createDate: this.leaveForm.createDate,
|
|
|
+ leaveStartTime: this.leaveForm.startTime,
|
|
|
+ leaveEndTime: this.leaveForm.endTime,
|
|
|
+ leaveDuration: this.leaveForm.duration,
|
|
|
+ // modifiedByAdmin: 1
|
|
|
+ };
|
|
|
+ this.http.post('/report/updateNoReportUserList', params, (res) => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ this.leaveDialogVisible = false;
|
|
|
+ this.showMonthNotWorkTime();
|
|
|
+ }
|
|
|
+ },(error) => {
|
|
|
+ this.leaveDialogVisible = false;
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
showReportTimeLessThanCardTimeList() {
|
|
|
this.monthTotalPage = 0,
|
|
|
this.tbload = true,
|