艺易修小程序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

8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 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>