Browse Source

perf: 解决冲突

pull/49/head
song 4 years ago
parent
commit
3d756b548d
  1. 1
      .eslintignore
  2. 2
      .eslintrc.js
  3. 241
      CHANGELOG.md
  4. 4
      package.json
  5. 20
      src/App.vue
  6. 2
      src/apis/tall.js
  7. 1
      src/components/Upload/Upload.vue
  8. 2
      src/config/user.js
  9. 4
      src/manifest.json
  10. 48
      src/mixins/userAuth.js
  11. 8
      src/pages/index/index.vue
  12. 5
      src/pages/phone-bind/phone-bind.vue
  13. 15
      src/store/index.js
  14. 62
      src/utils/upload.js

1
.eslintignore

@ -10,3 +10,4 @@ postcss.config.js
vue.config.js vue.config.js
src/common/styles/index.css src/common/styles/index.css
src/pages.json src/pages.json
manifest.json

2
.eslintrc.js

@ -41,8 +41,8 @@ module.exports = {
Vue: true, Vue: true,
VueRouter: true, VueRouter: true,
Vuex: true, Vuex: true,
axios: true,
_: true, _: true,
uni: true, uni: true,
wx: true,
}, },
}; };

241
CHANGELOG.md

@ -3,51 +3,6 @@
### 🌟 新功能 ### 🌟 新功能
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 绑定手机号 | 52e0352
- | 标题栏变化 | 3898cfe
- | 标题栏变化 | c0fcd9d
- | 标题栏角色栏全局任务组件新建 | 0500cb4
- | 插件参数处理调整 | a3e68d3
- | 插件数据获取 | 5b91bdc
- | 存token | b8a178d
- | 导入项目,更新项目 | 5e06adf
- | 导入项目后提示并打开项目详情页 | 410f527
- | 导入wbs | 1224fcb
- | 点击日历日期查询项目列表 | c458385
- | 定期任务面板骨架屏添加 | b2698c0
富文本插件 | 富文本插件demo测试 | ed3d644
- | 缓存修改 | 63e1f0d
- | 角色栏实现 | 94cd671
- | 距调整pc端 | 5069aa1
- | 面变化首页变化 | 5e860f1
- | 模拟接口测试 | 69e7931
- | 配置默认插件接口 | f0c177d
- | 全局插件及默认插件位置修改 | 6c80d08
- | 任务进行中状态数字 | 27b7326
- | 任务状态时间显示 | 56f5183
- | 日常任务插件调整 | c1881f9
- | 日历定位;合并 | ea3f937
- | 删除项目 | 00b886c
- | 上传逻辑变化 | 3ff1dc2
- | 设置小红点 | 9316bcb
- | 升级版本v3.1.0;tailwindcss添加class | 9ef05e1
- | 时间基准线,默认插件 | a33ba1e
- | 时间轴界面 | 33927e9
- | 时间轴修改状态时提示框增加 | e841392
- | 适配小程序;小程序登录 | cefc0eb
- | 首页项目样式改变 | 8514c85
- | 提交到本地 | 9cbe411
- | 添加 环境变量,动态控制webview project的path | 8a40481
- | 添加时间轴上下滚动 | 2b81bbc
- | 添加项目排序 | a0b491b
- | 添加子任务插件 子项目插件 | 7bda7e2
- | 细节调整,添加project-webview | 4d9050b
- | 向右箭头图标变化 | 8e9ca55
- | 项目列表, 项目url | 32e005b
- | 项目列表排序 | 224c58b
- | 项目api url设置 | 6cd5245
- | 引入dayjs | 29b8b93
- | 字体大小更改 | 82cfdd4
- | api封装 | 7d4edfc - | api封装 | 7d4edfc
bind phone | 图形验证码;短信验证码;绑定手机号 | 93ffea2 bind phone | 图形验证码;短信验证码;绑定手机号 | 93ffea2
- | cache indexedDB处理 | 3388967 - | cache indexedDB处理 | 3388967
@ -65,93 +20,138 @@
- | tall插件封装 | 1bcb920 - | tall插件封装 | 1bcb920
task status | 任务状态切换未完 | 7ffd135 task status | 任务状态切换未完 | 7ffd135
- | ws storage | 21b3a06 - | ws storage | 21b3a06
- | 上传逻辑变化 | 3ff1dc2
- | 任务状态时间显示 | 56f5183
- | 任务进行中状态数字 | 27b7326
- | 全局插件及默认插件位置修改 | 6c80d08
- | 删除项目 | 00b886c
- | 升级版本v3.1.0;tailwindcss添加class | 9ef05e1
- | 向右箭头图标变化 | 8e9ca55
- | 字体大小更改 | 82cfdd4
- | 存token | b8a178d
- | 定期任务面板骨架屏添加 | b2698c0
富文本插件 | 富文本插件demo测试 | ed3d644
- | 导入wbs | 1224fcb
- | 导入项目,更新项目 | 5e06adf
- | 导入项目后提示并打开项目详情页 | 410f527
- | 引入dayjs | 29b8b93
- | 提交到本地 | 9cbe411
- | 插件参数处理调整 | a3e68d3
- | 插件数据获取 | 5b91bdc
- | 日历定位;合并 | ea3f937
- | 日常任务插件调整 | c1881f9
- | 时间基准线,默认插件 | a33ba1e
- | 时间轴修改状态时提示框增加 | e841392
- | 时间轴界面 | 33927e9
- | 标题栏变化 | 3898cfe
- | 标题栏变化 | c0fcd9d
- | 标题栏角色栏全局任务组件新建 | 0500cb4
- | 模拟接口测试 | 69e7931
- | 添加 环境变量,动态控制webview project的path | 8a40481
- | 添加子任务插件 子项目插件 | 7bda7e2
- | 添加时间轴上下滚动 | 2b81bbc
- | 添加项目排序 | a0b491b
- | 点击日历日期查询项目列表 | c458385
- | 细节调整,添加project-webview | 4d9050b
- | 绑定手机号 | 52e0352
- | 缓存修改 | 63e1f0d
- | 角色栏实现 | 94cd671
- | 设置小红点 | 9316bcb
- | 距调整pc端 | 5069aa1
- | 适配小程序;小程序登录 | cefc0eb
- | 配置默认插件接口 | f0c177d
- | 面变化首页变化 | 5e860f1
- | 项目api url设置 | 6cd5245
- | 项目列表, 项目url | 32e005b
- | 项目列表排序 | 224c58b
- | 首页项目样式改变 | 8514c85
### 🎨 代码样式 ### 🎨 代码样式
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 代码格式细节调整 | cb2532b - | calendar注释 | a2ec112
- | indexedDB.js格式整理 | b0d3a36
- | 代码审查 | d75134c - | 代码审查 | d75134c
- | 格式细节调整 | b907a03 - | 代码格式细节调整 | cb2532b
- | 更新代码 | 8c27e68
- | 更新代码 | 1f40a76
- | 任务快捷方式图标增加 | 4aba872 - | 任务快捷方式图标增加 | 4aba872
- | 日常任务修改 | dfa7ee2 - | 修改角色样式 | 73e268e
- | 删除插件携带的多余文件 | 0f392bb
- | 删除多余字段 | 5ae3973
- | 删除没用代码 | 34b20e1
- | 删除calendar中多余的console | e339eec - | 删除calendar中多余的console | e339eec
- | 删除console.log | 5064a38 - | 删除console.log | 5064a38
- | 删除index中没用的alert代码 | 9c9eec7 - | 删除index中没用的alert代码 | 9c9eec7
- | 删除mock,console;upload添加loading | 99d42e2 - | 删除mock,console;upload添加loading | 99d42e2
- | 添加插件数据 | 2f11b42 - | 删除多余字段 | 5ae3973
- | 删除插件携带的多余文件 | 0f392bb
- | 删除没用代码 | 34b20e1
- | 图标修改 | 54bca09 - | 图标修改 | 54bca09
- | 无基本变化 | 21ac4bb - | 无基本变化 | 21ac4bb
- | 细节调整 | 2cfc09a - | 日常任务修改 | dfa7ee2
- | 修改角色样式 | 73e268e - | 更新代码 | 8c27e68
- | 更新代码 | 1f40a76
- | 格式细节调整 | b907a03
- | 添加插件数据 | 2f11b42
- | 组件新建 | 89c0035 - | 组件新建 | 89c0035
- | calendar注释 | a2ec112 - | 细节调整 | 2cfc09a
- | indexedDB.js格式整理 | b0d3a36
### 🐛 Bug 修复 ### 🐛 Bug 修复
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 1.时间轴数据渲染 2.时间基准线 | d643af2 - | 1.时间轴数据渲染 2.时间基准线 | d643af2
- | 插件bug解决 | 41257eb - | api 存storage | 81032ba
ID1000343 | 解决向下预加载查询参数时间没+1颗粒度;以及滚动加载颗粒度写死的问题 | 940603a, closes #ID1000343
plugin | 插件解析机制完善 | 0f5a27d
project title | 项目标题修改; 切换角色移除script | 5c20017
roles | 修复默认显示不是我的角色的问题 | b69f94f
role | 切换角色的逻辑修正完善 | 4ae534f
task任务逻辑完善 | 减少初始global及regular的不必要请求 | bd4bd38
- | title.vue根据页面栈显示返回按钮;标题文本超出显示... | 0cbacf4
- | 上下滑动加载定期任务 | 4090d89
- | 上下滚动时间轴 | d533a01
- | 下拉加载定期任务传参,时间格式化修改 | 0b95a0e
- | 任务开始时间延迟插件 | 992a313
- | 修改main | 749ae9a
- | 修改定期任务状态0和4时不加载圆圈 | 30e352f
- | 修改小红点传参 | 87b20fd
- | 修改报错 | 531c14d
- | 修改接口路径 | df6acf2
- | 修改样式 | f0ddc90
- | 修改角色栏组件 | a54c601
- | 切换到默认项目角色没有激活状态的bug | 438d448
- | 切换日历时查询小红点 | 7091789
- | 初始展示角色修改 | 2ac4053 - | 初始展示角色修改 | 2ac4053
- | 定期任务key值修改 | c6688db
- | 定期任务接口 | aa4981c
- | 定期任务插件 | 92b3254
- | 定期任务未加载时,显示空的时间轴并能上下滑动 | ce38093
- | 定期任务本地缓存和api赋值,未完成 | 5a10856 - | 定期任务本地缓存和api赋值,未完成 | 5a10856
定期任务本地缓存和api赋值,未完成 | 定期任务本地缓存和api赋值,未完成 | b22a366 定期任务本地缓存和api赋值,未完成 | 定期任务本地缓存和api赋值,未完成 | b22a366
- | 定期任务插件 | 92b3254
- | 定期任务骨架屏修改 | 8ff72dd - | 定期任务骨架屏修改 | 8ff72dd
- | 定期任务接口 | aa4981c
- | 定期任务未加载时,显示空的时间轴并能上下滑动 | ce38093
- | 定期任务key值修改 | c6688db
- | 骨架屏替换 | e9fdd71
- | 监听时间基本点 | 033fca0
- | 角色栏修改 | 19228d6
- | 角色显示状态修改 | 7d3b906
- | 解决时间轴报错 | da1eece
- | 平车演示临时去掉项目快捷方式的toast提示 | e0b2c23 - | 平车演示临时去掉项目快捷方式的toast提示 | e0b2c23
- | 切换到默认项目角色没有激活状态的bug | 438d448 - | 手动展开日常任务 | 0a4a622
- | 切换日历时查询小红点 | 7091789 - | 提示信息显示bug及日常任务收缩问题 | f2f06c5
- | 任务开始时间延迟插件 | 992a313 - | 插件bug解决 | 41257eb
- | 收到消息修改任务状态 | c378063
- | 日历无任务时添加小绿点,时间轴刻度无任务不显示时分 | 0f90868
- | 日常任务html数据查验 | 880ce5c
- | 日常任务插件遍历时的key值修改 | cd26285 - | 日常任务插件遍历时的key值修改 | cd26285
- | 日常任务插件面板高度修改 | 249f9e4 - | 日常任务插件面板高度修改 | 249f9e4
- | 日常任务html数据查验 | 880ce5c
- | 日历无任务时添加小绿点,时间轴刻度无任务不显示时分 | 0f90868
- | 上下滚动时间轴 | d533a01
- | 上下滑动加载定期任务 | 4090d89
- | 设置时间轴自动滚动到当前位置 | a3474f8
- | 时间轴插件 | 225d3cc
- | 时间轴骨架屏修改 | ca78d02
- | 时间轴滚动位置修改 | 551da63
- | 时间轴上下滚动数据加载bug修改 | e82ede4
- | 时间轴上下滑动 | 4d0ae46 - | 时间轴上下滑动 | 4d0ae46
- | 时间轴上下滚动数据加载bug修改 | e82ede4
- | 时间轴插件 | 225d3cc
- | 时间轴无任务时时间刻度加载修改 | 4921672 - | 时间轴无任务时时间刻度加载修改 | 4921672
- | 收到消息修改任务状态 | c378063 - | 时间轴滚动位置修改 | 551da63
- | 手动展开日常任务 | 0a4a622 - | 时间轴骨架屏修改 | ca78d02
- | 提示信息显示bug及日常任务收缩问题 | f2f06c5 - | 监听时间基本点 | 033fca0
- | 角色显示状态修改 | 7d3b906
- | 角色栏修改 | 19228d6
- | 解决时间轴报错 | da1eece
- | 设置时间轴自动滚动到当前位置 | a3474f8
- | 跳转详情页返回路径修改 | c5e17c0 - | 跳转详情页返回路径修改 | c5e17c0
- | 下拉加载定期任务传参,时间格式化修改 | 0b95a0e
项目列表排序 | 项目列表排序 | 402c563
- | 项目列表排序修改 | fd3c3ac - | 项目列表排序修改 | fd3c3ac
- | 项目列表排序修改 | 59f4c21 - | 项目列表排序修改 | 59f4c21
- | 修改报错 | 531c14d 项目列表排序 | 项目列表排序 | 402c563
- | 修改定期任务状态0和4时不加载圆圈 | 30e352f - | 骨架屏替换 | e9fdd71
- | 修改角色栏组件 | a54c601
- | 修改接口路径 | df6acf2
- | 修改小红点传参 | 87b20fd
- | 修改样式 | f0ddc90
- | 修改main | 749ae9a
- | api 存storage | 81032ba
ID1000343 | 解决向下预加载查询参数时间没+1颗粒度;以及滚动加载颗粒度写死的问题 | 940603a, closes #ID1000343
plugin | 插件解析机制完善 | 0f5a27d
project title | 项目标题修改; 切换角色移除script | 5c20017
role | 切换角色的逻辑修正完善 | 4ae534f
roles | 修复默认显示不是我的角色的问题 | b69f94f
task任务逻辑完善 | 减少初始global及regular的不必要请求 | bd4bd38
- | title.vue根据页面栈显示返回按钮;标题文本超出显示... | 0cbacf4
### 📝 文档 ### 📝 文档
@ -163,56 +163,53 @@
### 🔧 测试 ### 🔧 测试
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 禁用任务开始操作 | b5425db
- | 添加测试,测试utils/time.js的computeDurationText | e758010
- | 暂时移除了jest浏览器配置 | 5088d01 - | 暂时移除了jest浏览器配置 | 5088d01
- | 添加测试,测试utils/time.js的computeDurationText | e758010
- | 禁用任务开始操作 | b5425db
### 🔨 代码重构 ### 🔨 代码重构
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 界面样式调整 | 4367249
- | 去掉tailwindcss | 4bed47e
- | 任务状态重构 | 4693655
- | 删除多余的技术验证界面 | 542ae5b
- | 删除多余的weekmode store里的东西 | 0841fe0
- | 下滑时间轴添加备注 | 4fd20e3
- | 重构store分层 | 5f6fff8
calendar | 日历细节调整 | 1a8d6bf calendar | 日历细节调整 | 1a8d6bf
- | project 代码健壮性完善 | a3202c5 - | project 代码健壮性完善 | a3202c5
store/home | 删除store/home | db8a3b4 store/home | 删除store/home | db8a3b4
task beginTime | 格式化任务开始时间 | fbc0301 task beginTime | 格式化任务开始时间 | fbc0301
template | eslint prettier sass uview tailwindcss | 9c966a1 template | eslint prettier sass uview tailwindcss | 9c966a1
tip | 任务状态显示及tip组件数据的重构 | 78a5750
tips | 修改任务状态方法重构 | b57d3ac tips | 修改任务状态方法重构 | b57d3ac
tip | 任务状态显示及tip组件数据的重构 | 78a5750
title.vue | 移除测试的repeat; 样式细节调整 | c32d2bd title.vue | 移除测试的repeat; 样式细节调整 | c32d2bd
- | 下滑时间轴添加备注 | 4fd20e3
- | 任务状态重构 | 4693655
- | 删除多余的weekmode store里的东西 | 0841fe0
- | 删除多余的技术验证界面 | 542ae5b
- | 去掉tailwindcss | 4bed47e
- | 界面样式调整 | 4367249
- | 重构store分层 | 5f6fff8
### 🚀 性能优化 ### 🚀 性能优化
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 1.时间轴筛选相同的时间替换数据 2.整理代码 | e082ccb - | 1.时间轴筛选相同的时间替换数据 2.整理代码 | e082ccb
- | 测试接口 | 215e074
- | 插件查询及展示 | 4dba770
- | 角色栏文字颜色修改 | 215c6b3
- | 解决警告 | c932b09
- | 日历的更改 | 7353ac8
- | 小红点api缓存修改 | e992343
- | 修改代码格式 | 14123d7 - | 修改代码格式 | 14123d7
- | 修改定期任务骨架屏高度 | 909a734 - | 修改定期任务骨架屏高度 | 909a734
- | 小红点api缓存修改 | e992343
- | 插件查询及展示 | 4dba770
- | 数据存储,避免重复调用接口 | d22308a
- | 整理代码 | 7a55315 - | 整理代码 | 7a55315
- | 日历的更改 | 7353ac8
- | 测试接口 | 215e074
- | 组件文件夹新建 | 22bfe7b - | 组件文件夹新建 | 22bfe7b
- | 组件文件夹新建 | 17bb8c9 - | 组件文件夹新建 | 17bb8c9
- | 组件文件夹新建 | 1421504 - | 组件文件夹新建 | 1421504
- | 角色栏文字颜色修改 | 215c6b3
- | 解决警告 | c932b09
### chore ### chore
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 删除多余的构建的命令 | 3f4eb2f
- | 添加mp-weixin的构建命令 | 3776a67
信息配置 | 配置eslint等配置 | 7421443
- | 修复不能build的问题 | 0b7b91e
- | api 封装 | 8dcb8a2 - | api 封装 | 8dcb8a2
- | dart-sass替换node-sass;删除多余的uni平台包 | 519f28b - | dart-sass替换node-sass;删除多余的uni平台包 | 519f28b
- | env host修改 | a79a4a5 - | env host修改 | a79a4a5
@ -223,6 +220,10 @@
pwa 小程序 | 移除了pwa,alloyFinger添加平台判断 | 875fab4 pwa 小程序 | 移除了pwa,alloyFinger添加平台判断 | 875fab4
- | uview-ui | a9ea34b - | uview-ui | a9ea34b
v3.0.1 | tall api 地址从1.0改成了3.0 | db5afd5 v3.0.1 | tall api 地址从1.0改成了3.0 | db5afd5
信息配置 | 配置eslint等配置 | 7421443
- | 修复不能build的问题 | 0b7b91e
- | 删除多余的构建的命令 | 3f4eb2f
- | 添加mp-weixin的构建命令 | 3776a67
范围|描述|commitId 范围|描述|commitId

4
package.json

@ -12,8 +12,8 @@
"dev:h5-pro": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve --mode production", "dev:h5-pro": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve --mode production",
"build:h5-test": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build --mode development", "build:h5-test": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build --mode development",
"build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build --mode production", "build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build --mode production",
"build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build", "build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build --mode production",
"build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build", "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build --mode production",
"cz": "npm run log && git add . && git cz", "cz": "npm run log && git add . && git cz",
"dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch", "dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch",
"dev:custom": "cross-env NODE_ENV=development uniapp-cli custom", "dev:custom": "cross-env NODE_ENV=development uniapp-cli custom",

20
src/App.vue

@ -5,9 +5,10 @@ export default {
async onLaunch(options) { async onLaunch(options) {
console.log('options: ', options); console.log('options: ', options);
this.checkNetwork(); // this.checkNetwork(); //
this.getSystemInfo(); //
/* #ifdef MP-WEIXIN */ /* #ifdef MP-WEIXIN */
await this.signin(); await this.signin();
this.initSocket();
/* #endif */ /* #endif */
/* #ifdef H5 */ /* #ifdef H5 */
@ -23,9 +24,8 @@ export default {
this.noPhone(data.phone); this.noPhone(data.phone);
} }
} }
// FIXME:
this.initSocket();
/* #endif */ /* #endif */
this.initSocket();
}, },
computed: { computed: {
@ -36,7 +36,7 @@ export default {
methods: { methods: {
...mapActions('user', ['getToken']), ...mapActions('user', ['getToken']),
...mapActions('socket', ['initSocket']), ...mapActions('socket', ['initSocket']),
...mapMutations(['setNetworkConnected']), ...mapMutations(['setNetworkConnected', 'setSystemInfo']),
...mapMutations('user', ['setToken', 'setUser']), ...mapMutations('user', ['setToken', 'setUser']),
// store // store
@ -79,6 +79,18 @@ export default {
this.$u.route('/pages/phone-bind/phone-bind'); this.$u.route('/pages/phone-bind/phone-bind');
} }
}, },
//
getSystemInfo() {
uni.getSystemInfo({
success: result => {
this.setSystemInfo(result);
},
fail: error => {
console.error('getSystemInfo fail:', error);
},
});
},
}, },
}; };
</script> </script>

2
src/apis/tall.js

@ -30,6 +30,8 @@ const install = (Vue, vm) => {
vm.$u.api.getToken = userId => vm.$u.get(`${tall}/users/userId`, { userId }); vm.$u.api.getToken = userId => vm.$u.get(`${tall}/users/userId`, { userId });
// 绑定手机号 // 绑定手机号
vm.$u.api.phoneBind = (phone, smsCode) => vm.$u.http.post(`${tall}/users/binding`, { phone, smsCode }); vm.$u.api.phoneBind = (phone, smsCode) => vm.$u.http.post(`${tall}/users/binding`, { phone, smsCode });
// 修改用户信息
vm.$u.api.updateUserInfo = params => vm.$u.http.post(`${tall}/users/userInfo`, params);
// 获取项目列表 // 获取项目列表
vm.$u.api.getProjects = (startTime, endTime) => vm.$u.post(`${tall}/project/query`, { startTime, endTime }); vm.$u.api.getProjects = (startTime, endTime) => vm.$u.post(`${tall}/project/query`, { startTime, endTime });

1
src/components/Upload/Upload.vue

@ -27,6 +27,7 @@ export default {
}); });
}, 2000); }, 2000);
} catch (error) { } catch (error) {
console.log('error: ', error);
this.$emit('error', error); this.$emit('error', error);
} }
}, },

2
src/config/user.js

@ -22,7 +22,7 @@ export const mp = () => {
const params = { const params = {
client: uni.$t.user.clients['mp'], client: uni.$t.user.clients['mp'],
type: uni.$t.user.types['mp'], type: uni.$t.user.types['mp'],
data: { identifier: res.code }, data: { identifier: res.code, credential: 'tall' },
}; };
resolve(params); resolve(params);
} else { } else {

4
src/manifest.json

@ -1,6 +1,6 @@
{ {
"name": "TALL", "name": "TALL",
"appid": "wx356e01c7eb01d55d", "appid": "wxf72a76c2ea24a472",
"description": "", "description": "",
"versionName": "1.0.0", "versionName": "1.0.0",
"versionCode": "100", "versionCode": "100",
@ -57,7 +57,7 @@
/* */ /* */
}, },
"mp-weixin": { "mp-weixin": {
"appid": "wx356e01c7eb01d55d", "appid": "wxf72a76c2ea24a472",
"setting": { "setting": {
"urlCheck": false "urlCheck": false
}, },

48
src/mixins/userAuth.js

@ -0,0 +1,48 @@
import { mapMutations, mapState } from 'vuex';
import { waitTokenRequest } from '@/utils/cacheAndRequest';
export default {
computed: mapState('user', ['token', 'user']),
methods: {
...mapMutations('user', ['setUser']),
// 获取授权
openAuth() {
if (this.user && this.user.wxInfo && this.user.wxInfo.nickname) return; // 用户信息里有微信信息就不用再获取了
if (this.token) {
this.updateUserInfo();
} else {
waitTokenRequest(this.updateUserInfo);
}
},
// 弹出授权框
// 用户允许后 提交微信用户信息
updateUserInfo() {
/* #ifdef MP-WEIXIN */
uni.getUserProfile({
desc: 'TALL仅需要获取您的基本用户信息',
success: async res => {
const { avatarUrl, city, country, gender, language, nickName, province } = res.userInfo;
const data = await this.$u.api.updateUserInfo({
city,
country,
headImgUrl: avatarUrl,
language,
nickname: nickName,
province,
sex: gender,
});
console.log('data: ', data);
const { user } = this;
user.wxInfo = data;
this.setUser(user);
},
fail: error => {
console.log('error: ', error);
},
});
/* #endif */
},
},
};

8
src/pages/index/index.vue

@ -1,10 +1,12 @@
<template> <template>
<view class="flex flex-col h-full bg-gray-50"> <view class="flex flex-col h-full bg-gray-50" @click="openAuth">
<view class="relative" @touchmove="onMove"> <view class="relative" @touchmove="onMove">
<!-- 日历 --> <!-- 日历 -->
<Calendar @selected-change="onDateChange" :show-back="true" ref="calendar" @handleFindPoint="handleFindPoint" /> <Calendar @selected-change="onDateChange" :show-back="true" ref="calendar" @handleFindPoint="handleFindPoint" />
<!-- 上传 导入wbs --> <!-- 上传 导入wbs -->
<Upload @success="onUploadSuccess" @error="onUploadError" /> <Upload @success="onUploadSuccess" @error="onUploadError" />
<!-- #ifdef H5 -->
<!-- #endif -->
</view> </view>
<!-- 项目列表 --> <!-- 项目列表 -->
@ -17,10 +19,12 @@
<script> <script>
import { mapState, mapMutations } from 'vuex'; import { mapState, mapMutations } from 'vuex';
import UserAuthMixin from '@/mixins/userAuth';
let prevY = 0; let prevY = 0;
export default { export default {
mixins: [UserAuthMixin],
data() { data() {
return { return {
calendar: null, calendar: null,
@ -28,7 +32,7 @@ export default {
}; };
}, },
computed: mapState('user', ['token']), computed: mapState('user', ['token', 'user']),
watch: { watch: {
token(value) { token(value) {

5
src/pages/phone-bind/phone-bind.vue

@ -1,5 +1,5 @@
<template> <template>
<view class="wrap"> <view class="wrap" @click="openAuth">
<u-form :model="model" :rules="rules" ref="uForm" :errorType="errorType"> <u-form :model="model" :rules="rules" ref="uForm" :errorType="errorType">
<!-- 手机号 --> <!-- 手机号 -->
<u-form-item :rightIconStyle="{ color: '#888', fontSize: '32rpx' }" label="手机号码" prop="phone" label-width="160"> <u-form-item :rightIconStyle="{ color: '#888', fontSize: '32rpx' }" label="手机号码" prop="phone" label-width="160">
@ -27,7 +27,10 @@
</template> </template>
<script> <script>
import UserAuthMixin from '@/mixins/userAuth';
export default { export default {
mixins: [UserAuthMixin],
data() { data() {
return { return {
model: { model: {

15
src/store/index.js

@ -9,6 +9,7 @@ import user from './user/index';
const state = { const state = {
networkConnected: true, // 网络是否连接 networkConnected: true, // 网络是否连接
forceUseStorage: false, // 强制启用storage forceUseStorage: false, // 强制启用storage
systemInfo: null, // 系统设备信息
}; };
const getters = { const getters = {
@ -17,6 +18,11 @@ const getters = {
useStorage({ networkConnected, forceUseStorage }) { useStorage({ networkConnected, forceUseStorage }) {
return forceUseStorage || !networkConnected; return forceUseStorage || !networkConnected;
}, },
// 是不是微信平台
isWeChat({ systemInfo }) {
return !(!systemInfo || !systemInfo.host || systemInfo.host.env !== 'WeChat');
},
}; };
const mutations = { const mutations = {
@ -28,6 +34,15 @@ const mutations = {
setNetworkConnected(state, networkConnected) { setNetworkConnected(state, networkConnected) {
state.networkConnected = networkConnected; state.networkConnected = networkConnected;
}, },
/**
* 设置系统信息的数据
* @param {object} state
* @param {object | null} data 获取到的数据
*/
setSystemInfo(state, data) {
state.systemInfo = data;
},
}; };
Vue.use(Vuex); Vue.use(Vuex);

62
src/utils/upload.js

@ -1,3 +1,49 @@
// H5选择文件
const chooseFileH5 = (extension = ['.xls', '.xlsx']) => {
return new Promise((resolve, reject) => {
uni.chooseFile({
count: 1, //默认100
extension,
success(res) {
resolve(res.tempFilePaths[0]);
},
fail() {
reject('上传失败');
},
});
});
};
// 微信选择文件 从客户端会话选择文件。
const chooseFileWeixin = (extension = ['.xls', '.xlsx']) => {
return new Promise((resolve, reject) => {
wx.chooseMessageFile({
count: 1,
extension,
type: 'file',
success(res) {
resolve(res.tempFiles[0].path);
},
fail() {
reject('上传失败');
},
});
});
};
// 选择文件
const chooseFile = (extension = ['.xls', '.xlsx']) => {
let fn = null;
/* #ifdef H5 */
fn = chooseFileH5(extension);
/* #endif */
/* #ifdef MP-WEIXIN */
fn = chooseFileWeixin(extension);
/* #endif */
return fn;
};
export default { export default {
/** /**
* 上传单个文件 * 上传单个文件
@ -16,10 +62,9 @@ export default {
if (!token) { if (!token) {
return reject('用户未登录,请登录后重试'); return reject('用户未登录,请登录后重试');
} }
uni.chooseFile({ chooseFile(extension)
count: 1, //默认100 .then(filePath => {
extension, console.log('filePath: ', filePath);
success: res => {
if (!timer) { if (!timer) {
timer = setTimeout(() => { timer = setTimeout(() => {
uni.$t.ui.showLoading('正在上传...'); uni.$t.ui.showLoading('正在上传...');
@ -29,7 +74,7 @@ export default {
// 开始上传 // 开始上传
uni.uploadFile({ uni.uploadFile({
url, url,
filePath: res.tempFilePaths[0], filePath,
name, name,
formData, formData,
header: { Authorization: `Bearer ${token}` }, header: { Authorization: `Bearer ${token}` },
@ -54,13 +99,12 @@ export default {
reject(error); reject(error);
}, },
}); });
}, })
fail: error => { .catch(error => {
clearTimeout(timer); clearTimeout(timer);
uni.hideLoading(); uni.hideLoading();
reject(error); reject(error);
}, });
});
}); });
}, },
}; };

Loading…
Cancel
Save