my.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <template>
  2. <view>
  3. <uni-card :title="userinfo.alias" :sub-title="userinfo.login" :thumbnail="userinfo.avatar" @click="toMyDetail"></uni-card>
  4. <uni-list>
  5. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="OfficialAccountextraIcon" title="关注公众号" link="navigateTo" @click="toOfficialAccount"/>
  6. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="MyShareextraIcon" title="分享与返现" link="navigateTo" @click="toMyShare"/>
  7. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="MyOrderextraIcon" title="订单" link="navigateTo" @click="toMyOrder"/>
  8. <uni-section title="邀请" titleColor="#2BAFF8" type="line">
  9. <uni-list>
  10. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon1" title="发出的邀请" link="navigateTo" @click="sendInvitation"/>
  11. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon1" title="收到的邀请" link="navigateTo" @click="receivedInvitation"/>
  12. </uni-list>
  13. </uni-section>
  14. <uni-section title="课程" titleColor="#FB748F" type="line">
  15. <uni-list>
  16. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon2" title="教员认证" link="navigateTo" @click="authorize"/>
  17. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon2" title="发布新的课程" link="navigateTo" @click="toCoursePublish"/>
  18. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon2" title="已发布的课程" link="navigateTo" @click="coursePublished"/>
  19. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon2" title="已收藏的课程" link="navigateTo" @click="collectCourses"/>
  20. </uni-list>
  21. </uni-section>
  22. <uni-section title="需求" titleColor="#4cd964" type="line">
  23. <uni-list>
  24. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon3" title="发布新的需求" link="navigateTo" @click="toNeedPublis"/>
  25. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon3" title="已发布的需求" link="navigateTo" @click="Published"/>
  26. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon3" title="已收藏的需求" link="navigateTo" @click="collectStuNeeds"/>
  27. </uni-list>
  28. </uni-section>
  29. <uni-section title="投诉与建议" titleColor="#7E7AF8" type="line">
  30. <uni-list>
  31. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon4" title="我的建议" link="navigateTo" @click="toMySuggestion"/>
  32. <uni-list-item :show-extra-icon="true" showArrow :extra-icon="extraIcon4" title="我的投诉" link="navigateTo" @click="toMyComplaint"/>
  33. </uni-list>
  34. </uni-section>
  35. <uni-list-item v-if="isAdmin" :show-extra-icon="true" showArrow :extra-icon="extraIcon5" title="管理员专用" link="navigateTo" @click="toManager"/>
  36. </uni-list>
  37. </view>
  38. </template>
  39. <script>
  40. import badgeMix from '@/mixins/tabbar-badge.js'
  41. import { mapState, mapMutations } from 'vuex'
  42. export default {
  43. mixins: [badgeMix],
  44. options: {
  45. styleIsolation: 'shared', // 解除样式隔离
  46. },
  47. computed: {
  48. ...mapState('m_user', ['token', 'userinfo']),
  49. },
  50. data() {
  51. return {
  52. isAdmin: false,
  53. OfficialAccountextraIcon: {
  54. color: '#2BAFF8',
  55. size: '22',
  56. type: 'star-filled'
  57. },
  58. MyShareextraIcon: {
  59. color: '#FB748F',
  60. size: '22',
  61. type: 'pyq'
  62. },
  63. MyOrderextraIcon: {
  64. color: '#4cd964',
  65. size: '22',
  66. type: 'fire-filled'
  67. },
  68. extraIcon1: {
  69. color: '#2BAFF8',
  70. size: '22',
  71. type: 'email-filled'
  72. },
  73. extraIcon2: {
  74. color: '#FB748F',
  75. size: '22',
  76. type: 'auth-filled'
  77. },
  78. extraIcon3: {
  79. color: '#4cd964',
  80. size: '22',
  81. type: 'staff-filled'
  82. },
  83. // 投诉与建议
  84. extraIcon4: {
  85. color: '#7E7AF8',
  86. size: '22',
  87. type: 'help-filled'
  88. },
  89. extraIcon5: {
  90. color: '#F1D302',
  91. size: '22',
  92. type: 'eye-filled'
  93. }
  94. };
  95. },
  96. onLoad() {
  97. this.isAdmin = this.userinfo.isAdmin === 1 ? true : false
  98. this.findVerifyStatus()
  99. },
  100. onHide() {
  101. this.findVerifyStatus()
  102. },
  103. methods: {
  104. ...mapMutations('m_user', ['updateAuthentication']),
  105. // 查询是否通过了老师认证
  106. async findVerifyStatus() {
  107. const { data: result } = await uni.$http.get('/education/teacher-certifications/findVerifyStatus')
  108. const message = result.message
  109. this.updateAuthentication(message)
  110. },
  111. toMyDetail() {
  112. uni.navigateTo({
  113. url: '/subpkg/my/user/my_user_detail'
  114. })
  115. },
  116. toOfficialAccount(){
  117. uni.navigateTo({
  118. url:'/subpkg/my/official_account/my_official_account'
  119. })
  120. },
  121. toMyShare(){
  122. uni.navigateTo({
  123. url: '/subpkg/my/share/my_share'
  124. })
  125. },
  126. toMyOrder() {
  127. uni.navigateTo({
  128. url: '/subpkg/my/order/my_order'
  129. })
  130. },
  131. sendInvitation() {
  132. uni.navigateTo({
  133. url: '/subpkg/my/invitation/my_invitation_send'
  134. })
  135. },
  136. receivedInvitation() {
  137. uni.navigateTo({
  138. url: '/subpkg/my/invitation/my_invitation_receive'
  139. })
  140. },
  141. collectStuNeeds() {
  142. uni.navigateTo({
  143. url: '/subpkg/student/require/student_require_my_collect'
  144. })
  145. },
  146. collectCourses() {
  147. uni.navigateTo({
  148. url: '/subpkg/teacher/course/teacher_course_my_collect'
  149. })
  150. },
  151. authorize() {
  152. uni.navigateTo({
  153. url: '/subpkg/teacher/authentication/teacher_authentication'
  154. })
  155. },
  156. toCoursePublish() {
  157. uni.navigateTo({
  158. url: '/subpkg/teacher/course/teacher_course_add'
  159. })
  160. },
  161. coursePublished() {
  162. uni.navigateTo({
  163. url: '/subpkg/teacher/course/teacher_course_my_publish'
  164. })
  165. },
  166. toNeedPublis() {
  167. uni.navigateTo({
  168. url: '/subpkg/student/require/student_require_add'
  169. })
  170. },
  171. Published() {
  172. uni.navigateTo({
  173. url: '/subpkg/student/require/student_require_my_publish'
  174. })
  175. },
  176. toMySuggestion() {
  177. uni.navigateTo({
  178. url: '/subpkg/my/suggestion/my_suggestion'
  179. })
  180. },
  181. toMyComplaint() {
  182. uni.navigateTo({
  183. url: '/subpkg/my/complaint/my_complaint'
  184. })
  185. },
  186. toManager() {
  187. uni.navigateTo({
  188. url:'/subpkg/manager/manager',
  189. })
  190. }
  191. }
  192. }
  193. </script>
  194. <style lang="scss" scoped>
  195. // 用户头像
  196. ::v-deep .uni-card--border {
  197. height: 240rpx;
  198. }
  199. ::v-deep .uni-card .uni-card__header .uni-card__header-avatar {
  200. height: 200rpx;
  201. width: 200rpx;
  202. }
  203. ::v-deep .uni-card .uni-card__header .uni-card__header-avatar .uni-card__header-avatar-image {
  204. height: 200rpx !important;
  205. width: 200rpx !important;
  206. }
  207. ::v-deep .uni-card .uni-card__header .uni-card__header-extra .uni-card__header-extra-text {
  208. font-size: 60rpx !important;
  209. }
  210. ::v-deep .uni-list-item {
  211. font-size: 20px !important;
  212. height: 50px;
  213. }
  214. </style>