addSetclientOffer.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. const _Http = getApp().globalData.http,
  2. getTime = require("../../utils/getTime");
  3. let sa_quotedpriceid = 0,
  4. quotedpricenotes = [],
  5. address = "";
  6. Page({
  7. data: {
  8. loading: false,
  9. showAll: false,
  10. form: [{
  11. label: "客户",
  12. error: false,
  13. errMsg: "",
  14. type: "route",
  15. url: "/packageA/contract/add/setclient/select",
  16. value: "",
  17. params: {
  18. "id": 20220920083901,
  19. "content": {
  20. "pageNumber": 1,
  21. "pageSize": 20,
  22. "where": {
  23. "condition": "",
  24. "type": 19,
  25. "sa_projectid": ""
  26. }
  27. },
  28. },
  29. interrupt: true,
  30. query: "&radio=true&idname=sys_enterpriseid",
  31. placeholder: "选择客户",
  32. valueName: "sys_enterpriseid",
  33. checking: "base",
  34. required: true
  35. }, {
  36. label: "产品系列",
  37. error: false,
  38. errMsg: "",
  39. type: "option",
  40. optionNmae: "itemtype",
  41. optionType: "checkbox", //复选 radio 单选
  42. value: "",
  43. placeholder: "请选择产品系列",
  44. valueName: "itemtype",
  45. checking: "base",
  46. required: true
  47. }, {
  48. label: "折扣(%)",
  49. error: false,
  50. errMsg: "",
  51. hint: "请输入0-100%",
  52. type: "digit",
  53. value: "",
  54. placeholder: "请填写折扣(%)",
  55. valueName: "discountrate", //绑定的字段名称
  56. required: false, //必填
  57. checking: `^(100|\\d{0,2})(\\.\\d{1,2})?$`, //0-100%
  58. slot: "discountrate"
  59. }, {
  60. label: "报价日期",
  61. error: false,
  62. errMsg: "",
  63. type: "date",
  64. value: getTime.formatTime(new Date(), '-').split(' ')[0] + "",
  65. placeholder: "报价日期",
  66. valueName: "billdate",
  67. checking: "base",
  68. required: false
  69. }, {
  70. label: "有效期",
  71. error: false,
  72. errMsg: "",
  73. type: "dateRange",
  74. value: [getTime.formatTime(new Date(), '-').split(' ')[0] + "", ""],
  75. placeholder: ['生效日期', '截止日期'],
  76. valueName: "invaliddate",
  77. checking: "base",
  78. required: true
  79. }, {
  80. label: "备注",
  81. error: false,
  82. errMsg: "",
  83. type: "textarea",
  84. value: "",
  85. placeholder: "报价单说明",
  86. valueName: "remarks",
  87. required: false, //必填
  88. }],
  89. disabled: true
  90. },
  91. onLoad(options) {
  92. if (options.data) {
  93. let data = JSON.parse(options.data);
  94. let form = this.data.form;
  95. sa_quotedpriceid = data.sa_quotedpriceid || 0;
  96. quotedpricenotes = data.quotedpricenotes || [];
  97. address = data.address || "";
  98. data.discountrate = data.discountrate == 1 ? 100 : (data.discountrate * 100).toFixed(2);
  99. data.sys_enterpriseid = [data.enterprisename, [data.sys_enterpriseid]];
  100. form = form.map(v => {
  101. if (v.valueName == "invaliddate") {
  102. v.value = [data.begdate, data.enddate]
  103. } else {
  104. v.value = data[v.valueName] || "";
  105. }
  106. return v
  107. })
  108. form.splice(1, 0, {
  109. label: "联系人",
  110. error: false,
  111. errMsg: "",
  112. type: "route",
  113. url: "/packageA/select/contacts/select",
  114. value: [data.contactsname, [data.contactsid]],
  115. params: {
  116. "id": "20221022165503",
  117. "version": 1,
  118. "content": {
  119. nocache: true,
  120. "sys_enterpriseid": data.sys_enterpriseid[1][0],
  121. "where": {
  122. "condition": "",
  123. "workaddress": 0
  124. }
  125. }
  126. },
  127. query: "&radio=true",
  128. placeholder: "选择客户联系人",
  129. valueName: "contactsid",
  130. checking: "base",
  131. required: false
  132. });
  133. form.splice(6, 0, {
  134. label: "业务员",
  135. error: false,
  136. errMsg: "",
  137. type: "route",
  138. url: "/packageA/select/contacts/select",
  139. value: [data.name, [data.saler_hrid]],
  140. params: {
  141. "id": "20230306144402",
  142. "content": {
  143. nocache: true,
  144. "type": 1, //type:1客户2:项目
  145. "sys_enterpriseid": data.sys_enterpriseid[1][0],
  146. "where": {
  147. "condition": ""
  148. }
  149. }
  150. },
  151. query: "&radio=true&idname=hrid",
  152. placeholder: "选择业务员",
  153. valueName: "saler_hrid",
  154. checking: "base",
  155. required: true
  156. });
  157. this.setData({
  158. form
  159. });
  160. this.selectComponent("#Form").confirm();
  161. }
  162. },
  163. /* 打断处理form */
  164. interrupt(e) {
  165. let {
  166. data,
  167. form,
  168. temporary
  169. } = e.detail;
  170. console.log("处理", data, form, temporary)
  171. if (temporary.item.value[0] == data.value[0]) return wx.navigateBack();
  172. temporary.item.value = data.value;
  173. if (temporary.item.valueName == "sys_enterpriseid") {
  174. //联系人
  175. let contacts = {
  176. label: "联系人",
  177. error: false,
  178. errMsg: "",
  179. type: "route",
  180. url: "/packageA/select/contacts/select",
  181. value: "",
  182. params: {
  183. "id": "20221022165503",
  184. "version": 1,
  185. "content": {
  186. nocache: true,
  187. "sys_enterpriseid": data.value[1][0],
  188. "where": {
  189. "condition": "",
  190. "workaddress": 0
  191. }
  192. }
  193. },
  194. query: "&radio=true",
  195. placeholder: "选择客户联系人",
  196. valueName: "contactsid",
  197. checking: "base",
  198. required: false
  199. };
  200. form.splice(1, form[1].label == "联系人" ? 1 : 0, contacts);
  201. //业务员
  202. let hr = {
  203. label: "业务员",
  204. error: false,
  205. errMsg: "",
  206. type: "route",
  207. url: "/packageA/select/contacts/select",
  208. value: "",
  209. params: {
  210. "id": "20230306144402",
  211. "content": {
  212. nocache: true,
  213. "type": 1, //type:1客户2:项目
  214. "sys_enterpriseid": data.value[1][0],
  215. "where": {
  216. "condition": ""
  217. }
  218. }
  219. },
  220. query: "&radio=true&idname=hrid",
  221. placeholder: "选择业务员",
  222. valueName: "saler_hrid",
  223. checking: "base",
  224. required: true
  225. };
  226. form.splice(6, form[6].label == "业务员" ? 1 : 0, hr);
  227. }
  228. form[temporary.index] = temporary.item;
  229. wx.navigateBack()
  230. this.setData({
  231. form
  232. })
  233. },
  234. submit() {
  235. this.setData({
  236. loading: true
  237. })
  238. let content = {
  239. ...this.selectComponent("#Form").submit(),
  240. "sa_projectid": 0, //项目id
  241. projectname: "",
  242. sa_quotedpriceid,
  243. quotedpricenotes,
  244. address
  245. };
  246. content.sys_enterpriseid = content.sys_enterpriseid[1] ? content.sys_enterpriseid[1][0] : 0;
  247. content.contactsid = content.contactsid[1] ? content.contactsid[1][0] : 0;
  248. content.saler_hrid = content.saler_hrid[1] ? content.saler_hrid[1][0] : 0;
  249. content.discountrate = (content.discountrate / 100).toFixed(4) || 1;
  250. content.begdate = content.invaliddate[0];
  251. content.enddate = content.invaliddate[1];
  252. delete(content.invaliddate)
  253. _Http.basic({
  254. "id": 20221020164803,
  255. "version": 1,
  256. content
  257. }).then(res => {
  258. console.log("添加客户报价单", res)
  259. this.setData({
  260. loading: false
  261. })
  262. wx.showToast({
  263. title: res.msg != '成功' ? res.msg : '保存成功',
  264. icon: "none"
  265. })
  266. if (res.msg != '成功') return;
  267. setTimeout(() => {
  268. let pages = getCurrentPages(),
  269. page = pages[pages.length - 2];
  270. if (page.__route__ == 'packageA/offers/detail') {
  271. page.getDetail(true);
  272. wx.navigateBack()
  273. } else {
  274. if (['packageA/setclient/detail', 'packageA/publicCustomer/detail'].includes(page.__route__)) {
  275. let model = page.selectComponent("#Offers");
  276. model.getList(model.data.sys_enterpriseid, true);
  277. }
  278. wx.redirectTo({
  279. url: '/packageA/offers/detail?sa_quotedpriceid=' + res.data.sa_quotedpriceid
  280. })
  281. }
  282. }, 300)
  283. })
  284. },
  285. // 是否显示全部
  286. onChange({
  287. detail
  288. }) {
  289. this.setData({
  290. showAll: detail
  291. })
  292. },
  293. /* 表单必填项是否完成 */
  294. onConfirm({
  295. detail
  296. }) {
  297. this.setData({
  298. disabled: detail
  299. })
  300. }
  301. })