university_talent_base.vue 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. <template>
  2. <div class="pro_details_video">
  3. <head-component :headinfo=headinfo></head-component>
  4. <div class="page-content">
  5. <div class="page-img-box">
  6. <div class="bottom-content">
  7. <div class="tab-box">
  8. <div :class="[onePage?'item-box-active':'item-box']" @click="showPage(1)">
  9. 卓越工程师
  10. </div>
  11. <div :class="[twoPage?'item-box-active':'item-box']" @click="showPage(2)">
  12. 重点实验室
  13. </div>
  14. <div :class="[threePage?'item-box-active':'item-box']" @click="showPage(3)">
  15. 理科基地
  16. </div>
  17. <div :class="[fourPage?'item-box-active':'item-box']" @click="showPage(4)">
  18. 文科基地
  19. </div>
  20. <div :class="[fivePage?'item-box-active':'item-box']" @click="showPage(5)">
  21. 工科基地
  22. </div>
  23. <div :class="[sixPage?'item-box-active':'item-box']" @click="showPage(6)">
  24. 珠峰计划
  25. </div>
  26. </div>
  27. <div class="one-page" v-show="onePage">
  28. <p class="title">卓越工程师</p>
  29. <div class="info" v-html="data_list[0].content"></div>
  30. </div>
  31. <div class="one-page" v-show="twoPage">
  32. <p class="title">重点实验室</p>
  33. <div class="info" v-html="data_list[1].content"></div>
  34. </div>
  35. <div class="one-page" v-show="threePage">
  36. <p class="title">理科基地</p>
  37. <div class="info" v-html="data_list[2].content"></div>
  38. </div>
  39. <div class="one-page" v-show="fourPage">
  40. <p class="title">文科基地</p>
  41. <div class="info" v-html="data_list[3].content"></div>
  42. </div>
  43. <div class="one-page" v-show="fivePage">
  44. <p class="title">工科基地</p>
  45. <div class="info" v-html="data_list[4].content"></div>
  46. </div>
  47. <div class="one-page" v-show="fivePage">
  48. <p class="title">珠峰计划</p>
  49. <div class="info" v-html="data_list[5].content"></div>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. </template>
  56. <script setup>
  57. import videojs from 'video.js';
  58. import 'video.js/dist/video-js.css';
  59. import collectionComponent from '@/views/xjc-integratedmachine/components/collection_component.vue'
  60. import {specialtyDetail} from '@/api/xjc-integratedmachine/environment/specialty.js'
  61. import {ref} from "vue";
  62. import headComponent from '@/views/xjc-integratedmachine/components/head_component.vue'
  63. import Drag_component from "@/views/xjc-integratedmachine/components/drag_component.vue";
  64. import {handleThemeStyle} from "@/utils/theme.js";
  65. import useSettingsStore from "@/store/modules/settings.js";
  66. const {proxy} = getCurrentInstance()
  67. const {educationlevel} = proxy.useDict('educationlevel')
  68. import {talentbase} from '@/api/xjc-integratedmachine/environment/tscareer.js'
  69. const router = useRouter()
  70. const route = useRoute()
  71. const tabIndex = ref("zyjd")
  72. const headinfo = ref({})
  73. const onePage = ref(true)
  74. const twoPage = ref(false)
  75. const threePage = ref(false)
  76. const fourPage = ref(false)
  77. const fivePage = ref(false)
  78. const sixPage = ref(false)
  79. function setHeadinfo(){
  80. headinfo.value = {
  81. title: '学职资讯',
  82. user: {
  83. avatar: '头像路径',
  84. nickName: '张三'
  85. },
  86. backUrl : '/xjc-integratedmachine/environment/query_universitydb_conditions',
  87. homeUrl:'/xjc-integratedmachine/environment/index',
  88. contrast:true,
  89. contrastType:'major'
  90. }
  91. }
  92. onMounted(() => {
  93. setHeadinfo()
  94. })
  95. const param = route.query
  96. const entity = ref({})
  97. const kaishe_list = ref([])
  98. const pinggu_list = ref([])
  99. const similar_list = ref([])
  100. const collectionRef = ref(null)
  101. const collection_data = ref({})
  102. function setCollection_data(){
  103. collection_data.value = {
  104. contentType: 2,
  105. contentId: param.id,
  106. contentVal: entity.value,
  107. source:'pro_details_video'
  108. }
  109. console.log("entity.value",entity.value)
  110. }
  111. function detail() {
  112. specialtyDetail({
  113. id: param.id
  114. }).then(resp => {
  115. entity.value = resp.entity
  116. kaishe_list.value = resp.kaishe_list
  117. pinggu_list.value = resp.pinggu_list
  118. similar_list.value = resp.similar_list
  119. entity.value.kaishe_list = kaishe_list
  120. })
  121. setTimeout(() => {
  122. setCollection_data();
  123. collectionRef.value.isContrast(entity.value);
  124. collectionRef.value.getSource('pro_details_video');
  125. }, 500);
  126. }
  127. const showPage = (val) => {
  128. if (val === 1) {
  129. onePage.value = true;
  130. twoPage.value = false;
  131. threePage.value = false;
  132. fourPage.value = false;
  133. fivePage.value = false;
  134. sixPage.value = false;
  135. } else if (val === 2) {
  136. onePage.value = false;
  137. twoPage.value = true;
  138. threePage.value = false;
  139. fourPage.value = false;
  140. fivePage.value = false;
  141. sixPage.value = false;
  142. } else if (val === 3) {
  143. onePage.value = false;
  144. twoPage.value = false;
  145. threePage.value = true;
  146. fourPage.value = false;
  147. fivePage.value = false;
  148. sixPage.value = false;
  149. } else if (val === 4) {
  150. onePage.value = false;
  151. twoPage.value = false;
  152. threePage.value = false;
  153. fourPage.value = true;
  154. fivePage.value = false;
  155. sixPage.value = false;
  156. } else if (val === 5) {
  157. onePage.value = false;
  158. twoPage.value = false;
  159. threePage.value = false;
  160. fourPage.value = false;
  161. fivePage.value = true;
  162. }
  163. }
  164. detail()
  165. function dialogBeforeClose() {
  166. onePage.value = true;
  167. twoPage.value = false;
  168. threePage.value = false;
  169. fourPage.value = false;
  170. fivePage.value = false;
  171. sixPage.value = false
  172. senvenPage.value = false
  173. eightPage.value = false;
  174. }
  175. const tab = ref("zygcs")
  176. function changeTab(path) {
  177. tab.value = path
  178. }
  179. const data_list = ref([])
  180. function base() {
  181. talentbase({}).then(resp =>{
  182. data_list.value = resp.talentbase
  183. })
  184. }
  185. base();
  186. </script>
  187. <style scoped lang="scss">
  188. p, div {
  189. margin: 0;
  190. padding: 0;
  191. }
  192. .pro_details_video {
  193. background: url('@/assets/images/environment/university-detail.png') no-repeat;
  194. background-size: 1920px 1080px;
  195. z-index: 10;
  196. width: 100%;
  197. height: 1080px;
  198. .page-content {
  199. width: 100%;
  200. position: absolute;
  201. top: 100px;
  202. bottom: 0;
  203. display: flex;
  204. justify-content: center;
  205. }
  206. .page-img-box {
  207. width: 1832px;
  208. height: 922px;
  209. margin-top: 13px;
  210. //background: rgba(255, 255, 255, 0.4);
  211. border-radius: 35px 35px 35px 35px;
  212. display: flex;
  213. flex-direction: column;
  214. }
  215. .bottom-content {
  216. //margin-top: 10px;
  217. border: 1px solid;
  218. height: 922px;
  219. .tab-box {
  220. display: flex;
  221. padding-right: 279px;
  222. //height: 922px;
  223. img {
  224. width: 36px;
  225. height: 36px;
  226. margin-right: 12px;
  227. }
  228. }
  229. .item-box {
  230. text-align: center;
  231. display: flex;
  232. justify-content: center;
  233. align-items: center;
  234. width: 202px;
  235. height: 65px;
  236. box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.09);
  237. border-radius: 5px 5px 0px 0px;
  238. font-weight: 400;
  239. font-size: 32px;
  240. color: #979797;
  241. }
  242. .item-box-active {
  243. text-align: center;
  244. color: #000000;
  245. background: #FFFFFF;
  246. font-weight: bold;
  247. font-size: 32px;
  248. display: flex;
  249. justify-content: center;
  250. align-items: center;
  251. width: 202px;
  252. height: 65px;
  253. background: #FFFFFF;
  254. box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.09);
  255. border-radius: 5px 5px 0px 0px;
  256. }
  257. }
  258. //.editor-content div,
  259. //.editor-content span,
  260. //.editor-content p,
  261. //.editor-content h1,
  262. //.editor-content h2,
  263. //.editor-content h3,
  264. //.editor-content h4,
  265. //.editor-content h5,
  266. //.editor-content h6 {
  267. // font-size: 26px !important;
  268. // line-height: 37px !important;
  269. //}
  270. .editor-content div,
  271. .editor-content span,
  272. .editor-content p {
  273. text-indent: 2em !important;
  274. text-align: left !important;
  275. }
  276. }
  277. .one-page {
  278. width: 1832px;
  279. height: 836px;
  280. background: #FFFFFF;
  281. border-radius: 0px 0px 35px 35px;
  282. border: 1px solid #FFFFFF;
  283. overflow: auto;
  284. line-height: 32px;
  285. padding-top: 10px;
  286. .title {
  287. height: 40px;
  288. border-left: 8px #8CE349 solid;
  289. margin-left: 33px;
  290. font-weight: 400;
  291. font-size: 28px;
  292. color: #333333;
  293. line-height: 40px;
  294. padding-left: 11px;
  295. }
  296. .info {
  297. text-indent: 2em;
  298. font-weight: 400;
  299. font-size: 28px;
  300. color: #333333;
  301. line-height: 40px;
  302. }
  303. .select-div {
  304. width: 100%;
  305. height: 100px;
  306. font-weight: 400;
  307. font-size: 30px;
  308. color: #333333;
  309. line-height: 40px;
  310. display: flex;
  311. justify-content: center;
  312. align-items: center;
  313. margin-bottom: 21px;
  314. .select-box {
  315. width: 300px;
  316. height: 90px;
  317. border: 1px solid #CCCCCC;
  318. line-height: 90px;
  319. text-align: center;
  320. margin-left: 10px;
  321. }
  322. .click-search {
  323. width: 170px;
  324. height: 90px;
  325. background: linear-gradient(180deg, #73EE71 0%, #0ACB63 100%);
  326. border-radius: 5px;
  327. font-weight: 400;
  328. font-size: 24px;
  329. color: #FFFFFF;
  330. margin-left: 20px;
  331. }
  332. }
  333. ::v-deep .el-table .el-table__header-wrapper th, .el-table .el-table__fixed-header-wrapper th {
  334. height: 74px !important;
  335. font-size: 24px;
  336. color: #1E410E;
  337. }
  338. ::v-deep .el-table tr {
  339. height: 74px !important;
  340. font-size: 20px;
  341. }
  342. ::v-deep .el-dialog__title {
  343. font-size: 34px !important;
  344. }
  345. ::v-deep .el-dialog {
  346. margin-top: 0px !important;
  347. }
  348. ::v-deep .el-dialog__headerbtn .el-dialog__close {
  349. font-size: 30px !important;
  350. }
  351. }
  352. .dict-dialog{
  353. max-width: 570px;
  354. height: 800px;
  355. overflow: auto;
  356. .dict-box {
  357. font-size: 24px;
  358. line-height: 34px;
  359. color: #333333;
  360. }
  361. }
  362. </style>