Skip to content

Commit

Permalink
CR
Browse files Browse the repository at this point in the history
  • Loading branch information
tanxiah committed Mar 28, 2022
1 parent 3a5c0de commit e511d00
Show file tree
Hide file tree
Showing 486 changed files with 47,342 additions and 0 deletions.
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Windows
[Dd]esktop.ini
Thumbs.db
$RECYCLE.BIN/

# macOS
.DS_Store
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes

# Node.js
node_modules/
init/
661 changes: 661 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

64 changes: 64 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## 功能介绍

核酸检测预约小程序包括防疫动态,预约规则宣讲,核酸检测预约,预约管理,预约名单导出,预约数据整理等功能,前后端代码完整,采用腾讯小程序云开发技术。想做核酸?疫情期间,不愿意出门去人多的地方?不愿意排队?工作太忙?为了方便大家节省时间避免扎堆,动动金手指,就可以通过小程序直接核酸检测啦!超简单,超好用!

- 预约管理:开始/截止时间/人数均可灵活设置,可以自定义客户预约填写的数据项
- 预约凭证:支持线下到场后校验签到/核销/二维码自助签到等多种方式
- 详尽的预约数据:支持预约名单数据导出Excel,打印

![输入图片说明](demo/%E4%BA%8C%E7%BB%B4%E7%A0%81.png)


## 技术运用
- 本项目使用微信小程序平台进行开发。
- 使用腾讯专门的小程序云开发技术,云资源包含云函数,数据库,带宽,存储空间,定时器等,资源配额价格低廉,无需域名和服务器即可搭建。
- 小程序本身的即用即走,适合小工具的使用场景,也适合快速开发迭代。
- 云开发技术采用腾讯内部链路,没有被黑客攻击的风险,安全性高且免维护。
- 资源承载力可根据业务发展需要随时弹性扩展。



## 作者
- 如有疑问,欢迎骚扰联系我鸭:开发交流,技术分享,问题答疑,功能建议收集,版本更新通知,安装部署协助,小程序开发定制等。
- 俺的微信:

![输入图片说明](demo/author-base.png)




## 演示
![输入图片说明](demo/%E4%BA%8C%E7%BB%B4%E7%A0%81.png)


## 安装

- 安装手册见源码包里的word文档




## 截图

![输入图片说明](demo/1%E9%A6%96%E9%A1%B5.png)

![输入图片说明](demo/2%E9%98%B2%E7%96%AB%E5%8A%A8%E6%80%81.png)
![输入图片说明](demo/3%E9%A2%84%E7%BA%A6%E6%97%A5%E5%8E%86.png)
![输入图片说明](demo/4%E6%88%91%E7%9A%84.png)
![输入图片说明](demo/5%E9%A2%84%E7%BA%A6%E8%A7%84%E5%88%99.png)
![输入图片说明](demo/6%E6%A0%B8%E9%85%B8%E5%8F%88%E8%A6%81.png)
![输入图片说明](demo/7%E9%A2%84%E7%BA%A6%E8%AF%A6%E6%83%85.png)
![输入图片说明](demo/8%E9%A2%84%E7%BA%A6%E6%88%90%E5%8A%9F.png)
![输入图片说明](demo/9%E9%A2%84%E7%BA%A6%E8%AF%A6%E6%83%85.png)

## 后台管理系统截图
![输入图片说明](demo/10%E5%90%8E%E5%8F%B0%E9%A6%96%E9%A1%B5.png)
![输入图片说明](demo/12%E5%90%8E%E5%8F%B0%E9%A2%84%E7%BA%A6%E7%AE%A1%E7%90%86.png)
![输入图片说明](demo/13%E5%90%8E%E5%8F%B0%E9%A2%84%E7%BA%A6%E6%B7%BB%E5%8A%A0.png)
![输入图片说明](demo/14%E5%90%8E%E5%8F%B0%E9%A2%84%E7%BA%A6%E6%97%B6%E6%AE%B5%E5%8D%81%E4%BA%8C%E6%8C%87.png)
![输入图片说明](demo/15%E5%90%8E%E5%8F%B0-%E9%A2%84%E7%BA%A6%E7%AE%A1%E7%90%86-%E8%8F%9C%E5%8D%95.png)
![输入图片说明](demo/16%E5%90%8E%E5%8F%B0-%E9%A2%84%E7%BA%A6%E5%90%8D%E5%8D%95%E5%AF%BC%E5%87%BA.png)
![输入图片说明](demo/17%E5%90%8E%E5%8F%B0-%E9%A2%84%E7%BA%A6%E6%8A%A5%E5%90%8D%E7%AE%A1%E7%90%86.png)
![输入图片说明](demo/17%E5%90%8E%E5%8F%B0-%E9%A2%84%E7%BA%A6%E6%8A%A5%E5%90%8D%E5%90%8D%E5%8D%95.png)
![输入图片说明](demo/19%E5%90%8E%E5%8F%B0-%E5%86%85%E5%AE%B9%E7%AE%A1%E7%90%86.png)
![输入图片说明](demo/20%E5%90%8E%E5%8F%B0-%E5%86%85%E5%AE%B9%E6%B7%BB%E5%8A%A0.png)
41 changes: 41 additions & 0 deletions cloudfunctionTemplate/cloud.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
[
{
"name": "测试",
"value": {
"route": "test/test",
"pid": "DEMO2"
}
},
{
"name": "OA模拟",
"value": {
"CreateTime": 0,
"Event": "subscribe",
"EventKey": "",
"FromUserName": "os85tuO2OaiWSHPi2UECnU5TlDrk",
"MsgType": "event",
"ToUserName": "gh_12824cfe1b7b",
"userInfo": {
"appId": "wx1a3ad7903d85f33a",
"openId": "os85tuO2OaiWSHPi2UECnU5TlDrk"
}
}
},
{
"name": "支付回调",
"value": {
"outTradeNo": "X20211128170943-T0-M999900-pb95y",
"transactionId": "transactionId1",
"userInfo": {
"openId": "userid3243l4l3j24324324"
}
}
},
{
"name": "MEET JOIN 测试",
"value": {
"route": "test/meet_test_join",
"pid": "DEMO2"
}
}
]
5 changes: 5 additions & 0 deletions cloudfunctions/cloud/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"permissions": {
"openapi": ["wxacode.getUnlimited", "security.imgSecCheck", "security.msgSecCheck","serviceMarket.invokeService"]
}
}
10 changes: 10 additions & 0 deletions cloudfunctions/cloud/config/biz_config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* Notes: 本模块业务相关公用
* Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY [email protected]
* Date: 2022-01-23 19:20:00
*/


module.exports = {

}
40 changes: 40 additions & 0 deletions cloudfunctions/cloud/config/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
module.exports = {

//### 环境相关
CLOUD_ID: 'dev-5gf0o85o226fad1d', //你的云环境id

ADMIN_NAME: 'admin', // 管理员账号(5-30位)
ADMIN_PWD: '123456', // 管理员密码(5-30位)


// ##################################################################
PID: 'A00',
IS_DEMO: false,

NEWS_CATE: '1=防疫动态,2=预约规则',
MEET_TYPE: '1=核酸预约',
// ##################################################################
// #### 调试相关
TEST_MODE: false,
TEST_TOKEN_ID: '',

COLLECTION_NAME: 'ax_admin|ax_cache|ax_day|ax_export|ax_join|ax_log|ax_meet|ax_news|ax_setup|ax_temp|ax_user',

DATA_EXPORT_PATH: 'export/', //数据导出路径
MEET_TIMEMARK_QR_PATH: 'meet/usercheckin/', //用户签到码路径
SETUP_PATH: 'setup/',

// ## 缓存相关
IS_CACHE: true, //是否开启缓存
CACHE_CALENDAR_TIME: 60 * 30, //日历缓存

// #### 内容安全
CLIENT_CHECK_CONTENT: false, //前台图片文字是否校验
ADMIN_CHECK_CONTENT: false, //后台图片文字是否校验

// #### 预约相关
MEET_LOG_LEVEL: 'debug',

// ### 后台业务相关
ADMIN_LOGIN_EXPIRE: 86400, //管理员token过期时间 (秒)
}
20 changes: 20 additions & 0 deletions cloudfunctions/cloud/config/msg_config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Notes: 消息提醒配置
* Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY [email protected]
* Date: 2021-11-11 14:00:00
*/

module.exports = {

/**
* 打卡提醒 (20647 工具>>备忘录)
* 计划名称 {{thing1.DATA}}
* 完成进度 {{thing2.DATA}}
* 备注 {{thing3.DATA}}
* 上次打卡时间 {{time4.DATA}}
*
*/
MINI_TEMP_CARD_HAS_TIME: 'VCb4GZ-3yK5j66iVxOH5U1MClzXd2f97vFTYlN-K5JU', //有打卡时间
MINI_TEMP_CARD_NO_TIME: 'VCb4GZ-3yK5j66iVxOH5U3wurLqu2QjwYCSyDgn5CTw', //无打卡时间

}
92 changes: 92 additions & 0 deletions cloudfunctions/cloud/config/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
/**
* Notes: 路由配置文件
* User: CC
* Date: 2020-10-14 07:00:00
*/

module.exports = {
'home/setup_all': 'home_controller@getSetupAll', //获取全局配置(所有)

'passport/phone': 'passport_controller@getPhone',
'passport/my_detail': 'passport_controller@getMyDetail',
'passport/edit_base': 'passport_controller@editBase',

'news/list': 'news_controller@getNewsList',
'news/home_list': 'news_controller@getHomeNewsList',
'news/view': 'news_controller@viewNews',

'meet/list': 'meet_controller@getMeetList',
'meet/list_by_day': 'meet_controller@getMeetListByDay',
'meet/list_has_day': 'meet_controller@getHasDaysFromDay',
'meet/view': 'meet_controller@viewMeet',
'meet/detail_for_join': 'meet_controller@detailForJoin',
'meet/before_join': 'meet_controller@beforeJoin',
'meet/join': 'meet_controller@join',

'my/my_join_list': 'meet_controller@getMyJoinList',
'my/my_join_cancel': 'meet_controller@cancelMyJoin',
'my/my_join_detail': 'meet_controller@getMyJoinDetail',
'my/my_join_someday': 'meet_controller@getMyJoinSomeday',
'my/my_join_checkin': 'meet_controller@userSelfCheckin',

'test/test': 'test/test_controller@test',
'test/meet_test_join': 'test/test_meet_controller@testJoin',

//***########### ADMIN ################## */
'admin/login': 'admin/admin_home_controller@adminLogin',
'admin/home': 'admin/admin_home_controller@adminHome',
'admin/clear_cache': 'admin/admin_home_controller@clearCache#noDemo',

'admin/setup_about': 'admin/admin_setup_controller@setupAbout#noDemo',
'admin/setup_contact': 'admin/admin_setup_controller@setupContact#noDemo',
'admin/setup_qr': 'admin/admin_setup_controller@genMiniQr',

'admin/news_list': 'admin/admin_news_controller@getNewsList',
'admin/news_insert': 'admin/admin_news_controller@insertNews#noDemo',
'admin/news_detail': 'admin/admin_news_controller@getNewsDetail',
'admin/news_edit': 'admin/admin_news_controller@editNews#noDemo',
'admin/news_update_pic': 'admin/admin_news_controller@updateNewsPic#noDemo',
'admin/news_update_content': 'admin/admin_news_controller@updateNewsContent#noDemo',
'admin/news_del': 'admin/admin_news_controller@delNews#noDemo',
'admin/news_sort': 'admin/admin_news_controller@sortNews#noDemo',
'admin/news_status': 'admin/admin_news_controller@statusNews#noDemo',

'admin/meet_list': 'admin/admin_meet_controller@getMeetList',
'admin/meet_join_list': 'admin/admin_meet_controller@getJoinList',
'admin/join_status': 'admin/admin_meet_controller@statusJoin#noDemo',
'admin/join_del': 'admin/admin_meet_controller@delJoin#noDemo',
'admin/meet_insert': 'admin/admin_meet_controller@insertMeet#noDemo',
'admin/meet_detail': 'admin/admin_meet_controller@getMeetDetail',
'admin/meet_edit': 'admin/admin_meet_controller@editMeet#noDemo',
'admin/meet_del': 'admin/admin_meet_controller@delMeet#noDemo',
'admin/meet_update_content': 'admin/admin_meet_controller@updateMeetContent#noDemo',
'admin/meet_update_style': 'admin/admin_meet_controller@updateMeetStyleSet#noDemo',
'admin/meet_sort': 'admin/admin_meet_controller@sortMeet#noDemo',
'admin/meet_status': 'admin/admin_meet_controller@statusMeet#noDemo',
'admin/meet_cancel_time_join': 'admin/admin_meet_controller@cancelJoinByTimeMark#noDemo',
'admin/join_scan': 'admin/admin_meet_controller@scanJoin#noDemo',
'admin/join_checkin': 'admin/admin_meet_controller@checkinJoin#noDemo',
'admin/self_checkin_qr': 'admin/admin_meet_controller@genSelfCheckinQr',
'admin/meet_day_list': 'admin/admin_meet_controller@getDayList',

'admin/join_data_get': 'admin/admin_export_controller@joinDataGet',
'admin/join_data_export': 'admin/admin_export_controller@joinDataExport',
'admin/join_data_del': 'admin/admin_export_controller@joinDataDel#noDemo',

'admin/temp_insert': 'admin/admin_meet_controller@insertTemp#noDemo',
'admin/temp_list': 'admin/admin_meet_controller@getTempList',
'admin/temp_del': 'admin/admin_meet_controller@delTemp#noDemo',
'admin/temp_edit': 'admin/admin_meet_controller@editTemp#noDemo',

'admin/log_list': 'admin/admin_mgr_controller@getLogList',

'admin/user_list': 'admin/admin_user_controller@getUserList',
'admin/user_detail': 'admin/admin_user_controller@getUserDetail',
'admin/user_del': 'admin/admin_user_controller@delUser#noDemo',

'admin/user_data_get': 'admin/admin_export_controller@userDataGet',
'admin/user_data_export': 'admin/admin_export_controller@userDataExport',
'admin/user_data_del': 'admin/admin_export_controller@userDataDel#noDemo',


}
17 changes: 17 additions & 0 deletions cloudfunctions/cloud/framework/client/controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/**
* Notes: 基础控制器
* Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat)
* Date: 2020-09-05 04:00:00
*/
class Controller {

constructor(route, openId, event) {
this._route = route; // 路由
this._openId = openId; //用户身份
this._event = event; // 所有参数
this._request = event.params; //数据参数

}
}

module.exports = Controller;
22 changes: 22 additions & 0 deletions cloudfunctions/cloud/framework/cloud/cloud_base.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/**
* Notes: 云初始化实例
* Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat)
* Date: 2020-09-05 04:00:00
*/

const config = require('../../config/config.js');

/**
* 获得云实例
*/
function getCloud() {
const cloud = require('wx-server-sdk');
cloud.init({
env: config.CLOUD_ID
});
return cloud;
}

module.exports = {
getCloud
}
Loading

0 comments on commit e511d00

Please sign in to comment.