contract.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <template>
  2. <view>
  3. <view style="padding:5rpx 20rpx 45rpx 20rpx;">
  4. <view class="desc">
  5. <uni-row>
  6. <uni-col :span="5">
  7. <view class="desc" style="font-size: 25rpx;">
  8. 合同名称
  9. </view>
  10. </uni-col>
  11. <uni-col :span="19">
  12. <view>
  13. <uni-easyinput primaryColor="#37babd" v-model="form.totalTime">
  14. </uni-easyinput>
  15. </view>
  16. </uni-col>
  17. </uni-row>
  18. </view>
  19. <view class="desc">
  20. <view class="desc" style="font-size: 25rpx;">
  21. 合同内容:
  22. </view>
  23. <view>
  24. <uni-easyinput type="textarea" primaryColor="#37babd" v-model="form.totalTime">
  25. </uni-easyinput>
  26. </view>
  27. </view>
  28. <view class="desc">
  29. <view>
  30. 请上传合同文件照片
  31. </view>
  32. <view style="width: 100%;overflow-x: scroll;white-space: nowrap">
  33. <u-upload style="margin: 0;" :fileList="fileList" @afterRead="afterRead" @delete="deletePic"
  34. name="1" multiple :maxCount="6" width="120" height="120" uploadIcon="plus-circle">
  35. </u-upload>
  36. </view>
  37. </view>
  38. </view>
  39. <u-gap height="70" bgColor="#ffffff"></u-gap>
  40. <view class="bottim_view">
  41. <view>
  42. <u-row>
  43. <u-col span="11">
  44. <u-button :disabled="isDisabled" class="btnDoPay" shape="circle" @click="submit"
  45. color="rgb(55,186,189)" text="提交"></u-button>
  46. </u-col>
  47. </u-row>
  48. </view>
  49. </view>
  50. </view>
  51. </template>
  52. <script>
  53. export default {
  54. data() {
  55. return {
  56. isDisabled: false,
  57. index: 0,
  58. fileList: [],
  59. wpTypes: ['办公用品', '固定资产', '低值易耗品', '广告印刷品', '其他']
  60. }
  61. },
  62. methods: {
  63. submit() {
  64. },
  65. onchange(e) {
  66. setTimeout(() => {
  67. }, 200)
  68. },
  69. maskClick(e) {},
  70. bindPickerChange: function(e) {
  71. this.index = e.detail.value
  72. },
  73. // 删除图片
  74. deletePic(event) {
  75. this.fileList.splice(event.index, 1)
  76. },
  77. // 新增图片
  78. async afterRead(event) {
  79. // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
  80. let lists = [].concat(event.file)
  81. let fileListLen
  82. if (this.fileList) {
  83. fileListLen = this.fileList.length
  84. } else {
  85. this.fileList = []
  86. fileListLen = 0
  87. }
  88. lists.map((item) => {
  89. this.fileList.push({
  90. ...item,
  91. status: 'uploading',
  92. message: '上传中'
  93. })
  94. })
  95. for (let i = 0; i < lists.length; i++) {
  96. const result = await this.uploadFilePromise(lists[i].url)
  97. let item = this.fileList[fileListLen]
  98. this.fileList.splice(fileListLen, 1, Object.assign(item, {
  99. status: 'success',
  100. message: '',
  101. url: result
  102. }))
  103. fileListLen++
  104. }
  105. // uni.setStorageSync("listImg", this.fileList)
  106. // console.log(this.fileList)
  107. },
  108. uploadFilePromise(url) {
  109. return new Promise((resolve, reject) => {
  110. let a = uni.uploadFile({
  111. url: this.$BASE_URL + '/common/upload', // 仅为示例,非真实的接口地址
  112. filePath: url,
  113. name: 'file',
  114. header: this.header,
  115. success: (res) => {
  116. // console.log(JSON.parse(res.data).url);
  117. setTimeout(() => {
  118. resolve(JSON.parse(res.data).url)
  119. }, 1000)
  120. }
  121. });
  122. })
  123. },
  124. }
  125. }
  126. </script>
  127. <style lang="scss" scoped>
  128. .desc {
  129. padding: 15rpx 5rpx;
  130. }
  131. .bottim_view {
  132. padding: 5px 20px 30px;
  133. position: fixed;
  134. left: 0px;
  135. bottom: 0px;
  136. width: 100%;
  137. height: 40px;
  138. background-color: #ffffff;
  139. }
  140. </style>