addAndEditor.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. let _Http = getApp().globalData.http,
  2. count = null;
  3. Page({
  4. data: {
  5. showAll: false,
  6. repetitionShow: false,
  7. repetitionList: [],
  8. isSubmit: false,
  9. form: [{
  10. label: "客户(企业)",
  11. error: false,
  12. errMsg: "",
  13. type: "textarea",
  14. value: "",
  15. placeholder: "客户(企业)名称",
  16. valueName: "enterprisename",
  17. checking: "base",
  18. slot: "info",
  19. required: true
  20. }, {
  21. label: "企业简称",
  22. error: false,
  23. errMsg: "",
  24. type: "textarea",
  25. value: "",
  26. placeholder: "企业简称",
  27. valueName: "abbreviation",
  28. checking: "base",
  29. required: false
  30. }, {
  31. label: "erp编号",
  32. error: false,
  33. errMsg: "",
  34. type: "textarea",
  35. value: "",
  36. placeholder: "erp编号",
  37. valueName: "erpagentnum",
  38. checking: "base",
  39. required: false
  40. }, {
  41. label: "客户类型",
  42. error: false,
  43. errMsg: "",
  44. type: "option",
  45. optionNmae: "customertypemx",
  46. optionType: "radio", //复选 radio 单选
  47. value: "",
  48. placeholder: "客户类型",
  49. valueName: "type",
  50. checking: "base",
  51. required: true
  52. }, {
  53. label: "企业等级",
  54. error: false,
  55. errMsg: "",
  56. type: "option",
  57. optionNmae: "agentgrade",
  58. optionType: "radio", //复选 radio 单选
  59. value: "",
  60. placeholder: "企业等级",
  61. valueName: "grade",
  62. checking: "base",
  63. required: false
  64. }, {
  65. label: "客户分类",
  66. error: false,
  67. errMsg: "",
  68. type: "option",
  69. optionNmae: "customergrade",
  70. optionType: "radio", //复选 radio 单选
  71. value: "",
  72. placeholder: "客户分类",
  73. valueName: "customergrade",
  74. checking: "base",
  75. required: false
  76. }, {
  77. label: "客户行业",
  78. error: false,
  79. errMsg: "",
  80. type: "option", //自定义选择 配合预定接口
  81. optionNmae: "industry", //选择类型
  82. optionType: "checkbox", //复选 radio 单选
  83. value: "",
  84. placeholder: "客户所属行业",
  85. valueName: "industry",
  86. checking: "base",
  87. required: false
  88. }, {
  89. label: "税号",
  90. error: false,
  91. errMsg: "",
  92. type: "textarea",
  93. value: "",
  94. placeholder: "企业税号",
  95. valueName: "taxno",
  96. checking: "base",
  97. required: false
  98. }, {
  99. label: "法人",
  100. error: false,
  101. errMsg: "",
  102. type: "text",
  103. value: "",
  104. placeholder: "企业法人",
  105. valueName: "contact",
  106. checking: "base",
  107. required: false
  108. }, {
  109. label: "电话",
  110. error: false,
  111. errMsg: "",
  112. type: "number",
  113. value: "",
  114. placeholder: "联系电话",
  115. valueName: "telephone",
  116. checking: "base",
  117. required: false
  118. }, {
  119. label: "省市县",
  120. error: false,
  121. errMsg: "",
  122. type: "region",
  123. value: [],
  124. placeholder: "所在地区",
  125. valueName: "region",
  126. required: false
  127. }, {
  128. label: "详细地址",
  129. error: false,
  130. errMsg: "",
  131. type: "textarea",
  132. value: "",
  133. placeholder: "详细地址",
  134. valueName: "address",
  135. checking: "base",
  136. required: false
  137. }, {
  138. label: "上级企业",
  139. error: false,
  140. errMsg: "",
  141. type: "route",
  142. url: "/packageA/select/setclient/select",
  143. value: "",
  144. params: {
  145. id: 20221012164402,
  146. content: {
  147. nocache: true,
  148. "type": 1,
  149. "isExport": 0,
  150. isend: 0,
  151. "where": {
  152. "condition": "",
  153. "status": "", //状态
  154. "startdate": "",
  155. "enddate": ""
  156. },
  157. "sort": [{
  158. sortname: "默认",
  159. sorted: 1,
  160. sortid: 67,
  161. reversed: 0
  162. }]
  163. },
  164. },
  165. query: "&radio=true&idname=sa_customersid",
  166. placeholder: "选择上级企业",
  167. valueName: "parentid",
  168. checking: "base",
  169. required: false
  170. }, {
  171. label: "客户来源",
  172. error: false,
  173. errMsg: "",
  174. type: "textarea",
  175. value: "",
  176. placeholder: "客户来源",
  177. valueName: "source",
  178. checking: "base",
  179. required: false
  180. }, {
  181. label: "归属经销商",
  182. error: false,
  183. errMsg: "",
  184. type: "route",
  185. url: "/packageA/select/setclient/select",
  186. value: "",
  187. params: {
  188. "id": 20230214162602,
  189. "content": {
  190. "hrid": wx.getStorageSync('userMsg').hrid,
  191. "where": {
  192. "condition": ""
  193. }
  194. },
  195. },
  196. query: "&radio=true&idname=sa_agentsid",
  197. placeholder: "归属经销商",
  198. valueName: "sa_agentsid",
  199. checking: "base",
  200. required: false
  201. }],
  202. content: {
  203. "sa_customersid": 0, //新增是传0
  204. "sys_enterpriseid": 0, //合作企业档案ID,新增是传0,更新
  205. "sa_customerpoolid": 0, //客户池(公海池)ID,默认或没有的时候传0
  206. ispublic: 0, //是否为公海客户
  207. },
  208. disabled: true,
  209. countDown: "", //查重倒计时
  210. },
  211. queryClient() {
  212. let data = this.selectComponent("#Form").query();
  213. if (data.enterprisename == '') {
  214. wx.showToast({
  215. title: `您还未填写企业名称`,
  216. icon: "none"
  217. });
  218. } else {
  219. this.setData({
  220. form: this.selectComponent("#Form").data.form,
  221. })
  222. this.selectComponent("#Info").queryClient(data.enterprisename)
  223. }
  224. },
  225. /* 工商查询 */
  226. introduce({
  227. detail
  228. }) {
  229. let item = detail;
  230. let data = {
  231. enterprisename: item.companyName, //企业名称
  232. taxno: item.taxNum, //税号
  233. contact: item.legalPerson, //法人
  234. region: [item.regProvince, item.regCity, item.regArea], //地区
  235. address: item.address, //地区
  236. }
  237. this.setData({
  238. form: this.data.form.map(v => {
  239. if (data[v.valueName]) v.value = data[v.valueName];
  240. return v
  241. })
  242. })
  243. },
  244. setOption(item) {
  245. let i = this.data.form.findIndex(v => v.valueName == item.valueName);
  246. this.setData({
  247. [`form[${i}]`]: item
  248. })
  249. },
  250. onLoad(options) {
  251. if (options.data) {
  252. let data = JSON.parse(options.data);
  253. this.setData({
  254. disabled: false,
  255. content: {
  256. sa_customersid: data.sa_customersid,
  257. sys_enterpriseid: data.sys_enterpriseid,
  258. sa_customerpoolid: data.sa_customerpoolid,
  259. },
  260. form: this.data.form.map(v => {
  261. if (v.valueName != 'region') {
  262. v.value = data[v.valueName] || "";
  263. if (v.valueName == "grade") v.value = data[v.valueName] + "";
  264. } else {
  265. v.value = data.province ? [data.province, data.city, data.county] : []
  266. }
  267. return v
  268. })
  269. })
  270. }
  271. },
  272. repClose() {
  273. if (this.data.isSubmit) {
  274. let that = this;
  275. wx.showModal({
  276. title: '提示',
  277. content: `是否继续创建客户`,
  278. complete: (res) => {
  279. if (res.confirm) that.handleSubmit(true);
  280. }
  281. })
  282. }
  283. this.setData({
  284. repetitionShow: false,
  285. isSubmit: false
  286. })
  287. },
  288. /* 表单必填项是否完成 */
  289. onConfirm({
  290. detail
  291. }) {
  292. this.setData({
  293. disabled: detail
  294. })
  295. },
  296. // 是否显示全部
  297. onChange({
  298. detail
  299. }) {
  300. this.setData({
  301. showAll: detail
  302. })
  303. },
  304. /* 查询是否重复 */
  305. async queryRepetition(e) {
  306. let {
  307. enterprisename,
  308. taxno,
  309. address
  310. } = this.selectComponent("#Form").query();
  311. if (enterprisename == '') return wx.showToast({
  312. title: `您还未填写企业名称`,
  313. icon: "none"
  314. });
  315. let res = await this.handleQueryRepetition({
  316. sa_customersid: this.data.content.sa_customersid,
  317. enterprisename,
  318. taxno,
  319. address
  320. });
  321. console.log("查询重复", res)
  322. if (res.msg != '成功') return wx.showToast({
  323. title: res.msg,
  324. icon: "none"
  325. });
  326. this.setData({
  327. countDown: 6
  328. });
  329. count = setInterval(() => {
  330. let countDown = this.data.countDown;
  331. if (countDown == 0) {
  332. clearInterval(count);
  333. this.setData({
  334. countDown: ""
  335. })
  336. } else {
  337. countDown--;
  338. this.setData({
  339. countDown
  340. })
  341. }
  342. }, 1000)
  343. if (res.total == 0) {
  344. wx.showToast({
  345. title: '未查询到疑似重复的客户信息',
  346. icon: "none"
  347. })
  348. } else {
  349. wx.showToast({
  350. title: `查询到${res.total}条疑似重复客户信息`,
  351. icon: "none"
  352. })
  353. this.setData({
  354. repetitionShow: true,
  355. repetitionList: res.data
  356. })
  357. }
  358. },
  359. /* 处理查重 */
  360. handleQueryRepetition(content) {
  361. return _Http.basic({
  362. "id": 20221208172002,
  363. content
  364. })
  365. },
  366. async submit() {
  367. let data = this.selectComponent("#Form").submit();
  368. let query = await this.handleQueryRepetition({
  369. sa_customersid: this.data.content.sa_customersid,
  370. enterprisename: data.enterprisename,
  371. taxno: data.taxno,
  372. address: data.address
  373. });
  374. if (query.total != 0) {
  375. wx.showToast({
  376. title: `查询到${query.total}条疑似重复客户信息`,
  377. icon: "none"
  378. })
  379. this.setData({
  380. repetitionShow: true,
  381. repetitionList: query.data,
  382. isSubmit: true
  383. })
  384. } else {
  385. this.handleSubmit();
  386. }
  387. },
  388. handleSubmit(tag = false) {
  389. let data = this.selectComponent("#Form").submit();
  390. data.province = data.region[0] || "";
  391. data.city = data.region[1] || "";
  392. data.county = data.region[2] || "";
  393. data.parentid = data.parentid[1] ? data.parentid[1][0] : 0;
  394. data.sa_agentsid = data.sa_agentsid[1] ? data.sa_agentsid[1][0] : 0;
  395. delete(data.region);
  396. _Http.basic({
  397. "id": 20221012163902,
  398. "content": {
  399. ...this.data.content,
  400. ...data,
  401. }
  402. }).then(res => {
  403. console.log("新建客户", res)
  404. if (res.msg != '成功') return wx.showToast({
  405. title: res.data,
  406. icon: "none"
  407. })
  408. wx.showToast({
  409. title: '保存成功',
  410. icon: "none"
  411. })
  412. //绑定疑似重复标签
  413. if (tag) _Http.basic({
  414. "id": 20220929090901,
  415. "content": {
  416. "ownertable": "sa_customers",
  417. "ownerid": res.data.sa_customersid,
  418. "datatag": ["疑似重复"]
  419. }
  420. })
  421. setTimeout(() => {
  422. getCurrentPages().forEach(v => {
  423. switch (v.__route__) {
  424. case 'packageA/setclient/index':
  425. v.getList(true);
  426. break;
  427. case 'packageA/setclient/detail':
  428. v.getDetail();
  429. wx.navigateBack()
  430. break;
  431. }
  432. })
  433. let pages = getCurrentPages();
  434. if (pages[pages.length - 2].__route__ == 'packageA/setclient/index') wx.redirectTo({
  435. url: '/packageA/setclient/detail?id=' + res.data.sa_customersid,
  436. })
  437. }, tag ? 500 : 300)
  438. })
  439. },
  440. })