index.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. // pages/attestation/index.js
  2. const request = require('../../utils/request.js');
  3. const util = require('../../utils/util.js')
  4. const app = getApp()
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. nvabarData: {
  11. showCapsule: 0, //是否显示左上角图标,消息中心 1表示显示 0表示不显示
  12. showBack: 1, //返回
  13. title: '我的企业', //导航栏 中间的标题
  14. // 此页面 页面内容距最顶部的距离
  15. height: app.globalData.height * 2 + 20,
  16. },
  17. company: {},
  18. flag: false,
  19. // 需求
  20. yjrzxqList: [],
  21. xqtext: '请选择',
  22. xqindex: null,
  23. show: false,
  24. endInfo: {},
  25. imgBase: '',
  26. imgBase1: '', //身份证
  27. buttonShow: false,
  28. idButtonShow: false,
  29. },
  30. // 开户行
  31. yjrzxqListChange: function (e) {
  32. // console.log('yjrzxqListChange发送选择改变,携带值为', e)
  33. this.setData({
  34. xqindex: e.detail.value,
  35. xqtext: '',
  36. })
  37. },
  38. // 开户行
  39. whenData: function () {
  40. wx.request({
  41. method: "get",
  42. url: app.globalData.publicUrl + 'api/financial/institution',
  43. data: {},
  44. success: (e) => {
  45. if (e.data.errcode == 0) {
  46. this.setData({
  47. yjrzxqList: e.data.data,
  48. })
  49. } else {
  50. wx.showToast({
  51. title: e.data.details ? e.data.details : e.data.errmsg,
  52. icon: 'none',
  53. duration: 1500
  54. })
  55. }
  56. }
  57. })
  58. },
  59. goHome: function (e) {
  60. wx.redirectTo({
  61. url: '/pages/home/index'
  62. })
  63. },
  64. // 认证信息提交
  65. formSubmit: function (e) {
  66. // console.log('form发生了submit事件,携带数据为:', e.detail.value)
  67. let user = wx.getStorageSync('user')
  68. const companyName = e.detail.value.company_name;
  69. const opening_bank = e.detail.value.opening_bank;
  70. const reg_num = e.detail.value.reg_num;
  71. var that = this;
  72. if (user) {
  73. e.detail.value.uid = user._id;
  74. e.detail.value.business_license = this.data.imgBase;
  75. e.detail.value.status = '1';
  76. let form = e.detail.value;
  77. let json = {};
  78. json.companyName = companyName;
  79. json.uscCode = reg_num;
  80. if (opening_bank) {
  81. wx.showLoading({
  82. title: '加载中',
  83. mask: true
  84. })
  85. wx.request({
  86. method: "POST",
  87. url: app.globalData.publicUrl + 'api/financial/companyidentify',
  88. data: form,
  89. success: (e) => {
  90. wx.hideLoading();
  91. // console.log('认证结果=============',e.data)
  92. if (e.data.errcode == 0 && e.data.errmsg == 'ok') {
  93. if (e.data.data == "已认证") {
  94. wx.showModal({
  95. title: '提示',
  96. content: '该企业已经被认证,请校验企业信息是否正确',
  97. })
  98. } else{
  99. user.roles = '1';
  100. user.company_name = companyName;
  101. user.opening_bank = opening_bank;
  102. wx.setStorage({
  103. key: 'user',
  104. data: user,
  105. })
  106. wx.showModal({
  107. title: '',
  108. content: '认证信息添加成功!',
  109. showCancel: false,
  110. confirmText: '返回首页',
  111. success: function (res) {
  112. if (res.confirm) {
  113. wx.redirectTo({
  114. url: '/pages/home/index'
  115. })
  116. }
  117. }
  118. })
  119. }
  120. // else {
  121. // console.log('开始请求接口时间================>'+util.formatTime(new Date()))
  122. // let illtime = util.formatTime2(new Date());//认证时间
  123. // wx.request({
  124. // method: "POST",
  125. // url: app.globalData.publicUrl + 'api/financial/companyuser/update/' + user._id,
  126. // data: {
  127. // roles: '1',
  128. // company_name: companyName,
  129. // opening_bank: opening_bank,
  130. // illtime:illtime,
  131. // },
  132. // success: (e) => {
  133. // console.log('接口返回数据时间================>'+util.formatTime(new Date()))
  134. // wx.hideLoading();
  135. // delete e.data.data.IDcard;
  136. // wx.setStorage({
  137. // key: 'user',
  138. // data: e.data.data,
  139. // })
  140. // // that.setData({
  141. // // show :true
  142. // // })
  143. // }
  144. // })
  145. // // 认证后信息不可以修改,置灰
  146. // this.setData({
  147. // flag: true
  148. // })
  149. // wx.showModal({
  150. // title: '',
  151. // content: '认证信息添加成功!',
  152. // showCancel: false,
  153. // confirmText: '返回首页',
  154. // success: function (res) {
  155. // if (res.confirm) {
  156. // wx.redirectTo({
  157. // url: '/pages/home/index'
  158. // })
  159. // }
  160. // }
  161. // })
  162. // }
  163. } else {
  164. wx.hideLoading();
  165. wx.showToast({
  166. title: e.data.details ? e.data.details : e.data.errmsg,
  167. icon: 'none',
  168. duration: 1500
  169. })
  170. }
  171. }
  172. })
  173. } else {
  174. wx.showModal({
  175. title: '提示',
  176. content: '请选择开户行',
  177. success(res) {
  178. if (res.confirm) {
  179. // console.log('用户点击确定')
  180. } else if (res.cancel) {
  181. // console.log('用户点击取消')
  182. }
  183. }
  184. })
  185. }
  186. } else {
  187. wx.showModal({
  188. title: '提示',
  189. content: '登录信息失效,请重新登录!!!',
  190. showCancel: false,
  191. confirmText: '返回登录',
  192. success: function (res) {
  193. if (res.confirm) {
  194. wx.redirectTo({
  195. url: '/pages/login/index'
  196. })
  197. }
  198. }
  199. })
  200. }
  201. },
  202. // 实名认证
  203. realName: function (idcardno, name, img) {
  204. request.query({
  205. url: 'api/financial/phoneMessage/getIdcheck',
  206. data: {
  207. cardNo: idcardno,
  208. realName: name
  209. },
  210. method: 'get'
  211. }).then((res) => {
  212. // console.log('实名结果',res)
  213. if (res.data.errmsg == 'ok') {
  214. if (res.data.errcode == 0) {
  215. // console.log('实名结果',res.data)
  216. if (res.data.result.isok) {
  217. this.updateUser(img, name);
  218. } else {
  219. wx.hideLoading();
  220. wx.showModal({
  221. title: '提示',
  222. content: '身份证实名认证失败,请上传正确的身份证件照片',
  223. })
  224. }
  225. }
  226. } else {
  227. wx.hideLoading();
  228. wx.showModal({
  229. title: '提示',
  230. content: res.data.errmsg,
  231. })
  232. }
  233. }).catch((error) => {
  234. console.log(error)
  235. });
  236. },
  237. // 身份证拍照获取图片路径
  238. chooseimage1() {
  239. wx.showLoading({
  240. title: '加载中',
  241. })
  242. var _this = this;
  243. wx.chooseImage({
  244. count: 1, // 默认9
  245. sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
  246. sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
  247. success: function (res) {
  248. // console.log('拍照获取图片路径',res);
  249. // 读取本地文件内容
  250. wx.showLoading({
  251. title: '加载中',
  252. })
  253. wx.getFileSystemManager().readFile({
  254. filePath: res.tempFilePaths[0],
  255. encoding: 'base64',
  256. success: res => {
  257. //返回临时文件路径
  258. // console.log('读取本地文件basema ',res.data)
  259. let img = 'data:image/png;base64,' + res.data
  260. const bodys = {
  261. "base64Str": img
  262. };
  263. const AppCode = '4638ef02c8e248e1b12d55b1170e4feb';
  264. // console.log('读取本地文件basema ',res.data)
  265. // console.log(JSON.stringify( {base64Str:res.data}))
  266. wx.request({
  267. url: 'https://zid.market.alicloudapi.com/thirdnode/ImageAI/idcardfrontrecongnition',
  268. method: 'POST',
  269. header: {
  270. Authorization: 'APPCODE ' + AppCode,
  271. 'content-type': 'application/x-www-form-urlencoded'
  272. },
  273. data: {
  274. base64Str: img
  275. },
  276. dataType: 'json',
  277. success: (e) => {
  278. // console.log('身份证ocr识别返回数据',e.data)
  279. if (e.data.error_code == 0) {
  280. if (e.data.result) {
  281. const idcardno = e.data.result.idcardno
  282. const name = e.data.result.name
  283. _this.realName(idcardno, name, img)
  284. }
  285. } else {
  286. wx.hideLoading();
  287. _this.setData({
  288. show: false,
  289. buttonShow: false,
  290. idButtonShow: true
  291. });
  292. wx.showModal({
  293. title: '提示',
  294. content: '身份证OCR识别失败',
  295. })
  296. }
  297. },
  298. })
  299. // request.query({
  300. // url: 'api/financial/phoneMessage/getCardMessage',
  301. // data: {
  302. // idCardImg: img
  303. // },
  304. // method: 'post'
  305. // }).then((res) => {
  306. // console.log('身份证ocr识别返回数据',res.data)
  307. // if(res.data.errcode == 0){
  308. // if(res.data.result){
  309. // const idcardno = res.data.result.idcardno
  310. // const name = res.data.result.name
  311. // _this.realName(idcardno,name,img)
  312. // } else {
  313. // wx.hideLoading();
  314. // wx.showModal({
  315. // title: '提示',
  316. // content: res.data.errmsg,
  317. // })
  318. // }
  319. // }else{
  320. // wx.hideLoading();
  321. // _this.setData({
  322. // show: false,
  323. // buttonShow: false,
  324. // idButtonShow:true
  325. // });
  326. // wx.showModal({
  327. // title: '提示',
  328. // content: '身份证OCR识别失败',
  329. // })
  330. // }
  331. // wx.hideLoading();
  332. // }).catch((error) => {
  333. // console.log(error)
  334. // wx.hideLoading();
  335. // wx.showModal({
  336. // title: '提示',
  337. // content: '请求超时,请稍后重试',
  338. // })
  339. // });
  340. },
  341. // 错误信息
  342. fail: console.error
  343. })
  344. },
  345. fail: function () {
  346. wx.hideLoading();
  347. }
  348. })
  349. },
  350. // 拍照获取图片路径
  351. chooseimage() {
  352. wx.showLoading({
  353. title: '加载中',
  354. })
  355. var _this = this;
  356. wx.chooseImage({
  357. count: 1, // 默认9
  358. sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
  359. sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
  360. success: function (res) {
  361. // console.log('拍照获取图片路径===================>',res);
  362. // 读取本地文件内容
  363. wx.showLoading({
  364. title: '加载中',
  365. })
  366. wx.getFileSystemManager().readFile({
  367. filePath: res.tempFilePaths[0],
  368. encoding: 'base64',
  369. success: res => {
  370. //返回临时文件路径
  371. // console.log('读取本地文件basema ',res.data)
  372. _this.setData({
  373. imgBase: res.data,
  374. show: true,
  375. buttonShow: false,
  376. })
  377. const bodys = {
  378. image: res.data
  379. };
  380. const AppCode = '4638ef02c8e248e1b12d55b1170e4feb';
  381. //const AppCode = 'c4b0d2a5228941329938f641f31c943d'
  382. wx.request({
  383. url: 'https://dm-58.data.aliyun.com/rest/160601/ocr/ocr_business_license.json',
  384. method: 'POST',
  385. header: {
  386. Authorization: 'APPCODE ' + AppCode
  387. },
  388. // contentType: 'application/json; charset=UTF-8',
  389. data: JSON.stringify(bodys),
  390. dataType: 'json',
  391. success: (e) => {
  392. // console.log('success=============', e);
  393. e.data.company_name = e.data.name
  394. _this.setData({
  395. company: e.data,
  396. //show: true,
  397. })
  398. wx.hideLoading();
  399. // console.log('OCR结果 ', res)
  400. },
  401. })
  402. // request.query({
  403. // url: 'api/financial/phoneMessage/getMessage',
  404. // data: {
  405. // img: res.data
  406. // },
  407. // method: 'post'
  408. // }).then((res) => {
  409. // res.data.company_name = res.data.name
  410. // _this.setData({
  411. // company: res.data
  412. // })
  413. // wx.hideLoading();
  414. // // console.log('OCR结果 ', res)
  415. // // console.log('OCR结果 ', _this.data.company)
  416. // }).catch((error) => {
  417. // wx.hideLoading();
  418. // console.log(error)
  419. // wx.showModal({
  420. // title: '提示',
  421. // content: '请求超时,请稍后重试',
  422. // })
  423. // });
  424. },
  425. // 错误信息
  426. fail: console.error
  427. })
  428. },
  429. fail: function (err) {
  430. wx.hideLoading();
  431. }
  432. })
  433. },
  434. // update company_user
  435. updateUser: function (img, name) {
  436. let user = wx.getStorageSync('user')
  437. // console.log('实名前',user)
  438. request.query({
  439. url: 'api/financial/companyuser/update/' + user.id,
  440. data: {
  441. authentication: '1',
  442. person: name,
  443. IDcard: img
  444. },
  445. method: 'post'
  446. }).then((res) => {
  447. // console.log("update====实名",res.data);
  448. wx.hideLoading();
  449. if (res.data.errcode == 0) {
  450. delete res.data.data.IDcard;
  451. wx.setStorage({
  452. key: 'user',
  453. data: res.data.data,
  454. })
  455. this.setData({
  456. idButtonShow: false,
  457. buttonShow: true
  458. })
  459. wx.showModal({
  460. title: '提示',
  461. content: '身份证实名成功,请进行企业认证',
  462. })
  463. } else {
  464. wx.showModal({
  465. title: '提示',
  466. content: '身份证实名失败',
  467. })
  468. }
  469. // console.log('实名后',wx.getStorageSync('user'))
  470. }).catch((error) => {
  471. console.log(error)
  472. });
  473. },
  474. //数据回显
  475. loadData: function () {
  476. wx.showLoading({
  477. title: '加载中',
  478. })
  479. let user = wx.getStorageSync('user')
  480. // console.log('user', user)
  481. // console.log('开始请求接口时间================>'+util.formatTime(new Date()))
  482. wx.request({
  483. method: "get",
  484. url: app.globalData.publicUrl + 'api/financial/companyidentify',
  485. data: {
  486. uid: user._id
  487. },
  488. success: (e) => {
  489. // console.log('结束请求接口时间================>'+util.formatTime(new Date()))
  490. // console.log('company============================>', e.data.data[0]);
  491. delete e.data.data[0].business_license
  492. wx.hideLoading();
  493. if (e.data.data.length) {
  494. this.setData({
  495. company: e.data.data[0],
  496. flag: true,
  497. show: true,
  498. })
  499. const open_id = e.data.data[0].opening_bank
  500. wx.request({
  501. method: "get",
  502. url: app.globalData.publicUrl + 'api/financial/institution/' + open_id,
  503. data: {},
  504. success: (e) => {
  505. // console.log('bank', e.data.data.name);
  506. this.setData({
  507. xqtext: e.data.data.name,
  508. })
  509. }
  510. })
  511. // this.setData({
  512. // company: e.data.data[0],
  513. // flag: true,
  514. // show: true,
  515. // })
  516. }
  517. // else {
  518. // wx.showToast({
  519. // title: e.data.details?e.data.details:e.data.errmsg,
  520. // icon: 'none',
  521. // duration: 1500
  522. // })
  523. // }
  524. }
  525. })
  526. },
  527. /**
  528. * 生命周期函数--监听页面加载
  529. */
  530. onLoad: function (options) {
  531. let user = wx.getStorageSync('user')
  532. // console.log("onload"+user);
  533. if (user) {
  534. this.whenData();
  535. if (user.authentication == '1') {
  536. if (user.roles == '1') {
  537. this.setData({
  538. buttonShow: false,
  539. })
  540. this.loadData();
  541. } else {
  542. this.setData({
  543. buttonShow: true,
  544. })
  545. }
  546. } else {
  547. this.setData({
  548. idButtonShow: true,
  549. buttonShow: false
  550. })
  551. }
  552. } else {
  553. wx.showModal({
  554. title: '提示',
  555. content: '登录信息失效,请重新登录!!!',
  556. showCancel: false,
  557. confirmText: '返回登录',
  558. success: function (res) {
  559. if (res.confirm) {
  560. wx.redirectTo({
  561. url: '/pages/login/index'
  562. })
  563. }
  564. }
  565. })
  566. }
  567. },
  568. /**
  569. * 生命周期函数--监听页面初次渲染完成
  570. */
  571. onReady: function () {
  572. },
  573. /**
  574. * 生命周期函数--监听页面显示
  575. */
  576. onShow: function () {
  577. },
  578. /**
  579. * 生命周期函数--监听页面隐藏
  580. */
  581. onHide: function () {
  582. },
  583. /**
  584. * 生命周期函数--监听页面卸载
  585. */
  586. onUnload: function () {
  587. },
  588. /**
  589. * 页面相关事件处理函数--监听用户下拉动作
  590. */
  591. onPullDownRefresh: function () {
  592. },
  593. /**
  594. * 页面上拉触底事件的处理函数
  595. */
  596. onReachBottom: function () {
  597. },
  598. /**
  599. * 用户点击右上角分享
  600. */
  601. onShareAppMessage: function () {
  602. }
  603. })