UploadImageExample.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <template>
  2. <view class="content">
  3. <g-upload ref='gUpload' :mode="imgList" @chooseFile='chooseFile' @imgDelete='imgDelete' :control='control' :columnNum="columnNum"></g-upload>
  4. <button type="primary" @click="uploadFileToServe">提交</button>
  5. </view>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. title: 'Hello',
  12. control: true,
  13. columnNum: 4,
  14. imgList: [],
  15. urlList:[]
  16. // imgList: ['/static/logo.png']
  17. }
  18. },
  19. onLoad() {
  20. /*
  21. mode:
  22. 需要回填的图片数组,
  23. 上传的时候渲染临时路径,二次进入时可以选择渲染服务返回的图片,
  24. 此时删除图片完成后需要及时更新mode(imgList)的值
  25. */
  26. },
  27. methods: {
  28. /*
  29. 上传后返回的值:
  30. list:上传后图片数组
  31. v:返回当前上传图片的临时路径
  32. */
  33. chooseFile(list, v) {
  34. console.log("上传图片_list:", list)
  35. console.log("上传图片_v:", v);
  36. this.urlList=list;
  37. console.info("urlList",this.urlList);
  38. //this.uploadFileToServe(v)
  39. },
  40. /*
  41. 删除图片:
  42. list:删除返回删除后剩余的图片数组
  43. eq:返回删除的数组
  44. */
  45. imgDelete(list, eq) {
  46. console.log("删除图片_list:", list);
  47. console.log("删除图片_eq:", eq);
  48. this.urlList=list;
  49. console.info("urlList",this.urlList);
  50. },
  51. //控件内外部切换
  52. switch1Change(e) {
  53. this.control = !this.control
  54. },
  55. //图片行个数切换
  56. switch2Change(e) {
  57. this.columnNum = this.columnNum == 3 ? '4' : '3'
  58. },
  59. /*
  60. 执行上传服务:
  61. urlList:要上传的图片:数组类型
  62. */
  63. uploadFileToServe() {
  64. var urlList=this.urlList;
  65. if (!urlList || urlList.length <= 0) {
  66. return
  67. };
  68. //console.info(urlList);
  69. //return;
  70. for (let i = 0; i < urlList.length; i++) {
  71. uni.uploadFile({
  72. url: '/api/Requisition/UploadImage',
  73. filePath: urlList[i],
  74. name: 'file',
  75. formData: {
  76. createPerson:this.$store.state.user.userCode,
  77. masterCode:'100009'
  78. },
  79. headers: {
  80. 'Content-Type': 'multipart/form-data; boundary = ' + new Date().getTime()
  81. //这里要把content-type设置为multipard/form-data,同时还要设置boundary
  82. },
  83. success: (uploadFileRes) => {
  84. console.log(uploadFileRes.data);
  85. }
  86. });
  87. }
  88. }
  89. }
  90. }
  91. </script>
  92. <style scoped>
  93. .content {
  94. padding: 40rpx;
  95. }
  96. /* 上传控件 */
  97. .uploadControl {
  98. border: 1rpx solid #eee;
  99. border-radius: 10rpx;
  100. width: 130rpx;
  101. display: block;
  102. height: 130rpx;
  103. text-align: center;
  104. line-height: 130rpx;
  105. font-size: 30rpx;
  106. color: #888;
  107. background-color: #EEEEEE;
  108. }
  109. </style>