addSetclientOffer.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. const _Http = getApp().globalData.http,
  2. getTime = require("../../utils/getTime");
  3. Page({
  4. data: {
  5. showAll: false,
  6. form: [{
  7. label: "客户",
  8. error: false,
  9. errMsg: "",
  10. type: "route",
  11. url: "/packageA/select/setclient/select",
  12. value: "",
  13. params: {
  14. id: 20221012164402,
  15. content: {
  16. nocache: true,
  17. deleted: 0,
  18. type: 0,
  19. isExport: 0,
  20. where: {
  21. condition: "",
  22. }
  23. },
  24. },
  25. interrupt: true,
  26. query: "&radio=true&idname=sys_enterpriseid",
  27. placeholder: "选择客户",
  28. valueName: "sys_enterpriseid",
  29. checking: "base",
  30. required: true
  31. }, {
  32. label: "产品系列",
  33. error: false,
  34. errMsg: "",
  35. type: "option",
  36. optionNmae: "itemtype",
  37. optionType: "checkbox", //复选 radio 单选
  38. value: "",
  39. placeholder: "请选择产品系列",
  40. valueName: "itemtype",
  41. checking: "base",
  42. required: true
  43. }, /* {
  44. label: "电话",
  45. error: false,
  46. errMsg: "",
  47. type: "number",
  48. value: "",
  49. valueName: "telephone",
  50. placeholder: "固定电话 例:0573-12345678",
  51. checking: "base",
  52. required: false
  53. }, */ {
  54. label: "报价日期",
  55. error: false,
  56. errMsg: "",
  57. type: "date",
  58. value: getTime.formatTime(new Date(), '-').split(' ')[0] + "",
  59. placeholder: "报价日期",
  60. valueName: "billdate",
  61. checking: "base",
  62. required: false
  63. }, {
  64. label: "有效期",
  65. error: false,
  66. errMsg: "",
  67. type: "dateRange",
  68. value: [getTime.formatTime(new Date(), '-').split(' ')[0] + "", ""],
  69. placeholder: ['生效日期', '截止日期'],
  70. valueName: "invaliddate",
  71. checking: "base",
  72. required: true
  73. }, {
  74. label: "备注",
  75. error: false,
  76. errMsg: "",
  77. type: "textarea",
  78. value: "",
  79. placeholder: "报价单说明",
  80. valueName: "remarks",
  81. required: false, //必填
  82. }],
  83. disabled: true
  84. },
  85. onLoad(options) {
  86. if (options.data) {
  87. let data = JSON.parse(options.data);
  88. let form = this.data.form;
  89. if (data.sys_enterpriseid) {
  90. form[0].value = data.sys_enterpriseid;
  91. form.splice(1, 0, {
  92. label: "联系人",
  93. error: false,
  94. errMsg: "",
  95. type: "route",
  96. url: "/packageA/select/contacts/select",
  97. value: "",
  98. params: {
  99. "id": "20221022165503",
  100. "version": 1,
  101. "content": {
  102. nocache: true,
  103. "sys_enterpriseid": data.sys_enterpriseid[1][0],
  104. "where": {
  105. "condition": "",
  106. "workaddress": 0
  107. }
  108. }
  109. },
  110. query: "&radio=true",
  111. placeholder: "选择客户联系人",
  112. valueName: "contactsid",
  113. checking: "base",
  114. required: false
  115. })
  116. };
  117. this.setData({
  118. form
  119. });
  120. this.selectComponent("#Form").confirm();
  121. }
  122. },
  123. /* 打断处理form */
  124. interrupt(e) {
  125. let {
  126. data,
  127. form,
  128. temporary
  129. } = e.detail;
  130. console.log("处理", data, form, temporary)
  131. if (temporary.item.value[0] == data.value[0]) return wx.navigateBack();
  132. temporary.item.value = data.value;
  133. if (temporary.item.valueName == "sys_enterpriseid") {
  134. let obj = {
  135. label: "联系人",
  136. error: false,
  137. errMsg: "",
  138. type: "route",
  139. url: "/packageA/select/contacts/select",
  140. value: "",
  141. params: {
  142. "id": "20221022165503",
  143. "version": 1,
  144. "content": {
  145. nocache: true,
  146. "sys_enterpriseid": data.value[1][0],
  147. "where": {
  148. "condition": "",
  149. "workaddress": 0
  150. }
  151. }
  152. },
  153. query: "&radio=true",
  154. placeholder: "选择客户联系人",
  155. valueName: "contactsid",
  156. checking: "base",
  157. required: false
  158. };
  159. form.splice(1, form[1].label == "联系人" ? 1 : 0, obj);
  160. }
  161. form[temporary.index] = temporary.item;
  162. wx.navigateBack()
  163. this.setData({
  164. form
  165. })
  166. },
  167. submit() {
  168. let content = {
  169. ...this.selectComponent("#Form").submit(),
  170. "sa_quotedpriceid": 0, //报价单id
  171. "sa_projectid": 0, //项目id
  172. discountrate: "",
  173. projectname: "",
  174. address: "",
  175. };
  176. content.sys_enterpriseid = content.sys_enterpriseid[1] ? content.sys_enterpriseid[1][0] : 0;
  177. content.contactsid = content.contactsid[1] ? content.contactsid[1][0] : 0;
  178. content.begdate = content.invaliddate[0];
  179. content.enddate = content.invaliddate[1];
  180. delete(content.invaliddate)
  181. _Http.basic({
  182. "id": 20221020164803,
  183. "version": 1,
  184. content
  185. }).then(res => {
  186. console.log("添加客户报价单", res)
  187. wx.showToast({
  188. title: res.msg != '成功' ? res.msg : '保存成功',
  189. icon: "none"
  190. })
  191. if (res.msg != '成功') return;
  192. setTimeout(() => {
  193. let pages = getCurrentPages(),
  194. page = pages[pages.length - 2];
  195. if (page.__route__ == 'packageA/offers/index') {
  196. page.getList(true);
  197. } else if (['packageA/setclient/detail', 'packageA/publicCustomer/detail'].includes(page.__route__)) {
  198. let model = page.selectComponent("#Offers");
  199. model.getList(model.data.sys_enterpriseid, true);
  200. }
  201. wx.redirectTo({
  202. url: '/packageA/offers/detail?sa_quotedpriceid=' + res.data.sa_quotedpriceid
  203. })
  204. }, 300)
  205. })
  206. },
  207. // 是否显示全部
  208. onChange({
  209. detail
  210. }) {
  211. this.setData({
  212. showAll: detail
  213. })
  214. },
  215. /* 表单必填项是否完成 */
  216. onConfirm({
  217. detail
  218. }) {
  219. this.setData({
  220. disabled: detail
  221. })
  222. }
  223. })