艺易修小程序24.08.21
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

198 lines
4.3 KiB

11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
  1. <!-- 结单 -->
  2. <template>
  3. <view class="finish">
  4. <!-- <navbar title="结单" :leftClick="leftClick"></navbar> -->
  5. <uv-form labelPosition="top" :model="form" :rules="rules" ref="form" labelWidth="140">
  6. <uv-form-item label="处理结果" prop="form.successTitle">
  7. <uv-input @focus="processingPickerOpen" placeholder="请选择处理结果" v-model="form.successTitle"
  8. :fontSize="30"></uv-input>
  9. </uv-form-item>
  10. <uv-form-item label="收费金额" prop="form.successPrice">
  11. <uv-input placeholder="请输入收费金额" type="number" v-model="form.successPrice" :fontSize="30"></uv-input>
  12. </uv-form-item>
  13. <uv-form-item label="处理说明" prop="form.sucessText">
  14. <uv-textarea v-model="form.sucessText" :maxlength="200" :height="120" count
  15. placeholder="请输入处理说明"></uv-textarea>
  16. </uv-form-item>
  17. <uv-form-item label="照片" prop="form.successImage">
  18. <view class="image-list">
  19. <view @click="openImageMenu(index)" v-for="(item,index) in form.successImage" :key="index"
  20. class="image-item">
  21. <image :src="item" mode="widthFix"></image>
  22. </view>
  23. <view v-if="form.successImage.length < maxUpload" @click="uploadImage" class="upload">
  24. <uv-icon name="camera-fill" color="#3c9cff" size="50"></uv-icon>
  25. </view>
  26. </view>
  27. </uv-form-item>
  28. <uv-button type="primary" text="结单" shape="circle" customStyle="margin-top: 10px"
  29. @click="submit"></uv-button>
  30. <!-- 选择完成状态 -->
  31. <uv-picker ref="processing" :columns="processingList" :itemHeight="100" :round="20" keyName="label"
  32. title="选择处理结果" @confirm="floorConfirm"></uv-picker>
  33. <!-- 图片操作菜单 -->
  34. <uv-action-sheet ref="actionSheet" :actions="list" :round="20" cancelText="取消" title="图片操作"
  35. @select="selectImageSheet"> </uv-action-sheet>
  36. </uv-form>
  37. </view>
  38. </template>
  39. <script>
  40. import navbar from '../../components/base/navbar.vue'
  41. export default {
  42. name: 'Finish',
  43. components: {
  44. navbar
  45. },
  46. data() {
  47. return {
  48. form: {
  49. successTitle: '',
  50. successPrice: '',
  51. sucessText: '',
  52. successImage: []
  53. },
  54. rules: {
  55. },
  56. processingList: [
  57. [{
  58. id: 0,
  59. label: '已处理'
  60. },
  61. {
  62. id: 1,
  63. label: '未处理'
  64. }
  65. ]
  66. ],
  67. maxUpload: 4,
  68. currentIndex: 0,
  69. list: [ //图片操作菜单操作项
  70. {
  71. name: '查看图片',
  72. id: 0
  73. },
  74. {
  75. name: '删除图片',
  76. id: 1
  77. }
  78. ],
  79. }
  80. },
  81. onLoad: function(options) {
  82. this.form.id = options.orderId || ''
  83. },
  84. methods: {
  85. //返回
  86. leftClick() {
  87. uni.switchTab({
  88. url: '/pages/repairList/repairList'
  89. })
  90. },
  91. //打开处理结果
  92. processingPickerOpen() {
  93. this.$refs.processing.open();
  94. },
  95. //用户选择了处理结果
  96. floorConfirm(floor) {
  97. this.form.successTitle = floor.value[0].label
  98. },
  99. //上传图片
  100. uploadImage() {
  101. let self = this
  102. this.$Oss.ossUploadImage({
  103. success(res) {
  104. self.form.successImage.push(res)
  105. }
  106. })
  107. },
  108. //打开图片操作菜单
  109. openImageMenu(index) {
  110. this.currentIndex = index
  111. this.$refs.actionSheet.open();
  112. },
  113. //用户选择了图片操作选项
  114. selectImageSheet(imageSheet) {
  115. let {
  116. id
  117. } = imageSheet
  118. if (id) {
  119. this.deleteImageAsList()
  120. } else {
  121. this.viewImageAsList()
  122. }
  123. },
  124. //查看图片
  125. viewImageAsList() {
  126. this.$utils.previewImage({
  127. current: this.currentIndex,
  128. urls: this.form.images
  129. })
  130. },
  131. //删除图片
  132. deleteImageAsList() {
  133. this.form.images = this.form.images.filter((_, index) => {
  134. return index != this.currentIndex
  135. })
  136. },
  137. //结单
  138. submit() {
  139. this.form.successImage = this.form.successImage.join(',')
  140. this.$api('editSchoolOrderSuccess', this.form, res => {
  141. if (res.code == 200) {
  142. console.log(res);
  143. }
  144. })
  145. }
  146. }
  147. }
  148. </script>
  149. <style>
  150. .finish {
  151. width: 96%;
  152. margin: 0rpx auto;
  153. }
  154. .image-list {
  155. width: 100%;
  156. display: flex;
  157. flex-wrap: wrap;
  158. padding-top: 20rpx;
  159. }
  160. .image-item,
  161. .upload {
  162. display: flex;
  163. align-items: center;
  164. justify-content: center;
  165. width: 24%;
  166. height: 174rpx;
  167. background: #f8f8f8;
  168. margin-left: 1%;
  169. border-radius: 15rpx;
  170. overflow: hidden;
  171. margin-bottom: 20rpx;
  172. ;
  173. }
  174. .image-item image {
  175. width: 100%;
  176. }
  177. </style>