user.vue 43 KB

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