|
|
@@ -68,10 +68,10 @@
|
|
|
<!-- 每一个学生区域 -->
|
|
|
<view class="item_box" @click="handleClickItem(item)">
|
|
|
<view class="box_info">
|
|
|
- <image v-if="item.headImage" class="info_img" :src="item.headImage" mode="aspectFill"></image>
|
|
|
+ <image v-if="item.headImage" class="info_img" :src="item.headImage" mode="aspectFill" @click.stop="handleImageClick(item)"></image>
|
|
|
<image
|
|
|
v-else
|
|
|
- class="info_img"
|
|
|
+ class="info_img" @click.stop="handleImageClick(item)"
|
|
|
src="https://wanzai-1306339220.cos.ap-shanghai.myqcloud.com/excelModel/nupp7VVnHWpVa413437dba82ce85374b2a4ee1a6b973.png"
|
|
|
mode="aspectFill"
|
|
|
></image>
|
|
|
@@ -141,6 +141,7 @@ import HeaderInput from '@/components/headerInput.vue'
|
|
|
import NoData from '@/components/noData.vue'
|
|
|
import { myRequest } from '@/utils/api.js'
|
|
|
import { decryptDes } from '@/utils/des.js'
|
|
|
+import getLessLimitSizeImage from '@/utils/imageCompress.js'
|
|
|
|
|
|
// 当前所处班级
|
|
|
const classInfo = ref()
|
|
|
@@ -374,7 +375,90 @@ const handleClickItem = (item) => {
|
|
|
popupDom.value.open('center')
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+//切换头像
|
|
|
+const handleImageClick = (item) => {
|
|
|
+ console.log(item)
|
|
|
+ uni.chooseImage({
|
|
|
+ count: 1,
|
|
|
+ mediaType: ['image'],
|
|
|
+ sourceType: ['camera'],
|
|
|
+ sizeType: ['compressed'],
|
|
|
+ success: (res) => {
|
|
|
+ const tempFilePath = res.tempFilePaths[0];
|
|
|
+
|
|
|
+ res.tempFiles.forEach((ele) => {
|
|
|
+ if (ele.fileType === 'image' && ele.size > 1024 * 1024 * 2) {
|
|
|
+ //这里的id和页面中写的html代码的canvas的id要一致
|
|
|
+ let canvasId = 'zipCanvas'
|
|
|
+ //原图的路径
|
|
|
+ let imagePath = ele.tempFilePath
|
|
|
+ //大小限制1024kb
|
|
|
+ let limitSize = 1024 * 2
|
|
|
+ //初始绘画区域是画布自身的宽度也就是屏幕宽度
|
|
|
+ let drawWidth = uni.getSystemInfoSync().windowWidth
|
|
|
+ // 图片过大压缩
|
|
|
+ getLessLimitSizeImage(canvasId, imagePath, limitSize, drawWidth, (resPath) => {
|
|
|
+ handleUploadMini(tempFilePath,item)
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ handleUploadMini(tempFilePath,item)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+const handleUploadMini = (ele,item) => {
|
|
|
+ uni.showLoading({
|
|
|
+ title: '上传中,请稍后',
|
|
|
+ mask: true
|
|
|
+ })
|
|
|
+ uni.uploadFile({
|
|
|
+ url: `https://www.campussmartlife.com/smartApi/wanzai/api/file/uploadFile`,
|
|
|
+ filePath: ele,
|
|
|
+ name: 'file',
|
|
|
+ header: {
|
|
|
+ token: uni.getStorageSync('token') || '',
|
|
|
+ user_head: uni.getStorageSync('userhead') || ''
|
|
|
+ },
|
|
|
+ success: (uploadFileRes) => {
|
|
|
+ let imgUrl = JSON.parse(uploadFileRes.data).data
|
|
|
+
|
|
|
+ const result = JSON.parse(decryptDes(imgUrl)).fileUrl
|
|
|
+ console.log(result)
|
|
|
+ changeImg(result,item)
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.log('err',err)
|
|
|
+ uni.showToast({
|
|
|
+ title: '上传失败',
|
|
|
+ icon: 'error'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ complete: () => {
|
|
|
+ uni.hideLoading()
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+//修改头像
|
|
|
+const changeImg = async (image,item) => {
|
|
|
+ const res = await myRequest({
|
|
|
+ url: '/wanzai/api/smartUser/updateSmartUserImageById',
|
|
|
+ method: 'post',
|
|
|
+ data: {
|
|
|
+ id:item.id,
|
|
|
+ headImage:image,
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (res.code == 200) {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.message,
|
|
|
+ icon: 'success'
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ getData()
|
|
|
+ }, 1500)
|
|
|
+ }
|
|
|
+}
|
|
|
// 获取时间组列表数据
|
|
|
const getTimeGroups = async () => {
|
|
|
const res = await myRequest({
|