提交 b234f130 authored 作者: lidongxu's avatar lidongxu

头像上传阿里云

上级 163ca6c3
export * from './map.js'
\ No newline at end of file
import request from '@/utils/request' import request from '@/utils/request'
// 提交用户注册信息 // 提交用户注册信息
export function submitUserInfo(data) { export function submitUserInfo(data) {
return request({ return request({
'url': '/user/wechat/core/temporary/enroll', 'url': '/user/wechat/core/temporary/enroll',
'method': 'post', 'method': 'post',
'data': data 'data': data
}) })
} }
\ No newline at end of file
const qlIP = 'http://192.168.131.48:8011'
const apiUrl = `${qlIP}/user/aliyun/signature` // 后台获取阿里云 OSS 权限信息接口
const ossBaseURL = `https://link-promotion-dev.oss-cn-shanghai.aliyuncs.com/`
// 上传文件
export function uploadFile(fileName, filePath) {
// 发送请求获取签名信息
return new Promise((resolve, reject) => {
wx.request({
url: apiUrl,
success: (res) => {
const { policy, security_token: xOssSecurityToken, signature: xOssSignature, x_oss_credential: xOssCredential, x_oss_date: xOssDate, x_oss_signature_version: xOssSignatureVersion } = res.data.data;
//上传参数
const formData = {
key: fileName, // 上传文件名称(拼接路径格式字符串来决定文件夹)
policy: policy, //表单域
'x-oss-signature-version': xOssSignatureVersion, //指定签名的版本和算法
'x-oss-credential': xOssCredential, //指明派生密钥的参数集
'x-oss-date': xOssDate, //请求的时间
'x-oss-signature': xOssSignature, //签名认证描述信息
'x-oss-security-token': xOssSecurityToken, //安全令牌
success_action_status: "200" //上传成功后响应状态码
}
// 发送请求上传文件
wx.uploadFile({
url: `https://${res.data.data.web_js_link}`, // Bucket域名 请替换为目标Bucket域名
filePath: filePath,
name: 'file', // 固定值为file
formData: formData,
success(res) {
if (res.statusCode === 200) {
resolve(ossBaseURL + fileName) // 上传成功
} else {
reject(res) // 上传失败,返回响应
}
},
fail(err) {
wx.showToast({ title: '上传失败,请重试!', icon: 'none' });
reject(err) // 上传失败,返回响应
}
});
},
fail: (err) => {
console.error('请求接口失败:', err);
wx.showToast({ title: '获取上传参数失败,请重试!', icon: 'none' });
reject(err) // 上传失败,返回响应
}
});
})
}
\ No newline at end of file
export * from './attendance/index.js'
export * from './common/map.js'
export * from './common/upload.js'
export * from './common/login.js'
export * from './system/user.js'
\ No newline at end of file
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
"dependencies": { "dependencies": {
"await-to-js": "^3.0.0", "await-to-js": "^3.0.0",
"cos-wx-sdk-v5": "^1.7.2", "cos-wx-sdk-v5": "^1.7.2",
"qqmap-wx-jssdk": "^1.0.0" "qqmap-wx-jssdk": "^1.0.0",
"uuid": "^11.0.5"
} }
} }
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
{ {
"path": "pages/register", "path": "pages/register",
"style": { "style": {
"navigationBarTitleText": "促销员提交" "navigationBarTitleText": "填写信息"
} }
}, },
{ {
...@@ -115,6 +115,12 @@ ...@@ -115,6 +115,12 @@
"iconPath": "static/images/tabbar/upload.png", "iconPath": "static/images/tabbar/upload.png",
"selectedIconPath": "static/images/tabbar/upload_active.png", "selectedIconPath": "static/images/tabbar/upload_active.png",
"text": "上传推广照片" "text": "上传推广照片"
},
{
"pagePath": "pages/register",
"iconPath": "static/images/tabbar/clock.png",
"selectedIconPath": "static/images/tabbar/clock_active.png",
"text": "填写信息"
} }
] ]
}, },
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<script> <script>
import { getAttendanceDetailAPI, addAttendanceAPI, getAttendanceListAPI } from '@/api/attendance' import { getAttendanceDetailAPI, addAttendanceAPI, getAttendanceListAPI } from '@/api'
import { checkStartLessEndTime, parseTime, isSameDay, zeroTo24, checkTimeIsBetween } from '@/utils/common' import { checkStartLessEndTime, parseTime, isSameDay, zeroTo24, checkTimeIsBetween } from '@/utils/common'
export default { export default {
data() { data() {
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<script> <script>
import { getAttendanceDetailAPI, addAttendanceAPI, getAttendanceListAPI } from '@/api/attendance' import { getAttendanceDetailAPI, addAttendanceAPI, getAttendanceListAPI } from '@/api'
import { checkStartLessEndTime, parseTime, isSameDay, zeroTo24, checkTimeIsBetween } from '@/utils/common' import { checkStartLessEndTime, parseTime, isSameDay, zeroTo24, checkTimeIsBetween } from '@/utils/common'
var QQMapWX = require('../libs/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js'); var QQMapWX = require('../libs/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js');
import config from '@/config' import config from '@/config'
......
...@@ -6,12 +6,16 @@ ...@@ -6,12 +6,16 @@
:modelValue="formData"> :modelValue="formData">
<uni-forms-item label="头像" <uni-forms-item label="头像"
required required
name="avatar"> name="avatarUrl">
<button class="avatar" <button class="avatar"
open-type="chooseAvatar" open-type="chooseAvatar"
@chooseavatar="chooseavatarFn"> @chooseavatar="chooseavatarFn">
<img class="avatar_img" <img v-if="formData.avatarUrl"
class="avatar_img"
:src="formData.avatarUrl" /> :src="formData.avatarUrl" />
<img v-else
class="avatar_img"
src="/static/default_user.jpg">
</button> </button>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="姓名" <uni-forms-item label="姓名"
...@@ -46,15 +50,22 @@ ...@@ -46,15 +50,22 @@
<script> <script>
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { submitUserInfo } from '../api/login' import { uploadFile } from '../api'
import storage from '../utils/storage' import storage from '../utils/storage'
import constant from '../utils/constant' import constant from '../utils/constant'
export default { export default {
created() {
this.phone = storage.get(constant.loginPhone)
// this.formData.avatarUrl = this.user.avatarUrl
this.formData.name = this.user.nickName
},
data() { data() {
return { return {
phone: '',
// 校验表单数据 // 校验表单数据
formData: { formData: {
avatarUrl: '', avatarUrl: undefined,
name: '', name: '',
idenFrontPhotoUrl: [], idenFrontPhotoUrl: [],
idenReversePhotoUrl: [], idenReversePhotoUrl: [],
...@@ -73,7 +84,7 @@ export default { ...@@ -73,7 +84,7 @@ export default {
errorMessage: '名字不能为空' errorMessage: '名字不能为空'
}] }]
} }
}, }
} }
}, },
computed: { computed: {
...@@ -81,12 +92,15 @@ export default { ...@@ -81,12 +92,15 @@ export default {
}, },
methods: { methods: {
// 选择了头像 // 选择了头像
chooseavatarFn(obj) { async chooseavatarFn(obj) {
this.formData.avatarUrl = obj.detail.avatarUrl console.log(this.phone)
const avatarUrl = await uploadFile(`avatar/${this.phone}.png`, obj.detail.avatarUrl)
this.formData.avatarUrl = avatarUrl
}, },
// 选择了身份证 // 选择了身份证
selectIdenPhotoFn(obj) { selectIdenPhotoFn(obj) {
// console.log(obj.tempFiles[0]) // TODO:文件对象-需要自己上传 OSS // console.log(obj.tempFiles[0]) // TODO:文件对象-需要自己上传 OSS
this.uploadFileToOSS(obj.tempFiles[0].path)
}, },
submit(ref) { submit(ref) {
this.$refs[ref].validate().then(async res => { this.$refs[ref].validate().then(async res => {
...@@ -111,11 +125,11 @@ export default { ...@@ -111,11 +125,11 @@ export default {
console.log('err', err); console.log('err', err);
}) })
}, },
}, //上传文件方法
created() { uploadFileToOSS(filePath, callback) {
this.formData.avatarUrl = this.user.avatarUrl
this.formData.name = this.user.nickName },
}, }
} }
</script> </script>
...@@ -128,6 +142,10 @@ page { ...@@ -128,6 +142,10 @@ page {
width: 100%; width: 100%;
padding: 40rpx; padding: 40rpx;
button {
padding-left: 0 !important;
}
// 头像 // 头像
.avatar { .avatar {
background: transparent; background: transparent;
...@@ -154,7 +172,8 @@ page { ...@@ -154,7 +172,8 @@ page {
} }
.uni-file-picker__container { .uni-file-picker__container {
padding: 40rpx; // padding: 40rpx;
margin-right: 10px;
padding-top: 10rpx; padding-top: 10rpx;
} }
......
import storage from '@/utils/storage' import storage from '@/utils/storage'
import constant from '@/utils/constant' import constant from '@/utils/constant'
import { reverseGeocoding } from '@/api/common' import { reverseGeocoding } from '@/api'
import $modal from '@/plugins/modal' import $modal from '@/plugins/modal'
const location = { const location = {
......
import config from '@/config' import config from '@/config'
import storage from '@/utils/storage' import storage from '@/utils/storage'
import constant from '@/utils/constant' import constant from '@/utils/constant'
import { login, logout, getInfo } from '@/api/login' import { login, logout, getInfo } from '@/api'
import { getWxAccessToken, setWxAccessToken, removeWxAccessToken } from '@/utils/auth' import { getWxAccessToken, setWxAccessToken, removeWxAccessToken } from '@/utils/auth'
const baseUrl = config.baseUrl const baseUrl = config.baseUrl
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论