addFleet.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <template>
  2. <view class="center">
  3. <view class="flex row form_css">
  4. <view class="left-text">车队名称</view>
  5. <view class="right-text">
  6. <u--input placeholder="输入车队名称,4-15个字" inputAlign='left' border="none" v-model="formData.fleetName">
  7. </u--input>
  8. </view>
  9. </view>
  10. <view class="flex row form_css">
  11. <view class="left-text">发货城市</view>
  12. <view class="right-text">
  13. <!-- <regionPicker :multiIndex_="selections1" @region_="regionChange1" custom_="请选择"
  14. @selecteRegion_="selecteRegion1" title_="全国" /> -->
  15. <view @click="show = true">{{title1 ? title1 : "请选择地址"}}</view>
  16. <Linkage @conceal="conceal1" class="flex" v-if="show" ref="uDropdown"></Linkage>
  17. </view>
  18. </view>
  19. <view class="flex row form_css">
  20. <view class="left-text">邀请权限</view>
  21. <view class="right-text">
  22. <u-radio-group v-model="formData.invitationPermission">
  23. <u-radio key="1" label="所有队员" name="1"></u-radio>
  24. <u-radio key="2" label="仅队长" name="2"></u-radio>
  25. </u-radio-group>
  26. </view>
  27. </view>
  28. <view class="row">
  29. <view class="left-text">车队简介</view>
  30. <u--textarea v-model="formData.fleetProfile" placeholder="请输入内容" ></u--textarea>
  31. </view>
  32. <view class=" row ">
  33. <view class="left-text">封面照片</view>
  34. <u-upload class="uview-upload" :fileList="fileList1" @afterRead="afterRead($event)" @delete="deletePic"
  35. name="1" multiple :maxCount="1"></u-upload>
  36. </view>
  37. <view class=" row ">
  38. <view class="left-text">车队照片</view>
  39. <u-upload class="uview-upload" :fileList="fileList2" @afterRead="afterRead1($event)" @delete="deletePic"
  40. name="2" multiple :maxCount="9" style="z-index: 9999;"></u-upload>
  41. </view>
  42. <u-toast ref="uToast"></u-toast>
  43. <u-button type="primary" @click="submit">提交</u-button>
  44. </view>
  45. </template>
  46. <script>
  47. import Linkage from '@/components/gaojianghua-linkage/linkage.vue'
  48. import uploadImage from '@/components/ossutil/uploadFile.js';
  49. export default{
  50. components: {
  51. Linkage
  52. },
  53. data(){
  54. return{
  55. formData:{
  56. fleetMemberInfo:{},
  57. invitationPermission:1,
  58. },
  59. show:false,
  60. title1:"",
  61. fileList1: [],
  62. fileList2:[]
  63. }
  64. },
  65. onShow(){
  66. },
  67. onLoad(){
  68. },
  69. methods:{
  70. radioChange(){
  71. debugger
  72. console.log(this.invitationPermission)
  73. },
  74. conceal1(param) {
  75. const {
  76. chooseprovince,
  77. choosecity,
  78. choosearea
  79. } = param
  80. // 获取到传过来的 省 市 区 县数据
  81. this.formData.province = chooseprovince
  82. this.formData.city = choosecity == '全部' ? "" : choosecity
  83. this.formData.area = choosearea == '全部' ? "" : choosearea
  84. this.title1 = chooseprovince + choosecity + choosearea
  85. if (chooseprovince == '全国') {
  86. this.succeed()
  87. }
  88. if (choosecity == '全部') {
  89. this.succeed()
  90. } else if (choosearea != '') {
  91. this.succeed()
  92. }
  93. },
  94. succeed() {
  95. // this.$refs.uDropdown.close();
  96. this.show = false
  97. },
  98. // 删除图片
  99. deletePic(event) {
  100. this[`fileList${event.name}`].splice(event.index, 1)
  101. },
  102. // 新增图片
  103. async afterRead(event) {
  104. // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
  105. let lists = [].concat(event.file)
  106. let fileListLen = this[`fileList${event.name}`].length
  107. lists.map((item) => {
  108. this[`fileList${event.name}`].push({
  109. ...item,
  110. status: 'uploading',
  111. message: '上传中'
  112. })
  113. })
  114. for (let i = 0; i < lists.length; i++) {
  115. const result = await this.uploadFilePromise(lists[i].url)
  116. let item = this[`fileList${event.name}`][fileListLen]
  117. this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
  118. status: 'success',
  119. message: '',
  120. url: result
  121. }))
  122. fileListLen++
  123. }
  124. },
  125. uploadFilePromise(url) {
  126. uploadImage('image',url, 'appData/',
  127. result => {
  128. // 上传成功回调函数
  129. if(this.formData.coverUrl){
  130. this.formData.coverUrl = this.formData.coverUrl+','+ result
  131. }else{
  132. this.formData.coverUrl = result
  133. }
  134. }
  135. )
  136. },
  137. // 新增图片
  138. async afterRead1(event) {
  139. // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
  140. let lists = [].concat(event.file)
  141. let fileListLen = this[`fileList${event.name}`].length
  142. lists.map((item) => {
  143. this[`fileList${event.name}`].push({
  144. ...item,
  145. status: 'uploading',
  146. message: '上传中'
  147. })
  148. })
  149. for (let i = 0; i < lists.length; i++) {
  150. const result = await this.uploadFilePromise1(lists[i].url)
  151. let item = this[`fileList${event.name}`][fileListLen]
  152. this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
  153. status: 'success',
  154. message: '',
  155. url: result
  156. }))
  157. fileListLen++
  158. }
  159. },
  160. uploadFilePromise1(url) {
  161. uploadImage('image',url, 'appData/',
  162. result => {
  163. // 上传成功回调函数
  164. if(this.formData.fleetUrl){
  165. this.formData.fleetUrl = this.formData.fleetUrl+','+ result
  166. }else{
  167. this.formData.fleetUrl = result
  168. }
  169. }
  170. )
  171. },
  172. submit(){
  173. this.formData.fleetMemberInfo.commonId = uni.getStorageSync("firstAuthentication").id
  174. this.formData.fleetMemberInfo.driverNickname = uni.getStorageSync("firstAuthentication").driverCall
  175. this.formData.fleetMemberInfo.driverPortrait = uni.getStorageSync("userInfo").avatarUrl
  176. this.$request.baseRequest('post', '/fleetInfo/api/addFleetInfo', this.formData).then(res => {
  177. if (res.code == 200) {
  178. this.$refs.uToast.show({
  179. type: 'success',
  180. message: "车队添加成功!",
  181. complete() {
  182. uni.$u.route("pages/riders/myTeam")
  183. }
  184. })
  185. }
  186. })
  187. .catch(res => {
  188. uni.$u.toast(res.message);
  189. });
  190. }
  191. }
  192. }
  193. </script>
  194. <style lang="scss">
  195. .form_data{
  196. // padding: 30rpx;
  197. }
  198. .form_css {
  199. width: 100%;
  200. display: flex;
  201. margin: 20rpx 0;
  202. height: 60rpx;
  203. border-bottom: 1px solid #eeeeee;
  204. .left-text {
  205. width: 50%;
  206. text-align: left;
  207. }
  208. .right-text {
  209. width: 50%;
  210. justify-content: flex-end;
  211. display: flex;
  212. text-align: right;
  213. }
  214. }
  215. </style>