|
@@ -0,0 +1,178 @@
|
|
|
+<template>
|
|
|
+ <div class="main">
|
|
|
+ <div class="operation">
|
|
|
+ <div class="operation-item">
|
|
|
+ <div class="icon">
|
|
|
+ <img src="@/assets/images/business/operation-daily.png"/>
|
|
|
+ </div>
|
|
|
+ <div class="label">日志</div>
|
|
|
+ </div>
|
|
|
+ <div class="operation-item">
|
|
|
+ <div class="icon">
|
|
|
+ <img src="@/assets/images/business/operation-sign.png"/>
|
|
|
+ </div>
|
|
|
+ <div class="label">下班打卡</div>
|
|
|
+ </div>
|
|
|
+ <div class="operation-item" :style="`opacity: ${$store.getters['app/isWeeklyDay'] ? 1 : 0.3};`">
|
|
|
+ <div class="icon">
|
|
|
+ <img src="@/assets/images/business/operation-weekly.png"/>
|
|
|
+ </div>
|
|
|
+ <div class="label">周报</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="clock">
|
|
|
+ <div class="tips">您还未签到/未提交日志/未提交周报,请尽快完成签到</div>
|
|
|
+ <div class="datetime">
|
|
|
+ <div class="label">北京时间:</div>
|
|
|
+ <div class="value">
|
|
|
+ <template v-for="item in $util.Hms($store.state.app.timestamp)">
|
|
|
+ <div class="item"><span>{{item}}</span></div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script lang="ts">
|
|
|
+import {
|
|
|
+ defineComponent,
|
|
|
+ computed,
|
|
|
+ onMounted,
|
|
|
+ ref,
|
|
|
+ reactive,
|
|
|
+ watch,
|
|
|
+ getCurrentInstance,
|
|
|
+ ComponentInternalInstance,
|
|
|
+ toRefs,
|
|
|
+ nextTick
|
|
|
+} from 'vue'
|
|
|
+import {useStore} from 'vuex'
|
|
|
+import {useRouter, useRoute} from 'vue-router'
|
|
|
+import ButtonSwitchCom from '../../common/button-switch.vue'
|
|
|
+
|
|
|
+export default defineComponent({
|
|
|
+ name: '',
|
|
|
+ components: {
|
|
|
+ ButtonSwitchCom,
|
|
|
+ },
|
|
|
+ setup(props, {emit}) {
|
|
|
+ const store = useStore();
|
|
|
+ const router = useRouter();
|
|
|
+ const route = useRoute();
|
|
|
+ const that = (getCurrentInstance() as ComponentInternalInstance).appContext.config.globalProperties
|
|
|
+ const state = reactive({
|
|
|
+ })
|
|
|
+ return {
|
|
|
+ ...toRefs(state),
|
|
|
+ }
|
|
|
+ },
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+.main {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ .operation {
|
|
|
+ margin-top: 43px;
|
|
|
+ padding: 0 42px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ .operation-item {
|
|
|
+ width: 285px;
|
|
|
+ height: 94px;
|
|
|
+ background-image: url("@/assets/images/business/operatio-bg.png");
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ .icon {
|
|
|
+ width: 93px;
|
|
|
+ height: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+ .label {
|
|
|
+ font-size: 24px;
|
|
|
+ font-family: PangMenZhengDao;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #FFFFFF;
|
|
|
+ width: 130px;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .clock {
|
|
|
+ width: 733px;
|
|
|
+ height: 118px;
|
|
|
+ background-image: url("@/assets/images/business/operation-datetime.png");
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ margin-top: 52px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ position: relative;
|
|
|
+ justify-content: center;
|
|
|
+ .tips {
|
|
|
+ position: absolute;
|
|
|
+ top: -6px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #02FFF1;
|
|
|
+ }
|
|
|
+ .datetime {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ .label {
|
|
|
+ font-size: 18px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #28C9F7;
|
|
|
+ margin-right: 46px;
|
|
|
+ }
|
|
|
+ .value {
|
|
|
+ display: flex;
|
|
|
+ .item {
|
|
|
+ width: 34px;
|
|
|
+ height: 41px;
|
|
|
+ border: 1px solid #1E4C85;
|
|
|
+ background: linear-gradient(0deg, #002248 0%, #1E4C85 100%);
|
|
|
+ border-radius: 4px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ margin-right: 13px;
|
|
|
+ >span {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ font-size: 30px;
|
|
|
+ font-family: YouSheBiaoTiHei;
|
|
|
+ font-weight: 400;
|
|
|
+ background: linear-gradient(0deg,
|
|
|
+ #ffffff 0%,
|
|
|
+ #ffffff 30%,
|
|
|
+ #69b9d7 50%,
|
|
|
+ #ffffff 60%,
|
|
|
+ #ffffff 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+ &:nth-child(3n) {
|
|
|
+ >span {
|
|
|
+ margin-bottom: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|