Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

newteo/clockInOut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

13 Commits

Repository files navigation

打卡签到小程序

用微信小程序实现的一个简单的打卡签到的小程序

拒绝授权-unAuth

这是一个比较孤立的页面,只有一个入口,也就是用户在登录页面拒绝授权后才会跳转至此页面。

登录页面-login

该页面是程序的初始页面,小程序有几个入口,该页面就可以从这些入口进入,主要分为两类:

  1. 某公司生成的带有参数的,用于打卡的二维码
  2. 其他(包括搜索、发现 -> 小程序、推广时不带参数的小程序二维码)

该页面程序逻辑包括:

 if(登录) {
 switch(用户类型) {
 case: '某公司的管理员': 跳转至 管理界面
 case: '某公司的员工': {
 if(打卡二维码进入)扫码签到
 else 个人考勤
 }
 case: '以上都不是': 跳转至选择页面
 }
 }
 handleLoginBtn() {
 //获取token
 //设置localStorage,包括:access_token, 能判断出用户类型的字段
 //跳转至选择页面
 }

get 员工列表 asdfa /token

GET token 
type: 'admin','staff','user',

选择页面-select

选择页面有三个入口,一是登录页面过来,二是员工退出团队后而来,三是管理员解散团队而来。 这三种情况可以算作一种情况,用户都是已登录过的普通用户!

  • handleCreateBtn()
  • handleJoinBtn()

创建团队-create

POST 创建团队

弹出提示创建成功,跳转至 管理页面

加入团队/公司列表-list

GET 所有公司列表

给 确认加入 页面传入 公司id

确认加入-confirm

从之前的页面获取 公司id

GET 单个公司信息
POST 加入某个公司

审核页面-audit

该页面属于 纯静态页面


员工列表信息-workers

获取员工列表

单个员工信息-worker

获取单个员工
修改单个员工的真实姓名,即备注信息

boss

修改团队的信息,包括上下班时间,地理位置
还能生成二维码

扫码页面-scan

调用wx.scanCode(),只能获取信息,

  • unAuth: 拒绝授权
  • login: 登录页面
  • select: 选择页面
  • create: 创建团队/公司
  • list: 公司列表
  • confirm: 确认加入
  • audit:审核页面
  • workers:员工列表信息,tarbar左部页面
  • worker: 查看单个员工考勤信息
  • boss: 管理者,tarbar右部页面
  • scan-扫码页面
  • clock-打卡页面
  • success 打卡成功
  • fail 打卡失败
  • self-查看个人考勤信息

问题: ?

  1. 判断用户类型
  2. 打卡二维码的参数
  3. 怎么打卡
  4. 生成打卡二维码的API

推广时的二维码:

{
 "path": "pages/login/login?",
 "width": 430
}

打卡时的二维码

{
 "path": "pages/login/login?add=''"
}

生产二维码码 httpx... post { compantId location }

返回二维码的图片

打卡的时候

(获取二维码的信息。(公司的companyId + location)

  • 打卡的信息,位置,时间啊,token

打卡成功

打卡失败

bug修复,界面与逻辑的优化

  1. 在scan.js增加定时器,增加打卡逻辑判断,当点击一次后将禁用10秒
  2. 在self.js更改增加获取今天日期并显示
  3. util.js 增加方法 obtainIndate
  4. scan界面样式.seconds和其二级父元素
  5. login界面样式.button
  6. 在login.js将按钮登陆增加用户类型判断,由于现阶段无扫码进入,

|
| 默认登陆过(非按钮登陆)增加一个虚拟 encrypt
| 则判定为扫了公司二维码
|_______________________________________| | 登陆按钮点击则判断用户类型 员工不会跳转去公司列表 | 并且不会有虚拟 encrypt 所以会跳往打卡详情 _____________________________________________

  1. 修改了scan.js
  2. 修改了success
  3. 修改了fail
  4. 修改了applylist的无申请人员显示界面
  5. 增加了日期选择右边箭头
  6. self 修改了暂无打卡纪录显示界面
  7. 稍微调整了以下workers界面,只要能获得打卡时间等数据就可以设置为可能异常就黄色,其他的就灰色
  8. 修改了app.json 的底部tebar
  9. util.js增加了一个定时器 |
    | 通过 util.disable(1000,10, (backData) => { | if (backData == false) { | console.log('禁用解除') | this.setData({ | btnDis: false | }) | } | }) | 如上方式调用
    |_______________________________________| | 第一个参数为计时的间隔,一般设置1000(1秒) | 第二个参数是计时的长度,10为10秒的意思 _____________________________________________
  10. select : 增加点击延时,防止重复跳转
  11. login : 增加延时,防止重复登陆和跳转
  12. audit : 增加一个返回企业列表的按钮 (待议事项)
  13. select : 修改图片
  14. login : 修改标题内容 ---- 增加图片 icons: signOk.png signoff.png nosign.png noquick.png

About

微信小程序打卡

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

AltStyle によって変換されたページ (->オリジナル) /