|
@@ -7,13 +7,20 @@
|
|
|
</div>
|
|
|
<div class="label">日志</div>
|
|
|
</div>
|
|
|
- <div class="operation-item">
|
|
|
+ <div class="operation-item __hover" @click="onSign">
|
|
|
<div class="icon">
|
|
|
<img src="@/assets/images/business/operation-sign.png"/>
|
|
|
</div>
|
|
|
- <div class="label">下班打卡</div>
|
|
|
+ <div class="label">
|
|
|
+ <template v-if="isSignCpt">
|
|
|
+ 下班打卡
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ 上班打卡
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="operation-item" :style="`opacity: ${$store.getters['app/isWeeklyDay'] ? 1 : 0.3};`">
|
|
|
+ <div class="operation-item" :class="{'__hover': $store.getters['app/isWeeklyDay']}" :style="`opacity: ${$store.getters['app/isWeeklyDay'] ? 1 : 0.3};`" @click="$store.getters['app/isWeeklyDay'] ? onWeekly() : undefined">
|
|
|
<div class="icon">
|
|
|
<img src="@/assets/images/business/operation-weekly.png"/>
|
|
|
</div>
|
|
@@ -44,6 +51,7 @@
|
|
|
</template>
|
|
|
</div>
|
|
|
<DailyDetailCom v-model:show="showDailyDetail" :transfer="transferDaily"/>
|
|
|
+ <WeeklyDetailCom v-model:show="showWeeklyDetail" :transfer="transferWeekly"/>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -66,6 +74,9 @@ import ButtonSwitchCom from '../../common/button-switch.vue'
|
|
|
import CalendarCom from './calendar.vue'
|
|
|
import StatisticCom from './statistic.vue'
|
|
|
import DailyDetailCom from '@/views/system/daily-manage/detail.vue'
|
|
|
+import WeeklyDetailCom from '@/views/system/weekly-manage/detail.vue'
|
|
|
+import {ElMessage, ElMessageBox} from "element-plus";
|
|
|
+
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: '',
|
|
@@ -74,6 +85,7 @@ export default defineComponent({
|
|
|
CalendarCom,
|
|
|
StatisticCom,
|
|
|
DailyDetailCom,
|
|
|
+ WeeklyDetailCom,
|
|
|
},
|
|
|
setup(props, {emit}) {
|
|
|
const store = useStore();
|
|
@@ -84,6 +96,8 @@ export default defineComponent({
|
|
|
sourceType: '1',
|
|
|
showDailyDetail: false,
|
|
|
transferDaily: {},
|
|
|
+ showWeeklyDetail: false,
|
|
|
+ transferWeekly: {},
|
|
|
})
|
|
|
const onDaily = () => {
|
|
|
state.transferDaily = {
|
|
@@ -91,9 +105,62 @@ export default defineComponent({
|
|
|
}
|
|
|
state.showDailyDetail = true
|
|
|
}
|
|
|
+ const onWeekly = () => {
|
|
|
+ state.transferWeekly = {
|
|
|
+ method: 'add',
|
|
|
+ }
|
|
|
+ state.showWeeklyDetail = true
|
|
|
+ }
|
|
|
+ const isSignCpt = computed(() => {
|
|
|
+ return store.state.app.signInfo?.id
|
|
|
+ })
|
|
|
+ const onSign = () => {
|
|
|
+ const sign = (msg) => {
|
|
|
+ that.$api.signIn().then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ ElMessage.success(msg)
|
|
|
+ store.dispatch('app/LOAD_SIGN_INFO')
|
|
|
+ } else {
|
|
|
+ ElMessage.error(res.message)
|
|
|
+ }
|
|
|
+ }).catch(() => {
|
|
|
+ })
|
|
|
+ }
|
|
|
+ const signStart = new Date(`${that.$util.YMD(store.state.app.timestamp)} ${store.state.app.publicConfig["sign.begin.time"]}`).getTime()
|
|
|
+ const signEnd = new Date(`${that.$util.YMD(store.state.app.timestamp)} ${store.state.app.publicConfig["sign.end.time"]}`).getTime()
|
|
|
+ const now = new Date(store.state.app.timestamp).getTime()
|
|
|
+ if (!isSignCpt.value) {
|
|
|
+ if (now > signStart) {
|
|
|
+ ElMessageBox.confirm(`当前已过签到时间,是否继续签到?`, "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }).then(() => {
|
|
|
+ sign('签到成功!')
|
|
|
+ }).catch(() => {})
|
|
|
+ } else {
|
|
|
+ sign('签到成功!')
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (now < signEnd) {
|
|
|
+ ElMessageBox.confirm(`当前未到签退时间,是否继续签退?`, "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }).then(() => {
|
|
|
+ sign('签退成功!')
|
|
|
+ }).catch(() => {})
|
|
|
+ } else {
|
|
|
+ sign('签退成功!')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return {
|
|
|
...toRefs(state),
|
|
|
- onDaily
|
|
|
+ onDaily,
|
|
|
+ onWeekly,
|
|
|
+ isSignCpt,
|
|
|
+ onSign
|
|
|
}
|
|
|
},
|
|
|
})
|