my-oiling-add.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <template>
  2. <view class="mx3">
  3. <view class="main-color-bg main-bg-future"></view>
  4. <view class="p3 bg-color-white form-view">
  5. <u-form :model="form" ref="uForm" >
  6. <u-form-item label="设备名称" prop="sbId" required label-width="150">
  7. <my-select
  8. :list="sbList"
  9. :value-name="'id'"
  10. :label-name="'sbName'"
  11. v-model="form.sbId"
  12. placeholder="请选择设备"
  13. @selected="sbSelect"
  14. />
  15. </u-form-item>
  16. <u-form-item label="仓库名称" prop="storeId" required label-width="150">
  17. <my-select
  18. :list="storeList"
  19. :value-name="'id'"
  20. :label-name="'name'"
  21. v-model="form.storeId"
  22. @selected="storeSelect"
  23. placeholder="请选择仓库" />
  24. </u-form-item>
  25. <u-form-item label="燃油类型" prop="spareStoreId" required label-width="150">
  26. <my-select
  27. :list="spareList"
  28. :value-name="'id'"
  29. :label-name="'spareName'"
  30. v-model="form.spareStoreId"
  31. placeholder="请选燃油类型" />
  32. </u-form-item>
  33. <u-form-item label="用途" prop="reason" required label-width="150">
  34. <my-select
  35. :list="reasonList"
  36. :value-name="'name'"
  37. :label-name="'name'"
  38. v-model="form.reason"
  39. placeholder="请选用途" />
  40. </u-form-item>
  41. <u-form-item label="申请油量" prop="applyOil" required label-width="150">
  42. <u-input :text="'number'" v-model="form.applyOil" />
  43. <view slot="right">L</view>
  44. </u-form-item>
  45. <u-form-item label="申请说明" label-width="150">
  46. <u-input type="textarea" v-model="form.applyRemark" />
  47. </u-form-item>
  48. </u-form>
  49. </view>
  50. <view class="mt-3">
  51. <u-button @click="submit" type="primary" shape="circle">提交</u-button>
  52. </view>
  53. </view>
  54. </template>
  55. <script>
  56. export default {
  57. data() {
  58. return {
  59. form: {
  60. sbId: '',
  61. storeId: '',
  62. spareStoreId: '',
  63. applyOil: '',
  64. reason: '',
  65. applyRemark: ''
  66. },
  67. sbNameState: false,
  68. sbList: [],
  69. storeNameState: false,
  70. storeList: [],
  71. spareList: [],
  72. reasonList: [
  73. {
  74. name: '施工领用',
  75. value: '施工领用'
  76. }, {
  77. name: '办公领用',
  78. value: '办公领用'
  79. }, {
  80. name: '维修领用',
  81. value: '维修领用'
  82. }, {
  83. name: '其他领用',
  84. value: '其他领用'
  85. }
  86. ],
  87. rules: {
  88. sbId: [
  89. {
  90. required: true,
  91. message: '请选择设备',
  92. trigger: ['change']
  93. }
  94. ],
  95. storeId: [
  96. {
  97. required: true,
  98. message: '请选择仓库',
  99. trigger: ['change']
  100. }
  101. ],
  102. spareStoreId: [
  103. {
  104. required: true,
  105. message: '请选择燃油类型',
  106. trigger: ['change']
  107. }
  108. ],
  109. reason: [
  110. {
  111. required: true,
  112. message: '请选择用途',
  113. trigger: ['change']
  114. }
  115. ],
  116. applyOil: [
  117. {
  118. required: true,
  119. message: '请输入申请加油量',
  120. trigger: ['blur', 'change']
  121. }
  122. ]
  123. },
  124. id: '' // 列表 id
  125. };
  126. },
  127. onShow() {
  128. // 获取设备与仓库
  129. this.initData();
  130. },
  131. onLoad(options) {},
  132. methods: {
  133. initData() {
  134. this.$Http.queryPageByFilter({ filter: 1, pageNum: 1, pageSize: 1000 }).then(res => {
  135. const sbList = res.data.rows;
  136. sbList.forEach(item => {
  137. item.sbName = item.name + '-' + item.no;
  138. })
  139. this.sbList = sbList;
  140. });
  141. this.$Http.getStorePage({ filter: 2, pageNum: 1, pageSize: 10000 })
  142. .then(res => {
  143. this.storeList = res.data.rows
  144. })
  145. },
  146. sbSelect(value, data) {
  147. this.$Http.fetchSbOilBySbId({ sbId: value }).then(res => {
  148. const modelData = res.data
  149. if (this.$BaseTool.Object.isNotBlank(modelData)) {
  150. if (this.$BaseTool.Object.isNotBlank(modelData.applyOil)) {
  151. modelData.applyOil = modelData.applyOil + ''
  152. }
  153. this.form = modelData
  154. }
  155. })
  156. },
  157. storeSelect() {
  158. this.spareList = []
  159. this.form.spareStoreId = ''
  160. this.$Http.getSpareStorePage({ pageNum: 1,
  161. pageSize: 10000,
  162. storeId: this.form.storeId,
  163. num: 0,
  164. typeNameLike: '燃油' }).then(res => {
  165. this.spareList = res.data.rows
  166. })
  167. },
  168. // 提交
  169. submit() {
  170. this.$refs.uForm.validate(valid => {
  171. if (valid) {
  172. this.$Http.addSbOilList([this.form]).then(res => {
  173. uni.redirectTo({
  174. url: '/pages/oiling/my-oiling'
  175. });
  176. }).catch(() => {
  177. })
  178. }
  179. });
  180. }
  181. },
  182. onReady() {
  183. this.$refs.uForm.setRules(this.rules);
  184. }
  185. };
  186. </script>
  187. <style lang="less">
  188. page {
  189. background-color: #f4f4f4;
  190. }
  191. </style>