feat: 1.考勤
This commit is contained in:
parent
25cf6f1c02
commit
2bce7ef92e
28
src/pages/attendance-clockIn/attendance-clockIn.vue
Normal file
28
src/pages/attendance-clockIn/attendance-clockIn.vue
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<route lang="json5" type="page">
|
||||||
|
{
|
||||||
|
layout: 'default',
|
||||||
|
style: {
|
||||||
|
navigationStyle: 'custom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</route>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<TopNavigation title="考勤打卡"></TopNavigation>
|
||||||
|
<view class="bg-white rounded-1 pt-20 pb-15 box-border mx-4 mt-2">
|
||||||
|
<view class="text-center">
|
||||||
|
<image src="/static/images/icon_wechat.png" class="w-30 h30" />
|
||||||
|
</view>
|
||||||
|
<view class="text-center mt-2 color-gray">你所在考勤组无法手机打卡</view>
|
||||||
|
<view class="text-center color-gray">请在考勤机或者门禁设备上打卡</view>
|
||||||
|
</view>
|
||||||
|
<view class="w-100% h-17 bg-blue mt-2 rounded-1" @click="goHelper"></view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
const goHelper = () => {
|
||||||
|
// todo goHelper
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
86
src/pages/attendance-set/attendance-set.vue
Normal file
86
src/pages/attendance-set/attendance-set.vue
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<route lang="json5" type="page">
|
||||||
|
{
|
||||||
|
layout: 'default',
|
||||||
|
style: {
|
||||||
|
navigationStyle: 'custom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</route>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<TopNavigation title="设置"></TopNavigation>
|
||||||
|
<view class="mx-4 mt-2">
|
||||||
|
<view class="my-2 p-3.5 flex flex-justify-between rounded-1.2 items-center bg-white">
|
||||||
|
<view class="color-[#3372FA]">添加考勤组</view>
|
||||||
|
<wd-icon name="add-circle" class="color-[#3372FA]" size="20"></wd-icon>
|
||||||
|
</view>
|
||||||
|
<view class="my-2 p-3.5 flex flex-justify-between rounded-1.2 items-center bg-white">
|
||||||
|
<view class="flex flex-col">
|
||||||
|
<view>考勤</view>
|
||||||
|
<view class="text-gray mt-1 text-3">固定班制</view>
|
||||||
|
</view>
|
||||||
|
<wd-icon name="arrow-right" class="text-gray" size="20"></wd-icon>
|
||||||
|
</view>
|
||||||
|
<view class="text-gray mt-4 ml-3 text-3 mb-2">其他设置</view>
|
||||||
|
<view class="flex flex-row flex-justify-between">
|
||||||
|
<view class="p-3.5 bg-white rounded-1.2 flex-1 mr-1 flex flex-row items-center">
|
||||||
|
<image src="/static/images/icon_wechat.png" class="w-6 h-6 mr-2" />
|
||||||
|
<view class="text-3">班次管理</view>
|
||||||
|
</view>
|
||||||
|
<view class="p-3.5 bg-white rounded-1.2 flex-1 ml-1 flex flex-row items-center">
|
||||||
|
<image src="/static/images/icon_wechat.png" class="w-6 h-6 mr-2" />
|
||||||
|
<view class="text-3">下发记录</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="text-gray mt-4 ml-3 text-3 mb-2">了解详情</view>
|
||||||
|
<view class="flex flex-wrap bg-white rounded-1.2 px-3 py-1.5 flex-justify-between">
|
||||||
|
<view
|
||||||
|
v-for="(item, index) in [
|
||||||
|
'电脑网页端',
|
||||||
|
'微信小程序',
|
||||||
|
'人脸-指纹-卡片',
|
||||||
|
'假勤-补卡申请',
|
||||||
|
'打卡问题检测',
|
||||||
|
'打卡-缺卡提醒'
|
||||||
|
]"
|
||||||
|
:key="index"
|
||||||
|
class="my-1.5 bg-[#F6F8FC] w-4.8/10 py-3.5 px-2 rounded-1.2 box-border flex flex-row items-center"
|
||||||
|
>
|
||||||
|
<image src="/static/images/icon_wechat.png" class="w-5 h-5" mode="scaleToFill" />
|
||||||
|
<view class="text-center text-2.5 custom-color-black ml-1">{{ item }}</view>
|
||||||
|
<wd-icon name="arrow-right" class="text-gray flex-1 text-right" size="20"></wd-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
const list = ref<Array<TabBarItem>>([
|
||||||
|
{
|
||||||
|
title: '首页',
|
||||||
|
isDot: true,
|
||||||
|
icon: 'home'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '我的',
|
||||||
|
value: 0,
|
||||||
|
icon: '/static/tabbar/home.png'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '最大值',
|
||||||
|
value: 200,
|
||||||
|
icon: '/static/tabbar/home.png'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '客服',
|
||||||
|
value: 3,
|
||||||
|
icon: '/static/tabbar/home.png'
|
||||||
|
}
|
||||||
|
])
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
page {
|
||||||
|
background-color: #f6f8fc;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
27
src/pages/attendance-statistics/attendance-statistics.vue
Normal file
27
src/pages/attendance-statistics/attendance-statistics.vue
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<route lang="json5" type="page">
|
||||||
|
{
|
||||||
|
layout: 'default',
|
||||||
|
style: {
|
||||||
|
navigationStyle: 'custom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</route>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<TopNavigation title="考勤统计"></TopNavigation>
|
||||||
|
<wd-tabs v-model="tab">
|
||||||
|
<block v-for="item in tabs" :key="item">
|
||||||
|
<wd-tab :title="item"></wd-tab>
|
||||||
|
</block>
|
||||||
|
</wd-tabs>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
//
|
||||||
|
const tabs = ['团队统计', '我的统计']
|
||||||
|
const tab = ref<number>(0)
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
//
|
||||||
|
</style>
|
||||||
48
src/pages/attendance/attendance.vue
Normal file
48
src/pages/attendance/attendance.vue
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<route lang="json5" type="page">
|
||||||
|
{
|
||||||
|
layout: 'default',
|
||||||
|
style: {
|
||||||
|
navigationStyle: 'custom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</route>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<view class="h-[calc(100vh-50px)] overflow-y-auto">
|
||||||
|
<view v-for="(item, index) in pages" :key="index" v-show="curIndex == index">
|
||||||
|
<component :is="item"></component>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<CustomTabBar :list="list" :default-index="0" @change="change"></CustomTabBar>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import AttendanceClockIn from '../attendance-clockIn/attendance-clockIn.vue'
|
||||||
|
import AttendanceSet from '../attendance-set/attendance-set.vue'
|
||||||
|
import AttendanceStatistics from '../attendance-statistics/attendance-statistics.vue'
|
||||||
|
const pages = [AttendanceClockIn, AttendanceStatistics, AttendanceSet]
|
||||||
|
const list = ref<Array<TabBarItem>>([
|
||||||
|
{
|
||||||
|
title: '打卡',
|
||||||
|
icon: 'home'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '统计',
|
||||||
|
icon: 'notification'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '设置',
|
||||||
|
icon: 'setting'
|
||||||
|
}
|
||||||
|
])
|
||||||
|
const curIndex = ref(0)
|
||||||
|
const change = (data: { value: number }) => {
|
||||||
|
curIndex.value = data.value
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
page {
|
||||||
|
background-color: #f6f8fc;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user