translate.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  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: "phonenumber",
  106. checking: "phone",
  107. required: false
  108. }, {
  109. label: "省市县",
  110. error: false,
  111. errMsg: "",
  112. type: "region",
  113. value: [],
  114. placeholder: "所在地区",
  115. valueName: "region",
  116. required: true
  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. content: {
  137. nocache: true,
  138. "type": 1,
  139. "isExport": 0,
  140. isend: 0,
  141. "where": {
  142. "condition": "",
  143. "status": "", //状态
  144. "startdate": "",
  145. "enddate": ""
  146. },
  147. "sort": [{
  148. sortname: "默认",
  149. sorted: 1,
  150. sortid: 67,
  151. reversed: 0
  152. }]
  153. },
  154. },
  155. query: "&radio=true&idname=sa_customersid",
  156. placeholder: "选择上级企业",
  157. valueName: "parentid",
  158. checking: "base",
  159. required: false
  160. }, {
  161. label: "客户来源",
  162. error: false,
  163. errMsg: "",
  164. type: "textarea",
  165. value: "",
  166. placeholder: "客户来源",
  167. valueName: "source",
  168. checking: "base",
  169. required: false
  170. }, {
  171. label: "归属经销商",
  172. error: false,
  173. errMsg: "",
  174. type: "route",
  175. url: "/packageA/select/setclient/select",
  176. value: "",
  177. params: {
  178. "id": 20230214162602,
  179. "content": {
  180. "hrid": wx.getStorageSync('userMsg').hrid,
  181. "where": {
  182. "condition": ""
  183. }
  184. },
  185. },
  186. query: "&radio=true&idname=sa_agentsid",
  187. placeholder: "归属经销商",
  188. valueName: "sa_agentsid",
  189. checking: "base",
  190. required: false
  191. }],
  192. content: {},
  193. disabled: true,
  194. countDown: "", //查重倒计时
  195. superaddition: {
  196. sys_phonebookid: 0,
  197. oldcontactsid: 0,
  198. }
  199. },
  200. queryClient() {
  201. let data = this.selectComponent("#Form").query();
  202. if (data.enterprisename == '') {
  203. wx.showToast({
  204. title: `您还未填写企业名称`,
  205. icon: "none"
  206. });
  207. } else {
  208. this.setData({
  209. form: this.selectComponent("#Form").data.form,
  210. })
  211. this.selectComponent("#Info").queryClient(data.enterprisename)
  212. }
  213. },
  214. /* 打开通讯录 */
  215. openContacts() {
  216. let that = this;
  217. wx.navigateTo({
  218. url: '/packageA/setclient/contacts',
  219. })
  220. getApp().globalData.handleSelect = (item) => {
  221. wx.showModal({
  222. title: '提示',
  223. content: `是否确定选择${item.name}`,
  224. complete: ({
  225. confirm
  226. }) => {
  227. if (confirm) {
  228. console.log(item)
  229. let page = that.selectComponent("#Form");
  230. let form = page.data.form,
  231. index = form.findIndex(v => v.label == '联系人');
  232. form[index].value = item.name;
  233. if (item.phonenumber.indexOf('-') !== -1) {
  234. form[index + 1].value = "1";
  235. form[index + 2] = {
  236. label: "座机电话",
  237. error: false,
  238. errMsg: "",
  239. type: "telephone",
  240. value: item.phonenumber.split("-"),
  241. valueName: "telephone1",
  242. required: true,
  243. checking: "telephone"
  244. }
  245. } else {
  246. form[index + 1].value = "0";
  247. form[index + 2] = {
  248. label: "手机号",
  249. error: false,
  250. errMsg: "",
  251. type: "number",
  252. value: item.phonenumber,
  253. placeholder: "联系人手机号码",
  254. valueName: "phonenumber1",
  255. required: true,
  256. checking: "phone"
  257. }
  258. }
  259. that.setData({
  260. form,
  261. superaddition: {
  262. sys_phonebookid: item.sys_phonebookid || 0,
  263. oldcontactsid: item.contactsid || 0,
  264. }
  265. })
  266. console.log(this.data.superaddition)
  267. wx.navigateBack()
  268. getApp().globalData.handleSelect = null;
  269. page.confirm()
  270. }
  271. }
  272. })
  273. };
  274. },
  275. /* 打断 */
  276. interrupt({
  277. detail
  278. }) {
  279. let {
  280. data,
  281. form,
  282. temporary
  283. } = detail;
  284. if (data.label == '联系方式') {
  285. let index = temporary.index + 1;
  286. if (data.value == 0) {
  287. data.telephone = form[index].value;
  288. if (data.telephone.join() == ',') data.telephone = "";
  289. form[index] = {
  290. label: "手机号",
  291. error: false,
  292. errMsg: "",
  293. type: "number",
  294. value: data.phonenumber,
  295. placeholder: "联系人手机号码",
  296. valueName: "phonenumber1",
  297. required: true,
  298. checking: "phone"
  299. }
  300. } else {
  301. if (typeof (form[index].value) == 'object') form[index].value = "";
  302. data.phonenumber = form[index].value;
  303. form[index] = {
  304. label: "座机电话",
  305. error: false,
  306. errMsg: "",
  307. type: "telephone",
  308. value: data.telephone || ["", ""],
  309. valueName: "telephone1",
  310. required: true,
  311. checking: "telephone"
  312. }
  313. };
  314. this.setData({
  315. form
  316. })
  317. }
  318. },
  319. /* 工商查询 */
  320. introduce({
  321. detail
  322. }) {
  323. let item = detail;
  324. let data = {
  325. enterprisename: item.companyName, //企业名称
  326. taxno: item.taxNum, //税号
  327. contact: item.legalPerson, //法人
  328. region: [item.regProvince ? item.regProvince : item.regCity, item.regCity, item.regArea], //地区
  329. address: item.address, //地区
  330. }
  331. this.setData({
  332. form: this.data.form.map(v => {
  333. if (data[v.valueName]) v.value = data[v.valueName];
  334. return v
  335. })
  336. })
  337. },
  338. setOption(item) {
  339. let i = this.data.form.findIndex(v => v.valueName == item.valueName);
  340. this.setData({
  341. [`form[${i}]`]: item
  342. })
  343. },
  344. onLoad(options) {
  345. if (options.data) {
  346. let data = JSON.parse(options.data);
  347. data.source = data.cluesource; //来源
  348. // data.telephone = data.phonenumber; //电话
  349. data.phonenumber1 = data.phonenumber;
  350. data.phonenumber = "";
  351. /* if (data.phonenumber.includes("-")) {
  352. let index = this.data.form.findIndex(v => v.label == '手机号');
  353. data.telephone1 = data.phonenumber.split("-");
  354. this.data.form[index] = {
  355. label: "座机电话",
  356. error: false,
  357. errMsg: "",
  358. type: "telephone",
  359. value: ["", ""],
  360. valueName: "telephone1",
  361. required: true,
  362. checking: "telephone"
  363. }
  364. } */
  365. let form = this.data.form.map(v => {
  366. if (v.valueName == 'enterprisename') {
  367. v.value = data.enterprisename_customer;
  368. } else if (v.valueName != 'region') {
  369. v.value = data[v.valueName] || '';
  370. } else {
  371. v.value = data.province ? [data.province, data.city, data.county] : []
  372. }
  373. return v
  374. })
  375. let isTelephone = data.phonenumber1.indexOf("-") != -1 ? "1" : "0";
  376. form.splice(5, 0, isTelephone == 0 ? {
  377. label: "手机号",
  378. error: false,
  379. errMsg: "",
  380. type: "number",
  381. value: data.phonenumber1 || '',
  382. placeholder: "联系人手机号码",
  383. valueName: "phonenumber1",
  384. required: true,
  385. checking: "phone"
  386. } : {
  387. label: "座机电话",
  388. error: false,
  389. errMsg: "",
  390. type: "telephone",
  391. value: data.phonenumber1.split("-"),
  392. valueName: "telephone1",
  393. required: true,
  394. checking: "telephone"
  395. })
  396. form.splice(5, 0, {
  397. label: "联系方式",
  398. error: false,
  399. errMsg: "",
  400. hint: "",
  401. type: "radio",
  402. value: isTelephone,
  403. radioList: [{
  404. id: '0',
  405. name: '手机号'
  406. }, {
  407. id: '1',
  408. name: '座机电话'
  409. }],
  410. valueName: "isTelephone", //绑定的字段名称
  411. required: true, //必填
  412. interrupt: true,
  413. checking: `true`,
  414. phonenumber: "",
  415. telephone: ["", ""]
  416. })
  417. form.splice(5, 0, {
  418. label: "联系人",
  419. error: false,
  420. errMsg: "",
  421. type: "textarea",
  422. value: data.name,
  423. placeholder: "联系人名称",
  424. valueName: "name",
  425. checking: "base",
  426. slot: "TXL",
  427. required: true
  428. })
  429. this.setData({
  430. content: {
  431. sat_orderclueid: data.sat_orderclueid,
  432. parentid: data.parentid || 0,
  433. },
  434. form
  435. })
  436. }
  437. },
  438. repClose() {
  439. if (this.data.isSubmit) {
  440. let that = this;
  441. wx.showModal({
  442. title: '提示',
  443. content: `是否继续创建客户`,
  444. complete: (res) => {
  445. if (res.confirm) that.handleSubmit(true);
  446. }
  447. })
  448. }
  449. this.setData({
  450. repetitionShow: false,
  451. isSubmit: false
  452. })
  453. },
  454. /* 表单必填项是否完成 */
  455. onConfirm({
  456. detail
  457. }) {
  458. this.setData({
  459. disabled: detail
  460. })
  461. },
  462. // 是否显示全部
  463. onChange({
  464. detail
  465. }) {
  466. this.setData({
  467. showAll: detail
  468. })
  469. },
  470. /* 查询是否重复 */
  471. async queryRepetition(e) {
  472. let data = this.selectComponent("#Form").query();
  473. /* if (data.enterprisename == '') return wx.showToast({
  474. title: `您还未填写企业名称`,
  475. icon: "none"
  476. }); */
  477. data.province = data.region[0] || "";
  478. data.city = data.region[1] || "";
  479. data.county = data.region[2] || "";
  480. let res = await this.handleQueryRepetition({
  481. sa_customersid: this.data.content.sa_customersid || 0,
  482. ...data
  483. });
  484. console.log("查询重复", res)
  485. if (res.msg != '成功') return wx.showToast({
  486. title: res.msg,
  487. icon: "none"
  488. });
  489. this.setData({
  490. countDown: 6
  491. });
  492. count = setInterval(() => {
  493. let countDown = this.data.countDown;
  494. if (countDown == 0) {
  495. clearInterval(count);
  496. this.setData({
  497. countDown: ""
  498. })
  499. } else {
  500. countDown--;
  501. this.setData({
  502. countDown
  503. })
  504. }
  505. }, 1000)
  506. if (res.total == 0) {
  507. wx.showToast({
  508. title: '未查询到疑似重复的客户信息',
  509. icon: "none"
  510. })
  511. } else {
  512. wx.showToast({
  513. title: `查询到${res.total}条疑似重复客户信息`,
  514. icon: "none"
  515. })
  516. this.setData({
  517. repetitionShow: true,
  518. repetitionList: res.data
  519. })
  520. }
  521. },
  522. /* 处理查重 */
  523. handleQueryRepetition(content) {
  524. return _Http.basic({
  525. "id": 20221208172002,
  526. content
  527. })
  528. },
  529. async submit() {
  530. let data = this.selectComponent("#Form").submit();
  531. data.province = data.region[0] || "";
  532. data.city = data.region[1] || "";
  533. data.county = data.region[2] || "";
  534. let query = await this.handleQueryRepetition({
  535. sa_customersid: this.data.content.sa_customersid || 0,
  536. ...data
  537. });
  538. if (query.total != 0) {
  539. wx.showToast({
  540. title: `查询到${query.total}条疑似重复客户信息`,
  541. icon: "none"
  542. })
  543. this.setData({
  544. repetitionShow: true,
  545. repetitionList: query.data,
  546. isSubmit: true
  547. })
  548. } else {
  549. this.handleSubmit();
  550. }
  551. },
  552. handleSubmit(tag = false) {
  553. let data = Object.assign(this.selectComponent("#Form").submit(), this.data.superaddition)
  554. data.province = data.region[0] || "";
  555. data.city = data.region[1] || "";
  556. data.county = data.region[2] || "";
  557. data.parentid = data.parentid[1] ? data.parentid[1][0] : 0;
  558. data.sa_agentsid = data.sa_agentsid[1] ? data.sa_agentsid[1][0] : 0;
  559. delete(data.region);
  560. data.contactsinfo = {
  561. "name": data.name,
  562. "telephone": "",
  563. "phonenumber": data.isTelephone == 0 ? data.phonenumber1 || '' : data.telephone1.join("-") || ''
  564. }
  565. console.log(data)
  566. _Http.basic({
  567. "id": 20221216184302,
  568. "content": {
  569. ...this.data.content,
  570. ...data,
  571. }
  572. }).then(res => {
  573. console.log("转化客户", res)
  574. if (res.msg != '成功') return wx.showToast({
  575. title: res.data,
  576. icon: "none"
  577. })
  578. wx.showToast({
  579. title: '转化成功',
  580. icon: "none"
  581. })
  582. //绑定疑似重复标签
  583. if (tag) _Http.basic({
  584. "id": 20220929090901,
  585. "content": {
  586. "ownertable": "sa_customers",
  587. "ownerid": res.data.sa_customersid,
  588. "datatag": ["疑似重复"]
  589. }
  590. })
  591. setTimeout(() => {
  592. getCurrentPages().forEach(v => {
  593. switch (v.__route__) {
  594. case 'packageA/saleClue/index':
  595. v.getList(true);
  596. break;
  597. case 'packageA/setclient/detail':
  598. v.getDetail();
  599. break;
  600. }
  601. })
  602. let pages = getCurrentPages();
  603. if (pages[pages.length - 2].__route__ == 'packageA/saleClue/detail') {
  604. wx.navigateBack();
  605. getCurrentPages().forEach(item => {
  606. console.log(item);
  607. if (item.__route__ == 'packageA/saleClue/detail') {
  608. item.getDetail()
  609. }
  610. })
  611. wx.navigateTo({
  612. url: '/packageA/setclient/detail?id=' + res.data.sa_customersid,
  613. })
  614. }
  615. }, tag ? 500 : 300)
  616. })
  617. },
  618. })