newCard.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <template>
  2. <view class="content">
  3. <view class="content1">
  4. <view class="left">
  5. <image src="../../static/c3.png" mode="widthFix" class="img"></image>
  6. </view>
  7. <view class="right">
  8. <view class="row1">
  9. 姓名|职务
  10. </view>
  11. <view class="">
  12. 公司名称
  13. </view>
  14. <view class="">
  15. 地址
  16. </view>
  17. <view class="">
  18. 联系电话
  19. </view>
  20. <view class="">
  21. 备注
  22. </view>
  23. </view>
  24. </view>
  25. <view class="change-template">
  26. 切换模板
  27. </view>
  28. <view class="content2">
  29. <view class="">
  30. 名片信息
  31. </view>
  32. <u--form labelPosition="left" :model="cardInfo" ref="uForm">
  33. <u-form-item label="名片标识" prop="userInfo.name" borderBottom ref="item1">
  34. <text>名片-1</text>
  35. </u-form-item>
  36. <u-form-item label="姓名" prop="userInfo.name" borderBottom ref="item1">
  37. <u--input v-model="cardInfo.name" border="none" placeholder="输入姓名"></u--input>
  38. </u-form-item>
  39. <u-form-item label="职务" prop="userInfo.name" borderBottom ref="item1">
  40. <u--input v-model="cardInfo.name" border="none" placeholder="输入职务,不超过8个字符"></u--input>
  41. </u-form-item>
  42. <u-form-item label="公司/机构名称" prop="userInfo.name" borderBottom ref="item1">
  43. <u--input v-model="cardInfo.name" border="none" placholder="输入公司/机构名称"></u--input>
  44. </u-form-item>
  45. <u-form-item label="定位" prop="userInfo.name" borderBottom ref="item1">
  46. <text>选择定位></text>
  47. </u-form-item>
  48. <u-form-item label="详细地址" prop="userInfo.name" borderBottom ref="item1">
  49. <u--input v-model="cardInfo.name" border="none" placeholder="输入地址,不超过15个字"></u--input>
  50. </u-form-item>
  51. <u-form-item label="联系电话" prop="userInfo.name" borderBottom ref="item1">
  52. <u--input v-model="cardInfo.name" border="none" placeholder="输入联系电话"></u--input>
  53. </u-form-item>
  54. </u--form>
  55. </view>
  56. <view class="content3">
  57. <view class="left">
  58. 上传企业logo或个人头像
  59. </view>
  60. <view class="right">
  61. <u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
  62. :maxCount="10"></u-upload>
  63. </view>
  64. </view>
  65. <view class="bottom">
  66. <button>提交</button>
  67. </view>
  68. </view>
  69. </template>
  70. <script>
  71. import uploadImage from '@/components/ossutil/uploadFile.js';
  72. export default {
  73. data() {
  74. return {
  75. fileList1: [],
  76. cardInfo: {
  77. name
  78. }
  79. };
  80. },
  81. methods: {
  82. // 删除图片
  83. deletePic(event) {
  84. this[`fileList${event.name}`].splice(event.index, 1)
  85. },
  86. // 新增图片
  87. async afterRead(event) {
  88. // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
  89. let lists = [].concat(event.file)
  90. let fileListLen = this[`fileList${event.name}`].length
  91. lists.map((item) => {
  92. this[`fileList${event.name}`].push({
  93. ...item,
  94. status: 'uploading',
  95. message: '上传中'
  96. })
  97. })
  98. for (let i = 0; i < lists.length; i++) {
  99. const result = await this.uploadFilePromise(lists[i].url)
  100. let item = this[`fileList${event.name}`][fileListLen]
  101. this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
  102. status: 'success',
  103. message: '',
  104. url: result
  105. }))
  106. fileListLen++
  107. }
  108. },
  109. uploadFilePromise(url) {
  110. return new Promise((resolve, reject) => {
  111. // uploadImage(res.tempFilePaths[0], 'cardImages/',
  112. // result => {
  113. // // this.trainImg = result
  114. // uni.hideLoading();
  115. // }
  116. // )
  117. // let a = uni.uploadFile({
  118. // url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
  119. // filePath: url,
  120. // name: 'file',
  121. // formData: {
  122. // user: 'test'
  123. // },
  124. // success: (res) => {
  125. // setTimeout(() => {
  126. // resolve(res.data.data)
  127. // }, 1000)
  128. // }
  129. // });
  130. })
  131. },
  132. }
  133. }
  134. </script>
  135. <style lang="scss">
  136. .img {
  137. width: 100rpx;
  138. }
  139. </style>