translate.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  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. disabled: true,
  204. countDown: "", //查重倒计时
  205. },
  206. queryClient() {
  207. let data = this.selectComponent("#Form").query();
  208. if (data.enterprisename == '') {
  209. wx.showToast({
  210. title: `您还未填写企业名称`,
  211. icon: "none"
  212. });
  213. } else {
  214. this.setData({
  215. form: this.selectComponent("#Form").data.form,
  216. })
  217. this.selectComponent("#Info").queryClient(data.enterprisename)
  218. }
  219. },
  220. /* 工商查询 */
  221. introduce({
  222. detail
  223. }) {
  224. let item = detail;
  225. let data = {
  226. enterprisename: item.companyName, //企业名称
  227. taxno: item.taxNum, //税号
  228. contact: item.legalPerson, //法人
  229. region: [item.regProvince, item.regCity, item.regArea], //地区
  230. address: item.address, //地区
  231. }
  232. this.setData({
  233. form: this.data.form.map(v => {
  234. if (data[v.valueName]) v.value = data[v.valueName];
  235. return v
  236. })
  237. })
  238. },
  239. setOption(item) {
  240. let i = this.data.form.findIndex(v => v.valueName == item.valueName);
  241. this.setData({
  242. [`form[${i}]`]: item
  243. })
  244. },
  245. onLoad(options) {
  246. if (options.data) {
  247. let data = JSON.parse(options.data);
  248. console.log(data)
  249. data.source = data.cluesource; //来源
  250. data.telephone = data.phonenumber; //电话
  251. this.setData({
  252. content: {
  253. sat_orderclueid: data.sat_orderclueid,
  254. parentid: data.parentid || 0,
  255. },
  256. form: this.data.form.map(v => {
  257. if (v.valueName == 'enterprisename') {
  258. v.value = data.enterprisename_customer;
  259. } else if (v.valueName != 'region') {
  260. v.value = data[v.valueName] || '';
  261. } else {
  262. v.value = data.province ? [data.province, data.city, data.county] : []
  263. }
  264. return v
  265. })
  266. })
  267. }
  268. },
  269. repClose() {
  270. if (this.data.isSubmit) {
  271. let that = this;
  272. wx.showModal({
  273. title: '提示',
  274. content: `是否继续创建客户`,
  275. complete: (res) => {
  276. if (res.confirm) that.handleSubmit(true);
  277. }
  278. })
  279. }
  280. this.setData({
  281. repetitionShow: false,
  282. isSubmit: false
  283. })
  284. },
  285. /* 表单必填项是否完成 */
  286. onConfirm({
  287. detail
  288. }) {
  289. this.setData({
  290. disabled: detail
  291. })
  292. },
  293. // 是否显示全部
  294. onChange({
  295. detail
  296. }) {
  297. this.setData({
  298. showAll: detail
  299. })
  300. },
  301. /* 查询是否重复 */
  302. async queryRepetition(e) {
  303. let {
  304. enterprisename,
  305. taxno,
  306. address
  307. } = this.selectComponent("#Form").query();
  308. if (enterprisename == '') return wx.showToast({
  309. title: `您还未填写企业名称`,
  310. icon: "none"
  311. });
  312. let res = await this.handleQueryRepetition({
  313. sa_customersid: this.data.content.sa_customersid || 0,
  314. enterprisename,
  315. taxno,
  316. address
  317. });
  318. console.log("查询重复", res)
  319. if (res.msg != '成功') return wx.showToast({
  320. title: res.msg,
  321. icon: "none"
  322. });
  323. this.setData({
  324. countDown: 6
  325. });
  326. count = setInterval(() => {
  327. let countDown = this.data.countDown;
  328. if (countDown == 0) {
  329. clearInterval(count);
  330. this.setData({
  331. countDown: ""
  332. })
  333. } else {
  334. countDown--;
  335. this.setData({
  336. countDown
  337. })
  338. }
  339. }, 1000)
  340. if (res.total == 0) {
  341. wx.showToast({
  342. title: '未查询到疑似重复的客户信息',
  343. icon: "none"
  344. })
  345. } else {
  346. wx.showToast({
  347. title: `查询到${res.total}条疑似重复客户信息`,
  348. icon: "none"
  349. })
  350. this.setData({
  351. repetitionShow: true,
  352. repetitionList: res.data
  353. })
  354. }
  355. },
  356. /* 处理查重 */
  357. handleQueryRepetition(content) {
  358. return _Http.basic({
  359. "id": 20221208172002,
  360. content
  361. })
  362. },
  363. async submit() {
  364. let data = this.selectComponent("#Form").submit();
  365. let query = await this.handleQueryRepetition({
  366. sa_customersid: this.data.content.sa_customersid || 0,
  367. enterprisename: data.enterprisename,
  368. taxno: data.taxno,
  369. address: data.address
  370. });
  371. if (query.total != 0) {
  372. wx.showToast({
  373. title: `查询到${query.total}条疑似重复客户信息`,
  374. icon: "none"
  375. })
  376. this.setData({
  377. repetitionShow: true,
  378. repetitionList: query.data,
  379. isSubmit: true
  380. })
  381. } else {
  382. this.handleSubmit();
  383. }
  384. },
  385. handleSubmit(tag = false) {
  386. let data = this.selectComponent("#Form").submit();
  387. data.province = data.region[0] || "";
  388. data.city = data.region[1] || "";
  389. data.county = data.region[2] || "";
  390. data.parentid = data.parentid[1] ? data.parentid[1][0] : 0;
  391. data.sa_agentsid = data.sa_agentsid[1] ? data.sa_agentsid[1][0] : 0;
  392. delete(data.region);
  393. delete(data.region);
  394. _Http.basic({
  395. "id": 20221216184302,
  396. "content": {
  397. ...this.data.content,
  398. ...data,
  399. }
  400. }).then(res => {
  401. console.log("转化客户", res)
  402. if (res.msg != '成功') return wx.showToast({
  403. title: res.data,
  404. icon: "none"
  405. })
  406. wx.showToast({
  407. title: '转化成功',
  408. icon: "none"
  409. })
  410. //绑定疑似重复标签
  411. if (tag) _Http.basic({
  412. "id": 20220929090901,
  413. "content": {
  414. "ownertable": "sa_customers",
  415. "ownerid": res.data.sa_customersid,
  416. "datatag": ["疑似重复"]
  417. }
  418. })
  419. setTimeout(() => {
  420. getCurrentPages().forEach(v => {
  421. switch (v.__route__) {
  422. case 'packageA/saleClue/index':
  423. v.getList(true);
  424. break;
  425. case 'packageA/setclient/detail':
  426. v.getDetail();
  427. break;
  428. }
  429. })
  430. let pages = getCurrentPages();
  431. if (pages[pages.length - 2].__route__ == 'packageA/saleClue/detail') {
  432. wx.navigateBack();
  433. getCurrentPages().forEach(item => {
  434. console.log(item);
  435. if (item.__route__ == 'packageA/saleClue/detail') {
  436. item.getDetail()
  437. }
  438. })
  439. wx.navigateTo({
  440. url: '/packageA/setclient/detail?id=' + res.data.sa_customersid,
  441. })
  442. }
  443. }, tag ? 500 : 300)
  444. })
  445. },
  446. })