schoolDetails.vue 5.4 KB

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