Kaynağa Gözat

feat: handle local image upload to serve

wangyuan 2 yıl önce
ebeveyn
işleme
9796e7f221
5 değiştirilmiş dosya ile 94 ekleme ve 33 silme
  1. 20 0
      api/request.js
  2. 5 0
      api/upload.js
  3. 32 23
      pages/createFile/createFile.js
  4. 36 9
      pages/my/my.js
  5. 1 1
      pages/my/my.wxml

+ 20 - 0
api/request.js

@@ -56,4 +56,24 @@ export const wxRequest = (url,data) => {
       }
     })
   })
+}
+
+export const wxUpload = (url, data) => {
+  return new Promise((resolve, reject) => {
+    wx.uploadFile({
+      url: BASE_API + url + BASE_VERSION,
+      filePath: data.filePath,
+      name: 'file',
+      formData: {
+        'file': data.filePath
+      },
+      success (res){
+        const data = res.data
+        resolve(data)
+      },
+      fail () {
+        reject('上传失败')
+      }
+    })
+  })
 }

+ 5 - 0
api/upload.js

@@ -0,0 +1,5 @@
+import { wxUpload } from './request'
+
+const userUploadHeadImgURL = '/user/upload/headImg'
+
+export const userUploadHeadImg =  (data) => wxUpload(userUploadHeadImgURL, data)

+ 32 - 23
pages/createFile/createFile.js

@@ -1,6 +1,6 @@
 // pages/createFile/createFile.js
 import { createDocument } from "../../api/document";
-
+import { userUploadHeadImg } from '../../api/upload'
 Page({
 
   /**
@@ -17,27 +17,6 @@ Page({
     relativeRange: ['本人','父母', '子女', '配偶', '朋友', '祖孙', '兄妹', '其他']  // 关系  关系  1.本人 2.父母 3.子女 4.配偶  5.朋友 6.祖孙、7.兄妹、8.其他
   },
 
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad(options) {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面初次渲染完成
-   */
-  onReady() {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面显示
-   */
-  onShow() {
-
-  },
-
   bindUserNameInput (e) {
     this.setData({
       username: e.detail.value
@@ -151,11 +130,41 @@ Page({
         console.log(res);
         // tempFilePath可以作为 img 标签的 src 属性显示图片
         const tempFilePaths = res.tempFiles[0].tempFilePath
+        that.uploadImg(tempFilePaths)
+      }
+    })
+  },
+  // 上传用户头像到服务器
+  uploadImg (filePath) {
+    var that = this
+    var data = {
+      filePath: filePath
+    }
+    wx.showLoading({
+      title: '上传中...',
+      mask: true
+    })
+    userUploadHeadImg(data).then(res => {
+      wx.hideLoading()
+      var response = JSON.parse(res)
+      if (response.code != '000') {
+        wx.showToast({
+          title: '头像上传失败',
+          icon: 'error'
+        })
+      } else {
         that.setData({
           choseAvatar: true,
-          choseAvaSrc: tempFilePaths
+          choseAvaSrc: response.data
         })
       }
+    }).catch(e => {
+      wx.hideLoading()
+      wx.showModal({
+        content: e,
+        confirmColor: '#333',
+        showCancel: false
+      })
     })
   }
 })

+ 36 - 9
pages/my/my.js

@@ -2,6 +2,7 @@
 import itt from '../../utils/util'
 import { ittLogin, bindMobile, bindBaseInfo } from '../../api/my'
 import { getAccountNmber } from '../../api/appointment'
+import { userUploadHeadImg } from '../../api/upload'
 const app = getApp()
 Page({
 
@@ -18,7 +19,7 @@ Page({
     isRegister: false,
     avatarUrl: '',
     confirmAvatarUrl: '',
-    confirmNickname: '点击获取头像昵称',
+    confirmNickname: '',
     nickname: '',
     phone: '',
     count: 0,
@@ -69,7 +70,12 @@ Page({
         id: 6,
         title: '设置',
         url: '/pages/set/set?form=my',
-        //url: '/pages/buy/buy?form=my',
+        imgUrl: '../../imaes/shezhi@2x.png'
+      },
+      {
+        id: 7,
+        title: '测试页面',
+        url: '/pages/aatest/test',
         imgUrl: '../../imaes/shezhi@2x.png'
       }
     ]
@@ -151,8 +157,34 @@ Page({
   },
   onChooseAvatar(e) {
     const { avatarUrl } = e.detail 
-    this.setData({
-      avatarUrl,
+    var that = this
+    var data = {
+      filePath: avatarUrl
+    }
+    wx.showLoading({
+      title: '上传中...',
+      mask: true
+    })
+    userUploadHeadImg(data).then(res => {
+      wx.hideLoading()
+      var response = JSON.parse(res)
+      if (response.code != '000') {
+        wx.showToast({
+          title: '头像上传失败',
+          icon: 'error'
+        })
+      } else {
+        that.setData({
+          avatarUrl: response.data
+        })
+      }
+    }).catch(e => {
+      wx.hideLoading()
+      wx.showModal({
+        content: e,
+        confirmColor: '#333',
+        showCancel: false
+      })
     })
   },
   // 拉起用户头像和昵称
@@ -215,11 +247,6 @@ Page({
       })
     })
   },
-  bindNickNameInput (e) {
-    this.setData({
-      nickname: e.detail.value
-    })
-  },
   // 绑定用户头像和昵称
   handleConfirmNickname () {
     var that = this

+ 1 - 1
pages/my/my.wxml

@@ -34,7 +34,7 @@
         <button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
           <image class="avatar" src="{{avatarUrl}}"></image>
         </button> 
-        <input type="nickname" class="weui-input nickname-input" bindinput="bindNickNameInput" placeholder="请输入昵称"/>
+        <input type="nickname" mode:value="{{nickname}}" class="weui-input nickname-input" placeholder="请输入昵称"/>
         <button size="mini" class="confirm itt-btn" bindtap="handleConfirmNickname">确定</button>
       </view>
     </view>