Parcourir la source

feat 新增学职资讯

sys5923812@126.com il y a 1 mois
Parent
commit
983ba33f37
20 fichiers modifiés avec 902 ajouts et 45 suppressions
  1. 37 0
      src/api/xjc-integratedmachine/occupation.js
  2. 37 0
      src/api/xjc-integratedmachine/specialty.js
  3. 7 1
      src/api/xjc-integratedmachine/university.js
  4. 34 0
      src/router/router_environment.js
  5. 51 0
      src/views/xjc-integratedmachine/components/collection_component.vue
  6. 3 3
      src/views/xjc-integratedmachine/environment/index.vue
  7. 104 1
      src/views/xjc-integratedmachine/environment/occ_details_video.vue
  8. 25 0
      src/views/xjc-integratedmachine/environment/occdb_interestcode.vue
  9. 51 0
      src/views/xjc-integratedmachine/environment/occdb_interestcode_list.vue
  10. 52 0
      src/views/xjc-integratedmachine/environment/occdb_list.vue
  11. 78 1
      src/views/xjc-integratedmachine/environment/occdb_search_industry.vue
  12. 46 0
      src/views/xjc-integratedmachine/environment/occdb_search_industry_list.vue
  13. 105 0
      src/views/xjc-integratedmachine/environment/pro_details_video.vue
  14. 81 3
      src/views/xjc-integratedmachine/environment/prodb_search_undergraduate.vue
  15. 47 0
      src/views/xjc-integratedmachine/environment/prodb_specialtylist1.vue
  16. 46 0
      src/views/xjc-integratedmachine/environment/prodb_specialtylist2.vue
  17. 68 26
      src/views/xjc-integratedmachine/environment/query_universitydb_conditions.vue
  18. 19 1
      src/views/xjc-integratedmachine/environment/studyocc_information.vue
  19. 11 7
      src/views/xjc-integratedmachine/environment/university_details_video.vue
  20. 0 2
      src/views/xjc-integratedmachine/environment/university_list.vue

+ 37 - 0
src/api/xjc-integratedmachine/occupation.js

@@ -0,0 +1,37 @@
+import request from '@/utils/request'
+
+export function categoryList1(data) {
+    return request({
+        url: '/integratedmachine/tsytj/occupation/categoryList1',
+        method: 'get',
+        params : data
+    })
+}
+export function occupationList(data) {
+    return request({
+        url: '/integratedmachine/tsytj/occupation/occupationList',
+        method: 'get',
+        params : data
+    })
+}
+export function occupationDetail(data) {
+    return request({
+        url: '/integratedmachine/tsytj/occupation/occupationDetail',
+        method: 'post',
+        data : data
+    })
+}
+export function codeList(data) {
+    return request({
+        url: '/integratedmachine/tsytj/occupation/codeList',
+        method: 'post',
+        data : data
+    })
+}
+export function getOccupationByKeyword(data) {
+    return request({
+        url: '/integratedmachine/tsytj/occupation/getOccupationByKeyword',
+        method: 'post',
+        data : data
+    })
+}

+ 37 - 0
src/api/xjc-integratedmachine/specialty.js

@@ -0,0 +1,37 @@
+import request from '@/utils/request'
+
+export function specialtyQuery() {
+    return request({
+        url: '/integratedmachine/tsytj/specialty/specialtyQuery',
+        method: 'post',
+    })
+}
+export function specialtyList1(data) {
+    return request({
+        url: '/integratedmachine/tsytj/specialty/specialtyList1',
+        method: 'get',
+        params : data
+    })
+}
+export function specialtyList2(data) {
+    return request({
+        url: '/integratedmachine/tsytj/specialty/specialtyList2',
+        method: 'get',
+        params : data
+    })
+}
+export function specialtyDetail(data) {
+    return request({
+        url: '/integratedmachine/tsytj/specialty/specialtyDetail',
+        method: 'post',
+        data : data
+    })
+}
+export function getSpecialtyByKeyword(data) {
+    return request({
+        url: '/integratedmachine/tsytj/specialty/getSpecialtyByKeyword',
+        method: 'post',
+        data : data
+    })
+}
+

+ 7 - 1
src/api/xjc-integratedmachine/university.js

@@ -69,4 +69,10 @@ export function removeCollection(data) {
         data: data
     })
 }
-
+export function getUniversityByKeyword(data) {
+    return request({
+        url: '/integratedmachine/tsytj/university/getUniversityByKeyword',
+        method: 'post',
+        data: data
+    })
+}

+ 34 - 0
src/router/router_environment.js

@@ -44,11 +44,33 @@ const router = [
         path: '/xjc-integratedmachine/environment/pro_details_video',
         component: () => import('@/views/xjc-integratedmachine/environment/pro_details_video.vue'),
     },
+    //专业1
+    {
+        path: '/xjc-integratedmachine/environment/prodb_specialtylist1',
+        component: () => import('@/views/xjc-integratedmachine/environment/prodb_specialtylist1.vue'),
+    },
+    //专业2
+    {
+        path: '/xjc-integratedmachine/environment/prodb_specialtylist2',
+        component: () => import('@/views/xjc-integratedmachine/environment/prodb_specialtylist2.vue'),
+    },
+
+
     // 职业库行业分类查询
     {
         path: '/xjc-integratedmachine/environment/occdb_search_industry',
         component: () => import('@/views/xjc-integratedmachine/environment/occdb_search_industry.vue'),
     },
+    //职业库行业分类列表
+    {
+        path: '/xjc-integratedmachine/environment/occdb_search_industry_list',
+        component: () => import('@/views/xjc-integratedmachine/environment/occdb_search_industry_list.vue'),
+    },
+    //职业列表
+    {
+        path: '/xjc-integratedmachine/environment/occdb_list',
+        component: () => import('@/views/xjc-integratedmachine/environment/occdb_list.vue'),
+    },
     //职业对比功能
     {
         path: '/xjc-integratedmachine/environment/occ_comparison_function',
@@ -59,6 +81,18 @@ const router = [
         path: '/xjc-integratedmachine/environment/occ_details_video',
         component: () => import('@/views/xjc-integratedmachine/environment/occ_details_video.vue'),
     },
+//霍兰德码查询
+    {
+        path: '/xjc-integratedmachine/environment/occdb_interestcode',
+        component: () => import('@/views/xjc-integratedmachine/environment/occdb_interestcode.vue'),
+    },
+    //霍兰德码查询列表
+    {
+        path: '/xjc-integratedmachine/environment/occdb_interestcode_list',
+        component: () => import('@/views/xjc-integratedmachine/environment/occdb_interestcode_list.vue'),
+    },
+
+
     //学职资讯
     {
         path: '/xjc-integratedmachine/environment/studyocc_information',

+ 51 - 0
src/views/xjc-integratedmachine/components/collection_component.vue

@@ -0,0 +1,51 @@
+<template>
+    <el-button @click="collection" v-if="collectionList.length == 0">收藏</el-button>
+    <el-button @click="cancle_collection" v-if="collectionList.length >= 1">取消收藏</el-button>
+</template>
+
+<script setup>
+    import {addCollection, getCollection, removeCollection} from '@/api/xjc-integratedmachine/university.js'
+
+    const props = defineProps({
+        collection: {
+            contentType: null,
+            contentId: null
+        }
+    })
+
+    const collectionList = ref([])
+
+    function collection() {
+        let data = {
+            contentType: props.collection.contentType,
+            contentId: props.collection.contentId
+        }
+        addCollection(data).then(resp => {
+            queryConnection()
+        })
+    }
+
+    function queryConnection() {
+        let data = {
+            contentType: props.collection.contentType,
+            contentId: props.collection.contentId
+        }
+        getCollection(data).then(resp => {
+            collectionList.value = resp.collection
+        })
+    }
+
+    function cancle_collection() {
+        let data = {
+            id: collectionList.value[0].id,
+        }
+        removeCollection(data).then(resp => {
+            queryConnection()
+        })
+    }
+
+</script>
+
+<style scoped>
+
+</style>

+ 3 - 3
src/views/xjc-integratedmachine/environment/index.vue

@@ -3,9 +3,9 @@
     环境探索学习系统<br>
     生涯学习不仅要对自我进行认知,还要对家庭和社会环境进行探索,对学职世界的外部环境进行探索,即对高校、专业、职业的探究。<br>
     <button @click="jumpTo('/xjc-integratedmachine/environment/query_universitydb_conditions')">高校库</button>
-    <button>专业库</button>
-    <button>职业库</button>
-    <button>学职咨询</button>
+    <button @click="jumpTo('/xjc-integratedmachine/environment/prodb_search_undergraduate')">专业库</button>
+    <button @click="jumpTo('/xjc-integratedmachine/environment/occdb_search_industry')">职业库</button>
+    <button @click="jumpTo('/xjc-integratedmachine/environment/studyocc_information')">学职资讯</button>
     <button>高校视频</button>
     <button>专业视频</button>
     <button>职业视频</button>

+ 104 - 1
src/views/xjc-integratedmachine/environment/occ_details_video.vue

@@ -1,8 +1,111 @@
 <template>
-    职业详情视频
+    <collectionComponent :collection="collection"></collectionComponent>
+    职业详情视频<br>
+
+    职业图片:
+    {{entity.picture}}
+    <br>
+    {{entity.name}}
+    <br>
+    所属行业<br>
+    {{entity.industryname}}
+    感兴趣类型码<br>
+    {{entity.interestcode}}
+
+    <el-card style="width:80%;">
+        <div style="display: flex;flex-direction: row;justify-content: space-between">
+            <div @click="changeTab('zygs')">职业概述</div>
+            <div @click="changeTab('gznr')">工作内容</div>
+            <div @click="changeTab('zyqj')">职业前景</div>
+            <div @click="changeTab('bkzy')">本科专业</div>
+            <div @click="changeTab('zkzy')">专科专业</div>
+            <div @click="changeTab('zysp')">职业视频</div>
+        </div>
+    </el-card>
+
+    <div v-show="tab == 'zygs'" v-html="entity.definition">
+
+    </div>
+    <div v-show="tab == 'gznr'" v-html="entity.normalwork">
+
+    </div>
+    <div v-show="tab == 'zyqj'" v-html="entity.normalwork">
+    </div>
+    <div v-show="tab == 'bkzy'">
+        <div v-for="(item,index) in bk_list" @click="jumpZY(item)">
+            {{item.name}}
+        </div>
+    </div>
+    <div v-show="tab == 'zkzy'">
+        <div v-for="(item,index) in zk_list" @click="jumpZY(item)">
+            {{item.name}}
+        </div>
+    </div>
+    <div v-show="tab == 'zysp'">
+        <div ref="videoContainer" class="video-container">
+            <video ref="videoPlayer" id="playerId" class="video-js vjs-default-skin" controls preload="auto"
+                   :data-setup="{}">
+                <!-- 可以在这里插入source标签以指定你的视频源 -->
+                <source :src="entity.path" type="video/mp4">
+            </video>
+        </div>
+    </div>
+
+
 </template>
 
 <script setup>
+    import {occupationDetail} from '@/api/xjc-integratedmachine/occupation.js'
+    import videojs from 'video.js';
+    import 'video.js/dist/video-js.css';
+    import collectionComponent from '@/views/xjc-integratedmachine/components/collection_component.vue'
+
+    const router = useRouter()
+    const route = useRoute()
+    const param = route.query
+
+    const entity = ref({})
+    const bk_list = ref([])
+    const zk_list = ref([])
+
+    const tab = ref('zygs')
+
+    function changeTab(path) {
+        tab.value = path
+        if (path == 'zysp') {
+            if (path == 'zysp') {
+                const player = videojs(playerId, {autoplay: true});
+                player.src(entity.value.path);
+                player.on("ended", () => {
+                })
+            }
+        }
+    }
+
+    const collection = ref({
+        contentType : 3,
+        contentId :param.id
+    })
+
+    function detail() {
+        occupationDetail({
+            id: param.id
+        }).then(resp => {
+            entity.value = resp.entity
+            bk_list.value = resp.bk_list
+            zk_list.value = resp.zk_list
+        })
+    }
+    function jumpZY(item){
+        router.push({
+            path : '/xjc-integratedmachine/environment/pro_details_video',
+            query :{
+                id : item.id
+            }
+        })
+    }
+
+    detail()
 
 </script>
 

+ 25 - 0
src/views/xjc-integratedmachine/environment/occdb_interestcode.vue

@@ -0,0 +1,25 @@
+<template>
+    霍兰德码查询
+    <div v-for="(item,index) in interestcode" @click="jumpToList(item)">
+        {{item.label}}
+    </div>
+</template>
+
+<script setup>
+    const {proxy} = getCurrentInstance()
+    const {interestcode} = proxy.useDict('interestcode')
+    const router = useRouter()
+
+    function jumpToList(item) {
+        router.push({
+            path : '/xjc-integratedmachine/environment/occdb_interestcode_list',
+            query:{
+                code : item.value
+            }
+        })
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 51 - 0
src/views/xjc-integratedmachine/environment/occdb_interestcode_list.vue

@@ -0,0 +1,51 @@
+<template>
+    <div v-for="(item,index) in code_list">
+        {{item.code}}---{{item.name}}
+        <div v-for="(it,ind) in code_map">
+            <div v-for="(i,d) in it">
+                <div v-if="i.code==item.code">
+                    {{i.name}}
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup>
+    import {codeList} from '@/api/xjc-integratedmachine/occupation.js'
+
+    const router = useRouter()
+    const route = useRoute()
+
+    const param = route.query
+    //
+    const code_list = ref([])
+    const code_map = ref([])
+
+    function list() {
+        codeList({
+            code: param.code
+        }).then(resp => {
+            code_list.value = resp.code_list
+            console.log("ssssss", code_list.value)
+            code_map.value = resp.code_map
+        })
+    }
+
+    function toDetail(item) {
+        router.push({
+            path: '/xjc-integratedmachine/environment/occ_details_video',
+            query: {
+                id: item.id
+            }
+        })
+    }
+
+    list()
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 52 - 0
src/views/xjc-integratedmachine/environment/occdb_list.vue

@@ -0,0 +1,52 @@
+<template>
+    职业列表
+
+    <div v-for="(item,index) in data_list.rows" @click="toDetail(item)">
+        {{item.name}}
+    </div>
+
+    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+                v-model:limit="queryParams.pageSize" @pagination="list"/>
+</template>
+
+<script setup>
+
+    import {occupationList} from '@/api/xjc-integratedmachine/occupation.js'
+
+    const router = useRouter()
+    const route = useRoute()
+    const total = ref(0)
+    const param = route.query
+
+
+    const queryParams = ref({
+        pageNum: 1,
+        pageSize: 10,
+        industryparent : param.industryparent
+    })
+
+    const data_list = ref({})
+
+    function list() {
+        occupationList(queryParams.value).then(resp =>{
+            data_list.value = resp.data_list
+            total.value = resp.data_list.total
+        })
+    }
+    function toDetail(item){
+        router.push({
+            path : '/xjc-integratedmachine/environment/occ_details_video',
+            query :{
+                id :  item.id
+            }
+        })
+    }
+
+    list()
+</script>
+
+<style scoped>
+
+
+
+</style>

+ 78 - 1
src/views/xjc-integratedmachine/environment/occdb_search_industry.vue

@@ -1,8 +1,85 @@
 <template>
-    职业库行业分类查询
+    职业信息查询
+
+    <el-card style="width:200px">
+        <div @click="changeTab('hyfl')">
+            <el-button @click="jumpTo('/xjc-integratedmachine/environment/occdb_search_industry_list')">点击查询</el-button>
+        </div>
+        <div @click="changeTab('hldm')">
+            霍兰德码查询
+            <el-button @click="jumpTo('/xjc-integratedmachine/environment/occdb_interestcode')">点击查询s</el-button>
+        </div>
+        <div @click="changeTab('gjz')">
+            关键字查询
+            <el-input v-model="form.name"></el-input>
+            <el-button @click="byKeyWord">关键字查询</el-button>
+
+            <el-table :data="data_list">
+                <el-table-column label="名称" align="center" key="name" prop="name"/>
+                <el-table-column label="详情">
+                    <template #default="scope">
+                        <el-tooltip content="详情>>" placement="top">
+                            <el-button link type="primary" icon="Edit" @click="toDetail(scope.row)"></el-button>
+                        </el-tooltip>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </div>
+    </el-card>
+
+    <div v-show="tab == 'hyfl'">
+        行业分类是把.............................
+    </div>
+    <div v-show="tab == 'hldm'">
+
+    </div>
+    <div v-show="tab == 'gjz'">
+
+    </div>
+
 </template>
 
 <script setup>
+    import {getOccupationByKeyword} from '@/api/xjc-integratedmachine/occupation.js'
+
+    const router = useRouter()
+    const route = useRoute()
+    const total = ref(0)
+    const param = route.query
+
+
+    const tab = ref("hyfl")
+
+    function changeTab(path) {
+        tab.value = path
+    }
+
+    function jumpTo(path) {
+        router.push({
+            path: path
+        })
+    }
+
+    const form = ref({
+        name: ''
+    })
+
+    const data_list = ref([])
+    function byKeyWord() {
+        getOccupationByKeyword(form.value).then(resp =>{
+            console.log("sss",resp)
+            data_list.value = resp.list
+        })
+    }
+
+    function toDetail(item){
+        router.push({
+            path : '/xjc-integratedmachine/environment/occ_details_video',
+            query :{
+                id :  item.id
+            }
+        })
+    }
 
 </script>
 

+ 46 - 0
src/views/xjc-integratedmachine/environment/occdb_search_industry_list.vue

@@ -0,0 +1,46 @@
+<template>
+    职业库行业分类列表
+    <div v-for="(item,index) in data_list.rows" @click="jumpToZY(item)">
+        {{item.name}}
+    </div>
+
+    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+                v-model:limit="queryParams.pageSize" @pagination="list"/>
+</template>
+
+<script setup>
+
+    import {categoryList1} from '@/api/xjc-integratedmachine/occupation.js'
+    const router = useRouter()
+    const data_list = ref([])
+    const total = ref(0)
+
+    const queryParams = ref({
+        pageNum: 1,
+        pageSize: 10,
+    })
+
+    function list() {
+        categoryList1(queryParams.value).then(resp =>{
+            data_list.value = resp.data_list
+            total.value = resp.data_list.total
+        })
+    }
+    function jumpToZY(item){
+        router.push({
+            path : '/xjc-integratedmachine/environment/occdb_list',
+            query:{
+                industryparent : item.oldid
+            }
+
+        })
+    }
+
+    list()
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 105 - 0
src/views/xjc-integratedmachine/environment/pro_details_video.vue

@@ -1,8 +1,113 @@
 <template>
     专业详情视频
+    <collectionComponent :collection="collection"></collectionComponent>
+<br>
+    <div>
+        专业代码:{{entity.code}},
+        学历层次:
+        <dict-tag :options="educationlevel" :value="entity.bkzk"/>
+        ,休学年限{{entity.years}},{{entity.degree}}
+    </div>
+    <br>
+    开设课程
+    <br>
+    <div>
+    {{entity.course}}
+    </div>
+    <br>
+    相近专业
+    <br>
+    <div v-for="(item,index) in similar_list">
+        {{item.name}}
+    </div>
+    <br>
+
+    <el-card style="width:80%;">
+        <div @click="changeTab('zyjd')">专业解读</div>
+        <div @click="changeTab('ksyx')">开设院校</div>
+        <div @click="changeTab('xkpg')">学科评估</div>
+        <div @click="changeTab('jyqj')">就业前景</div>
+        <div @click="changeTab('zysp')">专业视频</div>
+    </el-card>
+
+    <div v-show="tabIndex == 'zyjd'" v-html="entity.describe"></div>
+    <div v-show="tabIndex == 'ksyx'">
+        <div v-for="(item,index) in kaishe_list">
+            {{entity.name}}
+        </div>
+    </div>
+    <div v-show="tabIndex == 'xkpg'">
+        <div v-for="(item,index) in pinggu_list">
+            {{item.name}}
+        </div>
+    </div>
+    <div v-show="tabIndex == 'jyqj'" v-html="entity.employment">
+
+
+    </div>
+    <div v-show="tabIndex == 'zysp'">
+        <div ref="videoContainer" class="video-container">
+            <video ref="videoPlayer" id="playerId" class="video-js vjs-default-skin" controls preload="auto" :data-setup="{}">
+                <!-- 可以在这里插入source标签以指定你的视频源 -->
+                <source :src="entity.path" type="video/mp4">
+            </video>
+        </div>
+    </div>
+
 </template>
 
 <script setup>
+    import videojs from 'video.js';
+    import 'video.js/dist/video-js.css';
+    import collectionComponent from '@/views/xjc-integratedmachine/components/collection_component.vue'
+
+
+
+    const {proxy} = getCurrentInstance()
+    const {educationlevel} = proxy.useDict('educationlevel')
+
+
+    import {specialtyDetail} from '@/api/xjc-integratedmachine/specialty.js'
+
+    const router = useRouter()
+    const route = useRoute()
+    const tabIndex = ref("zyjd")
+    function changeTab(path) {
+        tabIndex.value = path
+        if(path == 'zysp'){
+            const player = videojs(playerId, {autoplay: true});
+            player.src(entity.value.path);
+            player.on("ended", () => {
+            })
+        }
+    }
+
+    const param = route.query
+
+    const collection = ref({
+        contentType : 2,
+        contentId :param.id
+    })
+
+
+    const entity = ref({})
+    const kaishe_list = ref([])
+    const pinggu_list = ref([])
+    const similar_list = ref([])
+
+    function detail() {
+        specialtyDetail({
+            id: param.id
+        }).then(resp => {
+            entity.value = resp.entity
+            kaishe_list.value = resp.kaishe_list
+            pinggu_list.value = resp.pinggu_list
+            similar_list.value = resp.similar_list
+        })
+    }
+
+    detail()
+
 
 </script>
 

+ 81 - 3
src/views/xjc-integratedmachine/environment/prodb_search_undergraduate.vue

@@ -1,11 +1,89 @@
 <template>
     专业库本科查询
+    <el-card style="width:200px">
+        <div @click="changeTab('bk')">
+            本科-学科门类
+        </div>
+        <div @click="changeTab('zk')">
+            专科-专业大类
+        </div>
+        <div @click="changeTab('gjz')">
+            关键字查询
+            <el-input v-model="form.name"></el-input>
+            <el-button @click="byKeyword">关键字查询</el-button>
+        </div>
+    </el-card>
+
+    <div v-show="tab == 'bk'">
+        <div v-for="(item,index) in specialtyEntity.bk_list" @click="toSpecialty1(item)">
+            {{item.name}}
+        </div>
+    </div>
+    <div v-show="tab == 'zk'">
+        <div v-for="(item,index) in specialtyEntity.zk_list" @click="toSpecialty1(item)">
+            {{item.name}}
+        </div>
+    </div>
+    <div v-show="tab == 'gjz'">
+        <div v-for="(item,index) in data_list" @click="toDetail(item)">
+            {{item.name}}
+        </div>
+    </div>
+
 </template>
 
-<script>
-    export default {
-        name: "prodb_search_undergraduate"
+<script setup>
+
+    const router = useRouter()
+    import {specialtyQuery, getSpecialtyByKeyword} from '@/api/xjc-integratedmachine/specialty.js'
+
+    const tab = ref("bk")
+
+    function changeTab(path) {
+        tab.value = path
+    }
+
+    const specialtyEntity = ref({})
+
+    function specialty() {
+        specialtyQuery().then(resp => {
+            specialtyEntity.value = resp
+        })
+    }
+
+    function toSpecialty1(item) {
+        router.push({
+            path: '/xjc-integratedmachine/environment/prodb_specialtylist1',
+            query: {
+                oldid: item.oldid
+            }
+        })
     }
+
+    function toDetail(item) {
+        router.push({
+            path: '/xjc-integratedmachine/environment/pro_details_video',
+            query: {
+                id: item.id
+            }
+        })
+    }
+
+
+    const form = ref({
+        name: null
+    })
+
+    const data_list = ref([])
+
+    function byKeyword() {
+        getSpecialtyByKeyword(form.value).then(resp => {
+            data_list.value = resp.list
+        })
+    }
+
+    specialty()
+
 </script>
 
 <style scoped>

+ 47 - 0
src/views/xjc-integratedmachine/environment/prodb_specialtylist1.vue

@@ -0,0 +1,47 @@
+<template>
+
+    <div v-for="(item,index) in data_rows" @click="toSpecialty2(item)">
+        {{item.name}}
+    </div>
+    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+                v-model:limit="queryParams.pageSize" @pagination="list1"/>
+</template>
+
+<script setup>
+
+    import {specialtyList1} from '@/api/xjc-integratedmachine/specialty.js'
+
+    const router = useRouter()
+    const route = useRoute()
+    const total = ref(0)
+    const param = route.query
+    const data_rows = ref([])
+
+    const queryParams = ref({
+        pageNum: 1,
+        pageSize: 10,
+        oldid: param.oldid
+    })
+
+    function list1() {
+        specialtyList1(queryParams.value).then(resp => {
+            data_rows.value = resp.data.rows
+            total.value = resp.data.total
+        })
+    }
+
+    function toSpecialty2(item) {
+        router.push({
+            path : '/xjc-integratedmachine/environment/prodb_specialtylist2',
+            query:{
+                oldid : item.oldid
+            }
+        })
+    }
+    list1()
+
+</script>
+
+<style scoped>
+
+</style>

+ 46 - 0
src/views/xjc-integratedmachine/environment/prodb_specialtylist2.vue

@@ -0,0 +1,46 @@
+<template>
+    <div v-for="(item,index) in data_rows" @click="toDetail(item)">
+        {{item.name}}
+    </div>
+    <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+                v-model:limit="queryParams.pageSize" @pagination="list2"/>
+</template>
+
+<script setup>
+
+    import {specialtyList2} from '@/api/xjc-integratedmachine/specialty.js'
+
+    const router = useRouter()
+    const route = useRoute()
+    const total = ref(0)
+    const param = route.query
+    const data_rows = ref([])
+
+    const queryParams = ref({
+        pageNum: 1,
+        pageSize: 10,
+        oldid: param.oldid
+    })
+
+    function list2() {
+        specialtyList2(queryParams.value).then(resp => {
+            data_rows.value = resp.data.rows
+            total.value = resp.data.total
+        })
+    }
+
+    function toDetail(item){
+        router.push({
+            path:'/xjc-integratedmachine/environment/pro_details_video',
+            query : {
+                id : item.id
+            }
+        })
+    }
+
+    list2()
+</script>
+
+<style scoped>
+
+</style>

+ 68 - 26
src/views/xjc-integratedmachine/environment/query_universitydb_conditions.vue

@@ -2,41 +2,65 @@
     高校库条件查询
 
     <el-card style="width:200px">
-        <div v-for="o in 4" :key="o" class="text item">
-            {{'列表内容 ' + o }}
+        <div @click="changeTab('tj')">
+            条件查询
+        </div>
+        <div @click="changeTab('gjz')">
+            关键字查询
         </div>
     </el-card>
 
-    <div @click="showAreaChooseHandler">院校属地::{{form.areaname}}</div>
-    <div @click="showEducationlevelHandler">学历层次:: {{form.educationlevelName}}</div>
-    <div @click="showCharacteristicHandler">特色::{{form.characteristicName}}</div>
-
 
+    <div v-show="tab == 'tj'">
+        <div @click="showAreaChooseHandler">院校属地::{{form.areaname}}</div>
+        <div @click="showEducationlevelHandler">学历层次:: {{form.educationlevelName}}</div>
+        <div @click="showCharacteristicHandler">特色::{{form.characteristicName}}</div>
+        <div>
+            <!--院校属地-->
+            <el-dialog v-model="showAreaChoose" width="600px" append-to-body>
+                <div v-for="dict in gk_province" :key="dict.value" @click="chooseArea(dict)">{{dict.label}}</div>
+            </el-dialog>
+        </div>
+        <div>
+            <!--学历层次-->
+            <el-dialog v-model="showEducationlevel" width="600px" append-to-body>
+                <div v-for="dict in educationlevel" :key="dict.value" @click="chooseEducationlevel(dict)">
+                    {{dict.label}}
+                </div>
+            </el-dialog>
+        </div>
+        <div>
+            <!--特色-->
+            <el-dialog v-model="showCharacteristic" width="600px" append-to-body>
+                <div v-for="dict in characteristic" :key="dict.value" @click="chooseCharacteristic(dict)">
+                    {{dict.label}}
+                </div>
+            </el-dialog>
+        </div>
 
-    <div>
-        <!--院校属地-->
-        <el-dialog v-model="showAreaChoose" width="600px" append-to-body>
-            <div v-for="dict in gk_province" :key="dict.value" @click="chooseArea(dict)">{{dict.label}}</div>
-        </el-dialog>
+        <el-button @click="search">开始查询</el-button>
     </div>
-    <div>
-        <!--学历层次-->
-        <el-dialog v-model="showEducationlevel" width="600px" append-to-body>
-            <div v-for="dict in educationlevel" :key="dict.value" @click="chooseEducationlevel(dict)">{{dict.label}}</div>
-        </el-dialog>
-    </div>
-    <div>
-        <!--特色-->
-        <el-dialog v-model="showCharacteristic" width="600px" append-to-body>
-            <div v-for="dict in characteristic" :key="dict.value" @click="chooseCharacteristic(dict)">{{dict.label}}</div>
-        </el-dialog>
+    <div v-show="tab == 'gjz'">
+        <el-input v-model="form.name"></el-input>
+        <el-button @click="byKeyword">关键字</el-button>
+        <div v-for="(item,index) in universityList">
+            <div @click="toDetail(item)">{{item.name}}</div>
+        </div>
     </div>
 
-    <el-button @click="search">开始查询</el-button>
 
 </template>
 
 <script setup>
+
+    import {getUniversityByKeyword} from '@/api/xjc-integratedmachine/university.js'
+
+    const tab = ref("tj")
+
+    function changeTab(path) {
+        tab.value = path
+    }
+
     const router = useRouter()
 
     const showAreaChoose = ref(false)
@@ -52,7 +76,8 @@
         educationlevel: null,
         educationlevelName: null,
         characteristic: null,
-        characteristicName : null
+        characteristicName: null,
+        name : null
     })
 
     function showAreaChooseHandler() {
@@ -87,8 +112,25 @@
 
     function search() {
         router.push({
-            path : '/xjc-integratedmachine/environment/university_list',
-            query : form.value
+            path: '/xjc-integratedmachine/environment/university_list',
+            query: form.value
+        })
+    }
+
+    const universityList = ref([])
+    function byKeyword() {
+        getUniversityByKeyword(form.value).then(resp => {
+            universityList.value = resp.list
+        })
+    }
+
+    function toDetail(row) {
+        router.push({
+            path : '/xjc-integratedmachine/environment/university_details_video',
+            query : {
+                id : row.id,
+                name : row.name,
+            }
         })
     }
     // function showAreaChooseHandler() {

+ 19 - 1
src/views/xjc-integratedmachine/environment/studyocc_information.vue

@@ -1,5 +1,23 @@
 <template>
-    学职资讯
+    学职资讯<br>
+    <div>
+        学科适合专业
+    </div>
+    <div>
+        学科评估报告
+    </div>
+    <div>
+高校排名
+    </div>
+    <div>
+高校人才基地
+    </div>
+    <div>
+生涯故事
+    </div>
+    <div>
+MYcos资讯
+    </div>
 </template>
 
 <script setup>

+ 11 - 7
src/views/xjc-integratedmachine/environment/university_details_video.vue

@@ -14,9 +14,7 @@
         通讯地址:{{entity.address}}
     </div>
 
-    <el-button @click="collection" v-if="collectionList.length == 0">收藏</el-button>
-    <el-button @click="cancle_collection" v-if="collectionList.length == 1">取消收藏</el-button>
-
+    <collectionComponent :collection="collection_data"></collectionComponent>
 
     <el-card style="width:80%;">
         <div style="display: flex;flex-direction: row;justify-content: space-between">
@@ -80,7 +78,7 @@
     </div>
     <div v-show="showIndex == 8">
         <div ref="videoContainer" class="video-container">
-            <video ref="videoPlayer" class="video-js vjs-default-skin" controls preload="auto" :data-setup="{}">
+            <video ref="videoPlayer" id="playerId" class="video-js vjs-default-skin" controls preload="auto" :data-setup="{}">
                 <!-- 可以在这里插入source标签以指定你的视频源 -->
                 <source :src="entity.path" type="video/mp4">
             </video>
@@ -111,13 +109,14 @@
         getPlanYearList,
         getScoreList,
         getPlanList,
-        addCollection,
-        getCollection,
-        removeCollection
     } from '@/api/xjc-integratedmachine/university.js'
     import videojs from 'video.js';
     import 'video.js/dist/video-js.css';
 
+    import collectionComponent from '@/views/xjc-integratedmachine/components/collection_component.vue'
+
+
+
     const showAreaChoose = ref(false)
     const showCategoryChoose = ref(false)
     const showGradeChoose = ref(false)
@@ -128,6 +127,11 @@
     const param = route.query
     const showIndex = ref(1)
 
+    const collection_data = ref({
+        contentType : 1,
+        contentId :param.id
+    })
+
     const grade = ref([])
 
     const {proxy} = getCurrentInstance()

+ 0 - 2
src/views/xjc-integratedmachine/environment/university_list.vue

@@ -54,14 +54,12 @@
 
     function getList() {
         universityList(proxy.addDateRange(queryParams.value)).then(resp => {
-            console.log("####",resp)
             tableData.value = resp.data.rows
             total.value = resp.data.total
         })
     }
 
     function handleDetail(row) {
-        console.log("%%%%%%%%%%%%%%%%",row)
         router.push({
             path : '/xjc-integratedmachine/environment/university_details_video',
             query : {