addSetclientOffer.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  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": 20220920083901,
  15. "content": {
  16. "pageNumber": 1,
  17. "pageSize": 20,
  18. "where": {
  19. "condition": "",
  20. "type": 7,
  21. "sa_projectid": ""
  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. hint: "请输入0-100%",
  48. type: "digit",
  49. value: "",
  50. placeholder: "请填写折扣(%)",
  51. valueName: "discountrate", //绑定的字段名称
  52. required: false, //必填
  53. checking: `^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$`, //0-100%
  54. slot: "discountrate"
  55. }, {
  56. label: "报价日期",
  57. error: false,
  58. errMsg: "",
  59. type: "date",
  60. value: getTime.formatTime(new Date(), '-').split(' ')[0] + "",
  61. placeholder: "报价日期",
  62. valueName: "billdate",
  63. checking: "base",
  64. required: false
  65. }, {
  66. label: "有效期",
  67. error: false,
  68. errMsg: "",
  69. type: "dateRange",
  70. value: [getTime.formatTime(new Date(), '-').split(' ')[0] + "", ""],
  71. placeholder: ['生效日期', '截止日期'],
  72. valueName: "invaliddate",
  73. checking: "base",
  74. required: true
  75. }, {
  76. label: "备注",
  77. error: false,
  78. errMsg: "",
  79. type: "textarea",
  80. value: "",
  81. placeholder: "报价单说明",
  82. valueName: "remarks",
  83. required: false, //必填
  84. }],
  85. disabled: true
  86. },
  87. onLoad(options) {
  88. if (options.data) {
  89. let data = JSON.parse(options.data);
  90. let form = this.data.form;
  91. if (data.sys_enterpriseid) {
  92. form[0].value = data.sys_enterpriseid;
  93. form.splice(1, 0, {
  94. label: "联系人",
  95. error: false,
  96. errMsg: "",
  97. type: "route",
  98. url: "/packageA/select/contacts/select",
  99. value: "",
  100. params: {
  101. "id": "20221022165503",
  102. "version": 1,
  103. "content": {
  104. nocache: true,
  105. "sys_enterpriseid": data.sys_enterpriseid[1][0],
  106. "where": {
  107. "condition": "",
  108. "workaddress": 0
  109. }
  110. }
  111. },
  112. query: "&radio=true",
  113. placeholder: "选择客户联系人",
  114. valueName: "contactsid",
  115. checking: "base",
  116. required: false
  117. })
  118. };
  119. this.setData({
  120. form
  121. });
  122. this.selectComponent("#Form").confirm();
  123. }
  124. },
  125. /* 打断处理form */
  126. interrupt(e) {
  127. let {
  128. data,
  129. form,
  130. temporary
  131. } = e.detail;
  132. console.log("处理", data, form, temporary)
  133. if (temporary.item.value[0] == data.value[0]) return wx.navigateBack();
  134. temporary.item.value = data.value;
  135. if (temporary.item.valueName == "sys_enterpriseid") {
  136. //联系人
  137. let contacts = {
  138. label: "联系人",
  139. error: false,
  140. errMsg: "",
  141. type: "route",
  142. url: "/packageA/select/contacts/select",
  143. value: "",
  144. params: {
  145. "id": "20221022165503",
  146. "version": 1,
  147. "content": {
  148. nocache: true,
  149. "sys_enterpriseid": data.value[1][0],
  150. "where": {
  151. "condition": "",
  152. "workaddress": 0
  153. }
  154. }
  155. },
  156. query: "&radio=true",
  157. placeholder: "选择客户联系人",
  158. valueName: "contactsid",
  159. checking: "base",
  160. required: false
  161. };
  162. form.splice(1, form[1].label == "联系人" ? 1 : 0, contacts);
  163. //业务员
  164. let hr = {
  165. label: "业务员",
  166. error: false,
  167. errMsg: "",
  168. type: "route",
  169. url: "/packageA/select/contacts/select",
  170. value: "",
  171. params: {
  172. "id": "20230306144402",
  173. "content": {
  174. nocache: true,
  175. "type": 1, //type:1客户2:项目
  176. "sys_enterpriseid": data.value[1][0],
  177. "where": {
  178. "condition": ""
  179. }
  180. }
  181. },
  182. query: "&radio=true&idname=hrid",
  183. placeholder: "选择业务员",
  184. valueName: "saler_hrid",
  185. checking: "base",
  186. required: false
  187. };
  188. form.splice(6, form[6].label == "业务员" ? 1 : 0, hr);
  189. }
  190. form[temporary.index] = temporary.item;
  191. wx.navigateBack()
  192. this.setData({
  193. form
  194. })
  195. },
  196. submit() {
  197. let content = {
  198. ...this.selectComponent("#Form").submit(),
  199. "sa_quotedpriceid": 0, //报价单id
  200. "sa_projectid": 0, //项目id
  201. projectname: "",
  202. address: "",
  203. };
  204. content.sys_enterpriseid = content.sys_enterpriseid[1] ? content.sys_enterpriseid[1][0] : 0;
  205. content.contactsid = content.contactsid[1] ? content.contactsid[1][0] : 0;
  206. content.saler_hrid = content.saler_hrid[1] ? content.saler_hrid[1][0] : 0;
  207. content.discountrate = (content.discountrate / 100).toFixed(4) || 1;
  208. content.begdate = content.invaliddate[0];
  209. content.enddate = content.invaliddate[1];
  210. delete(content.invaliddate)
  211. _Http.basic({
  212. "id": 20221020164803,
  213. "version": 1,
  214. content
  215. }).then(res => {
  216. console.log("添加客户报价单", res)
  217. wx.showToast({
  218. title: res.msg != '成功' ? res.msg : '保存成功',
  219. icon: "none"
  220. })
  221. if (res.msg != '成功') return;
  222. setTimeout(() => {
  223. let pages = getCurrentPages(),
  224. page = pages[pages.length - 2];
  225. if (page.__route__ == 'packageA/offers/index') {
  226. page.getList(true);
  227. } else if (['packageA/setclient/detail', 'packageA/publicCustomer/detail'].includes(page.__route__)) {
  228. let model = page.selectComponent("#Offers");
  229. model.getList(model.data.sys_enterpriseid, true);
  230. }
  231. wx.redirectTo({
  232. url: '/packageA/offers/detail?sa_quotedpriceid=' + res.data.sa_quotedpriceid
  233. })
  234. }, 300)
  235. })
  236. },
  237. // 是否显示全部
  238. onChange({
  239. detail
  240. }) {
  241. this.setData({
  242. showAll: detail
  243. })
  244. },
  245. /* 表单必填项是否完成 */
  246. onConfirm({
  247. detail
  248. }) {
  249. this.setData({
  250. disabled: detail
  251. })
  252. }
  253. })