index.ux 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. <template>
  2. <div class="user-wrap">
  3. <div class="my_title"><text>我的</text></div>
  4. <list style="width:100%">
  5. <list-item type="mycollect" style="height:440px">
  6. <stack style="background-color:#fff">
  7. <div class="user-info__wrap">
  8. <image
  9. src="../../assets/imgs/user_login.png"
  10. if="{{haslogin && loginPhone}}"
  11. ></image>
  12. <image src="../../assets/imgs/user_logo.png" else></image>
  13. <div class="uesr-info__message">
  14. <text class="user-name" if="{{haslogin && loginPhone}}"
  15. >书友{{ user.id }}</text
  16. >
  17. <text class="un-Login" @click="goToLogin" else>未登录</text>
  18. <text>ID:{{ user.id }}</text>
  19. <!-- <text class="vip-card" if="{{user.is_vip}}">免费阅读卡还剩{{ user.vip_days }}</text> -->
  20. </div>
  21. </div>
  22. <div class="my-collect">
  23. <!-- if="{{user.is_vip}}" -->
  24. <div class="collect-content">
  25. <div class="coin_wrap">
  26. <div>
  27. <!-- -->
  28. <text>我的账户</text>
  29. <text class="collect-info"
  30. ><span class="vip-card" if="{{user.is_vip}}"
  31. >免费阅读卡还剩{{ user.vip_days }}</span
  32. ></text
  33. >
  34. </div>
  35. <div style="padding:5px">
  36. <text class="book_coin">书币: </text>
  37. <text class="coin">{{ user.balance }}</text>
  38. </div>
  39. </div>
  40. </div>
  41. <text class="pay-btn" @click="pageChange('Pay')">充值</text>
  42. </div>
  43. </stack>
  44. </list-item>
  45. <list-item type="myitem">
  46. <div class="operator-item__wrap">
  47. <div class="task_wrap">
  48. <div class="task_wrap_item">
  49. <div @click="pageChange('Task')" class="operator-item">
  50. <image src="../../assets/imgs/task.png"></image>
  51. <text>任务福利</text>
  52. </div>
  53. <div class="operator-item" @click="pageChange('Sign')">
  54. <image src="../../assets/imgs/sign.png"></image>
  55. <text>签到记录</text>
  56. </div>
  57. <div class="operator-item" @click="pageChange('Recharge')">
  58. <image src="../../assets/imgs/recharge_record.png"></image>
  59. <text>充值记录</text>
  60. </div>
  61. <div class="operator-item" @click="pageChange('Consume')">
  62. <image src="../../assets/imgs/consume_record.png"></image>
  63. <text>消费记录</text>
  64. </div>
  65. </div>
  66. </div>
  67. <div class="operator-item" @click="showCustomerQrcode">
  68. <div class="item-name">
  69. <image src="../../assets/imgs/customer.png"></image>
  70. <text>联系客服</text>
  71. </div>
  72. <div class="info-text">
  73. <image
  74. class="arrow"
  75. src="../../assets/imgs/arrow-right.png"
  76. ></image>
  77. </div>
  78. </div>
  79. <div class="operator-item" @click="pageChange('Agreement')">
  80. <div class="item-name">
  81. <image src="../../assets/imgs/Agreement.png"></image>
  82. <text>用户协议</text>
  83. </div>
  84. <div class="info-text">
  85. <image
  86. class="arrow"
  87. src="../../assets/imgs/arrow-right.png"
  88. ></image>
  89. </div>
  90. </div>
  91. <div class="operator-item" @click="pageChange('Privacy')">
  92. <div class="item-name">
  93. <image src="../../assets/imgs/Privacy.png"></image>
  94. <text>隐私协议</text>
  95. </div>
  96. <div class="info-text">
  97. <image
  98. class="arrow"
  99. src="../../assets/imgs/arrow-right.png"
  100. ></image>
  101. </div>
  102. </div>
  103. <div class="operator-item" @click="pageChange('Phone')">
  104. <div class="item-name">
  105. <image src="../../assets/imgs/binding.png"></image>
  106. <text if="{{!(haslogin && loginPhone)}}"> 登录绑定</text>
  107. <text else>退出登录</text>
  108. </div>
  109. <div class="info-text">
  110. <text if="{{!(haslogin && loginPhone)}}"></text>
  111. <text else>已绑定手机号</text>
  112. <image
  113. class="arrow"
  114. src="../../assets/imgs/arrow-right.png"
  115. ></image>
  116. </div>
  117. </div>
  118. <div
  119. class="operator-item"
  120. @click="pageChange('Cancellation', { fee: user.balance })"
  121. if="{{!send_order_id && haslogin && loginPhone}}"
  122. >
  123. <div class="item-name">
  124. <image src="../../assets/imgs/Privacy.png"></image>
  125. <text>注销账号</text>
  126. </div>
  127. <div class="info-text">
  128. <image
  129. class="arrow"
  130. src="../../assets/imgs/arrow-right.png"
  131. ></image>
  132. </div>
  133. </div></div
  134. ></list-item>
  135. <list-item type="bottominfo">
  136. <div class="bottom-info">
  137. <!-- <text @click="pageChange('Agreement')">用户协议</text>
  138. <text class="line">|</text>
  139. <text @click="pageChange('Privacy')">隐私协议</text>
  140. <text if="{{!send_order_id && haslogin && loginPhone}}" class="line"
  141. >|</text
  142. > -->
  143. <!-- <text
  144. if="{{!send_order_id && haslogin && loginPhone}}"
  145. @click="pageChange('Cancellation', { fee: user.balance })"
  146. >注销账号</text
  147. > -->
  148. </div>
  149. </list-item></list
  150. >
  151. </div>
  152. </template>
  153. <script>
  154. import router from '@system.router'
  155. import { getUserInfo } from '../../api/index'
  156. import prompt from '@system.prompt'
  157. import webview from '@system.webview'
  158. import storage from '@system.storage'
  159. export default {
  160. props: {
  161. tabindex: {
  162. type: Number,
  163. default: 0
  164. }
  165. },
  166. data() {
  167. return {
  168. user: {},
  169. haslogin: undefined,
  170. loginPhone: undefined,
  171. send_order_id: ''
  172. }
  173. },
  174. async onInit() {
  175. this.$watch('tabindex', 'watchPropsChange')
  176. this.$on('refreshData', this.broadevt)
  177. },
  178. async getUser() {
  179. let user = await getUserInfo()
  180. this.user = user
  181. this.haslogin = (await storage.get({ key: 'hasLogin' })).data
  182. this.loginPhone = (await storage.get({ key: 'loginPhone' })).data
  183. if (user.send_order_id) {
  184. this.send_order_id = user.send_order_id
  185. }
  186. },
  187. async watchPropsChange(v) {
  188. if (v === 3) {
  189. //let s = (await storage.get({ key: 'send_order_id' })).data
  190. //if (s) this.send_order_id = s
  191. this.getUser()
  192. }
  193. },
  194. broadevt(evt) {
  195. if (evt.detail.current == 3) {
  196. this.getUser()
  197. }
  198. },
  199. showCustomerQrcode() {
  200. this.$emit('customer')
  201. },goToLogin(){
  202. if(!(this.haslogin && this.loginPhone)){
  203. router.push({
  204. uri: `/views/Phone`
  205. })
  206. }
  207. },
  208. pageChange(page, params) {
  209. if (page == 'Phone' && this.haslogin) {
  210. this.loginOut()
  211. return false
  212. }
  213. if (page == 'Pay') {
  214. if (this.send_order_id || (this.haslogin && this.loginPhone)) {
  215. router.push({
  216. uri: `/views/${page}`
  217. })
  218. } else {
  219. router.push({
  220. uri: `/views/Phone`
  221. })
  222. }
  223. }
  224. if (page == 'Privacy') {
  225. let privacy = this.$app.$def.manifest.config.data.yinsi_addr;
  226. webview.loadUrl({
  227. url:privacy,
  228. showloadingdialog: true
  229. })
  230. }
  231. else {
  232. router.push({
  233. uri: `/views/${page}`,
  234. params: params ? params : {}
  235. })
  236. }
  237. },
  238. toUrl(url) {
  239. router.push({
  240. uri: url
  241. })
  242. },
  243. loginOut() {
  244. let self = this
  245. prompt.showDialog({
  246. title: '提示',
  247. message: '确认是否要退出登录?',
  248. buttons: [
  249. {
  250. text: '确定',
  251. color: '#666'
  252. },
  253. {
  254. text: '取消',
  255. color: '#9900FF'
  256. }
  257. ],
  258. success: function (data) {
  259. if (data.index == 1) {
  260. prompt.showToast({
  261. message: '取消操作'
  262. })
  263. } else {
  264. prompt.showToast({
  265. message: '退出成功'
  266. })
  267. console.log(data)
  268. storage.delete({
  269. key: 'hasLogin',
  270. success: function (data) {
  271. self.getUser()
  272. console.log('handling success')
  273. },
  274. fail: function (data, code) {
  275. console.log(`handling fail, code = ${code}`)
  276. }
  277. })
  278. storage.delete({
  279. key: 'loginPhone',
  280. success: function (data) {
  281. console.log('handling success')
  282. },
  283. fail: function (data, code) {
  284. console.log(`handling fail, code = ${code}`)
  285. }
  286. })
  287. }
  288. },
  289. cancel: function () {
  290. prompt.showToast({
  291. message: '取消操作'
  292. })
  293. },
  294. fail: function (data, code) {
  295. console.log(`handling fail, code = ${code}`)
  296. }
  297. })
  298. }
  299. }
  300. </script>
  301. <style lang="less">
  302. @import '../../assets/less/my.less';
  303. </style>