diff --git a/package.json b/package.json
index 40ca9c7..3ecefa2 100644
--- a/package.json
+++ b/package.json
@@ -109,6 +109,7 @@
"@dcloudio/vite-plugin-uni": "3.0.0-4020920240930001",
"@esbuild/darwin-arm64": "0.20.2",
"@esbuild/darwin-x64": "0.20.2",
+ "@iconify-json/bytesize": "^1.2.2",
"@iconify-json/carbon": "^1.2.4",
"@rollup/rollup-darwin-x64": "^4.28.0",
"@types/node": "^20.17.9",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a33933e..d31508e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -72,8 +72,8 @@ importers:
specifier: 3.4.21
version: 3.4.21(typescript@5.7.2)
wot-design-uni:
- specifier: 1.5.1
- version: 1.5.1(vue@3.4.21(typescript@5.7.2))
+ specifier: 1.4.0
+ version: 1.4.0(vue@3.4.21(typescript@5.7.2))
z-paging:
specifier: ^2.8.4
version: 2.8.4
@@ -105,6 +105,9 @@ importers:
'@esbuild/darwin-x64':
specifier: 0.20.2
version: 0.20.2
+ '@iconify-json/bytesize':
+ specifier: ^1.2.2
+ version: 1.2.2
'@iconify-json/carbon':
specifier: ^1.2.4
version: 1.2.4
@@ -1223,6 +1226,9 @@ packages:
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
deprecated: Use @eslint/object-schema instead
+ '@iconify-json/bytesize@1.2.2':
+ resolution: {integrity: sha512-lI/wtPosh84caAS+UcudpeKiQk9ShfVoeaUTtzgOOBUhwQvjDuSiiHqe84v5NluHuIIFW64Fa3kuoGoluxWgpA==}
+
'@iconify-json/carbon@1.2.4':
resolution: {integrity: sha512-DhW2jjMVGwV0DLHc0cmDYohdtGxMra8UuwgjHrryPy+rQX4gXhJwCBBVP2h2UG/92AoRCTn7zUJve4WvY5MLYg==}
@@ -5456,8 +5462,8 @@ packages:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
- wot-design-uni@1.5.1:
- resolution: {integrity: sha512-jiDRuF8r7+xAldc4Dp+2T1VnqDnOoMWsXu6aRpDg2QG7ZH+/bJl7W8H8hHbKFgA9lu1By/HCDmpG7JC45nYtBw==}
+ wot-design-uni@1.4.0:
+ resolution: {integrity: sha512-h6sjrgfg7mP0nJwGTiHn/iTLPFyRswMpQV6MKhWN3skTnXe+FAyndvtXofpXp+uLkTXefGfw5BPI0uuCMD874w==}
engines: {HBuilderX: ^3.8.7}
peerDependencies:
vue: '>=3.2.47'
@@ -7190,6 +7196,10 @@ snapshots:
'@humanwhocodes/object-schema@2.0.3': {}
+ '@iconify-json/bytesize@1.2.2':
+ dependencies:
+ '@iconify/types': 2.0.0
+
'@iconify-json/carbon@1.2.4':
dependencies:
'@iconify/types': 2.0.0
@@ -12236,7 +12246,7 @@ snapshots:
word-wrap@1.2.5: {}
- wot-design-uni@1.5.1(vue@3.4.21(typescript@5.7.2)):
+ wot-design-uni@1.4.0(vue@3.4.21(typescript@5.7.2)):
dependencies:
vue: 3.4.21(typescript@5.7.2)
diff --git a/src/components/BottomPop/BottomPop.vue b/src/components/BottomPop/BottomPop.vue
new file mode 100644
index 0000000..bbe5990
--- /dev/null
+++ b/src/components/BottomPop/BottomPop.vue
@@ -0,0 +1,81 @@
+
+
+
+
+ {{ title }}
+
+
+
+
+
+ {
+ onSure()
+ handleClose()
+ }
+ "
+ class="mx-3 my-5"
+ block
+ >
+ 确定
+
+
+
+
+
+
+
+
diff --git a/src/components/CommonItemItem/CommonItem.vue b/src/components/CommonItemItem/CommonItem.vue
new file mode 100644
index 0000000..05a3714
--- /dev/null
+++ b/src/components/CommonItemItem/CommonItem.vue
@@ -0,0 +1,68 @@
+
+
+
+ *
+ {{ text }}
+
+
+
+
+
+
+
+ {{ hint }}
+ {{ value }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/AttendanceClockIn.vue b/src/pages/attendance/AttendanceClockIn.vue
new file mode 100644
index 0000000..558c854
--- /dev/null
+++ b/src/pages/attendance/AttendanceClockIn.vue
@@ -0,0 +1,91 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+ {{ item.title }}
+ {{ item.status }}
+
+
+
+ 考勤 >
+
+
+ {{ time.getHours().toString().padStart(2, '0') }}:{{
+ time.getMinutes().toString().padStart(2, '0')
+ }}
+
+ 点击打卡
+
+
+
+ 你已在打卡范围内
+
+
+
+
+
+
+
+
+
+
+ 你所在考勤组无法手机打卡
+ 请在考勤机或者门禁设备上打卡
+
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/AttendanceSet.vue b/src/pages/attendance/AttendanceSet.vue
new file mode 100644
index 0000000..0e1c1df
--- /dev/null
+++ b/src/pages/attendance/AttendanceSet.vue
@@ -0,0 +1,111 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+ 添加考勤组
+
+
+
+
+ 考勤
+ 固定班制
+
+
+
+ 其他设置
+
+
+
+ 班次管理
+
+
+
+ 下发记录
+
+
+ 了解详情
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/AttendanceStatistics.vue b/src/pages/attendance/AttendanceStatistics.vue
new file mode 100644
index 0000000..ba37280
--- /dev/null
+++ b/src/pages/attendance/AttendanceStatistics.vue
@@ -0,0 +1,113 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ new Date(teamDateTime).getFullYear() }}年{{ new Date(teamDateTime).getMonth() + 1 }}月
+
+
+ 查看/导出月报
+
+
+
+
+
+ 0/13
+ 打卡人数/应到人数
+
+
+ {{ item.value }}
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+ {{ new Date(teamDateTime).getFullYear() }}年{{ new Date(teamDateTime).getMonth() + 1 }}月
+
+
+ 查看月报
+
+
+
+
+
+
+ {{ new Date(myDateTime).getFullYear() }}年{{ new Date(myDateTime).getMonth() + 1 }}月{{
+ new Date(myDateTime).getDate()
+ }}日
+
+ 休息
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/allowed-time.vue b/src/pages/attendance/allowed-time.vue
new file mode 100644
index 0000000..ce78681
--- /dev/null
+++ b/src/pages/attendance/allowed-time.vue
@@ -0,0 +1,73 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+ 可设置每次上下班是否需要打卡、允许打卡的时间范围
+
+
+
+ 上班时间段{{ index + 1 }}
+
+
+
+
+
+
+
+
+ 最早打卡时间
+
+ 未设置
+
+
+
+
+ 最早打卡时间
+
+ 未设置
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/attendance-add-group/attendance-add-group.vue b/src/pages/attendance/attendance-add-group/attendance-add-group.vue
new file mode 100644
index 0000000..9f2ef00
--- /dev/null
+++ b/src/pages/attendance/attendance-add-group/attendance-add-group.vue
@@ -0,0 +1,227 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+ {{ item.desc }}
+ {{ item.desc2 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ wayIndex = index
+ showWay = false
+ }
+ "
+ v-for="(item, index) in wayList"
+ :key="index"
+ >
+
+ {{ item.title }}
+ {{ item.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ name.length }}/{{ 15 }}
+
+
+ {
+ showType = true
+ }
+ "
+ text="考勤类型"
+ noLine
+ :value="typeList[typeSelectIndex].title"
+ >
+
+
+
+
+
+
+ {
+ showWay = true
+ }
+ "
+ text="打卡方式"
+ :value="wayList[wayIndex].title"
+ >
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/attendance-add-group/attendance-staff.vue b/src/pages/attendance/attendance-add-group/attendance-staff.vue
new file mode 100644
index 0000000..31ebf43
--- /dev/null
+++ b/src/pages/attendance/attendance-add-group/attendance-staff.vue
@@ -0,0 +1,28 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/attendance-add-group/attendance-time.vue b/src/pages/attendance/attendance-add-group/attendance-time.vue
new file mode 100644
index 0000000..5114c4a
--- /dev/null
+++ b/src/pages/attendance/attendance-add-group/attendance-time.vue
@@ -0,0 +1,172 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+ {
+ holidayIndex = index
+ showHoliday = false
+ }
+ "
+ v-for="(item, index) in holidayList"
+ :key="index"
+ >
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 规则{{ index + 1 }}
+
+ 删除
+
+
+
+ 周时间选择
+
+
+ {{ t.name }}
+
+
+
+
+ 上下班时间
+ {{ item.title }} {{ item.time }}
+
+
+
+
+
+
+ 添加规则
+
+
+ 特殊规则
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/attendance-add-group/outside-rules.vue b/src/pages/attendance/attendance-add-group/outside-rules.vue
new file mode 100644
index 0000000..d699eb4
--- /dev/null
+++ b/src/pages/attendance/attendance-add-group/outside-rules.vue
@@ -0,0 +1,61 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/attendance-add-group/special-date-set.vue b/src/pages/attendance/attendance-add-group/special-date-set.vue
new file mode 100644
index 0000000..5c975ff
--- /dev/null
+++ b/src/pages/attendance/attendance-add-group/special-date-set.vue
@@ -0,0 +1,92 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tabs[tabsIndex].title }}({{ index + 1 }})
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/attendance-rules.vue b/src/pages/attendance/attendance-rules.vue
new file mode 100644
index 0000000..2cff0b9
--- /dev/null
+++ b/src/pages/attendance/attendance-rules.vue
@@ -0,0 +1,42 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+ 考勤
+
+ 今日考勤时间
+ 上班时间不固定,可自由打卡
+
+
+ 打卡方式
+ 在设备上打卡
+ 手机定位打卡
+
+
+ 宏发科技园H1栋
+
+
+
+ 其他
+ 允许外勤打卡
+
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/attendance.vue b/src/pages/attendance/attendance.vue
new file mode 100644
index 0000000..92cfe85
--- /dev/null
+++ b/src/pages/attendance/attendance.vue
@@ -0,0 +1,53 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/classes-add-edit.vue b/src/pages/attendance/classes-add-edit.vue
new file mode 100644
index 0000000..12ddf7b
--- /dev/null
+++ b/src/pages/attendance/classes-add-edit.vue
@@ -0,0 +1,128 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+ {{ name.length }}/{{ 8 }}
+
+
+
+
+ 上下班时段{{ index + 1 }}
+
+ 删除
+
+
+
+
+
+
+
+ 添加时段
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 休息时间
+ 中途休息时间不计入出勤时长
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+ 删除
+
+
+
+ 保存
+
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/classes-manage.vue b/src/pages/attendance/classes-manage.vue
new file mode 100644
index 0000000..f4b2ccc
--- /dev/null
+++ b/src/pages/attendance/classes-manage.vue
@@ -0,0 +1,159 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.time }}
+
+
+
+
+
+
+
+
+ 添加班次后,请至考勤组中选择和使用
+
+
+ 确定
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/flexible-punching.vue b/src/pages/attendance/flexible-punching.vue
new file mode 100644
index 0000000..163f52a
--- /dev/null
+++ b/src/pages/attendance/flexible-punching.vue
@@ -0,0 +1,80 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上班最多可晚到
+ 晚到10分钟内不算迟到
+
+
+
+
+
+
+ 上班最多可早走
+ 早走10分钟内不算迟到
+
+
+
+
+
+
+ 确定
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/issue-record-detail.vue b/src/pages/attendance/issue-record-detail.vue
new file mode 100644
index 0000000..ae7888a
--- /dev/null
+++ b/src/pages/attendance/issue-record-detail.vue
@@ -0,0 +1,152 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.organization }}
+
+ {{ item.time }}
+
+
+
+
+ 考勤机:
+ {{ item.machine }}
+
+
+
+ 通行凭证:
+ {{ item.certificate }}
+
+
+
+ 权限操作:
+ {{ item.operation }}
+
+
+
+ 失败原因:
+ {{ item.fail }}
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/attendance/issue-record.vue b/src/pages/attendance/issue-record.vue
new file mode 100644
index 0000000..14f9e29
--- /dev/null
+++ b/src/pages/attendance/issue-record.vue
@@ -0,0 +1,126 @@
+
+{
+ layout: 'default',
+ style: {
+ navigationStyle: 'custom'
+ }
+}
+
+
+
+
+
+
+ 此处仅展示考勤组中打卡设备的下发记录
+
+
+
+
+
+ {{ item.dec }}
+ {{ item.time }}
+
+
+ {{ item.status }}
+
+
+
+
+
+
+ {{ item.success }}
+ 成功
+
+
+ {{ item.fail }}
+ 失败
+
+
+ {{ item.total }}
+ 总数
+
+
+
+
+
+
+
+ 刷新纪录
+
+
+
+ 手动下发
+
+
+
+
+
+
+
+
diff --git a/src/pages/notification/notification.vue b/src/pages/notification/notification.vue
index 126a836..0a03307 100644
--- a/src/pages/notification/notification.vue
+++ b/src/pages/notification/notification.vue
@@ -1,7 +1,14 @@
-
+ 考勤
-
+
diff --git a/src/types/uni-pages.d.ts b/src/types/uni-pages.d.ts
index 0482d5d..bd9f873 100644
--- a/src/types/uni-pages.d.ts
+++ b/src/types/uni-pages.d.ts
@@ -6,6 +6,7 @@
interface NavigateToOptions {
url: "/pages/home/home" |
"/pages/application-list/application-list" |
+ "/pages/attendance/attendance" |
"/pages/code/code" |
"/pages/get-code/get-code" |
"/pages/info-publish/info-publish" |
@@ -15,7 +16,9 @@ interface NavigateToOptions {
"/pages/mine/mine" |
"/pages/notification/notification" |
"/pages/reset-password/reset-password" |
- "/pages/workbench/workbench";
+ "/pages/workbench/workbench" |
+ "/pages/attendance/attendance-add-group/attendance-add-group" |
+ "/pages/attendance/attendance-add-group/outside-rules";
}
interface RedirectToOptions extends NavigateToOptions {}
diff --git a/src/typings.ts b/src/typings.ts
index e1bdd2a..1f9508e 100644
--- a/src/typings.ts
+++ b/src/typings.ts
@@ -48,3 +48,9 @@ export enum PlatId {
miniProgram = 3,
pc = 4
}
+export type OutsideRules = {
+ allow: boolean
+ takePhoto: boolean
+ remark: boolean
+ selectPhoto: boolean
+}