user.vue 41 KB

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