my.vue 6.8 KB

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