addAndEditor.js 13 KB

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