index.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. // pages/create-order/index.js
  2. import http from '../../utils/http'
  3. import util from '../../utils/util'
  4. import api from '../../utils/api'
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. tabs: ['维修记录填写', '维修配件添加'],
  11. tabIndex: 0,
  12. work_points: [],
  13. pointIndex: -1,
  14. id: -1,
  15. project: null,
  16. remark: '',
  17. inner_devices: [],
  18. deviceIndex: -1,
  19. parts: [],
  20. part_name: '',
  21. part_change: '',
  22. part_price: '',
  23. showAdd: false,
  24. order_id: '',
  25. // create/edit
  26. type: 'create',
  27. // create/edit
  28. dialog_type: 'create',
  29. default_dates: [],
  30. showDevice: false
  31. },
  32. /**
  33. * 生命周期函数--监听页面加载
  34. */
  35. onLoad: function (options) {
  36. var id = options.id ? options.id : 1
  37. var type = options.type ? options.type : 'create'
  38. var order_id = options.order_id ? options.order_id : ''
  39. this.setData({
  40. id,
  41. type,
  42. order_id
  43. })
  44. api.getProject(this)
  45. api.getByName(this, 'work-points/get', 'work_points');
  46. api.getByName(this, 'inner-devices/get', 'inner_devices', {project_id:id, status: 'using'});
  47. },
  48. switchChecked(e) {
  49. var name = e.currentTarget.dataset.name
  50. var items = this.data[name]
  51. var index = e.currentTarget.dataset.index
  52. for(var i = 0; i < items.length; ++i) {
  53. items[i].checked = false;
  54. }
  55. items[index].checked = true;
  56. this.setData({
  57. [name]: items,
  58. deviceIndex: index
  59. })
  60. },
  61. submit: function(e) {
  62. // if(this.data.pointIndex < 0) {
  63. // util.error('需求工点必填');
  64. // return false;
  65. // }
  66. if(this.data.deviceIndex < 0) {
  67. util.error('维修设备必填');
  68. return false;
  69. }
  70. // var work_point = this.data.work_points[this.data.pointIndex]
  71. var device = this.data.inner_devices[this.data.deviceIndex]
  72. var url = 'repair-devices/create'
  73. http({
  74. url: url,
  75. data: {
  76. project_id: this.data.id,
  77. // work_point_id: work_point.id,
  78. inner_device_id: device.id,
  79. money: this.data.money,
  80. reason: this.data.reason,
  81. day: this.data.day,
  82. remark: this.data.remark,
  83. parts: this.data.parts
  84. },
  85. success: function(res) {
  86. if(res.code == 0) {
  87. util.success('操作成功')
  88. setTimeout(function() {
  89. wx.navigateBack({
  90. delta: 0,
  91. })
  92. }, 1000)
  93. }
  94. }
  95. })
  96. },
  97. switchTab: function(e) {
  98. this.setData({
  99. tabIndex: e.currentTarget.dataset.index
  100. })
  101. },
  102. delete: function(e) {
  103. var parts = this.data.parts
  104. var index = e.currentTarget.dataset.index
  105. parts.splice(index, 1)
  106. this.setData({
  107. parts
  108. })
  109. },
  110. add: function() {
  111. if(!this.data.part_name) {
  112. util.error('维修部位必填');
  113. return false;
  114. }
  115. if(!this.data.part_change) {
  116. util.error('更换配件必填');
  117. return false;
  118. }
  119. if(!this.data.part_price) {
  120. util.error('配件价格必填');
  121. return false;
  122. }
  123. var parts = this.data.parts
  124. var part = {
  125. name: this.data.part_name,
  126. change: this.data.part_change,
  127. price: this.data.part_price
  128. }
  129. parts.push(part)
  130. this.setData({
  131. parts
  132. })
  133. },
  134. onChange: function(e) {
  135. var name = e.currentTarget.dataset.name
  136. var val = e.detail.value
  137. this.setData({
  138. [name]: val
  139. })
  140. if(name == 'pointIndex') {
  141. var work_point = this.data.work_points[val]
  142. var work_point_id = work_point ? work_point.id : ''
  143. var that = this
  144. api.getByName(this, 'inner-devices/get', 'inner_devices', {
  145. work_point_id: work_point_id
  146. }, function() {
  147. that.setData({
  148. deviceIndex: -1
  149. })
  150. });
  151. }
  152. },
  153. switchShow(e) {
  154. var name = e.currentTarget.dataset.name
  155. var val = !this.data[name]
  156. this.setData({
  157. [name]: val
  158. })
  159. },
  160. switchShowAdd: function(e) {
  161. var show = e.currentTarget.dataset.show
  162. if(show) {
  163. this.setData({
  164. part_name: '',
  165. part_change: '',
  166. part_price: '',
  167. })
  168. }
  169. this.setData({
  170. showAdd: show,
  171. dialog_type: 'create'
  172. })
  173. },
  174. switchShowDate: function(e) {
  175. this.setData({
  176. showDate: e.currentTarget.dataset.show
  177. })
  178. },
  179. confirmDate: function(e) {
  180. this.switchShowDate(e)
  181. var [start_date, end_date] = e.detail;
  182. start_date = util.formatDate(start_date)
  183. end_date = util.formatDate(end_date)
  184. this.setData({
  185. start_date,
  186. end_date
  187. })
  188. },
  189. /**
  190. * 生命周期函数--监听页面初次渲染完成
  191. */
  192. onReady: function () {
  193. },
  194. /**
  195. * 生命周期函数--监听页面显示
  196. */
  197. onShow: function () {
  198. },
  199. /**
  200. * 生命周期函数--监听页面隐藏
  201. */
  202. onHide: function () {
  203. },
  204. /**
  205. * 生命周期函数--监听页面卸载
  206. */
  207. onUnload: function () {
  208. },
  209. /**
  210. * 页面相关事件处理函数--监听用户下拉动作
  211. */
  212. onPullDownRefresh: function () {
  213. },
  214. /**
  215. * 页面上拉触底事件的处理函数
  216. */
  217. onReachBottom: function () {
  218. },
  219. /**
  220. * 用户点击右上角分享
  221. */
  222. onShareAppMessage: function () {
  223. }
  224. })