schoolDetails.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <!-- 学校详情 -->
  2. <template>
  3. <view class="school-details">
  4. <!-- 导航栏 -->
  5. <u-navbar title="学院详情" :background="background" title-color="#fff" back-icon-color="#fff"/>
  6. <view class="school-details-bg"></view>
  7. <view class="school-details-content">
  8. <view class="school-details-content-logo">
  9. <image :src="schoolInfo.schoolLogoUrl" mode=""></image>
  10. </view>
  11. <view class="school-details-content-name">{{ schoolInfo.schoolName }}</view>
  12. <!-- <view class="school-details-content-evaluate">
  13. <view class="left">
  14. <view class="evaluate">优秀</view>
  15. <view class="describe">综合评分</view>
  16. <view class="star">
  17. <u-icon name="star-fill" color="#EF651F"></u-icon>
  18. <u-icon name="star-fill" color="#EF651F"></u-icon>
  19. <u-icon name="star-fill" color="#EF651F"></u-icon>
  20. <u-icon name="star-fill" color="#EF651F"></u-icon>
  21. <u-icon name="star-fill" color="#EF651F"></u-icon>
  22. </view>
  23. <view class="grade">4.8</view>
  24. </view>
  25. <view class="right">
  26. 详情
  27. <u-icon class="icon" name="arrow-right" color="#666666"></u-icon>
  28. </view>
  29. </view> -->
  30. <!-- 学校概况 -->
  31. <view class="school-details-content-survey">
  32. <view class="title">学校概况</view>
  33. <view class="item">
  34. <view>学校名称:{{ schoolInfo.schoolName || '-' }}</view>
  35. <view>学校性质:{{ getSchoolTypeName(schoolInfo.schoolNature) }}</view>
  36. <view>培养方式:{{ schoolInfo.trainMethod || '-' }}</view>
  37. <view class="home" @click="jumpSchoolHome(schoolInfo.schoolUrl)">
  38. <view>
  39. 学校主页:<text>{{ schoolInfo.schoolUrl || '-' }}</text>
  40. </view>
  41. <view>
  42. <u-icon name="arrow-right" color="#EF651F" size="24"/>
  43. </view>
  44. </view>
  45. <view>招生邮箱:{{ schoolInfo.email || '-' }}</view>
  46. <view>联系人:{{ schoolInfo.linkUser || '-' }}</view>
  47. <view>联系电话:{{ schoolInfo.linkPhone || '-' }}</view>
  48. <view>地址:{{ schoolInfo.schoolAddress || '-' }}</view>
  49. <!-- <view class="address">
  50. <view>
  51. <image src="../../static/img/dingwei.png"/>
  52. 查看位置
  53. </view>
  54. </view> -->
  55. </view>
  56. </view>
  57. <!-- 学校信息 -->
  58. <view class="school-details-content-introduce">
  59. <view class="title">学校信息</view>
  60. <view class="content" v-if="schoolInfo.detatil">
  61. <u-parse :html="schoolInfo.detatil"/>
  62. </view>
  63. <u-empty v-else text="暂无学校信息" mode="data"></u-empty>
  64. </view>
  65. <!-- 学校相册 -->
  66. <!-- <view class="school-details-content-album">
  67. <view class="title">学校相册</view>
  68. <view class="pic-list">
  69. <view
  70. class="pic-list-item"
  71. v-for="(item, index) in picList"
  72. :key="index"
  73. >
  74. <image :src="item.url" mode=""></image>
  75. </view>
  76. </view>
  77. </view> -->
  78. <!-- 特色专业 -->
  79. <view class="school-details-content-major" v-if="schoolInfo.twinList && schoolInfo.twinList.length > 0">
  80. <view class="title">双高专业</view>
  81. <view class="major-list">
  82. <view class="major-list-item" v-for="(item, index) in schoolInfo.twinList" :key="index" @click="jumpPage('/pages/professionalDetails/professionalDetails', { id: item.id })">
  83. <view>{{ item.professionName }}(专业代码:{{ item.professionCode }})</view>
  84. <view>
  85. <u-icon name="arrow-right"/>
  86. </view>
  87. </view>
  88. </view>
  89. </view>
  90. <view class="school-details-content-major" v-if="schoolInfo.enrollList && schoolInfo.enrollList.length > 0">
  91. <view class="title">招生专业</view>
  92. <view class="major-list">
  93. <view class="major-list-item" v-for="(item, index) in schoolInfo.enrollList" :key="index" @click="jumpPage('/pages/professionalDetails/professionalDetails', { id: item.id })">
  94. <view>{{ item.professionName }}(专业代码:{{ item.professionCode }})</view>
  95. <view>
  96. <u-icon name="arrow-right"/>
  97. </view>
  98. </view>
  99. </view>
  100. </view>
  101. </view>
  102. <u-toast ref="uToast" />
  103. </view>
  104. </template>
  105. <script>
  106. export default {
  107. data() {
  108. return {
  109. background: {
  110. backgroundColor: '#3D5D4C'
  111. },
  112. // 学校相册
  113. picList: [],
  114. // 学校id
  115. schoolId: '',
  116. // 学校信息
  117. schoolInfo: {},
  118. // 学校性质
  119. schoolTypeList: []
  120. }
  121. },
  122. onLoad(page) {
  123. if (page.schoolId) {
  124. this.schoolId = page.schoolId
  125. }
  126. },
  127. onShow() {
  128. this.getSchoolTypeList()
  129. if (this.schoolId) {
  130. uni.showLoading({
  131. title: '加载中'
  132. })
  133. this.getSchoolDetails(this.schoolId)
  134. }
  135. },
  136. methods: {
  137. /**
  138. * 通过学校id获取学校详情
  139. * @param { String } id 学校id
  140. */
  141. getSchoolDetails(id) {
  142. this.$u.api.school.getSchoolDetails({
  143. id: id
  144. }).then(res => {
  145. uni.hideLoading()
  146. if (res.code === 200) {
  147. this.schoolInfo = res.data
  148. }
  149. }).catch(err => {
  150. uni.hideLoading()
  151. this.$refs.uToast.show({
  152. title: err.data.message,
  153. type: 'error'
  154. })
  155. })
  156. },
  157. /**
  158. * 获取学校性质字典
  159. */
  160. getSchoolTypeList() {
  161. this.$u.api.getDictdataUrl({
  162. key: 'school_nature'
  163. }).then(res => {
  164. if (res.code === 200) {
  165. this.schoolTypeList = res.data
  166. }
  167. })
  168. },
  169. /**
  170. * 通过字典值去获取名称
  171. * @param { String } val 字典text值
  172. */
  173. getSchoolTypeName(val) {
  174. let name
  175. this.schoolTypeList.forEach(item => {
  176. if (Number(item.text) === Number(val)) {
  177. name = item.label
  178. }
  179. })
  180. return name
  181. },
  182. /**
  183. * 跳转到外部网页
  184. */
  185. jumpSchoolHome(url) {
  186. if (url) {
  187. location.href = url
  188. }
  189. },
  190. /**
  191. * 跳转到到指定页面
  192. */
  193. jumpPage(url, params) {
  194. this.$u.route({
  195. url: url,
  196. params: params
  197. })
  198. }
  199. }
  200. }
  201. </script>
  202. <style lang="scss" scoped>
  203. @import './schoolDetails.scss';
  204. </style>