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
src/common/styles/index.css
src/pages.json
manifest.json

2
.eslintrc.js

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

241
CHANGELOG.md

@ -3,51 +3,6 @@
### 🌟 新功能
范围|描述|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
bind phone | 图形验证码;短信验证码;绑定手机号 | 93ffea2
- | cache indexedDB处理 | 3388967
@ -65,93 +20,138 @@
- | tall插件封装 | 1bcb920
task status | 任务状态切换未完 | 7ffd135
- | 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
--|--|--
- | 代码格式细节调整 | cb2532b
- | calendar注释 | a2ec112
- | indexedDB.js格式整理 | b0d3a36
- | 代码审查 | d75134c
- | 格式细节调整 | b907a03
- | 更新代码 | 8c27e68
- | 更新代码 | 1f40a76
- | 代码格式细节调整 | cb2532b
- | 任务快捷方式图标增加 | 4aba872
- | 日常任务修改 | dfa7ee2
- | 删除插件携带的多余文件 | 0f392bb
- | 删除多余字段 | 5ae3973
- | 删除没用代码 | 34b20e1
- | 修改角色样式 | 73e268e
- | 删除calendar中多余的console | e339eec
- | 删除console.log | 5064a38
- | 删除index中没用的alert代码 | 9c9eec7
- | 删除mock,console;upload添加loading | 99d42e2
- | 添加插件数据 | 2f11b42
- | 删除多余字段 | 5ae3973
- | 删除插件携带的多余文件 | 0f392bb
- | 删除没用代码 | 34b20e1
- | 图标修改 | 54bca09
- | 无基本变化 | 21ac4bb
- | 细节调整 | 2cfc09a
- | 修改角色样式 | 73e268e
- | 日常任务修改 | dfa7ee2
- | 更新代码 | 8c27e68
- | 更新代码 | 1f40a76
- | 格式细节调整 | b907a03
- | 添加插件数据 | 2f11b42
- | 组件新建 | 89c0035
- | calendar注释 | a2ec112
- | indexedDB.js格式整理 | b0d3a36
- | 细节调整 | 2cfc09a
### 🐛 Bug 修复
范围|描述|commitId
--|--|--
- | 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
- | 定期任务key值修改 | c6688db
- | 定期任务接口 | aa4981c
- | 定期任务插件 | 92b3254
- | 定期任务未加载时,显示空的时间轴并能上下滑动 | ce38093
- | 定期任务本地缓存和api赋值,未完成 | 5a10856
定期任务本地缓存和api赋值,未完成 | 定期任务本地缓存和api赋值,未完成 | b22a366
- | 定期任务插件 | 92b3254
- | 定期任务骨架屏修改 | 8ff72dd
- | 定期任务接口 | aa4981c
- | 定期任务未加载时,显示空的时间轴并能上下滑动 | ce38093
- | 定期任务key值修改 | c6688db
- | 骨架屏替换 | e9fdd71
- | 监听时间基本点 | 033fca0
- | 角色栏修改 | 19228d6
- | 角色显示状态修改 | 7d3b906
- | 解决时间轴报错 | da1eece
- | 平车演示临时去掉项目快捷方式的toast提示 | e0b2c23
- | 切换到默认项目角色没有激活状态的bug | 438d448
- | 切换日历时查询小红点 | 7091789
- | 任务开始时间延迟插件 | 992a313
- | 手动展开日常任务 | 0a4a622
- | 提示信息显示bug及日常任务收缩问题 | f2f06c5
- | 插件bug解决 | 41257eb
- | 收到消息修改任务状态 | c378063
- | 日历无任务时添加小绿点,时间轴刻度无任务不显示时分 | 0f90868
- | 日常任务html数据查验 | 880ce5c
- | 日常任务插件遍历时的key值修改 | cd26285
- | 日常任务插件面板高度修改 | 249f9e4
- | 日常任务html数据查验 | 880ce5c
- | 日历无任务时添加小绿点,时间轴刻度无任务不显示时分 | 0f90868
- | 上下滚动时间轴 | d533a01
- | 上下滑动加载定期任务 | 4090d89
- | 设置时间轴自动滚动到当前位置 | a3474f8
- | 时间轴插件 | 225d3cc
- | 时间轴骨架屏修改 | ca78d02
- | 时间轴滚动位置修改 | 551da63
- | 时间轴上下滚动数据加载bug修改 | e82ede4
- | 时间轴上下滑动 | 4d0ae46
- | 时间轴上下滚动数据加载bug修改 | e82ede4
- | 时间轴插件 | 225d3cc
- | 时间轴无任务时时间刻度加载修改 | 4921672
- | 收到消息修改任务状态 | c378063
- | 手动展开日常任务 | 0a4a622
- | 提示信息显示bug及日常任务收缩问题 | f2f06c5
- | 时间轴滚动位置修改 | 551da63
- | 时间轴骨架屏修改 | ca78d02
- | 监听时间基本点 | 033fca0
- | 角色显示状态修改 | 7d3b906
- | 角色栏修改 | 19228d6
- | 解决时间轴报错 | da1eece
- | 设置时间轴自动滚动到当前位置 | a3474f8
- | 跳转详情页返回路径修改 | c5e17c0
- | 下拉加载定期任务传参,时间格式化修改 | 0b95a0e
项目列表排序 | 项目列表排序 | 402c563
- | 项目列表排序修改 | fd3c3ac
- | 项目列表排序修改 | 59f4c21
- | 修改报错 | 531c14d
- | 修改定期任务状态0和4时不加载圆圈 | 30e352f
- | 修改角色栏组件 | 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
项目列表排序 | 项目列表排序 | 402c563
- | 骨架屏替换 | e9fdd71
### 📝 文档
@ -163,56 +163,53 @@
### 🔧 测试
范围|描述|commitId
--|--|--
- | 禁用任务开始操作 | b5425db
- | 添加测试,测试utils/time.js的computeDurationText | e758010
- | 暂时移除了jest浏览器配置 | 5088d01
- | 添加测试,测试utils/time.js的computeDurationText | e758010
- | 禁用任务开始操作 | b5425db
### 🔨 代码重构
范围|描述|commitId
--|--|--
- | 界面样式调整 | 4367249
- | 去掉tailwindcss | 4bed47e
- | 任务状态重构 | 4693655
- | 删除多余的技术验证界面 | 542ae5b
- | 删除多余的weekmode store里的东西 | 0841fe0
- | 下滑时间轴添加备注 | 4fd20e3
- | 重构store分层 | 5f6fff8
calendar | 日历细节调整 | 1a8d6bf
- | project 代码健壮性完善 | a3202c5
store/home | 删除store/home | db8a3b4
task beginTime | 格式化任务开始时间 | fbc0301
template | eslint prettier sass uview tailwindcss | 9c966a1
tip | 任务状态显示及tip组件数据的重构 | 78a5750
tips | 修改任务状态方法重构 | b57d3ac
tip | 任务状态显示及tip组件数据的重构 | 78a5750
title.vue | 移除测试的repeat; 样式细节调整 | c32d2bd
- | 下滑时间轴添加备注 | 4fd20e3
- | 任务状态重构 | 4693655
- | 删除多余的weekmode store里的东西 | 0841fe0
- | 删除多余的技术验证界面 | 542ae5b
- | 去掉tailwindcss | 4bed47e
- | 界面样式调整 | 4367249
- | 重构store分层 | 5f6fff8
### 🚀 性能优化
范围|描述|commitId
--|--|--
- | 1.时间轴筛选相同的时间替换数据 2.整理代码 | e082ccb
- | 测试接口 | 215e074
- | 插件查询及展示 | 4dba770
- | 角色栏文字颜色修改 | 215c6b3
- | 解决警告 | c932b09
- | 日历的更改 | 7353ac8
- | 小红点api缓存修改 | e992343
- | 修改代码格式 | 14123d7
- | 修改定期任务骨架屏高度 | 909a734
- | 小红点api缓存修改 | e992343
- | 插件查询及展示 | 4dba770
- | 数据存储,避免重复调用接口 | d22308a
- | 整理代码 | 7a55315
- | 日历的更改 | 7353ac8
- | 测试接口 | 215e074
- | 组件文件夹新建 | 22bfe7b
- | 组件文件夹新建 | 17bb8c9
- | 组件文件夹新建 | 1421504
- | 角色栏文字颜色修改 | 215c6b3
- | 解决警告 | c932b09
### chore
范围|描述|commitId
--|--|--
- | 删除多余的构建的命令 | 3f4eb2f
- | 添加mp-weixin的构建命令 | 3776a67
信息配置 | 配置eslint等配置 | 7421443
- | 修复不能build的问题 | 0b7b91e
- | api 封装 | 8dcb8a2
- | dart-sass替换node-sass;删除多余的uni平台包 | 519f28b
- | env host修改 | a79a4a5
@ -223,6 +220,10 @@
pwa 小程序 | 移除了pwa,alloyFinger添加平台判断 | 875fab4
- | uview-ui | a9ea34b
v3.0.1 | tall api 地址从1.0改成了3.0 | db5afd5
信息配置 | 配置eslint等配置 | 7421443
- | 修复不能build的问题 | 0b7b91e
- | 删除多余的构建的命令 | 3f4eb2f
- | 添加mp-weixin的构建命令 | 3776a67
范围|描述|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",
"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:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build",
"build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin 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 --mode production",
"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:custom": "cross-env NODE_ENV=development uniapp-cli custom",

20
src/App.vue

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

1
src/components/Upload/Upload.vue

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

2
src/config/user.js

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

4
src/manifest.json

@ -1,6 +1,6 @@
{
"name": "TALL",
"appid": "wx356e01c7eb01d55d",
"appid": "wxf72a76c2ea24a472",
"description": "",
"versionName": "1.0.0",
"versionCode": "100",
@ -57,7 +57,7 @@
/* */
},
"mp-weixin": {
"appid": "wx356e01c7eb01d55d",
"appid": "wxf72a76c2ea24a472",
"setting": {
"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>
<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">
<!-- 日历 -->
<Calendar @selected-change="onDateChange" :show-back="true" ref="calendar" @handleFindPoint="handleFindPoint" />
<!-- 上传 导入wbs -->
<Upload @success="onUploadSuccess" @error="onUploadError" />
<!-- #ifdef H5 -->
<!-- #endif -->
</view>
<!-- 项目列表 -->
@ -17,10 +19,12 @@
<script>
import { mapState, mapMutations } from 'vuex';
import UserAuthMixin from '@/mixins/userAuth';
let prevY = 0;
export default {
mixins: [UserAuthMixin],
data() {
return {
calendar: null,
@ -28,7 +32,7 @@ export default {
};
},
computed: mapState('user', ['token']),
computed: mapState('user', ['token', 'user']),
watch: {
token(value) {

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

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

15
src/store/index.js

@ -9,6 +9,7 @@ import user from './user/index';
const state = {
networkConnected: true, // 网络是否连接
forceUseStorage: false, // 强制启用storage
systemInfo: null, // 系统设备信息
};
const getters = {
@ -17,6 +18,11 @@ const getters = {
useStorage({ networkConnected, forceUseStorage }) {
return forceUseStorage || !networkConnected;
},
// 是不是微信平台
isWeChat({ systemInfo }) {
return !(!systemInfo || !systemInfo.host || systemInfo.host.env !== 'WeChat');
},
};
const mutations = {
@ -28,6 +34,15 @@ const mutations = {
setNetworkConnected(state, networkConnected) {
state.networkConnected = networkConnected;
},
/**
* 设置系统信息的数据
* @param {object} state
* @param {object | null} data 获取到的数据
*/
setSystemInfo(state, data) {
state.systemInfo = data;
},
};
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 {
/**
* 上传单个文件
@ -16,10 +62,9 @@ export default {
if (!token) {
return reject('用户未登录,请登录后重试');
}
uni.chooseFile({
count: 1, //默认100
extension,
success: res => {
chooseFile(extension)
.then(filePath => {
console.log('filePath: ', filePath);
if (!timer) {
timer = setTimeout(() => {
uni.$t.ui.showLoading('正在上传...');
@ -29,7 +74,7 @@ export default {
// 开始上传
uni.uploadFile({
url,
filePath: res.tempFilePaths[0],
filePath,
name,
formData,
header: { Authorization: `Bearer ${token}` },
@ -54,13 +99,12 @@ export default {
reject(error);
},
});
},
fail: error => {
})
.catch(error => {
clearTimeout(timer);
uni.hideLoading();
reject(error);
},
});
});
});
},
};

Loading…
Cancel
Save