index.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  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});
  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. }
  89. }
  90. })
  91. },
  92. switchTab: function(e) {
  93. this.setData({
  94. tabIndex: e.currentTarget.dataset.index
  95. })
  96. },
  97. delete: function(e) {
  98. var parts = this.data.parts
  99. var index = e.currentTarget.dataset.index
  100. parts.splice(index, 1)
  101. this.setData({
  102. parts
  103. })
  104. },
  105. add: function() {
  106. if(!this.data.part_name) {
  107. util.error('维修部位必填');
  108. return false;
  109. }
  110. if(!this.data.part_change) {
  111. util.error('更换配件必填');
  112. return false;
  113. }
  114. if(!this.data.part_price) {
  115. util.error('配件价格必填');
  116. return false;
  117. }
  118. var parts = this.data.parts
  119. var part = {
  120. name: this.data.part_name,
  121. change: this.data.part_change,
  122. price: this.data.part_price
  123. }
  124. parts.push(part)
  125. this.setData({
  126. parts
  127. })
  128. },
  129. onChange: function(e) {
  130. var name = e.currentTarget.dataset.name
  131. var val = e.detail.value
  132. this.setData({
  133. [name]: val
  134. })
  135. if(name == 'pointIndex') {
  136. var work_point = this.data.work_points[val]
  137. var work_point_id = work_point ? work_point.id : ''
  138. var that = this
  139. api.getByName(this, 'inner-devices/get', 'inner_devices', {
  140. work_point_id: work_point_id
  141. }, function() {
  142. that.setData({
  143. deviceIndex: -1
  144. })
  145. });
  146. }
  147. },
  148. switchShow(e) {
  149. var name = e.currentTarget.dataset.name
  150. var val = !this.data[name]
  151. this.setData({
  152. [name]: val
  153. })
  154. },
  155. switchShowAdd: function(e) {
  156. var show = e.currentTarget.dataset.show
  157. if(show) {
  158. this.setData({
  159. part_name: '',
  160. part_change: '',
  161. part_price: '',
  162. })
  163. }
  164. this.setData({
  165. showAdd: show,
  166. dialog_type: 'create'
  167. })
  168. },
  169. switchShowDate: function(e) {
  170. this.setData({
  171. showDate: e.currentTarget.dataset.show
  172. })
  173. },
  174. confirmDate: function(e) {
  175. this.switchShowDate(e)
  176. var [start_date, end_date] = e.detail;
  177. start_date = util.formatDate(start_date)
  178. end_date = util.formatDate(end_date)
  179. this.setData({
  180. start_date,
  181. end_date
  182. })
  183. },
  184. /**
  185. * 生命周期函数--监听页面初次渲染完成
  186. */
  187. onReady: function () {
  188. },
  189. /**
  190. * 生命周期函数--监听页面显示
  191. */
  192. onShow: function () {
  193. },
  194. /**
  195. * 生命周期函数--监听页面隐藏
  196. */
  197. onHide: function () {
  198. },
  199. /**
  200. * 生命周期函数--监听页面卸载
  201. */
  202. onUnload: function () {
  203. },
  204. /**
  205. * 页面相关事件处理函数--监听用户下拉动作
  206. */
  207. onPullDownRefresh: function () {
  208. },
  209. /**
  210. * 页面上拉触底事件的处理函数
  211. */
  212. onReachBottom: function () {
  213. },
  214. /**
  215. * 用户点击右上角分享
  216. */
  217. onShareAppMessage: function () {
  218. }
  219. })