login.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. <template>
  2. <view class="container">
  3. <image class="authorize-bg" src="../../static/images/loginBg.jpg"></image>
  4. <image class="logo" src="../../static/images/loginLogo.png"></image>
  5. <view class="authorize-box">
  6. <!-- <button class="authorize-button" open-type="getUserInfo" @click="appLoginWx()">
  7. <view class="button-text">获取角色信息</view>
  8. <view class="iconfont iconshangchuan1"></view>
  9. </button>
  10. <view class="authorize-info">{{userNmae}}</view> -->
  11. <!-- <button class="authorize-button" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
  12. <view class="button-text">获取手机号</view>
  13. <view class="iconfont iconshangchuan1"></view>
  14. </button>
  15. <view class="authorize-info">{{wxPhoneData? '****************' : ''}}</view> -->
  16. <!-- <view class="authorize-login" @click="getUserInfo">登录</view> -->
  17. <!-- #ifdef MP-WEIXIN -->
  18. <button class="authorize-login" open-type="getUserInfo" @getuserinfo="getUserinfoWechat" withCredentials="true">
  19. 微信一键登录
  20. </button>
  21. <!-- #endif -->
  22. <!-- #ifdef APP-PLUS -->
  23. <button v-if="!isIos" class="authorize-login" @click="getUserinfoApp()">
  24. 微信一键登录
  25. </button>
  26. <button v-if="isIos" class="authorize-login-ios" @click="getUserinfoApp('ioslogin')">
  27. <image class="login-icon" src="../../static/images/login-apple.png"></image>通过Apple登录
  28. </button>
  29. <button v-if="isIos" class="authorize-login-ios" @click="getUserinfoApp()">
  30. <image class="login-icon2" src="../../static/images/login-weixin.png"></image>微信一键登录
  31. </button>
  32. <button v-if="isIos" class="authorize-login-ios" @click="goIndex">
  33. <image class="login-icon" src="../../static/images/login-user.png"></image>再逛逛
  34. </button>
  35. <!-- #endif -->
  36. <button v-if="!isIos" class="authorize-login" @click="goIndex">
  37. 再逛逛
  38. </button>
  39. <view @click="showAgreement = true" class="agreement">点击登录视为同意<text class="underline">平台服务协议</text></view>
  40. </view>
  41. {{tipxx}}
  42. <u-top-tips ref="uTips"></u-top-tips>
  43. <u-popup mode="center" :mask="true" :closeable="false" v-model="showAgreement">
  44. <view class="pop-content" :style="{width: windowWidth*0.8+'px',height: windowHeight*0.8+'px'}">
  45. <scroll-view scroll-y="true" class="scroll">
  46. <view v-html="html"></view>
  47. </scroll-view>
  48. <view class="confrim-btn">
  49. <u-button @click="showAgreement = false;">确定</u-button>
  50. </view>
  51. </view>
  52. </u-popup>
  53. </view>
  54. </template>
  55. <script>
  56. const NET = require('@/utils/request')
  57. const API = require('@/config/api')
  58. const html =
  59. `
  60. <h4>用户服务协议</h4>
  61. 特别提示:         
  62. 欢迎您来到千家地!    
  63. 为使用千家地服务,您应当阅读并遵守《千家地用户服务协议》(以下简称“本协议”)。  请您在进一步操作之前仔细阅读、充分理解本协议的各个条款。您有权选择同意或不同意本协议,您点击“我已阅读并同意”按钮即视为您已阅  读并接受本协议的所有条款。
  64. 您完成注册程序或使用第三方账号登录千家地平台,使用千家地平台服务,即视为您已充分阅读、理解本协议,并自愿受本协议的约束。阅读本协议过程中,如果您不同意本协议或其中任何条款,请立即停止注册程序并停止使用千家地平台服务。         
  65. 本“特别提示”是本协议正文的组成部分。            
  66. 1. 定义    
  67. * 千家地平台:是指北京千家地商贸有限公司经营的电商平台,包括但不限于千家地网站、千家地客户端及千家地微信商城。    
  68. * 千家地:是指千家地平台的经营者,即北京千家地商贸有限公司。作为电子商务平  台经营者,千家地仅为第三方入驻商家(以下简称“商家”或“销售方”)与您达成交易提供网页空间、虚拟经营场所、交易规则等服务,千家地并非商家与您之间交易行为的参与方,不对商家及/或您的任何口头、书面陈述或承诺,发布的信息及交易行为的真实性、合法性、       准确性、及时性、有效性等作任何明示或暗示的保证。您完全理解并同意,千家地基于平台管理和保护消费者利益的需要,依据千家地与商家之间的约定及/或平台规则,督促商家履行其对您作出的承诺或赔付责任(赔付方式包括但不限于发放长期有效的无门槛现金券),       但这并不意味着千家地须承担与此相关的任何法律责任(包括但不限于连带责任、担保责任、补充责任等)。         
  69. * 千家地用户服务协议:即本协议,指您与千家地订立的旨在约定您登录、使用千家地平台,以及通过千家地平台下达订单、购买商品、支付货款、收取商品等整个网购过程中,您与千家地之间的权利、义务的书面合同。    
  70. * 千家地规则:包括所有千家地已经发布或将来可能发布、修订的各类规则、规范、  规则解读、实施细则、通知、公告等。
  71. 2. 协议范围及变更    
  72. * 协议范围。
  73. 千家地规则为本协议不可分割的一部分与协议正文具有同等法律效力。         
  74. 2.2. 协议变更。为给您提供更好的服务,千家地将根据业务变化,相应调整本协议。       千家地将按照法律规定对修订内容提前进行公示,修订后的协议一经实施,将完全替代修订前的协议。您应当及时关注和了解本协议的修订情况、公告、提示信息等,如果您不同意修订后协议,请您立即停止使用千家地平台,否则即视为您同意并完全接受修订后的协议。            
  75. 3. 用户账户
  76. * 行为能力。在注册千家地用户账户之前,您应当确认并承诺,您具备中华人民共和国法律规定的与您行为相适应的民事行为能力。    
  77. * 登录方式。您可以通过注册千家地用户账户或使用第三方账号(例如微博账号、微信  账号等)登录并使用千家地平台。    
  78. * 账户注册。注册千家地用户账户时,您应当提供真实、有效的信息(包括姓名、电子邮箱、联系电话、联系地址等);同时,您应当保证上述信息的持续有效性,一旦信息发生变化,您应当及时进行更新;否则您应当承担因信息提供不真实、联系方式无效导致的相关不利后果及全部损失,且千家地保留终止向您提供服务的权利。    
  79. * 账户保管。您的账户由您自行设置并保管,千家地任何时候均不会主动要求您提供您的账户密码。因您保管账号、密码不当而造成的所有后果,将由您自行承担。凡经您的账号和密码成功登录使用千家地平台,即视为您的使用行为;您应当对您的账户进行的所有活动及后果负法律责任。您不得以任何形式擅自转让或授权他人使用您的账户,因您主动泄露、  出借账户信息或因您遭受他人攻击、诈骗等行为导致的损失及后果,千家地并不承担责任,您可以通过司法、行政等救济途径向侵权行为人追偿。            
  80. 4. 商品及/或服务的购买    
  81. 4.1. 订单信息的确认。当您在千家地平台购买商品或服务时,请您务必仔细确认所购商品的名称、价格、数量、型号、规格、尺寸或服务的时间、内容、限制性要求等重要事项,  并在下单时核实您的联系地址、电话、收货人等信息。如您填写的收货人非您本人,则该收货人的行为和意思表示产生的法律后果均由您承担。         
  82. 4.2. 交易秩序。您的购买行为应当基于真实的消费需求,不得实施恶意购买、恶意维权等扰乱千家地平台正常交易秩序的行为。基于维护千家地平台交易秩序及交易安全的需要,千家地发现上述情形时有权采取关闭相关交易订单,限制账户使用功能、中止或终止服务等措施而无需事先通知您。     
  83. 4.3. 合同的成立与生效。您通过千家地平台下达订单后,仅表示系统接收到了您下达的订单。只有您支付价款,您与销售方之间的买卖合同才成立;只有购买成功您与销售方之间的买卖合同才生效。         
  84. 4.4. 真实评价。您有权在千家地平台提供的评价系统中对您购买的商品或服务进行评价。您的所有评价行为应遵守法律法规及/或千家地规则的相关规定,评价内容应当客观真实,不应包含任何污言秽语、色情低俗、广告信息及法律法规与本协议列明的其他 禁止性信息;您不得以不正当方式帮助他人提升信用或利用评价权利对其他用户实施威胁、敲诈勒索。千家地可按照法律法规及/或千家地规则的相关规定对您发布的违规信息进行屏蔽等,并有权视情形对您采取身份验证、限制购买行为等处理措施。         
  85. 4.5. 商品信息。除另有明确说明外,千家地平台上销售的商品/服务的相关信息由商家自行制作、上传,千家地尽可能通过与商家签订合作协议及发布平台规则等方式约束商家提供准确、完整、可靠、有效、没有错误和误导性的商品描述。然而,您充分理解,千家地平台上存在海量信息,因为互联网技术及人力的局限性,千家地不能保证平台上所有商品的信息均准确、完整、可靠、有效、没有错误和没有误导性。除千家地有明显过错外,对于因商品信息导致的纠纷,千家地不承担任何责任。         
  86. 4.6. 异常订单的处理。千家地保留对单个商品的总出售数量进行限制、对单个订单的商品购买数量及同一IP地址对同类商品购买数量进行限制,并对异常订单、异常用户采取监控、限制等措施的权利。如千家地发现您通过千家地平台下达的订单存在违反法律规定或者本协议约定的异常情形的,千家地有权采取关闭相关交易订单、限制账户使用功能、中止或终止服务等措施而无需事先通知您。    
  87. 4.7. 违规行为的处理。如果您使用千家地平台时存在违反国家法律法规、本协议、侵害他人利益、千家地利益或社会公共利益、严重违背社会公德等情形,千家地有权采取屏蔽相关信息、中止或终止提供服务等处理措施。         
  88. 4.8. 法律责任。您理解并同意,因您违反本协议或千家地规则而产生的第三方索赔请求由您自行承担法律责任;由此导致千家地遭受损失的,您也应当一并赔偿。            
  89. 5. 费用    
  90. 5.1. 费用。除本协议另有约定外,千家地平台暂时为您提供免费服务,不向您收取任何费用。但千家地保留收费的权利,包括设置收费的软件功能,决定收费对象、收费时段或收费费率等。    
  91. 5.2. 收费规则。千家地在收费前,会通过本协议或千家地规则约定的通知方式给予提前通知,若您不同意千家地的收费规则,应当立即停止使用千家地平台;如果您继续使用千家地平台,则视为您接受相关收费规则,您应当遵照收费规则向千家地支付相应的费用。       
  92. 6. 所有权及知识产权
  93. 6.1. 平台的知识产权。千家地提供的服务中包含的任何编码、商标、服务标志、商号、图形、美术品、照片、肖像、文字内容、音频、视频、按钮图标以及计算机软件、标识、数码下载、数据汇编等都是千家地或其内容提供者的财产,受到中华人民共和国和国版权、商标权和其他财产所有权法律法规的保护。    
  94. 6.2. 对平台的授权。对于您在任何时间以任何形式向千家地提供或在千家地平台发表的信息或资料(包括但不限于文字、图片、视频、音频等)相关知识产权,您同意免费授予千家地及其关联公司获得全球排他的许可使用权利及再授权给其他第三方使用的权利。您同意千家地及其关联公司存储、使用、复制、修订、编辑、发布、展示、翻译、分发您的非个人信息或制作其派生作品,并以已知或日后开发的形式、媒体或技术将上述信息纳入其他作品内。       
  95. 7.  用户守则    
  96. 7.1 禁止行为。您不得进行任何侵犯千家地知识产权的行为,或者进行其他有损于千家地或其他用户合法权益的行为,包括但不限于:    
  97. 1) 删除或修改千家地平台上的版权信息;    
  98. 2) 对千家地平台及其中的相关信息擅自出租、出借、复制、修改、链接、转载、汇编、发表、出版、建立镜像站点,借助千家地平台发展与之有关的衍生产品、作品、服务、插件、外挂、兼容、互联等;    
  99. 3) 在千家地平台中内置各种插件程序或者其他的第三方程序,或者制作、发布、传播上述程序,而无论是否出于商业目的;    
  100. 4) 进行编译、反编译、反向工程或者以其他方式破解千家地平台的行为;    
  101. 5) 使用千家地平台外挂和/或利用千家地平台当中的BUG来获得不正当的利益;    
  102. 6) 利用劫持域名服务器等技术非法侵入、破坏千家地平台的服务器软件系统,或者修改、增加、删除、窃取、截留、替换千家地平台的客户端和/或服务器软件系统中的数据,或者非法挤占千家地平台的服务器空间,或者实施其他的使之超负荷运行的行为;    
  103. 7) 假冒千家地或商家在千家地平台当中发布任何诈骗或虚假信息;    
  104. 8) 利用千家地平台故意传播恶意程序或计算机病毒。    
  105. 7.2.  信息发布。您应当遵守国家有关法律法规,不得在千家地平台当中发表、转发或者传播含有下列内容的信息:    
  106. 1) 反对宪法所确定的基本原则的;    
  107. 2) 危害国家安全、泄露国家秘密、颠覆国家政权、破坏国家统一的;    
  108. 3) 损害国家荣誉和利益的;    
  109. 4) 煽动民族仇恨、民族歧视,破坏民族团结的;    
  110. 5) 破坏国家宗教政策,宣扬邪教和封建迷信的;    
  111. 6) 散布谣言,扰乱社会秩序,破坏社会稳定的;    
  112. 7) 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;   
  113. 8) 侮辱或者诽谤他人,侵害他人合法权益的;    
  114. 9) 含有法律、行政法规禁止的其他内容的。    
  115. 7.3. 法律责任。您需要对您在千家地平台的言论及行为承担法律责任,若您违反国家法律法规的规定,千家地平台的系统记录有可能成为您违反法律法规的证据。       
  116. 8. 有限责任    
  117. 8.1. 纠纷处理。您理解并同意,千家地并非司法机构,仅能以普通或非专业人员的知识水平标准对各方提交的材料信息进行鉴别,若您与销售方之间发生纠纷并希望千家地介  入处理,千家地对交易纠纷的调处完全是基于您和/或商家的委托,千家地无法保证交易纠纷处理结果符合您和/或商家的期望,也不对交易纠纷调处结果及赔付决定承担任何责任。         
  118. 8.2. 外部影响。不论在何种情况下,千家地均不对由于网络连接故障,电脑、通讯或其他系统的故障,电力故障,计算机病毒,程序漏洞,罢工,劳动争议,暴乱,起义,骚乱,生产力或生产资料不足,火灾,洪水,风暴,爆炸,不可抗力,战争,政府行为,国际、国内法院的命令或第三方的不作为而造成的不能服务或延迟服务承担责任。    
  119. 8.3. 服务中断。除法律法规规定外,千家地有权单方面地中止或者终止千家地平台所提供的服务而无须提前通知您。您理解并同意,千家地需要定期或者不定期地对千家地平  台、设备进行维护或者检修,因此造成的千家地服务在合理时间内的中断,千家地无需为此承担任何责任,但千家地将尽可能事先通知您。       
  120. 9. 个人信息保护及授权    
  121. 9.1. 授权收集。您充分理解并同意千家地可能通过千家地平台在您自愿选择服务或提供信息的情况下收集您的个人信息,例如您的姓名、电子邮箱、地址、电话号码及其他身份信息等。我们有可能会保留一些用户的使用习惯信息,用于更好地了解和服务用户。这些数据将有利于我们开发出更符合用户需求的功能、信息和服务。    
  122. 9.2. 隐私政策。千家地非常重视您的个人信息保护,在您使用千家地提供的服务时,       您同意按照本协议及《千家地隐私政策》收集、存储、使用、披露和保护您的个人信息,该《千家地隐私政策》是本协议的一部分,与本协议具有同等法律效力。         
  123. 9.3. 技术的有限性。千家地将使用各种安全技术和程序防止您及其他用户个人信息的丢失、不当使用、未经授权阅览或披露。但您充分理解并同意:由于技术的限制以及可能存  在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。            
  124. 10. 期限、解除和终止    
  125. 10.1. 期限。本协议自您确认同意之日起生效并长期有效。    
  126. 10.2. 账户的注销。您可以按照平台公示的方式要求注销账户,终止本协议。注销账户的条件在千家地平台公示。您知晓并理解以下情况:    
  127. 1) 注销账户后,您将放弃账户信息以及该账户在千家地的资产、虚拟权益等,且千家地无法为您恢复前述服务。这可能对您主张售后服务带来不便。    
  128. 2) 您注销账户后,您的个人信息在千家地前台将不可检索、访问。您知晓并理解,相关交易记录须在法律规定的期限内予以保存。    
  129. 10.3. 协议的终止。出现以下情况时,千家地可以本协议约定的方式通知您终止本协议:    
  130. 1) 您违反本协议约定,千家地依据违约条款终止本协议的;    
  131. 2) 您盗用他人账户、发布违禁信息、骗取他人财物、扰乱市场秩序、采取不正当手段谋利等行为,千家地依据千家地规则对您的账户予以查封的;    
  132. 3) 除上述情形外,因您多次违反千家地规则相关规定且情节严重,千家地依据千家地规则对您的账户予以查封的;    
  133. 4) 您的账户被千家地回收的;    
  134. 5) 其它应当终止服务的情况。    
  135. 10.4. 后续事项。协议终止或解除后续事项的处理    
  136. 1) 自本协议终止或解除之日起,千家地将关闭您在千家地平台的账户权限。    
  137. 2) 本协议终止或解除后,千家地有权保留您的注册信息及交易行为记录等数据,但千家地不承担在协议终止后向您或第三方提供任何数据信息的义务,也不就协议终止向您或任何第三方承担责任,但法律法规另有规定的除外。    
  138. 3) 本协议终止或解除后,千家地仍保留对您过往的违约行为追究责任的权利。       
  139. 11. 不可抗力
  140. 由于不可抗力事件导致一方不能及时履行或者不能履行该方在本协议下的任何义务  (付款义务除外)的,不构成违约。但是受不可抗力事件影响的一方应立即把不可抗力事件的性质和程度通知对方,并积极采取相应补救措施,以最大程度地减少和避免损失。       
  141. 12. 法律适用及管辖    
  142. * 法律适用。本协议之订立、生效、解释、修订、补充、终止、执行与争议解决均
  143. 适用中华人民共和国大陆地区法律;如法律无相关规定的,参照商业惯例及/或行业惯例。    
  144. 12.2.  约定管辖。对于因本协议而产生的或者与本协议有关的争议,双方均应努力通过友好协商的方式进行解决。协商不成的,任何一方均有权提起诉讼,且双方一致同意由千家地住所地人民法院管辖。            
  145. 13. 通知    
  146. * 有效地址。您在注册千家地平台账户时所填写的联系电话、电子邮箱地址、联系地址视为您的有效通知地址。若上述信息发生变更您应当及时进行更新,如果因您提供的联系方式不准确,或不及时告知变更后的联系方式,使相关通知(包括但不限于协议  变更、法律文书等)无法送达或未及时送达,由您自行承担可能产生的法律后果。    
  147. 13.2.  通知送达。千家地通过上述联系方式向您发出通知,其中以电子的方式发出的书面通知,包括但不限于在千家地平台公告,向您提供的联系电话发送手机短信,向您提供的电子邮箱发送电子邮件,向您的千家地用户账户发送系统消息以及站内信信息,  在发送成功后即视为送达;以纸质载体发出的书面通知,按照提供联系地址交邮后的第  五个自然日即视为送达。    
  148. 13.3. 法律文书的送达。对于与千家地平台有关的任何纠纷,您同意行政、公安、司法等有权机关可以通过手机短信、电子邮件、系统消息或站内信等方式向您送达法律文书,有权机关向上述联系方式发出法律文书即视为送达;若同时采取以上多种方式向您送达法律文书,送达时间以最先送达的为准。您同意上述送达方式适用于行政、仲裁、司法等法定程序全过程。       
  149. 14. 其他    
  150. 14.1. 条款的独立性。如果根据适用的法律认定本协议中的任何条款或者任何条款中的任何部分无效、违法或者不具有可执行性,这种无效、违法或者不具有可执行性不影响本协议中的任何其它条款或者这些条款中的任何其它部分的效力。    
  151. 14.2. 平台权利的保留。本协议未明示授权的其他权利仍由千家地保留,用户未经千家地书  面许可不得行使,且千家地未行使前述任何权利并不构成放弃权利。    
  152. 14.3. 条标的作用。本协议条款的标题仅作参考使用,不界定、影响或限制本协议条款的含义、描述及解释。    
  153. `
  154. .split('\n').map(v => v + '<br/>').join('\n')
  155. export default {
  156. data() {
  157. return {
  158. wxLoginData: null,
  159. wxPhoneData: null,
  160. userNmae: '',
  161. tipxx: '',
  162. showAgreement: false,
  163. html: html,
  164. windowWidth: 0,
  165. windowHeight: 0,
  166. isIos: false
  167. }
  168. },
  169. onLoad() {
  170. // #ifdef APP-PLUS
  171. this.isIos = (plus.os.name == "iOS") && plus.os.version >= 13
  172. // this.isIos = true
  173. console.log('isIos:',this.isIos,plus.os.name)
  174. // #endif
  175. },
  176. onReady() {
  177. // this.appLoginWx()
  178. uni.getSystemInfo({
  179. success: (res) => {
  180. this.windowWidth = res.windowWidth
  181. this.windowHeight = res.windowHeight
  182. }
  183. })
  184. },
  185. methods: {
  186. goIndex() {
  187. uni.switchTab({
  188. url: '/pages/index/index'
  189. });
  190. },
  191. // getPhoneNumber(e) {
  192. // if (this.wxLoginData) {
  193. // let _that = this
  194. // uni.setStorage({
  195. // key: 'wxPhoneData',
  196. // data: {
  197. // encryptedData2: e.detail.encryptedData,
  198. // iv2: e.detail.iv,
  199. // }
  200. // })
  201. // this.wxPhoneData = uni.getStorageSync("wxPhoneData")
  202. // } else {
  203. // this.$refs.uTips.show({
  204. // title: '请先等待角色信息获取完成',
  205. // type: 'warning',
  206. // })
  207. // }
  208. // },
  209. // #ifdef MP-WEIXIN
  210. getUserinfoWechat(data) {
  211. uni.getProvider({
  212. service: 'oauth',
  213. success: (res) => {
  214. if (~res.provider.indexOf('weixin')) {
  215. uni.login({
  216. provider: 'weixin',
  217. success: (res2) => {
  218. let wxLoginData = {
  219. code: res2.code,
  220. encryptedData: data.detail.encryptedData,
  221. iv: data.detail.iv,
  222. rawData: data.detail.rawData,
  223. signature: data.detail.signature,
  224. }
  225. uni.setStorage({
  226. key: 'wxLoginData',
  227. data: wxLoginData
  228. })
  229. this.wxLoginData = wxLoginData
  230. this.getUserInfo(1)
  231. },
  232. fail: (error) => {
  233. console.log(33333, error)
  234. this.$refs.uTips.show({
  235. title: '微信登录授权失败,请再试试',
  236. type: 'warning',
  237. })
  238. }
  239. })
  240. } else {
  241. this.$refs.uTips.show({
  242. title: '请先安装微信或升级版本',
  243. type: 'warning',
  244. })
  245. }
  246. }
  247. });
  248. },
  249. //#endif
  250. // #ifdef APP-PLUS
  251. // 获取app登录权限
  252. getUserinfoApp(iosFlag) {
  253. let that = this
  254. console.log('isIos:',this.isIos,iosFlag)
  255. console.log('app enter')
  256. try {
  257. uni.login({
  258. provider: (this.isIos && iosFlag) ? 'apple' : 'weixin',
  259. success: (res2) => {
  260. console.log('res2', res2)
  261. uni.getUserInfo({
  262. provider: (this.isIos && iosFlag) ? 'apple' : 'weixin',
  263. success: (info) => {
  264. console.log('info',info)
  265. if (this.isIos && iosFlag) {
  266. uni.setStorage({
  267. key: 'iosLoginData',
  268. data: {
  269. email: info.userInfo.email,
  270. fullname: info.userInfo.fullName.familyName || '匿名用户',
  271. user: info.userInfo.openId
  272. }
  273. })
  274. that.iosLoginData = uni.getStorageSync("iosLoginData")
  275. console.log(1111111, that.iosLoginData)
  276. that.getUserInfoByIOS()
  277. } else {
  278. uni.setStorage({
  279. key: 'wxLoginData',
  280. data: {
  281. nickName: info.userInfo.nickName,
  282. gender: info.userInfo.gender,
  283. avatarUrl: info.userInfo.avatarUrl,
  284. unionId: info.userInfo.unionId,
  285. openId:info.userInfo.openId
  286. // code: res2.code,
  287. // encryptedData: info.encryptedData,
  288. // iv: info.iv,
  289. // rawData: info.rawData,
  290. // signature: info.signature,
  291. }
  292. })
  293. that.wxLoginData = uni.getStorageSync("wxLoginData")
  294. console.log(1111111, that.wxLoginData)
  295. // that.userNmae = JSON.parse(that.wxLoginData.rawData).nickName
  296. that.getUserInfo(0)
  297. }
  298. this.$refs.uTips.show({
  299. title: '获取角色信息成功',
  300. type: 'success',
  301. })
  302. },
  303. fail: (error) => {
  304. console.log(2222, error)
  305. that.$refs.uTips.show({
  306. title: '微信登录授权失败,请再试试',
  307. type: 'warning',
  308. })
  309. }
  310. })
  311. },
  312. fail: (error) => {
  313. console.log(33333, error)
  314. that.$refs.uTips.show({
  315. title: '微信登录授权失败',
  316. type: 'warning',
  317. })
  318. }
  319. })
  320. } catch(e) {
  321. console.log('是否调登录',e.message)
  322. }
  323. // uni.getProvider({
  324. // service: 'oauth',
  325. // success: (res) => {
  326. // console.log('success', res, res.provider)
  327. // if (~res.provider.indexOf('weixin')) {
  328. // console.log('res.provider',~res.provider, ~res.provider.indexOf('weixin'))
  329. // console.log('2333')
  330. // } else {
  331. // console.log('请先安装微信或升级版本')
  332. // that.$refs.uTips.show({
  333. // title: '请先安装微信或升级版本',
  334. // type: 'warning',
  335. // })
  336. // }
  337. // }
  338. // });
  339. console.log('app end')
  340. },
  341. //#endif
  342. // 发请求获取个人数据 envType:1小程序 0:app安卓
  343. getUserInfo(envType) {
  344. console.log('发请求获取个人数据envType',envType)
  345. NET.request(API.WxLogin, {
  346. ...this.wxLoginData,
  347. // ...this.wxPhoneData,
  348. }, 'POST').then(res => {
  349. console.log('token',res)
  350. uni.setStorage({
  351. key: 'token',
  352. data: res.data.token
  353. })
  354. console.log('缓存中wxLoginData',this.wxLoginData)
  355. uni.setStorage({
  356. key: 'userData',
  357. data: {
  358. headImage: envType ? JSON.parse(this.wxLoginData.rawData).avatarUrl : this.wxLoginData.avatarUrl,
  359. userName: res.data.name,
  360. userId: res.data.userId,
  361. }
  362. })
  363. console.log('存个人信息')
  364. uni.switchTab({
  365. url: '/pages/index/index'
  366. })
  367. console.log('switchTab')
  368. }).catch(error => {
  369. console.log(44444, error)
  370. this.$refs.uTips.show({
  371. title: '微信登录授权失败,请再试试',
  372. type: 'warning',
  373. })
  374. })
  375. },
  376. // #ifdef APP-PLUS
  377. // ios发请求获取个人数据
  378. getUserInfoByIOS() {
  379. NET.request(API.IosLogin, {
  380. ...this.iosLoginData
  381. }, 'POST').then(res => {
  382. console.log('token',res)
  383. uni.setStorage({
  384. key: 'token',
  385. data: res.data.token
  386. })
  387. console.log('缓存中iosLoginData',this.iosLoginData)
  388. uni.setStorage({
  389. key: 'userData',
  390. data: {
  391. headImage: res.data.avatar,
  392. userName: res.data.name,
  393. userId: res.data.userId,
  394. }
  395. })
  396. console.log('存个人信息')
  397. uni.switchTab({
  398. url: '/pages/index/index'
  399. })
  400. console.log('switchTab')
  401. }).catch(error => {
  402. console.log(44444, error)
  403. this.$refs.uTips.show({
  404. title: '微信登录授权失败,请再试试',
  405. type: 'warning',
  406. })
  407. })
  408. }
  409. //#endif
  410. },
  411. }
  412. </script>
  413. <style lang="less" scoped>
  414. page {
  415. width: 100%;
  416. height: 100%;
  417. }
  418. .container {
  419. width: 100%;
  420. height: 100%;
  421. float: left;
  422. position: absolute;
  423. .authorize-bg {
  424. width: 100%;
  425. height: 100%;
  426. position: absolute;
  427. left: 0;
  428. top: 0;
  429. }
  430. .logo {
  431. width: 90px;
  432. height: 90px;
  433. float: left;
  434. position: absolute;
  435. left: 50%;
  436. top: 20%;
  437. transform: translateX(-50%);
  438. }
  439. .authorize-box {
  440. width: 230px;
  441. float: left;
  442. position: absolute;
  443. left: 50%;
  444. top: 61.8%;
  445. transform: translateX(-50%);
  446. .authorize-button {
  447. width: 230px;
  448. height: 30px;
  449. float: left;
  450. padding: 0px;
  451. background-color: transparent;
  452. border: none;
  453. box-shadow: none;
  454. .button-text {
  455. height: 30px;
  456. float: left;
  457. line-height: 30px;
  458. font-size: 15px;
  459. font-family: PingFang SC;
  460. color: #FEFEFE;
  461. margin-right: 4px;
  462. }
  463. .iconfont {
  464. float: left;
  465. color: #FEFEFE;
  466. font-size: 28px;
  467. line-height: 30px;
  468. }
  469. }
  470. .authorize-button:after {
  471. border: none;
  472. }
  473. .authorize-info {
  474. width: 230px;
  475. height: 36px;
  476. float: left;
  477. margin-bottom: 30px;
  478. border-bottom: 1px solid #FFFFFF;
  479. font-size: 12px;
  480. font-family: PingFang SC;
  481. color: #FEFEFE;
  482. line-height: 36px;
  483. }
  484. .authorize-login {
  485. width: 220px;
  486. height: 36px;
  487. float: left;
  488. margin: 10px 5px;
  489. background: #FFFFFF;
  490. border-radius: 20px;
  491. font-size: 15px;
  492. font-family: PingFang SC;
  493. color: #56a83a;
  494. line-height: 36px;
  495. text-align: center;
  496. }
  497. .authorize-login-ios {
  498. width: 210px;
  499. height: 33px;
  500. float: left;
  501. margin: 10px 5px;
  502. background: #FFFFFF;
  503. border-radius: 4px;
  504. font-size: 14px;
  505. font-family: PingFang SC;
  506. // color: #56a83a;
  507. line-height: 33px;
  508. text-align: center;
  509. }
  510. .login-icon {
  511. width: 13px;
  512. height: 15px;
  513. position: absolute;
  514. left: 13px;
  515. top: 25%;
  516. }
  517. .login-icon2 {
  518. width: 13px;
  519. height: 11px;
  520. position: absolute;
  521. left: 13px;
  522. top: 30%;
  523. }
  524. .authorize-tip {
  525. width: 220px;
  526. height: 20px;
  527. float: left;
  528. margin: 10px 5px;
  529. font-size: 12px;
  530. font-family: PingFang SC;
  531. color: #FFFFFF;
  532. line-height: 20px;
  533. text-align: center;
  534. }
  535. }
  536. .agreement {
  537. margin-top: 12px;
  538. text-align: center;
  539. font-size: 12px;
  540. font-family: PingFang SC;
  541. color: #FEFEFE;
  542. .underline {
  543. text-decoration: underline;
  544. }
  545. }
  546. .pop-content {
  547. border-radius: 5px;
  548. padding: 12px;
  549. .scroll {
  550. height: calc(100% - 40px - 16px);
  551. }
  552. .confrim-btn {
  553. padding: 8px;
  554. }
  555. }
  556. }
  557. </style>