serviceRelease.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. import {idGen, dateTime, fetchGraphql} from '../../../../../utils/util';
  2. import {createserviceAndcreaterepertory, updateserviceAndupdaterepertory} from '../../../../../config/gql';
  3. Component({
  4. properties: {
  5. service: {
  6. type: Object,
  7. observer(newVal) {
  8. this.setData({
  9. service: newVal
  10. });
  11. let service = newVal;
  12. console.log(newVal);
  13. service.id === 'add' ?
  14. this.setData({
  15. price: '',
  16. description: '',
  17. repertory: 0,
  18. date: dateTime(Date.now(), true).date,
  19. startTime: dateTime(Date.now(), true).time,
  20. endTime: dateTime(Date.now(), true).time
  21. })
  22. :
  23. this.setData({
  24. date: dateTime(Number(service.startTime), true).date,
  25. startTime: dateTime(Number(service.startTime), true).time,
  26. endTime: dateTime(Number(service.startTime) + Number(service.lastTime), true).time,
  27. price: service.price,
  28. description: service.description,
  29. repertory: service.repertory_id.count
  30. })
  31. }
  32. }
  33. },
  34. data: {
  35. service: '',
  36. price: '',
  37. description: '',
  38. repertory: 0,
  39. date: '2019-01-01',
  40. startTime: '00:00',
  41. endTime: '00:01'
  42. },
  43. lifetimes: {
  44. attached() {
  45. let service = this.data.service;
  46. service.id === 'add' ?
  47. this.setData({
  48. date: dateTime(Date.now(), true).date,
  49. startTime: dateTime(Date.now(), true).time,
  50. endTime: dateTime(Date.now(), true).time
  51. })
  52. :
  53. this.setData({
  54. date: dateTime(Number(service.startTime), true).date,
  55. startTime: dateTime(Number(service.startTime), true).time,
  56. endTime: dateTime(Number(service.startTime) + Number(service.lastTime), true).time,
  57. price: service.price,
  58. description: service.description,
  59. repertory: service.repertory_id.count
  60. })
  61. }
  62. },
  63. methods: {
  64. priceInput(e) {
  65. this.setData({
  66. price: e.detail
  67. })
  68. },
  69. descriptionInput(e) {
  70. this.setData({
  71. description: e.detail
  72. })
  73. },
  74. repertorySlide(e) {
  75. this.setData({
  76. repertory: e.detail
  77. })
  78. },
  79. dateChange(e) {
  80. this.setData({
  81. date: e.detail.value
  82. })
  83. },
  84. startTimeChange(e) {
  85. this.setData({
  86. startTime: e.detail.value
  87. })
  88. },
  89. endTimeChange(e) {
  90. this.setData({
  91. endTime: e.detail.value
  92. })
  93. },
  94. reset() {
  95. this.setData({
  96. price: '',
  97. description: '',
  98. repertory: 0,
  99. date: dateTime(Date.now(), true).date,
  100. startTime: dateTime(Date.now(), true).time,
  101. endTime: dateTime(Date.now(), true).time
  102. })
  103. },
  104. submit() {
  105. let startTime = dateTime({date: this.data.date, time: this.data.startTime}, false);
  106. let endTime = dateTime({date: this.data.date, time: this.data.endTime}, false);
  107. let lastTime = endTime - startTime;
  108. let {price, description, repertory} = this.data;
  109. if (this.data.service.id === 'add') {
  110. fetchGraphql(createserviceAndcreaterepertory,
  111. {
  112. server_id: this.properties.service.server_id.id,
  113. service_id: idGen('service'),
  114. repertory_id: idGen('repertory'),
  115. description,
  116. startTime,
  117. lastTime,
  118. price,
  119. count: repertory,
  120. createdAt: Date.now(),
  121. updatedAt: ''
  122. }
  123. )
  124. .then(result => {
  125. wx.startPullDownRefresh()
  126. });
  127. } else {
  128. fetchGraphql(updateserviceAndupdaterepertory,
  129. {
  130. server_id: this.properties.service.server_id.id,
  131. service_id: this.properties.service.id,
  132. repertory_id: this.properties.service.repertory_id.id,
  133. description,
  134. startTime,
  135. lastTime,
  136. price,
  137. count: repertory,
  138. updatedAt: Date.now()
  139. }
  140. )
  141. .then(result => {
  142. wx.startPullDownRefresh()
  143. });
  144. }
  145. },
  146. }
  147. });