Browse Source

perf: 日历的更改

develop
wangrongrong 4 years ago
parent
commit
7353ac8d55
  1. 203
      CHANGELOG.md
  2. 2
      package.json
  3. 2
      src/apis/task.js
  4. 442
      src/components/Calendar/Calendar.vue
  5. 130
      src/components/Calendar/generateDates.js
  6. 90
      src/components/Projects/Projects.vue
  7. 1
      src/components/Skeleton/wisdomcar_mobile
  8. 2
      src/components/Tips/Tips.vue
  9. 27
      src/components/Upload/Upload.vue
  10. 7
      src/pages.json
  11. 32
      src/pages/index/index.vue
  12. BIN
      src/static/local_play1.png

203
CHANGELOG.md

@ -1,140 +1,141 @@
# 0.1.0 (2021-08-03) # 0.1.0 (2021-08-04)
### 🌟 新功能 ### 🌟 新功能
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | db store | 6414c4f plugin | 插件添加了token及param参数 | [aeb0292](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/aeb0292)
- | indexedDB | 687394e - | 标题栏变化 | [3898cfe](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/3898cfe)
pinch | alloy finger实现图片的pinch放大缩小 | de01343 - | 标题栏变化 | [c0fcd9d](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/c0fcd9d)
plugin | 插件添加了token及param参数 | aeb0292 - | 标题栏角色栏全局任务组件新建 | [0500cb4](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/0500cb4)
- | post 封装 | da52e94 - | 插件参数处理调整 | [a3e68d3](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/a3e68d3)
- | tall插件封装 | 1bcb920 - | 插件数据获取 | [5b91bdc](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/5b91bdc)
- | ws storage | 21b3a06 - | 存token | [b8a178d](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/b8a178d)
- | 全局插件及默认插件位置修改 | 6c80d08 - | 定期任务面板骨架屏添加 | [b2698c0](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/b2698c0)
- | 字体大小更改 | 82cfdd4 - | 角色栏实现 | [94cd671](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/94cd671)
- | 存token | b8a178d - | 距调整pc端 | [5069aa1](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/5069aa1)
- | 定期任务面板骨架屏添加 | b2698c0 - | 模拟接口测试 | [69e7931](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/69e7931)
富文本插件 | 富文本插件demo测试 | ed3d644 - | 配置默认插件接口 | [f0c177d](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/f0c177d)
- | 引入dayjs | 29b8b93 - | 全局插件及默认插件位置修改 | [6c80d08](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/6c80d08)
- | 提交到本地 | 9cbe411 - | 日常任务插件调整 | [c1881f9](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/c1881f9)
- | 插件参数处理调整 | a3e68d3 - | 时间基准线,默认插件 | [a33ba1e](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/a33ba1e)
- | 插件数据获取 | 5b91bdc - | 时间轴界面 | [33927e9](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/33927e9)
- | 日常任务插件调整 | c1881f9 - | 时间轴修改状态时提示框增加 | [e841392](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/e841392)
- | 时间基准线,默认插件 | a33ba1e - | 提交到本地 | [9cbe411](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/9cbe411)
- | 时间轴修改状态时提示框增加 | e841392 - | 添加时间轴上下滚动 | [2b81bbc](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/2b81bbc)
- | 时间轴界面 | 33927e9 - | 引入dayjs | [29b8b93](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/29b8b93)
- | 标题栏变化 | 3898cfe - | 字体大小更改 | [82cfdd4](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/82cfdd4)
- | 标题栏变化 | c0fcd9d - | db store | [6414c4f](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/6414c4f)
- | 标题栏角色栏全局任务组件新建 | 0500cb4 - | indexedDB | [687394e](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/687394e)
- | 模拟接口测试 | 69e7931 - | post 封装 | [da52e94](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/da52e94)
- | 添加时间轴上下滚动 | 2b81bbc - | tall插件封装 | [1bcb920](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/1bcb920)
- | 角色栏实现 | 94cd671 - | ws storage | [21b3a06](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/21b3a06)
- | 距调整pc端 | 5069aa1 富文本插件 | 富文本插件demo测试 | [ed3d644](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/ed3d644)
- | 配置默认插件接口 | f0c177d pinch | alloy finger实现图片的pinch放大缩小 | [de01343](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/de01343)
### 🎨 代码样式 ### 🎨 代码样式
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 代码格式细节调整 | cb2532b - | 代码格式细节调整 | [cb2532b](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/cb2532b)
- | 任务快捷方式图标增加 | 4aba872 - | 格式细节调整 | [b907a03](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/b907a03)
- | 修改角色样式 | 73e268e - | 更新代码 | [8c27e68](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/8c27e68)
- | 删除多余字段 | 5ae3973 - | 更新代码 | [1f40a76](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/1f40a76)
- | 删除插件携带的多余文件 | 0f392bb - | 任务快捷方式图标增加 | [4aba872](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/4aba872)
- | 图标修改 | 54bca09 - | 日常任务修改 | [dfa7ee2](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/dfa7ee2)
- | 无基本变化 | 21ac4bb - | 删除插件携带的多余文件 | [0f392bb](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/0f392bb)
- | 日常任务修改 | dfa7ee2 - | 删除多余字段 | [5ae3973](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/5ae3973)
- | 更新代码 | 8c27e68 - | 添加插件数据 | [2f11b42](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/2f11b42)
- | 更新代码 | 1f40a76 - | 图标修改 | [54bca09](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/54bca09)
- | 格式细节调整 | b907a03 - | 无基本变化 | [21ac4bb](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/21ac4bb)
- | 添加插件数据 | 2f11b42 - | 修改角色样式 | [73e268e](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/73e268e)
- | 组件新建 | 89c0035 - | 组件新建 | [89c0035](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/89c0035)
### 🐛 Bug 修复 ### 🐛 Bug 修复
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
ID1000343 | 解决向下预加载查询参数时间没+1颗粒度;以及滚动加载颗粒度写死的问题 | 940603a, closes #ID1000343 ID1000343 | 解决向下预加载查询参数时间没+1颗粒度;以及滚动加载颗粒度写死的问题 | [940603a](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/940603a), closes [#ID1000343](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/issues/ID1000343)
plugin | 插件解析机制完善 | 0f5a27d plugin | 插件解析机制完善 | [0f5a27d](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/0f5a27d)
project title | 项目标题修改; 切换角色移除script | 5c20017 project title | 项目标题修改; 切换角色移除script | [5c20017](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/5c20017)
roles | 修复默认显示不是我的角色的问题 | b69f94f role | 切换角色的逻辑修正完善 | [4ae534f](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/4ae534f)
role | 切换角色的逻辑修正完善 | 4ae534f roles | 修复默认显示不是我的角色的问题 | [b69f94f](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/b69f94f)
task任务逻辑完善 | 减少初始global及regular的不必要请求 | bd4bd38 task任务逻辑完善 | 减少初始global及regular的不必要请求 | [bd4bd38](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/bd4bd38)
- | 上下滑动加载定期任务 | 4090d89 - | 插件bug解决 | [41257eb](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/41257eb)
- | 上下滚动时间轴 | d533a01 - | 定期任务插件 | [92b3254](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/92b3254)
- | 下拉加载定期任务传参,时间格式化修改 | 0b95a0e - | 定期任务接口 | [aa4981c](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/aa4981c)
- | 任务开始时间延迟插件 | 992a313 - | 骨架屏替换 | [e9fdd71](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/e9fdd71)
- | 修改main | 749ae9a - | 角色栏修改 | [19228d6](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/19228d6)
- | 修改报错 | 531c14d - | 解决时间轴报错 | [da1eece](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/da1eece)
- | 修改角色栏组件 | a54c601 - | 任务开始时间延迟插件 | [992a313](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/992a313)
- | 定期任务接口 | aa4981c - | 日常任务插件遍历时的key值修改 | [cd26285](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/cd26285)
- | 定期任务插件 | 92b3254 - | 日常任务插件面板高度修改 | [249f9e4](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/249f9e4)
- | 提示信息显示bug及日常任务收缩问题 | f2f06c5 - | 日常任务html数据查验 | [880ce5c](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/880ce5c)
- | 插件bug解决 | 41257eb - | 上下滚动时间轴 | [d533a01](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/d533a01)
- | 日常任务html数据查验 | 880ce5c - | 上下滑动加载定期任务 | [4090d89](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/4090d89)
- | 日常任务插件遍历时的key值修改 | cd26285 - | 时间轴插件 | [225d3cc](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/225d3cc)
- | 日常任务插件面板高度修改 | 249f9e4 - | 时间轴骨架屏修改 | [ca78d02](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/ca78d02)
- | 时间轴上下滑动 | 4d0ae46 - | 时间轴上下滚动数据加载bug修改 | [e82ede4](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/e82ede4)
- | 时间轴上下滚动数据加载bug修改 | e82ede4 - | 时间轴上下滑动 | [4d0ae46](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/4d0ae46)
- | 时间轴插件 | 225d3cc - | 提示信息显示bug及日常任务收缩问题 | [f2f06c5](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/f2f06c5)
- | 时间轴骨架屏修改 | ca78d02 - | 下拉加载定期任务传参,时间格式化修改 | [0b95a0e](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/0b95a0e)
- | 角色栏修改 | 19228d6 - | 修改报错 | [531c14d](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/531c14d)
- | 解决时间轴报错 | da1eece - | 修改角色栏组件 | [a54c601](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/a54c601)
- | 骨架屏替换 | e9fdd71 - | 修改main | [749ae9a](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/749ae9a)
### 📝 文档 ### 📝 文档
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | README.md | ab0eb05 - | README.md | [ab0eb05](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/ab0eb05)
### 🔨 代码重构 ### 🔨 代码重构
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | project 代码健壮性完善 | a3202c5 store/home | 删除store/home | [db8a3b4](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/db8a3b4)
store/home | 删除store/home | db8a3b4 task beginTime | 格式化任务开始时间 | [fbc0301](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/fbc0301)
task beginTime | 格式化任务开始时间 | fbc0301 tip | 任务状态显示及tip组件数据的重构 | [78a5750](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/78a5750)
template | eslint prettier sass uview tailwindcss | 9c966a1 tips | 修改任务状态方法重构 | [b57d3ac](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/b57d3ac)
tip | 任务状态显示及tip组件数据的重构 | 78a5750 - | 界面样式调整 | [4367249](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/4367249)
- | 下滑时间轴添加备注 | 4fd20e3 - | 任务状态重构 | [4693655](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/4693655)
- | 任务状态重构 | 4693655 - | 删除多余的技术验证界面 | [542ae5b](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/542ae5b)
- | 删除多余的技术验证界面 | 542ae5b - | 下滑时间轴添加备注 | [4fd20e3](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/4fd20e3)
- | 界面样式调整 | 4367249 - | 重构store分层 | [5f6fff8](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/5f6fff8)
- | 重构store分层 | 5f6fff8 - | project 代码健壮性完善 | [a3202c5](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/a3202c5)
template | eslint prettier sass uview tailwindcss | [9c966a1](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/9c966a1)
### 🚀 性能优化 ### 🚀 性能优化
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 插件查询及展示 | 4dba770 - | 测试接口 | [215e074](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/215e074)
- | 测试接口 | 215e074 - | 插件查询及展示 | [4dba770](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/4dba770)
- | 组件文件夹新建 | 22bfe7b - | 角色栏文字颜色修改 | [215c6b3](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/215c6b3)
- | 组件文件夹新建 | 17bb8c9 - | 解决警告 | [c932b09](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/c932b09)
- | 组件文件夹新建 | 1421504 - | 组件文件夹新建 | [22bfe7b](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/22bfe7b)
- | 角色栏文字颜色修改 | 215c6b3 - | 组件文件夹新建 | [17bb8c9](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/17bb8c9)
- | 解决警告 | c932b09 - | 组件文件夹新建 | [1421504](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/1421504)
### chore ### chore
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | api 封装 | 8dcb8a2 - | 删除多余的构建的命令 | [3f4eb2f](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/3f4eb2f)
- | env host修改 | a79a4a5 - | 修复不能build的问题 | [0b7b91e](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/0b7b91e)
- | merge globals | b0957cc - | api 封装 | [8dcb8a2](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/8dcb8a2)
- | merge wrr | 5ccc7a5 - | env host修改 | [a79a4a5](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/a79a4a5)
- | mock | 51c24a5 - | merge globals | [b0957cc](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/b0957cc)
package manifest | 去掉了摇树 | f7c1dd4 - | merge wrr | [5ccc7a5](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/5ccc7a5)
pwa 小程序 | 移除了pwa,alloyFinger添加平台判断 | 875fab4 package manifest | 去掉了摇树 | [f7c1dd4](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/f7c1dd4)
- | uview-ui | a9ea34b - | mock | [51c24a5](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/51c24a5)
信息配置 | 配置eslint等配置 | 7421443 信息配置 | 配置eslint等配置 | [7421443](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/7421443)
- | 修复不能build的问题 | 0b7b91e pwa 小程序 | 移除了pwa,alloyFinger添加平台判断 | [875fab4](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/875fab4)
- | 删除多余的构建的命令 | 3f4eb2f - | uview-ui | [a9ea34b](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/a9ea34b)
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | style:index | 978f272 - | style:index | [978f272](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/978f272)
- | !2 基础模板v1.1.0 | f5e61dd - | !2 基础模板v1.1.0 | [f5e61dd](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/f5e61dd)
- | init | c0f1deb - | init | [c0f1deb](https://dd.tall.wiki/gitea/wally/TALL-MUI-3/commits/c0f1deb)

2
package.json

@ -75,7 +75,7 @@
"compression-webpack-plugin": "^5.0.1", "compression-webpack-plugin": "^5.0.1",
"conventional-changelog-cli": "^2.0.28", "conventional-changelog-cli": "^2.0.28",
"core-js": "^3.15.2", "core-js": "^3.15.2",
"cross-env": "^7.0.2", "cross-env": "^7.0.3",
"eslint": "^6.7.2", "eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1", "eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^6.2.2", "eslint-plugin-vue": "^6.2.2",

2
src/apis/task.js

@ -8,6 +8,8 @@ const install = (Vue, vm) => {
vm.$u.api.getPermanent = param => vm.$u.post(`${task}/permanent`, param); vm.$u.api.getPermanent = param => vm.$u.post(`${task}/permanent`, param);
//根据时间基准点和角色查找定期任务 //根据时间基准点和角色查找定期任务
vm.$u.api.getRegularTask = param => vm.$u.post(`${task}/regular`, param); vm.$u.api.getRegularTask = param => vm.$u.post(`${task}/regular`, param);
//修改任务状态
vm.$u.api.updateTaskType = param => vm.$u.post(`${task}/type`, param);
}; };
export default { install }; export default { install };

442
src/components/Calendar/Calendar.vue

@ -0,0 +1,442 @@
<template>
<view class="zzx-calendar">
<view class="calendar-heander">
{{ timeStr }}
</view>
<view class="calendar-weeks">
<view class="calendar-week" v-for="(week, index) in weeks" :key="index">
{{ week }}
</view>
</view>
<view class="calendar-content">
<swiper
class="calendar-swiper"
:style="{
width: '100%',
height: sheight,
}"
:indicator-dots="false"
:autoplay="false"
:duration="duration"
:current="current"
@change="changeSwp"
:circular="true"
>
<swiper-item class="calendar-item" v-for="sitem in swiper" :key="sitem">
<view class="calendar-days">
<template v-if="sitem === current">
<view
class="calendar-day"
v-for="(item, index) in days"
:key="index"
:class="{
'day-hidden': !item.show,
}"
@click="clickItem(item)"
>
<view class="date" :class="[item.isToday ? todayClass : '', item.fullDate === selectedDate ? checkedClass : '']">
{{ item.time.getDate() }}
</view>
<view class="dot-show" v-if="item.info" :style="dotStyle"> </view>
</view>
</template>
<template v-else>
<template v-if="current - sitem === 1 || current - sitem === -2">
<view
class="calendar-day"
v-for="(item, index) in predays"
:key="index"
:class="{
'day-hidden': !item.show,
}"
>
<view class="date" :class="[item.isToday ? todayClass : '']">
{{ item.time.getDate() }}
</view>
</view>
</template>
<template v-else>
<view
class="calendar-day"
v-for="(item, index) in nextdays"
:key="index"
:class="{
'day-hidden': !item.show,
}"
>
<view class="date" :class="[item.isToday ? todayClass : '']">
{{ item.time.getDate() }}
</view>
</view>
</template>
</template>
</view>
</swiper-item>
</swiper>
<view class="mode-change" @click="changeMode">
<view :class="weekMode ? 'mode-arrow-bottom' : 'mode-arrow-top'"> </view>
</view>
</view>
<view class="back-today" @click="goback" v-if="showBack"> 今日 </view>
</view>
</template>
<script>
import { gegerateDates, dateEqual, formatDate } from './generateDates.js';
export default {
props: {
duration: {
type: Number,
default: 500,
},
dotList: {
type: Array, ///
default() {
return [];
},
},
showBack: {
type: Boolean, //
default: false,
},
todayClass: {
type: String, // class
default: 'is-today',
},
checkedClass: {
type: String, // class
default: 'is-checked',
},
dotStyle: {
type: Object, //
default() {
return { background: '#FF0000' };
},
},
},
watch: {
dotList: function (newvalue) {
const days = this.days.slice(0);
newvalue.forEach(item => {
const index = days.findIndex(ditem => ditem.fullDate === item.date);
if (index > 0) {
days[index].info = item;
}
});
this.days = days;
console.log(days);
},
},
computed: {
sheight() {
//
//
let h = '70rpx';
if (!this.weekMode) {
const d = new Date(this.currentYear, this.currentMonth, 0);
const days = d.getDate(); //
let day = new Date(d.setDate(1)).getDay();
if (day === 0) {
day = 7;
}
const pre = 8 - day;
const rows = Math.ceil((days - pre) / 7) + 1;
h = 70 * rows + 'rpx';
}
return h;
},
timeStr() {
let str = '';
const d = new Date(this.currentYear, this.currentMonth - 1, this.currentDate);
const y = d.getFullYear();
const m = d.getMonth() + 1 <= 9 ? `0${d.getMonth() + 1}` : d.getMonth() + 1;
str = `${y}${m}`;
return str;
},
predays() {
let pres = [];
if (this.weekMode) {
const d = new Date(this.currentYear, this.currentMonth - 1, this.currentDate);
d.setDate(d.getDate() - 7);
pres = gegerateDates(d, 'week');
} else {
const d = new Date(this.currentYear, this.currentMonth - 2, 1);
pres = gegerateDates(d, 'month');
}
return pres;
},
nextdays() {
let nexts = [];
if (this.weekMode) {
const d = new Date(this.currentYear, this.currentMonth - 1, this.currentDate);
d.setDate(d.getDate() + 7);
nexts = gegerateDates(d, 'week');
} else {
const d = new Date(this.currentYear, this.currentMonth, 1);
nexts = gegerateDates(d, 'month');
}
return nexts;
},
},
data() {
return {
weeks: ['一', '二', '三', '四', '五', '六', '日'],
current: 1,
currentYear: '',
currentMonth: '',
currentDate: '',
days: [],
weekMode: true,
swiper: [0, 1, 2],
// dotList: [], //
selectedDate: formatDate(new Date(), 'yyyy-MM-dd'),
};
},
methods: {
changeSwp(e) {
// console.log(e);
const pre = this.current;
const current = e.target.current;
/* //
*current - pre === 1, -2时是下一个月/
*current -pre === -1, 2时是上一个月或者上一周
*/
this.current = current;
if (current - pre === 1 || current - pre === -2) {
this.daysNext();
} else {
this.daysPre();
}
},
//
initDate(cur) {
let date = '';
if (cur) {
date = new Date(cur);
} else {
date = new Date();
}
this.currentDate = date.getDate(); //
this.currentYear = date.getFullYear(); //
this.currentMonth = date.getMonth() + 1; //
this.currentWeek = date.getDay() === 0 ? 7 : date.getDay(); // 1...6,0 //
// const nowY = new Date().getFullYear(); //
// const nowM = new Date().getMonth() + 1;
// const nowD = new Date().getDate(); //
// const nowW = new Date().getDay();
// this.selectedDate = formatDate(new Date(), 'yyyy-MM-dd')
this.days = [];
let days = [];
if (this.weekMode) {
days = gegerateDates(date, 'week');
// this.selectedDate = days[0].fullDate;
} else {
days = gegerateDates(date, 'month');
// const sel = new Date(this.selectedDate.replace('-', '/').replace('-', '/'));
// const isMonth = sel.getFullYear() === this.currentYear && (sel.getMonth() + 1) === this.currentMonth;
// if(!isMonth) {
// this.selectedDate = formatDate(new Date(this.currentYear, this.currentMonth-1,1), 'yyyy-MM-dd')
// }
}
days.forEach(day => {
const dot = this.dotList.find(item => {
return dateEqual(item.date, day.fullDate);
});
if (dot) {
day.info = dot;
}
});
this.days = days;
// ,
let obj = {
start: '',
end: '',
};
if (this.weekMode) {
obj.start = this.days[0].time;
obj.end = this.days[6].time;
} else {
const start = new Date(this.currentYear, this.currentMonth - 1, 1);
const end = new Date(this.currentYear, this.currentMonth, 0);
obj.start = start;
obj.end = end;
}
this.$emit('days-change', obj);
},
//
daysPre() {
if (this.weekMode) {
const d = new Date(this.currentYear, this.currentMonth - 1, this.currentDate);
d.setDate(d.getDate() - 7);
this.initDate(d);
} else {
const d = new Date(this.currentYear, this.currentMonth - 2, 1);
this.initDate(d);
}
},
//
daysNext() {
if (this.weekMode) {
const d = new Date(this.currentYear, this.currentMonth - 1, this.currentDate);
d.setDate(d.getDate() + 7);
this.initDate(d);
} else {
const d = new Date(this.currentYear, this.currentMonth, 1);
this.initDate(d);
}
},
changeMode() {
const premode = this.weekMode;
let isweek = false;
if (premode) {
isweek = !!this.days.find(item => item.fullDate === this.selectedDate);
}
this.weekMode = !this.weekMode;
let d = new Date(this.currentYear, this.currentMonth - 1, this.currentDate);
const sel = new Date(this.selectedDate.replace('-', '/').replace('-', '/'));
const isMonth = sel.getFullYear() === this.currentYear && sel.getMonth() + 1 === this.currentMonth;
if ((this.selectedDate && isMonth) || isweek) {
d = new Date(this.selectedDate.replace('-', '/').replace('-', '/'));
}
this.initDate(d);
},
//
clickItem(e) {
this.selectedDate = e.fullDate;
this.$emit('selected-change', e);
},
goback() {
const d = new Date();
this.initDate(d);
},
},
created() {
this.initDate();
},
mounted() {},
};
</script>
<style lang="scss" scoped>
.zzx-calendar {
width: 100%;
height: auto;
.calendar-heander {
text-align: center;
height: 60upx;
line-height: 60upx;
position: relative;
font-size: 30upx;
}
.calendar-weeks {
width: 100%;
display: flex;
flex-flow: row nowrap;
height: 60upx;
line-height: 60upx;
justify-content: center;
align-items: center;
font-size: 30upx;
.calendar-week {
width: calc(100% / 7);
height: 100%;
text-align: center;
}
}
swiper {
width: 100%;
height: 60upx;
}
.calendar-content {
min-height: 60upx;
}
.calendar-swiper {
min-height: 70upx;
transition: height ease-out 0.3s;
}
.calendar-item {
margin: 0;
padding: 0;
height: 100%;
}
.calendar-days {
display: flex;
flex-flow: row wrap;
width: 100%;
height: 100%;
overflow: hidden;
font-size: 28upx;
.calendar-day {
width: calc(100% / 7);
height: 70upx;
text-align: center;
display: flex;
flex-flow: column nowrap;
justify-content: flex-start;
align-items: center;
position: relative;
}
}
.day-hidden {
visibility: hidden;
}
.mode-change {
display: flex;
justify-content: center;
margin-top: 10upx;
.mode-arrow-top {
width: 0;
height: 0;
border-left: 12upx solid transparent;
border-right: 12upx solid transparent;
border-bottom: 10upx solid #ff6633;
}
.mode-arrow-bottom {
width: 0;
height: 0;
border-left: 12upx solid transparent;
border-right: 12upx solid transparent;
border-top: 10upx solid #ff6633;
}
}
.is-today {
background: #ffffff;
// border: 1upx solid #FF6633;
border-radius: 50%;
color: #ff6633;
}
.is-checked {
background: #ff6633;
color: #ffffff;
}
.date {
width: 50upx;
height: 50upx;
line-height: 50upx;
margin: 0 auto;
border-radius: 50upx;
}
.dot-show {
width: 8px;
height: 8px;
// background: red;
border-radius: 10upx;
position: absolute;
top: 2px;
right: 10px;
}
.back-today {
// position: absolute;
line-height: 30upx;
font-size: 20px;
top: 15upx;
// border-radius: 15upx 0 0 15upx;
color: #24abf1;
position: relative;
left: 39%;
margin: 5%;
}
}
</style>

130
src/components/Calendar/generateDates.js

@ -0,0 +1,130 @@
/*
*此函数的作用是根据传入的一个日期返回这一周的日期或者这一个月的日期
* 如果是月的话注意还包含上个月和下个月的日期月的话总共数据有 6 * 7 = 42
*
*/
/*
* 时间格式化函数
* 重要提示微信小程序new Date('2020-04-16')在ios中无法获取时间对象
* 解决方式: 建议将时间都格式化成'2020/04/16 00:00:00'的格式
* 函数示例: formatDate(new Date(), 'YYYY/MM/dd hh:mm:ss')
*/
export const formatDate = (date, fmt) => {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds(),
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str));
}
}
return fmt;
};
const padLeftZero = str => {
return ('00' + str).substr(str.length);
};
export const judgeType = s => {
// 函数返回数据的具体类型
return Object.prototype.toString.call(s).slice(8, -1);
};
export const equalDate = (d1, d2) => {
let result = false;
if (d1.getFullYear() === d2.getFullYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate()) {
result = true;
}
return result;
};
/* ,2020-04-04
*/
export const dateEqual = (before, after) => {
before = new Date(before.replace('-', '/').replace('-', '/'));
after = new Date(after.replace('-', '/').replace('-', '/'));
if (before.getTime() - after.getTime() === 0) {
return true;
} else {
return false;
}
};
export const gegerateDates = (date = new Date(), type = 'week') => {
const result = [];
if (judgeType(date) === 'Date') {
// 年,月,日
const y = date.getFullYear();
const m = date.getMonth();
const d = date.getDate();
const days = new Date(y, m + 1, 0).getDate();
// 获取日期是星期几
let weekIndex = date.getDay() === 0 ? 7 : date.getDay();
if (type === 'month') {
const dobj = new Date(y, m, 1);
weekIndex = dobj.getDay() === 0 ? 7 : dobj.getDay();
}
if (type === 'week') {
for (let i = weekIndex - 1; i > 0; i--) {
const dtemp = new Date(y, m, d);
dtemp.setDate(dtemp.getDate() - i);
result.push({
time: dtemp,
show: true,
fullDate: formatDate(dtemp, 'yyyy-MM-dd'),
isToday: equalDate(new Date(), dtemp),
});
}
for (let i = 0; i <= 7 - weekIndex; i++) {
const dtemp = new Date(y, m, d);
dtemp.setDate(dtemp.getDate() + i);
result.push({
time: dtemp,
show: true,
fullDate: formatDate(dtemp, 'yyyy-MM-dd'),
isToday: equalDate(new Date(), dtemp),
});
}
} else if (type === 'month') {
// 上个月
for (let i = weekIndex - 1; i > 0; i--) {
const dtemp = new Date(y, m, 1);
dtemp.setDate(dtemp.getDate() - i);
result.push({
time: dtemp,
show: false,
fullDate: formatDate(dtemp, 'yyyy-MM-dd'),
isToday: equalDate(new Date(), dtemp),
});
}
// 这个月的日期
for (let i = 0; i < days; i++) {
const dtemp = new Date(y, m, 1);
dtemp.setDate(dtemp.getDate() + i);
result.push({
time: dtemp,
show: true,
fullDate: formatDate(dtemp, 'yyyy-MM-dd'),
isToday: equalDate(new Date(), dtemp),
});
}
const len = 42 - result.length;
// 下个月的日期
for (let i = 1; i <= len; i++) {
const dtemp = new Date(y, m + 1, 0);
dtemp.setDate(dtemp.getDate() + i);
result.push({
time: dtemp,
show: false,
fullDate: formatDate(dtemp, 'yyyy-MM-dd'),
isToday: equalDate(new Date(), dtemp),
});
}
}
}
return result;
};

90
src/components/Projects/Projects.vue

@ -0,0 +1,90 @@
<template>
<view>
<view class="">
<view class="flex items-center m-2">
<image class="bg-yellow-700 w-8 h-8 rounded-full ml-1 mr-4" src="../../static/local_play1.png"></image>
<view class="text-sm font-semibold">我的LWBS</view>
</view>
<view class="task flex items-center justify-between p-2" v-for="(task, index) in tasks" :key="index">
<view class="flex items-center">
<view class="bg-blue-300 w-8 h-8 rounded-full ml-1 mr-2">
<view class="w-8 h-8 flex items-center justify-center">{{ index + 1 }}</view>
</view>
<view>
<view class="flex items-center">
<view class="text-sm font-semibold">{{ task.taskName }}</view>
<view class="rounded-full pl-2 pr-2 bg-green-200 text-green-500">{{ task.state }}</view>
</view>
<view class="flex items-center text-gray-400">
<view class="pr-2">{{ task.time }}</view>
<view>时长{{ task.duration }}</view>
</view>
</view>
</view>
<u-icon name="arrow-right" size="28"></u-icon>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
isrotate: -1,
tasks: [
{
taskName: '山西省三大中心建设',
state: '正在进行',
time: '05月31日 00:00',
duration: '365天',
},
{
taskName: '1号康复室',
state: '正在进行',
time: '01月31日 00:00',
duration: '727天',
},
{
taskName: '盐湖医院远程康复',
state: '正在进行',
time: '05月31日 00:00',
duration: '65天',
},
{
taskName: '山西省三大中心建设',
state: '正在进行',
time: '05月31日 00:00',
duration: '365天',
},
{
taskName: '1号康复室',
state: '正在进行',
time: '01月31日 00:00',
duration: '727天',
},
{
taskName: '盐湖医院远程康复',
state: '正在进行',
time: '05月31日 00:00',
duration: '65天',
},
],
};
},
methods: {
//
openProjectItem(index) {
if (this.isrotate === -1) {
this.isrotate = index;
} else {
this.isrotate = -1;
}
},
},
};
</script>
<style lang="scss">
.task {
border-bottom: 1px solid #c0b9b9;
}
</style>

1
src/components/Skeleton/wisdomcar_mobile

@ -0,0 +1 @@
Subproject commit 2603a0bc8b5036c399a5f28b93586072c4850c4b

2
src/components/Tips/Tips.vue

@ -65,6 +65,8 @@ export default {
onChangeStatus(type) { onChangeStatus(type) {
const param = { id: this.tip.taskId, type }; const param = { id: this.tip.taskId, type };
// TODO: // TODO:
const data = uni.$u.api.updateTaskType(param);
console.log(data);
}, },
// //

27
src/components/Upload/Upload.vue

@ -0,0 +1,27 @@
<template>
<view>
<view class="upload mx-4">
<u-icon name="plus" color="#ffffff" size="48" class="flex justify-center h-10 w-10 bg-blue-500 rounded-full"></u-icon>
<u-input type="textarea" placeholder="" class="inputUpload" />
</view>
</view>
</template>
<script>
export default {
data() {
return {};
},
methods: {},
};
</script>
<style lang="scss">
.upload {
display: flex;
flex-direction: row-reverse;
}
.inputUpload {
position: relative;
left: 85%;
right: 5%;
}
</style>

7
src/pages.json

@ -1,5 +1,12 @@
{ {
"pages": [ "pages": [
{
"path": "pages/index/index",
"style": {
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
},
{ {
"path": "pages/project/project", "path": "pages/project/project",
"style": { "style": {

32
src/pages/index/index.vue

@ -0,0 +1,32 @@
<template>
<view>
<Calendar @selected-change="datechange" :showBack="true" :dot-list="dayss"></Calendar>
<!-- <button @click="changeList">改变</button> -->
<Upload />
<Projects />
</view>
</template>
<script>
export default {
data() {
return {
dayss: [
{ date: '2020-08-14' },
{ date: '2020-08-27' },
{ date: '2020-08-09' },
// {date: '2020-08-16'}
],
};
},
methods: {
changeList() {
this.dayss = [{ date: '2021-08-03' }, { date: '2021-08-04' }, { date: '2021-08-06' }];
},
datechange(e) {
console.log(e);
},
},
};
</script>

BIN
src/static/local_play1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Loading…
Cancel
Save