Sfoglia il codice sorgente

点击学生管理头像上传更新照片

1410417013 6 mesi fa
parent
commit
cb41ea21c6
4 ha cambiato i file con 101 aggiunte e 17 eliminazioni
  1. 5 5
      node_modules/.package-lock.json
  2. 8 8
      package-lock.json
  3. 1 1
      package.json
  4. 87 3
      pages/studentManage/studentManage.vue

+ 5 - 5
node_modules/.package-lock.json

@@ -1,6 +1,6 @@
 {
-  "name": "WanZai_School_app",
-  "lockfileVersion": 3,
+  "name": "wanzai_school_app",
+  "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "node_modules/@xmldom/xmldom": {
@@ -26,9 +26,9 @@
       "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
     },
     "node_modules/dayjs": {
-      "version": "1.11.11",
-      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz",
-      "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
+      "version": "1.11.19",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.19.tgz",
+      "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="
     },
     "node_modules/mime": {
       "version": "2.6.0",

+ 8 - 8
package-lock.json

@@ -1,5 +1,5 @@
 {
-  "name": "WanZai_School_app",
+  "name": "wanzai_school_app",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
@@ -7,7 +7,7 @@
       "dependencies": {
         "cos-wx-sdk-v5": "^1.7.0",
         "crypto-js": "^4.2.0",
-        "dayjs": "^1.11.11"
+        "dayjs": "^1.11.19"
       }
     },
     "node_modules/@xmldom/xmldom": {
@@ -33,9 +33,9 @@
       "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
     },
     "node_modules/dayjs": {
-      "version": "1.11.11",
-      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz",
-      "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
+      "version": "1.11.19",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.19.tgz",
+      "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="
     },
     "node_modules/mime": {
       "version": "2.6.0",
@@ -70,9 +70,9 @@
       "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
     },
     "dayjs": {
-      "version": "1.11.11",
-      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz",
-      "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
+      "version": "1.11.19",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.19.tgz",
+      "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="
     },
     "mime": {
       "version": "2.6.0",

+ 1 - 1
package.json

@@ -2,6 +2,6 @@
   "dependencies": {
     "cos-wx-sdk-v5": "^1.7.0",
     "crypto-js": "^4.2.0",
-    "dayjs": "^1.11.11"
+    "dayjs": "^1.11.19"
   }
 }

+ 87 - 3
pages/studentManage/studentManage.vue

@@ -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({