addSetclientOffer.js 8.0 KB

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