user.vue 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513
  1. <template>
  2. <view>
  3. <view class="user" v-if="appInfo.page_template == 2 || appInfo.page_template == 1">
  4. <!-- 头部 -->
  5. <view class="pos" style="height: 190rpx;">
  6. </view>
  7. <view class="topBox">
  8. <view class="topCard" style="position: relative;">
  9. <!-- <view class="user-wrap userBox" style=""
  10. :style="{ backgroundImage: `url(${appInfo.user_bg_path ? appInfo.user_bg_path : ''})` }"> -->
  11. <view class="user-wrap userBox" style="" :style="">
  12. <view class="setting iconfont icon31shezhi"></view>
  13. <view v-if="isLogin" class="info">
  14. <image @click="modify" class="avatar" mode="aspectFill"
  15. :src="userInfo.avatar ? userInfo.avatar : '/static/images/head.jpg'"></image>
  16. <view class="nickname">
  17. <text @click="copyText(userInfo.id_number)"
  18. class="nick">{{ userInfo.nickname ? userInfo.nickname : '默认用户'}}</text>
  19. <u-icon name="edit-pen" color="#18b566" size="20" @click="modify"></u-icon>
  20. </view>
  21. </view>
  22. <view v-else class="info" @click="getlogin">
  23. <image class="avatar" mode="aspectFill" src="/static/images/head.jpg"></image>
  24. <view class="nickname">点击立即登录/注册</view>
  25. </view>
  26. </view>
  27. <view class="order-status" style="width: 100%;">
  28. <view class="status-wrap" style="">
  29. <view class="cell cell_charge" style="">
  30. <view class="cell-left">
  31. <u-icon name="integral" color="#ffd465" size="24"></u-icon>
  32. <block v-if="appInfo.number_member">
  33. <block v-if="appInfo.number_member == 1">
  34. <view class="cell-text"
  35. style="color: #ffd465;font-size: 30rpx;font-weight: bold;margin-left:5rpx;">
  36. {{appInfo.number_alias?appInfo.number_alias+':&nbsp;':'点数:'}}{{ userData.coin ? userData.coin : 0 }}
  37. </view>
  38. </block>
  39. </block>
  40. <block v-else>
  41. <view class="cell-text"
  42. style="color: #ffd465;font-size: 30rpx;font-weight: bold;margin-left:5rpx;">
  43. {{appInfo.number_alias?appInfo.number_alias+':&nbsp;':'点数:'}}{{ userData.coin ? userData.coin : 0 }}
  44. </view>
  45. </block>
  46. <block v-if="appInfo.number_member">
  47. <view
  48. v-if="appInfo.time_member&&appInfo.number_member == 1&&appInfo.time_member == 1"
  49. class="cell-text"
  50. style="color: #ffd465;font-size: 30rpx;font-weight: bold;margin-left:5rpx;">
  51. |
  52. </view>
  53. </block>
  54. <block v-else>
  55. <view v-if="appInfo.time_member&&appInfo.time_member == 1" class="cell-text"
  56. style="color: #ffd465;font-size: 30rpx;font-weight: bold;margin-left:5rpx;">
  57. |</view>
  58. </block>
  59. <block v-if="appInfo.time_member && appInfo.time_member == 1">
  60. <view style="flex-direction: column;display: flex;">
  61. <view class="cell-text"
  62. style="color: #ffd465;font-size: 30rpx;font-weight: bold;margin-left:5rpx;">
  63. 会员套餐:&nbsp;{{ userData.is_validity == 1 ? (userData.vip_time == 9999?'永久':userData.countdown+'天') : '0天' }}
  64. </view>
  65. </view>
  66. </block>
  67. </view>
  68. <!-- #ifdef MP-WEIXIN -->
  69. <navigator v-if="device != 'ios'" class="b-btn"
  70. :url="isLogin ? '/pages/user/member/member' : '/pages/user/signin'"
  71. @click="getroute">
  72. 立即充值
  73. </navigator>
  74. <navigator v-else-if="device == 'ios'&&show_ios_pay" class="b-btn"
  75. :url="isLogin ? '/pages/user/member/member' : '/pages/user/signin'"
  76. @click="getroute">
  77. 立即充值
  78. </navigator>
  79. <!-- #endif -->
  80. <!-- #ifdef H5 -->
  81. <navigator class="b-btn"
  82. :url="isLogin ? '/pages/user/member/member' : '/pages/user/signin'"
  83. @click="getroute">立即充值</navigator>
  84. <!-- #endif -->
  85. </view>
  86. </view>
  87. </view>
  88. </view>
  89. <view class="com-item">
  90. <view class="com-wrap">
  91. <!-- #ifdef MP-WEIXIN -->
  92. <view v-if="appInfo.wxad_user && appInfo.wxad_user >= 1">
  93. <wike-flow-main :flowtype="appInfo.wxad_user" :banner_id="appInfo.banner_id"
  94. :video_banner_id="appInfo.video_banner_id"
  95. :native_id="appInfo.native_id"></wike-flow-main>
  96. </view>
  97. <!-- #endif -->
  98. </view>
  99. </view>
  100. </view>
  101. <view v-if="userData.vip_info&&userData.is_validity>0" class="com-item" style="margin-top: 0;">
  102. <view class="com-wrap">
  103. <view class="cell" @click="packagedetails = true">
  104. <view class="cell-left">
  105. <u-icon name="bookmark-fill" color="" size="22"></u-icon>
  106. <view class="cell-text">我的会员套餐详情</view>
  107. </view>
  108. <u-icon name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  109. </view>
  110. </view>
  111. </view>
  112. <!-- 用户功能 -->
  113. <view class="com-item">
  114. <view class="com-wrap">
  115. <view class="cell" @click="showcarmi = true">
  116. <view class="cell-left">
  117. <u-icon :isJianBian="true" name="coupon-fill" color="#e83a30" size="22"></u-icon>
  118. <view class="cell-text">卡密兑换</view>
  119. </view>
  120. <u-icon name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  121. </view>
  122. <view class="cell" @click="toRenwu">
  123. <view class="cell-left">
  124. <u-icon :isJianBian="true" name="coupon-fill" color="#e83a30" size="22"></u-icon>
  125. <view class="cell-text">任务中心</view>
  126. </view>
  127. <u-icon name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  128. </view>
  129. <navigator v-for="(item, index) in userList" :key="index"
  130. :url="isLogin ? item.url : item.url=='custom'?'': '/pages/user/signin'" @click="getroute">
  131. <!-- 免费课程 -->
  132. <view v-if="item.url=='custom'" class="cell" @click="getFreeScore">
  133. <view class="cell-left">
  134. <u-icon :isJianBian="true" :name="item.icon" :color="item.color" size="22"></u-icon>
  135. <view class="cell-text">免费课程</view>
  136. </view>
  137. <u-icon name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  138. </view>
  139. <view v-else class="cell">
  140. <view class="cell-left" :style="{marginLeft:item.title=='订单记录'? '-14rpx':''}">
  141. <!-- <image class="cell-icon" :src="item.icon" mode="aspectFill"></image> -->
  142. <u-icon :isJianBian="true" :name="item.icon" :color="item.color"
  143. :size="item.title=='订单记录'?28:item.title=='问答记录'?20:22"></u-icon>
  144. <view class="cell-text">{{ item.title }}</view>
  145. </view>
  146. <!-- <view class="iconfont iconmore1"></view> -->
  147. <u-icon name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  148. </view>
  149. </navigator>
  150. <navigator class="cell" :url="isLogin ? '/pages/user/member/record' : '/pages/user/signin'"
  151. @click="getroute">
  152. <view class="cell-left">
  153. <!-- <image class="cell-icon" :src="item.icon" mode="aspectFill"></image> -->
  154. <u-icon :isJianBian="true" name="bookmark-fill" color="#892fe8" size="22"></u-icon>
  155. <view class="cell-text">{{appInfo.number_alias?appInfo.number_alias:'点数'}}/会员套餐记录</view>
  156. </view>
  157. <!-- <view class="iconfont iconmore1"></view> -->
  158. <u-icon name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  159. </navigator>
  160. </view>
  161. </view>
  162. <!-- 用户服务 -->
  163. <view class="com-item">
  164. <view class="com-wrap">
  165. <view v-if="qrcode" class="cell" @click="getqrcode">
  166. <view class="cell-left">
  167. <u-icon :isJianBian="true" name="scan" color="#007aff" size="22"></u-icon>
  168. <view class="cell-text">关注公众号</view>
  169. </view>
  170. <u-icon name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  171. <!-- <button openType="contact" style="width: 85%; background-color: red; position: absolute; opacity: 0;height: 10%;"></button> -->
  172. </view>
  173. <!-- <view class="cell">
  174. <view class="cell-left">
  175. <u-icon name="minus-circle-fill" color="#26B3A0" size="22"></u-icon>
  176. <view class="cell-text">使用教程</view>
  177. </view>
  178. <u-icon name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  179. <button openType="contact" style="width: 85%; background-color: red; position: absolute; opacity: 0;height: 10%;"></button>
  180. </view> -->
  181. <navigator class="cell" v-for="(item, index) in serverList" :key="index" :url="item.path">
  182. <view class="cell-left">
  183. <!-- <image class="cell-icon" :src="item.icon" mode="aspectFill"></image> -->
  184. <u-icon :isJianBian="true" :name="item.icon" :color="item.color" size="22"></u-icon>
  185. <view class="cell-text">{{ item.title }}</view>
  186. </view>
  187. <view v-if="item.text" class="iconmore1">{{item.text}}</view>
  188. <u-icon v-else name="arrow-right" color="#9e9e9e" size="18"></u-icon>
  189. </navigator>
  190. </view>
  191. </view>
  192. <view class="com-item"><wike-ad></wike-ad></view>
  193. </view>
  194. <block v-if="appInfo.page_template == 3">
  195. <view class="top-backgroup">
  196. <image src='https://tnuiimage.tnkjapp.com/my/my-bg4.png' mode='widthFix' class='backgroud-image'>
  197. </image>
  198. </view>
  199. <view class="about__wrap" :style="{paddingTop: vuex_custom_bar_height + 'px'}">
  200. <!-- 图标logo/头像 -->
  201. <view class="tn-flex tn-flex-row-between tn-flex-col-center tn-margin-bottom"
  202. style="margin-top: -450rpx;">
  203. <view class="justify-content-item">
  204. <view class="tn-flex tn-flex-col-center tn-flex-row-left">
  205. <view class="logo-pic tn-shadow">
  206. <view class="logo-image">
  207. <image class="avatar" mode="aspectFill"
  208. :src="userInfo.avatar ? userInfo.avatar : '/static/images/head.jpg'"></image>
  209. </view>
  210. </view>
  211. <view class="tn-padding-right">
  212. <view class="tn-padding-right tn-padding-left-sm">
  213. <text
  214. class="tn-color-cat tn-text-xl tn-text-bold">{{ userInfo.nickname ? userInfo.nickname : '默认用户'}}</text>
  215. <!-- <text class=" tn-round tn-text-xs tn-bg-red tn-color-white tn-margin-left-sm" style="padding: 10rpx 20rpx;" @click="tn('/minePages/realname')">
  216. 未实名
  217. </text> -->
  218. </view>
  219. <view class="tn-padding-right tn-padding-top-xs tn-padding-left-sm tn-text-ellipsis">
  220. <text class="tn-color-gray tn-padding-left-sm tn-text-sm">id编号
  221. {{userInfo.id_number}}</text>
  222. </view>
  223. </view>
  224. </view>
  225. </view>
  226. </view>
  227. <view class="tn-margin-top-xl">
  228. <view class="button-vip tn-flex tn-flex-row-between tn-flex-col-center tn-shadow-blur"
  229. style="background: linear-gradient(-120deg, #3E445A, #31374A, #2B3042, #262B3C);">
  230. <view class="tn-margin-left">
  231. <view class='title u-flex' style="color: #F1C68E;">
  232. <!-- <text class="tn-text-bold tn-text-xl">{{appInfo.number_alias?appInfo.number_alias+':':'点数:'}}{{ userData.coin ? userData.coin : 0 }}</text> -->
  233. <block v-if="appInfo.number_member">
  234. <block v-if="appInfo.number_member == 1">
  235. <view class="tn-text-bold tn-text-xl">
  236. {{appInfo.number_alias?appInfo.number_alias+':':'点数:'}}{{ userData.coin ? userData.coin : 0 }}
  237. </view>
  238. </block>
  239. </block>
  240. <block v-else>
  241. <view class="tn-text-bold tn-text-xl">
  242. {{appInfo.number_alias?appInfo.number_alias+':':'点数:'}}{{ userData.coin ? userData.coin : 0 }}
  243. </view>
  244. </block>
  245. <block v-if="appInfo.number_member">
  246. <view
  247. v-if="appInfo.time_member&&appInfo.number_member == 1&&appInfo.time_member == 1"
  248. class="tn-text-bold tn-text-xl">|</view>
  249. </block>
  250. <block v-else>
  251. <view v-if="appInfo.time_member&&appInfo.time_member == 1"
  252. class="tn-text-bold tn-text-xl">|</view>
  253. </block>
  254. <block v-if="appInfo.time_member && appInfo.time_member == 1">
  255. <view class="tn-text-bold tn-text-xl">
  256. 会员套餐:{{ userData.is_validity == 1 ? (userData.vip_time == 9999?'永久':userData.countdown+'天') : '0天' }}
  257. </view>
  258. </block>
  259. <!-- <text class="tn-icon-vip-text tn-text-center" style="position: absolute;margin: -22rpx 0 0 0;font-size: 92rpx;"></text> -->
  260. </view>
  261. <view class='tn-color-white tn-text-sm tn-padding-top-sm'>邀请好友赚取更多积分</view>
  262. </view>
  263. <view class="tn-margin-right">
  264. <tn-button shape="round" backgroundColor="#F1C68E" fontColor="#634738" padding="10rpx 0"
  265. width="160rpx" shadow
  266. @click="jump(isLogin ? '/pages/user/member/member' : '/pages/user/signin')">
  267. <!-- <text class="tn-icon-vip tn-padding-right-sm tn-text-lg"></text> -->
  268. <text class="tn-text-bold">充值</text>
  269. </tn-button>
  270. </view>
  271. </view>
  272. </view>
  273. <!-- 方式12 start-->
  274. <view class="about-shadow tn-margin-top-lg tn-padding-top-sm tn-padding-bottom-sm tn-bg-white">
  275. <view class="tn-flex tn-flex-row-center tn-radius tn-padding-top">
  276. <view class="tn-padding-sm tn-margin-xs tn-radius" @click="showcarmi = true">
  277. <view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
  278. <view
  279. class="icon12__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-bg-grey--light">
  280. <view class="tn-icon-cube tn-color-cat"></view>
  281. </view>
  282. <view class="tn-text-center">
  283. <text class="tn-text-ellipsis">卡密兑换</text>
  284. </view>
  285. </view>
  286. </view>
  287. <view class="tn-padding-sm tn-margin-xs tn-radius" @click="jump('/pages/user/commission/index')"
  288. v-if="is_commission==1">
  289. <view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
  290. <view
  291. class="icon12__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-bg-grey--light">
  292. <view class="tn-icon-signpost tn-color-cat"></view>
  293. </view>
  294. <view class="tn-text-center">
  295. <text class="tn-text-ellipsis">我的团队</text>
  296. </view>
  297. </view>
  298. </view>
  299. <view class="tn-padding-sm tn-margin-xs tn-radius" @click="jump('/pages/user/draw/draw')"
  300. v-if="appInfo.is_aipainting&&appInfo.is_aipainting == 1">
  301. <view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
  302. <view
  303. class="icon12__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-bg-grey--light">
  304. <view class="tn-icon-refund tn-color-cat"></view>
  305. </view>
  306. <view class="tn-text-center">
  307. <text class="tn-text-ellipsis">绘画记录</text>
  308. </view>
  309. </view>
  310. </view>
  311. <view class="tn-padding-sm tn-margin-xs tn-radius"
  312. @click="jump('/pages/user/takenotes/takenotes')">
  313. <view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
  314. <view
  315. class="icon12__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-bg-grey--light">
  316. <view class="tn-icon-constellation tn-color-cat"></view>
  317. </view>
  318. <view class="tn-text-center">
  319. <text class="tn-text-ellipsis">问答记录</text>
  320. </view>
  321. </view>
  322. </view>
  323. </view>
  324. <view class="tn-flex tn-flex-row-center tn-radius tn-padding-top">
  325. <view class="tn-padding-sm tn-margin-xs tn-radius" @click="jump('/pages/user/userinfo')">
  326. <view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
  327. <view
  328. class="icon12__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-bg-grey--light">
  329. <view class="tn-icon-order tn-color-cat"></view>
  330. </view>
  331. <view class="tn-text-center">
  332. <text class="tn-text-ellipsis">修改用户信息</text>
  333. </view>
  334. </view>
  335. </view>
  336. <view class="tn-padding-sm tn-margin-xs tn-radius" @click="jump('/pages/user/member/record')">
  337. <view class="tn-flex tn-flex-direction-column tn-flex-row-center tn-flex-col-center">
  338. <view
  339. class="icon12__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-bg-grey--light">
  340. <view class="tn-icon-calendar tn-color-cat"></view>
  341. </view>
  342. <view class="tn-text-center">
  343. <text
  344. class="tn-text-ellipsis">{{appInfo.number_alias?appInfo.number_alias:'点数'}}/会员套餐记录</text>
  345. </view>
  346. </view>
  347. </view>
  348. </view>
  349. </view>
  350. </view>
  351. <view class="tn-margin-top-lg tn-padding-top-sm tn-padding-bottom-sm" style="padding:30rpx">
  352. <tn-list-cell :hover="true" :unlined="true" :radius="true" :fontSize="30" @click="getqrcode">
  353. <view class="tn-flex tn-flex-col-center">
  354. <view class="icon1__item--icon tn-flex tn-flex-row-center tn-flex-col-center"
  355. style="color: #7C8191;">
  356. <view class="tn-icon-qr-code"></view>
  357. </view>
  358. <view class="tn-margin-left-sm tn-flex-1">关注公众号</view>
  359. <view class="tn-color-gray tn-icon-right"></view>
  360. </view>
  361. </tn-list-cell>
  362. <tn-list-cell :hover="true" :unlined="true" :radius="true" :fontSize="30"
  363. @click="jump('/pages/user/orderrecord/orderrecord')">
  364. <view class="tn-flex tn-flex-col-center">
  365. <view class="icon1__item--icon tn-flex tn-flex-row-center tn-flex-col-center"
  366. style="color: #7C8191;">
  367. <view class="tn-icon-shopbag-fill"></view>
  368. </view>
  369. <view class="tn-margin-left-sm tn-flex-1">订单记录</view>
  370. <view class="tn-color-gray tn-icon-right"></view>
  371. </view>
  372. </tn-list-cell>
  373. <tn-list-cell :hover="true" :unlined="true" :radius="true" :fontSize="30"
  374. @click="jump('/pages/user/public/kefu')">
  375. <view class="tn-flex tn-flex-col-center">
  376. <view class="icon1__item--icon tn-flex tn-flex-row-center tn-flex-col-center"
  377. style="color: #7C8191;">
  378. <view class="tn-icon-science-fill"></view>
  379. </view>
  380. <view class="tn-margin-left-sm tn-flex-1">客服中心</view>
  381. <view class="tn-color-gray tn-icon-right"></view>
  382. </view>
  383. </tn-list-cell>
  384. <tn-list-cell :hover="true" :unlined="true" :radius="true" :fontSize="30"
  385. @click="jump('/pages/user/public/agreement?type=aboutus')">
  386. <view class="tn-flex tn-flex-col-center">
  387. <view class="icon1__item--icon tn-flex tn-flex-row-center tn-flex-col-center"
  388. style="color: #7C8191;">
  389. <view class="tn-icon-light-fill"></view>
  390. </view>
  391. <view class="tn-margin-left-sm tn-flex-1">关于我们</view>
  392. <view class="tn-color-gray tn-icon-right"></view>
  393. </view>
  394. </tn-list-cell>
  395. <tn-list-cell :hover="true" :unlined="true" :radius="true" :fontSize="30">
  396. <view class="tn-flex tn-flex-col-center">
  397. <view class="icon1__item--icon tn-flex tn-flex-row-center tn-flex-col-center"
  398. style="color: #7C8191;">
  399. <view class="tn-icon-expand"></view>
  400. </view>
  401. <view class="tn-margin-left-sm tn-flex-1">版本</view>
  402. <view>4.6.2</view>
  403. </view>
  404. </tn-list-cell>
  405. </view>
  406. </block>
  407. <u-popup :show="showcarmi" mode="center" :round="10" @close="showcarmi = false">
  408. <view class="carmimodal">
  409. <view class="carmiclose" @click="showcarmi = false"><u-icon name="close-circle-fill" color="#fff"
  410. size="22"></u-icon></view>
  411. <view class="carmititle">输入卡密兑换</view>
  412. <view class="carmiinput"><u--input placeholder="请输入卡密" border="surround" clearable
  413. v-model="carmi"></u--input></view>
  414. <view @click="exchange" class="carmiexchange">立即兑换</view>
  415. <view v-if="appInfo.kf_qrcode_path" class="kf_qrcode tn-flex justify-center">
  416. <u--image :showLoading="true" :src="appInfo.kf_qrcode_path" width="100px" height="100px"
  417. @click="clickuimage(appInfo.kf_qrcode_path)"></u--image>
  418. </view>
  419. <view v-if="appInfo.kf_qrcode_path" class="u-text-center">
  420. <!-- #ifdef MP-WEIXIN -->
  421. 长按上方二维码,添加客服购买卡密
  422. <!-- #endif -->
  423. <!-- #ifdef H5 -->
  424. 保存上方二维码,添加客服购买卡密
  425. <!-- #endif -->
  426. </view>
  427. </view>
  428. </u-popup>
  429. <u-popup :show="packagedetails" @close="packagedetails = false" :round="15" closeable>
  430. <view class="select u-flex justify-center"><text>我的会员套餐详情</text></view>
  431. <u-notice-bar speed="60" bgColor='#C6D6E4' color='#3F5465'
  432. :text="'当会员套餐内限量次数为0后再次使用会扣除当前已经拥有的'+(appInfo.number_alias ? appInfo.number_alias : '点数')"></u-notice-bar>
  433. <view class="expand u-flex flex-wrap">
  434. <view
  435. v-if="userData.vip_info&&userData.vip_info.gpt35_times == -1 || userData.vip_info&&userData.vip_info.gpt35_times > 0"
  436. class="surplus u-flex align-center">
  437. <view class="item">{{appInfo.gpt35_alias ? appInfo.gpt35_alias : 'ChatGPT 3.5'}} -
  438. {{userData.vip_info.gpt35_type == 'time'?'每日':'总'}}限量:{{userData.vip_info.gpt35_times == -1?'无限量':userData.vip_info.gpt35_times+'次'}}({{userData.vip_info.gpt35_type == 'time'?'今日已用量:':'总用量:'}}{{userData.vip_info.gpt35_used}}次)
  439. </view>
  440. </view>
  441. <view
  442. v-if="userData.vip_info&&userData.vip_info.gpt4_times == -1 || userData.vip_info&&userData.vip_info.gpt4_times > 0"
  443. class="surplus u-flex align-center" style="background: #f9ae3d;">
  444. <view class="item">{{appInfo.gpt4_alias ? appInfo.gpt4_alias : 'ChatGPT 4.0'}} -
  445. {{userData.vip_info.gpt4_type == 'time'?'每日':'总'}}限量:{{userData.vip_info.gpt4_times == -1?'无限量':userData.vip_info.gpt4_times+'次'}}({{userData.vip_info.gpt4_type == 'time'?'今日已用量:':'总用量:'}}{{userData.vip_info.gpt4_used}}次)
  446. </view>
  447. </view>
  448. <view
  449. v-if="userData.vip_info&&userData.vip_info.sd_times == -1 || userData.vip_info&&userData.vip_info.sd_times > 0"
  450. class="surplus u-flex align-center" style="background: #3c9cff;">
  451. <view class="item">StableDiffusion绘图 -
  452. {{userData.vip_info.sd_type == 'time'?'每日':'总'}}限量:{{userData.vip_info.sd_times == -1?'无限量':userData.vip_info.sd_times+'次'}}({{userData.vip_info.sd_type == 'time'?'今日已用量:':'总用量:'}}{{userData.vip_info.sd_used}}次)
  453. </view>
  454. </view>
  455. <view
  456. v-if="userData.vip_info&&userData.vip_info.mj_times == -1 || userData.vip_info&&userData.vip_info.mj_times > 0"
  457. class="surplus u-flex align-center" style="background: #26b3a0;">
  458. <view class="item">MidJourney绘图 -
  459. {{userData.vip_info.mj_type == 'time'?'每日':'总'}}限量:{{userData.vip_info.mj_times == -1?'无限量':userData.vip_info.mj_times+'次'}}({{userData.vip_info.mj_type == 'time'?'今日已用量:':'总用量:'}}{{userData.vip_info.mj_used}}次)
  460. </view>
  461. </view>
  462. </view>
  463. </u-popup>
  464. <block v-if="is_aipainting">
  465. <wike-tabbar2 :currTabIndex='4' v-if="appInfo.page_template == 3" :is_aipainting="is_aipainting"
  466. :onTabbar="true" :isShowAnimate="true" :appInfos="appInfo.page_template"></wike-tabbar2>
  467. <wike-tabbar :currTabIndex='4' v-else :onTabbar="true" :is_aipainting="is_aipainting" :isShowAnimate="true"
  468. :appInfos="appInfo.page_template"></wike-tabbar>
  469. </block>
  470. <wike-modal-qrcode :qrcode="qrcode" :showconcern="showconcern&&!showFixInfo"
  471. @concernclose="concernclose"></wike-modal-qrcode>
  472. <u-modal @cancel="handleCancel" @confirm="handleConfirm" cancelText='退出登录' showCancelButton :show="showFixInfo"
  473. confirmColor="#26b3a0" confirmText="完善信息" title="请完善个人手机号信息后使用本应用"
  474. content='您已充值,但未绑定手机号,请完善信息以方便为您提供进一步的服务'></u-modal>
  475. </view>
  476. </template>
  477. <script>
  478. import {
  479. mapMutations,
  480. mapActions,
  481. mapState,
  482. mapGetters
  483. } from 'vuex';
  484. import {
  485. API_ROOT
  486. } from '@/common/request/request';
  487. let interstitialAd = null,
  488. timer,
  489. time2;
  490. export default {
  491. components: {},
  492. data() {
  493. return {
  494. showFixInfo: false,
  495. // API_ROOT: API_ROOT,
  496. perfectResume: false, //简历是否完善
  497. tobheight: 45,
  498. platform: this.$platform.get(),
  499. showrealname: false,
  500. showworkermy: false,
  501. avatar: '',
  502. isLoading: true,
  503. // userInfo: {
  504. // headPicUrl: '/static/images/user/avatar.jpg',
  505. // nickName: '史蒂芬.林'
  506. // },
  507. orderStatusList: [{
  508. name: '待付款',
  509. icon: 'iconfont icon31daifukuan',
  510. status: 10
  511. },
  512. {
  513. name: '待发货',
  514. icon: 'iconfont icon31daifahuo',
  515. status: 30
  516. },
  517. {
  518. name: '待收货',
  519. icon: 'iconfont icon31daishouhuo',
  520. status: 40
  521. },
  522. {
  523. name: '待评价',
  524. icon: 'iconfont icon31daipingjia',
  525. status: 50
  526. },
  527. {
  528. name: '已完成',
  529. icon: 'iconfont icon31yiguanzhudianpu',
  530. status: 55
  531. }
  532. ],
  533. currentIndex: 0,
  534. list: [{
  535. icon: '/static/images/user/class-01.png',
  536. text: '我的电子券'
  537. },
  538. {
  539. icon: '/static/images/user/class-02.png',
  540. text: '退换/售后'
  541. },
  542. {
  543. icon: '/static/images/user/class-03.png',
  544. text: '我的积分'
  545. },
  546. {
  547. icon: '/static/images/user/class-04.png',
  548. text: '送礼提醒'
  549. }
  550. ],
  551. userList: [{
  552. title: '订单记录',
  553. icon: 'shopping-cart-fill',
  554. path: 'coupon-fill',
  555. url: '/pages/user/orderrecord/orderrecord',
  556. color: '#26b3a0'
  557. },
  558. {
  559. title: '问答记录',
  560. icon: 'question-circle-fill',
  561. path: 'collect-list',
  562. url: '/pages/user/takenotes/takenotes',
  563. color: '#31c9e8'
  564. },
  565. {
  566. title: '免费课程',
  567. icon: 'bookmark-fill',
  568. path: 'coupon-fill',
  569. // url: '/pages/user/freeScore/index',
  570. url: 'custom',
  571. color: '#26b3a0'
  572. },
  573. {
  574. title: '修改用户信息',
  575. icon: 'setting-fill',
  576. path: 'collect-list',
  577. url: '/pages/user/userinfo',
  578. color: '#5ac725'
  579. },
  580. // {
  581. // title: '次数/时长记录',
  582. // icon: 'bookmark-fill',
  583. // url: '/pages/user/member/record'
  584. // }
  585. ],
  586. serverList: [{
  587. title: '客服中心',
  588. icon: 'server-fill',
  589. path: '/pages/user/public/kefu',
  590. color: '#e83a30'
  591. },
  592. {
  593. title: '关于我们',
  594. icon: 'account-fill',
  595. path: '/pages/user/public/agreement?type=aboutus',
  596. color: '#ffa726'
  597. },
  598. {
  599. title: '版本',
  600. icon: 'pushpin-fill',
  601. text: '4.6.2',
  602. color: '#24f083'
  603. }
  604. ],
  605. commission_setting: {},
  606. showcarmi: false,
  607. carmi: '',
  608. qrcode: '',
  609. is_aipainting: '',
  610. showconcern: false,
  611. gzhqrcode: '',
  612. packagedetails: false,
  613. plan: {},
  614. show_ios_pay: false,
  615. device: this.$platform.device(),
  616. // commission_alias:'分销中心'
  617. };
  618. },
  619. computed: {
  620. ...mapGetters(['appInfo', 'homeTemplate', 'isLogin', 'userInfo', 'userData'])
  621. },
  622. onShow: function() {
  623. if (this.isLogin) {
  624. this.getUserData();
  625. if (this.$ws.socketStatus()) {
  626. this.$ws.completeClose();
  627. }
  628. }
  629. this.systemwechat()
  630. this.$http('user.info').then(res => {
  631. if (res.code == 0) {
  632. console.log('用户是否是首次支付成功,但未填写手机号', res.data.is_new);
  633. this.showFixInfo = res.data.is_new;
  634. // this.showFixInfo = true;
  635. }
  636. })
  637. // this.$store.dispatch('tabbarInit')
  638. },
  639. onLoad() {
  640. if (!this.isLogin) {
  641. uni.navigateTo({
  642. url: '/pages/user/signin'
  643. });
  644. uni.setStorageSync('route', '/pages/user/user');
  645. }
  646. this.getCommissionSetting();
  647. this.getPlan();
  648. // this.systemwechat()
  649. // console.log(API_ROOT);
  650. },
  651. onReady() {
  652. let that = this;
  653. // #ifdef MP-WEIXIN
  654. clearTimeout(timer);
  655. // 在适合的场景显示插屏广告
  656. timer = setTimeout(function() {
  657. // 在页面onLoad回调事件中创建插屏广告实例
  658. if (wx.createInterstitialAd && that.appInfo.interstitial_status == 1) {
  659. interstitialAd = wx.createInterstitialAd({
  660. adUnitId: that.appInfo.interstitial_id
  661. });
  662. interstitialAd.onLoad(() => {});
  663. interstitialAd.onError(err => {});
  664. interstitialAd.onClose(() => {
  665. if (that.appInfo.interstitial_infinite_status && that.appInfo
  666. .interstitial_infinite_status == 1) {
  667. that.showInterstitial();
  668. } else {
  669. interstitialAd.show().catch(err => {
  670. console.error(err);
  671. });
  672. }
  673. });
  674. interstitialAd.show().catch(err => {
  675. console.error(err);
  676. });
  677. }
  678. }, 4000);
  679. // #endif
  680. },
  681. onUnload() {
  682. clearInterval(time2);
  683. },
  684. methods: {
  685. ...mapActions(['getUserInfo', 'showAuthModal', 'getUserData', 'logout']),
  686. toRenwu() {
  687. uni.navigateTo({
  688. url: '/pages/signin/signin'
  689. })
  690. },
  691. getFreeScore() {
  692. // console.log('getFreeScore()');
  693. window.location = 'https://vwhjk.xet.tech/s/3WYb0z'
  694. },
  695. handleCancel() {
  696. this.showFixInfo = false
  697. this.logout()
  698. // uni.clearStorage()
  699. uni.reLaunch({
  700. url: '/pages/user/signin'
  701. })
  702. },
  703. handleConfirm() {
  704. uni.navigateTo({
  705. url: '/pages/user/userinfo?isNewUser=true'
  706. })
  707. },
  708. getPlan() {
  709. let that = this;
  710. this.$http('conf.getGroupConf', {
  711. group: 'system.plan'
  712. }).then(res => {
  713. if (res.code == 0) {
  714. this.plan = res.data;
  715. if (res.data.is_ios_pay == 1 && that.checkTimeLimit()) {
  716. // ios可以付钱
  717. that.show_ios_pay = true
  718. }
  719. // uni.setNavigationBarTitle({
  720. // title: this.appInfo.site_name
  721. // });
  722. }
  723. });
  724. },
  725. getlogin() {
  726. // console.log(2222);
  727. uni.navigateTo({
  728. url: '/pages/user/signin'
  729. });
  730. uni.setStorageSync('route', '/pages/user/user');
  731. },
  732. systemwechat() {
  733. this.$http('conf.getGroupConf', {
  734. group: 'system.wechat'
  735. }).then(res => {
  736. if (res.code == 0) {
  737. this.qrcode = res.data.qrcode_path
  738. const focuson = uni.getStorageSync('focuson');
  739. // console.log(focuson);
  740. if (!focuson) {
  741. if (this.qrcode) {
  742. if (this.isLogin && this.appInfo.is_show_logged_qrcode == 1) {
  743. this.showconcern = true
  744. }
  745. }
  746. }
  747. }
  748. })
  749. },
  750. concernclose() {
  751. this.showconcern = false
  752. },
  753. copyText(text) {
  754. uni.setClipboardData({
  755. data: text,
  756. success: function() {
  757. // console.log('success');
  758. uni.showToast({
  759. title: '用户编号复制成功'
  760. });
  761. }
  762. });
  763. },
  764. modify() {
  765. uni.navigateTo({
  766. url: '/pages/user/userinfo'
  767. })
  768. },
  769. clickuimage(e) {
  770. uni.previewImage({
  771. urls: [e]
  772. })
  773. },
  774. // systemwechat(){
  775. // this.$http('conf.getGroupConf', { group: 'system.wechat' }).then(res => {
  776. // if (res.code == 0) {
  777. // if(res.data.qrcode){
  778. // this.qrcode = res.data.qrcode_path
  779. // }
  780. // }
  781. // })
  782. // },
  783. getCommissionSetting() {
  784. this.$http('conf.getGroupConf', {
  785. group: 'system.commission'
  786. }).then(res => {
  787. if (res.code == 0) {
  788. uni.setNavigationBarTitle({
  789. title: this.appInfo.site_name
  790. });
  791. // this.is_aipainting = this.appInfo.is_aipainting
  792. if (res.data.is_commission == 1) {
  793. let obj = {
  794. title: res.data.commission_alias ? res.data
  795. .commission_alias : '分销中心',
  796. icon: 'grid-fill',
  797. path: 'address-list',
  798. url: '/pages/user/commission/index',
  799. color: '#ffca28'
  800. };
  801. this.userList.splice(0, 0, obj);
  802. }
  803. if (this.appInfo.is_aipainting && this.appInfo.is_aipainting == 1) {
  804. let draw = {
  805. title: '绘画记录',
  806. icon: 'edit-pen-fill',
  807. path: 'address-list',
  808. url: '/pages/user/draw/draw',
  809. color: '#3c9cff'
  810. };
  811. this.userList.splice(1, 0, draw);
  812. this.is_aipainting = '1'
  813. } else {
  814. this.is_aipainting = '2'
  815. }
  816. }
  817. });
  818. },
  819. getroute() {
  820. console.log('getroute()');
  821. if (!this.isLogin) {
  822. uni.setStorageSync('route', '/pages/user/user');
  823. }
  824. },
  825. exchange() {
  826. if (!this.isLogin) {
  827. uni.navigateTo({
  828. url: '/pages/user/signin'
  829. });
  830. uni.setStorageSync('route', '/pages/user/user');
  831. return;
  832. }
  833. uni.showLoading({
  834. title: '卡密兑换中...'
  835. });
  836. this.$http('member.kami', {
  837. code: this.carmi
  838. }).then(res => {
  839. if (res.code == 0) {
  840. uni.showToast({
  841. title: '兑换成功'
  842. });
  843. this.getUserData();
  844. this.showcarmi = false;
  845. }
  846. });
  847. },
  848. getuserinfo() {
  849. uni.navigateTo({
  850. url: '/pages/user/userinfo'
  851. });
  852. },
  853. getPersonalRealNameInfo() {
  854. this.$http('vertify.getPersonalRealNameInfo').then(res => {
  855. if (res.code == 0) {
  856. this.showrealname = false;
  857. } else {
  858. this.showrealname = true;
  859. }
  860. });
  861. },
  862. jump(e) {
  863. console.log(e);
  864. uni.navigateTo({
  865. url: e
  866. })
  867. },
  868. workermy() {
  869. this.$http('worker.my').then(res => {
  870. if (res.code == 0) {
  871. if (res.data.name) {
  872. this.showworkermy = true;
  873. } else {
  874. this.showworkermy = false;
  875. }
  876. } else {
  877. this.showworkermy = false;
  878. }
  879. });
  880. },
  881. getfeedback() {
  882. uni.showModal({
  883. content: '请联系客服,提供您的宝贵意见',
  884. title: '提示',
  885. confirmText: '联系客服',
  886. confirmColor: '#00ca88',
  887. success(res) {
  888. if (res.confirm) {
  889. uni.navigateTo({
  890. url: '/pages/user/public/kefu'
  891. });
  892. }
  893. }
  894. });
  895. },
  896. getqrcode() {
  897. // console.log(this.qrcode);
  898. uni.previewImage({
  899. urls: [this.qrcode]
  900. })
  901. },
  902. showInterstitial() {
  903. time2 = setInterval(
  904. function() {
  905. interstitialAd.show().catch(err => {
  906. console.error(err);
  907. });
  908. },
  909. this.appInfo.gap ? this.appInfo.gap * 1000 : 12000
  910. );
  911. }
  912. }
  913. };
  914. </script>
  915. <style lang="scss" scoped>
  916. @import url('./user.scss');
  917. .nick {
  918. color: #333;
  919. }
  920. .topBox {
  921. padding: 0 30rpx;
  922. .topCard {
  923. background: #fff;
  924. padding-bottom: 30rpx;
  925. border-radius: 30rpx;
  926. height: 300rpx;
  927. display: flex;
  928. align-items: flex-end;
  929. .userBox {
  930. position: absolute;
  931. display: flex;
  932. left: 50%;
  933. transform: translateX(-50%);
  934. top: -15%;
  935. width: 100%;
  936. height: 50%;
  937. }
  938. }
  939. }
  940. page {
  941. background: #f2f2f2;
  942. }
  943. .btn-hover {
  944. background: #f2f2f2 !important;
  945. }
  946. .user {
  947. // height: 1800rpx;
  948. padding-bottom: 200rpx;
  949. background: url('@/static/images/BG.png') no-repeat;
  950. background-size: 100% 50%;
  951. background-color: #E9F1F7;
  952. .user-wrap {
  953. display: flex;
  954. justify-content: center;
  955. align-items: center;
  956. height: 56vw;
  957. padding: 30rpx;
  958. z-index: 9;
  959. // border-radius: 0 0 20% 20%;
  960. // background: url('https://mp-ea41a5d2-ea75-4ec6-aa57-ac841611f485.cdn.bspapp.com/cloudstorage/796de0fd-c730-40b8-9177-1250bb76d0a3.jpg') no-repeat;
  961. background-size: cover;
  962. .setting {
  963. color: #fff;
  964. position: absolute;
  965. top: 60rpx;
  966. left: 60rpx;
  967. font-size: 50rpx;
  968. }
  969. .info {
  970. position: absolute;
  971. text-align: center;
  972. // background: red;
  973. .avatar {
  974. width: 150rpx;
  975. height: 150rpx;
  976. border-radius: 50%;
  977. border: 4px solid #fff;
  978. }
  979. .nickname {
  980. color: #333;
  981. font-size: 30rpx;
  982. margin-top: 20rpx;
  983. font-weight: bold;
  984. display: flex;
  985. }
  986. }
  987. }
  988. .order-status {
  989. padding: 0 30rpx;
  990. margin-top: -8vw;
  991. .status-wrap {
  992. border-radius: 25rpx;
  993. overflow: hidden;
  994. .status-list {
  995. display: flex;
  996. justify-content: space-evenly;
  997. align-items: center;
  998. background: #fff;
  999. padding-top: 30rpx;
  1000. padding-bottom: 30rpx;
  1001. .status-item {
  1002. flex: 1;
  1003. display: flex;
  1004. flex-direction: column;
  1005. justify-content: center;
  1006. align-items: center;
  1007. .item-icon {
  1008. line-height: 1;
  1009. font-size: 65rpx;
  1010. color: #bbb;
  1011. }
  1012. .item-text {
  1013. font-size: 28rpx;
  1014. color: #666;
  1015. margin-top: 5rpx;
  1016. }
  1017. }
  1018. }
  1019. }
  1020. }
  1021. .com-item {
  1022. padding-left: 30rpx;
  1023. padding-right: 30rpx;
  1024. margin-top: 20rpx;
  1025. .com-wrap {
  1026. border-radius: 25rpx;
  1027. overflow: hidden;
  1028. }
  1029. }
  1030. .cell_charge {
  1031. background: #000000d4 !important;
  1032. height: 112rpx !important;
  1033. width: 100% !important;
  1034. }
  1035. .cell {
  1036. height: 110rpx;
  1037. padding-left: 30rpx;
  1038. padding-right: 30rpx;
  1039. display: flex;
  1040. justify-content: space-between;
  1041. align-items: center;
  1042. background: #fff;
  1043. border-bottom: 1px solid #f8f8f8;
  1044. &:active {
  1045. background: #f2f2f2;
  1046. }
  1047. &:last-child {
  1048. border-bottom: none !important;
  1049. }
  1050. .cell-left {
  1051. display: flex;
  1052. align-items: center;
  1053. .cell-icon {
  1054. width: 50rpx;
  1055. height: 50rpx;
  1056. }
  1057. .cell-text {
  1058. color: #666;
  1059. font-size: 32rpx;
  1060. margin-left: 20rpx;
  1061. // font-size: 30rpx;
  1062. }
  1063. }
  1064. .iconfont {
  1065. font-size: 40rpx;
  1066. color: #999;
  1067. }
  1068. }
  1069. }
  1070. .b-btn {
  1071. // position: absolute;
  1072. // right: 20upx;
  1073. // top: 24upx;
  1074. width: 132upx;
  1075. height: 50upx;
  1076. text-align: center;
  1077. line-height: 50upx;
  1078. font-size: 24upx;
  1079. color: #36343c;
  1080. border-radius: 30px;
  1081. background: #ffd465;
  1082. z-index: 1;
  1083. }
  1084. .carmimodal {
  1085. width: 600rpx;
  1086. border-radius: 20rpx;
  1087. position: relative;
  1088. padding-bottom: 48rpx;
  1089. .carmiclose {
  1090. position: absolute;
  1091. right: 15rpx;
  1092. top: 15rpx;
  1093. }
  1094. .carmititle {
  1095. background: linear-gradient(to right, $tc, $tc2);
  1096. color: #fff;
  1097. height: 120rpx;
  1098. line-height: 120rpx;
  1099. font-size: 32rpx;
  1100. font-weight: bold;
  1101. text-align: center;
  1102. border-radius: 20rpx 20rpx 0 0;
  1103. margin-bottom: 60rpx;
  1104. }
  1105. .carmiinput {
  1106. margin: 30rpx;
  1107. }
  1108. .carmiexchange {
  1109. margin: 80rpx 30rpx 90rpx 30rpx;
  1110. background: linear-gradient(to right, $tc, $tc2);
  1111. color: #fff;
  1112. border-radius: 80rpx;
  1113. height: 80rpx;
  1114. line-height: 80rpx;
  1115. text-align: center;
  1116. }
  1117. .kf_qrcode {
  1118. // margin-left: 200rpx;
  1119. margin-bottom: 30rpx;
  1120. }
  1121. }
  1122. /* 顶部背景图 start */
  1123. .top-backgroup {
  1124. height: 450rpx;
  1125. z-index: -1;
  1126. .backgroud-image {
  1127. width: 100%;
  1128. height: 450rpx;
  1129. // z-index: -1;
  1130. }
  1131. }
  1132. /* 顶部背景图 end */
  1133. .mine {
  1134. max-height: 100vh;
  1135. }
  1136. /* 底部安全边距 start*/
  1137. .tn-tabbar-height {
  1138. min-height: 120rpx;
  1139. height: calc(140rpx + env(safe-area-inset-bottom) / 2);
  1140. height: calc(140rpx + constant(safe-area-inset-bottom));
  1141. }
  1142. .tn-color-cat {
  1143. color: #1D2541;
  1144. }
  1145. .tn-bg-cat {
  1146. background-color: #1D2541;
  1147. }
  1148. /* 自定义导航栏内容 start */
  1149. .custom-nav {
  1150. height: 100%;
  1151. &__back {
  1152. margin: auto 5rpx;
  1153. font-size: 40rpx;
  1154. margin-right: 10rpx;
  1155. flex-basis: 5%;
  1156. width: 100rpx;
  1157. position: absolute;
  1158. }
  1159. }
  1160. /* 自定义导航栏内容 end */
  1161. /* 顶部背景图 end */
  1162. /* 用户头像 start */
  1163. .logo-image {
  1164. width: 110rpx;
  1165. height: 110rpx;
  1166. position: relative;
  1167. overflow: hidden;
  1168. border-radius: 50%;
  1169. }
  1170. .logo-pic {
  1171. background-size: cover;
  1172. background-repeat: no-repeat;
  1173. // background-attachment:fixed;
  1174. background-position: top;
  1175. border: 8rpx solid rgba(255, 255, 255, 0.05);
  1176. box-shadow: 0rpx 0rpx 80rpx 0rpx rgba(0, 0, 0, 0.15);
  1177. border-radius: 50%;
  1178. overflow: hidden;
  1179. // background-color: #FFFFFF;
  1180. }
  1181. /* 页面 start*/
  1182. .about-shadow {
  1183. border-radius: 15rpx;
  1184. box-shadow: 0rpx 0rpx 50rpx 0rpx rgba(0, 0, 0, 0.07);
  1185. }
  1186. .about {
  1187. &__wrap {
  1188. position: relative;
  1189. z-index: 1;
  1190. margin: 20rpx 30rpx;
  1191. }
  1192. }
  1193. /* 页面 end*/
  1194. /* 图标容器15 start */
  1195. .icon15 {
  1196. &__item {
  1197. width: 30%;
  1198. background-color: #FFFFFF;
  1199. border-radius: 10rpx;
  1200. padding: 30rpx;
  1201. margin: 20rpx 10rpx;
  1202. transform: scale(1);
  1203. transition: transform 0.3s linear;
  1204. transform-origin: center center;
  1205. &--icon {
  1206. width: 100rpx;
  1207. height: 100rpx;
  1208. font-size: 60rpx;
  1209. border-radius: 50%;
  1210. margin-bottom: 18rpx;
  1211. position: relative;
  1212. z-index: 1;
  1213. &::after {
  1214. content: " ";
  1215. position: absolute;
  1216. z-index: -1;
  1217. width: 100%;
  1218. height: 100%;
  1219. left: 0;
  1220. bottom: 0;
  1221. border-radius: inherit;
  1222. opacity: 1;
  1223. transform: scale(1, 1);
  1224. background-size: 100% 100%;
  1225. }
  1226. }
  1227. }
  1228. }
  1229. /* 图标容器12 start */
  1230. .tn-three {
  1231. position: absolute;
  1232. top: 50%;
  1233. right: 50%;
  1234. bottom: 50%;
  1235. left: 50%;
  1236. transform: translate(-38rpx, -16rpx) rotateX(30deg) rotateY(20deg) rotateZ(-30deg);
  1237. text-shadow: -1rpx 2rpx 0 #f0f0f0, -2rpx 4rpx 0 #f0f0f0, -10rpx 20rpx 30rpx rgba(0, 0, 0, 0.2);
  1238. }
  1239. .icon20 {
  1240. &__item {
  1241. width: 30%;
  1242. background-color: #FFFFFF;
  1243. border-radius: 10rpx;
  1244. padding: 30rpx;
  1245. margin: 20rpx 10rpx;
  1246. transform: scale(1);
  1247. transition: transform 0.3s linear;
  1248. transform-origin: center center;
  1249. &--icon {
  1250. width: 100rpx;
  1251. height: 100rpx;
  1252. font-size: 60rpx;
  1253. border-radius: 50%;
  1254. margin-bottom: 18rpx;
  1255. position: relative;
  1256. z-index: 1;
  1257. &::after {
  1258. content: " ";
  1259. position: absolute;
  1260. z-index: -1;
  1261. width: 100%;
  1262. height: 100%;
  1263. left: 0;
  1264. bottom: 0;
  1265. border-radius: inherit;
  1266. opacity: 1;
  1267. transform: scale(1, 1);
  1268. background-size: 100% 100%;
  1269. background-image: url(https://tnuiimage.tnkjapp.com/cool_bg_image/icon_bg.png);
  1270. }
  1271. }
  1272. }
  1273. }
  1274. .button-vip {
  1275. width: 100%;
  1276. height: 150rpx;
  1277. border-radius: 15rpx;
  1278. position: relative;
  1279. z-index: 1;
  1280. &::after {
  1281. content: " ";
  1282. position: absolute;
  1283. z-index: -1;
  1284. width: 100%;
  1285. height: 100%;
  1286. left: 0;
  1287. bottom: 0;
  1288. border-radius: inherit;
  1289. opacity: 1;
  1290. transform: scale(1, 1);
  1291. background-size: 100% 100%;
  1292. background-image: url(https://tnuiimage.tnkjapp.com/cool_bg_image/icon_bg.png);
  1293. }
  1294. }
  1295. /* 图标容器12 start */
  1296. .icon12 {
  1297. &__item {
  1298. width: 30%;
  1299. background-color: #FFFFFF;
  1300. border-radius: 10rpx;
  1301. padding: 30rpx;
  1302. margin: 20rpx 10rpx;
  1303. transform: scale(1);
  1304. transition: transform 0.3s linear;
  1305. transform-origin: center center;
  1306. &--icon {
  1307. width: 15rpx;
  1308. height: 15rpx;
  1309. font-size: 50rpx;
  1310. border-radius: 50%;
  1311. margin-bottom: 38rpx;
  1312. position: relative;
  1313. z-index: 1;
  1314. &::after {
  1315. content: " ";
  1316. position: absolute;
  1317. z-index: -1;
  1318. width: 100%;
  1319. height: 100%;
  1320. left: 0;
  1321. bottom: 0;
  1322. border-radius: inherit;
  1323. opacity: 1;
  1324. transform: scale(1, 1);
  1325. background-size: 100% 100%;
  1326. }
  1327. }
  1328. }
  1329. }
  1330. /* 图标容器1 start */
  1331. .icon1 {
  1332. &__item {
  1333. // width: 30%;
  1334. background-color: #FFFFFF;
  1335. border-radius: 10rpx;
  1336. padding: 30rpx;
  1337. margin: 20rpx 10rpx;
  1338. transform: scale(1);
  1339. transition: transform 0.3s linear;
  1340. transform-origin: center center;
  1341. &--icon {
  1342. width: 40rpx;
  1343. height: 40rpx;
  1344. font-size: 40rpx;
  1345. border-radius: 50%;
  1346. position: relative;
  1347. z-index: 1;
  1348. &::after {
  1349. content: " ";
  1350. position: absolute;
  1351. z-index: -1;
  1352. width: 100%;
  1353. height: 100%;
  1354. left: 0;
  1355. bottom: 0;
  1356. border-radius: inherit;
  1357. opacity: 1;
  1358. transform: scale(1, 1);
  1359. background-size: 100% 100%;
  1360. background-image: url(https://tnuiimage.tnkjapp.com/cool_bg_image/icon_bg.png);
  1361. }
  1362. }
  1363. }
  1364. }
  1365. .avatar {
  1366. width: 110rpx;
  1367. height: 110rpx;
  1368. border-radius: 50%;
  1369. border: 3px solid #fff;
  1370. }
  1371. .iconmore1 {
  1372. font-size: 24rpx;
  1373. }
  1374. .select {
  1375. font-weight: bold;
  1376. font-size: 32rpx;
  1377. margin: 30rpx;
  1378. }
  1379. .expand {
  1380. // margin: 30rpx;
  1381. // position: relative;
  1382. padding: 30rpx;
  1383. // background: linear-gradient(to right, #00ca88, #00BCD4);
  1384. .surplus {
  1385. color: #fff;
  1386. font-size: 26rpx;
  1387. background: #207CF7;
  1388. border-radius: 50rpx;
  1389. padding: 8rpx 12rpx;
  1390. margin-right: 20rpx;
  1391. margin-bottom: 15rpx;
  1392. .item {
  1393. margin-left: 10rpx;
  1394. }
  1395. }
  1396. }
  1397. </style>