|
@@ -11,12 +11,12 @@
|
|
</div>
|
|
</div>
|
|
<div v-if="!oneShow" class="twoRight">
|
|
<div v-if="!oneShow" class="twoRight">
|
|
<div class="label" v-for="(item, index) in plateList.slice(0, 6)" :key="index">
|
|
<div class="label" v-for="(item, index) in plateList.slice(0, 6)" :key="index">
|
|
- {{ item.label }}
|
|
|
|
|
|
+ {{ item.title }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-else class="twoRight">
|
|
<div v-else class="twoRight">
|
|
<div class="label" v-for="(item, index) in plateList" :key="index">
|
|
<div class="label" v-for="(item, index) in plateList" :key="index">
|
|
- {{ item.label }}
|
|
|
|
|
|
+ {{ item.title }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="button">
|
|
<div class="button">
|
|
@@ -32,23 +32,13 @@
|
|
<div class="twoLeft">
|
|
<div class="twoLeft">
|
|
<span>技术领域</span>
|
|
<span>技术领域</span>
|
|
</div>
|
|
</div>
|
|
- <div class="twoRight">
|
|
|
|
- <div class="label" v-for="(item, index) in typeList" :key="index">
|
|
|
|
- {{ item.label }}
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="twoSeacher">
|
|
|
|
- <div class="twoLeft">
|
|
|
|
- <span>所在地</span>
|
|
|
|
- </div>
|
|
|
|
<div v-if="!twoShow" class="twoRight">
|
|
<div v-if="!twoShow" class="twoRight">
|
|
- <div class="label" v-for="(item, index) in cityList.slice(0, 15)" :key="index">
|
|
|
|
|
|
+ <div class="label" v-for="(item, index) in typeList.slice(0, 10)" :key="index">
|
|
{{ item.label }}
|
|
{{ item.label }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-else class="twoRight">
|
|
<div v-else class="twoRight">
|
|
- <div class="label" v-for="(item, index) in cityList" :key="index">
|
|
|
|
|
|
+ <div class="label" v-for="(item, index) in typeList" :key="index">
|
|
{{ item.label }}
|
|
{{ item.label }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -61,6 +51,23 @@
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="twoSeacher">
|
|
|
|
+ <div class="twoLeft">
|
|
|
|
+ <span>所在地</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="twoRight">
|
|
|
|
+ <div class="label" v-for="(item, index) in cityList" :key="index">
|
|
|
|
+ {{ item.name }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="two_ipunt">
|
|
|
|
+ <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="专家名称" />
|
|
|
|
+ <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
|
|
|
|
+ <a-input class="input" size="large" v-model:value="searchForm.direction" placeholder="研究方向" />
|
|
|
|
+ <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
|
|
|
|
+ <a-button class="button" size="large" type="primary">检索</a-button>
|
|
</div>
|
|
</div>
|
|
<div class="twoTwo">
|
|
<div class="twoTwo">
|
|
<div class="twoTable">
|
|
<div class="twoTable">
|
|
@@ -89,13 +96,17 @@
|
|
<script setup>
|
|
<script setup>
|
|
// 图片引入
|
|
// 图片引入
|
|
import lists from '/images/expert.png'
|
|
import lists from '/images/expert.png'
|
|
-import { getCity } from '@/utils/city'
|
|
|
|
|
|
+const $checkRes = inject('$checkRes')
|
|
import { UserStore } from '@/store/user'
|
|
import { UserStore } from '@/store/user'
|
|
const userStore = UserStore()
|
|
const userStore = UserStore()
|
|
const user = computed(() => userStore.user)
|
|
const user = computed(() => userStore.user)
|
|
// 接口
|
|
// 接口
|
|
-import { DictDataStore } from '@/store/api/system/dictData'
|
|
|
|
import { ExpertStore } from '@/store/api/user/expert'
|
|
import { ExpertStore } from '@/store/api/user/expert'
|
|
|
|
+import { RegionStore } from '@/store/api/system/region'
|
|
|
|
+import { SectorStore } from '@/store/api/platform/sector'
|
|
|
|
+import { DictDataStore } from '@/store/api/system/dictData'
|
|
|
|
+const regionStore = RegionStore()
|
|
|
|
+const sectorStore = SectorStore()
|
|
const store = ExpertStore()
|
|
const store = ExpertStore()
|
|
const dictDataStore = DictDataStore()
|
|
const dictDataStore = DictDataStore()
|
|
// 加载中
|
|
// 加载中
|
|
@@ -106,34 +117,8 @@ const router = useRouter()
|
|
const oneShow = ref(false)
|
|
const oneShow = ref(false)
|
|
const twoShow = ref(false)
|
|
const twoShow = ref(false)
|
|
const cityList = ref([])
|
|
const cityList = ref([])
|
|
-const typeList = ref([
|
|
|
|
- { label: '不限', value: '-1' },
|
|
|
|
- { label: '教育休闲', value: '0' },
|
|
|
|
- { label: '包装印刷', value: '1' },
|
|
|
|
- { label: '电气自动化', value: '2' },
|
|
|
|
- { label: '采矿冶金', value: '3' },
|
|
|
|
- { label: '航空航天', value: '4' },
|
|
|
|
- { label: '海洋开发', value: '5' },
|
|
|
|
- { label: '衣林牧业', value: '6' },
|
|
|
|
- { label: '医药与医疗', value: '7' },
|
|
|
|
- { label: '电子信息', value: '8' }
|
|
|
|
-])
|
|
|
|
-const plateList = ref([
|
|
|
|
- { label: '不限', value: '-1' },
|
|
|
|
- { label: '汽车电子及新型汽车零部件', value: '0' },
|
|
|
|
- { label: '精细化工及天然气化工', value: '1' },
|
|
|
|
- { label: '农产品加工及绿色食品', value: '2' },
|
|
|
|
- { label: '光电子及智能传感器', value: '3' },
|
|
|
|
- { label: '车规级芯片及功率半导体器件', value: '4' },
|
|
|
|
- { label: '新能源及动力电池', value: '5' },
|
|
|
|
- { label: '生物基新材料', value: '6' },
|
|
|
|
- { label: '人工智能及智能机器人', value: '7' },
|
|
|
|
- { label: '碳纤维及复合材料', value: '8' },
|
|
|
|
- { label: '遥感卫星及航天航空技术', value: '9' },
|
|
|
|
- { label: '精密仪器及先进装备', value: '10' },
|
|
|
|
- { label: '生物医药及先进医疗器械', value: '11' },
|
|
|
|
- { label: '生物制造', value: '12' }
|
|
|
|
-])
|
|
|
|
|
|
+const typeList = ref([])
|
|
|
|
+const plateList = ref([])
|
|
const column = ref([
|
|
const column = ref([
|
|
{ name: '序号', style: { width: '116px' }, key: 'key' },
|
|
{ name: '序号', style: { width: '116px' }, key: 'key' },
|
|
{ name: '名称', style: { width: '216px' }, key: 'name' },
|
|
{ name: '名称', style: { width: '216px' }, key: 'name' },
|
|
@@ -147,16 +132,28 @@ const list = ref([])
|
|
let skip = 0
|
|
let skip = 0
|
|
let limit = 15
|
|
let limit = 15
|
|
const total = ref(0)
|
|
const total = ref(0)
|
|
|
|
+// 搜索
|
|
|
|
+const searchForm = ref({})
|
|
// 请求
|
|
// 请求
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
loading.value = true
|
|
loading.value = true
|
|
- // 城市
|
|
|
|
- getCity().then((response) => (cityList.value = [{ label: '不限', value: '-1' }, ...response.address]))
|
|
|
|
await searchOther()
|
|
await searchOther()
|
|
await search({ skip, limit })
|
|
await search({ skip, limit })
|
|
loading.value = false
|
|
loading.value = false
|
|
})
|
|
})
|
|
-const searchOther = async () => {}
|
|
|
|
|
|
+const searchOther = async () => {
|
|
|
|
+ let result
|
|
|
|
+ // 技术领域
|
|
|
|
+ result = await dictDataStore.query({ code: 'field', is_use: '0' })
|
|
|
|
+ if ($checkRes(result)) typeList.value = result.data
|
|
|
|
+ typeList.value.unshift({ value: '-1', label: '不限' })
|
|
|
|
+ result = await regionStore.list({ level: 'city', parent_code: 22 })
|
|
|
|
+ if ($checkRes(result)) cityList.value = result.data
|
|
|
|
+ cityList.value.unshift({ code: '-1', name: '不限' })
|
|
|
|
+ result = await sectorStore.query({ is_use: '0' })
|
|
|
|
+ if ($checkRes(result)) plateList.value = result.data
|
|
|
|
+ plateList.value.unshift({ id: '-1', title: '不限' })
|
|
|
|
+}
|
|
const search = async (query = { skip, limit }) => {
|
|
const search = async (query = { skip, limit }) => {
|
|
skip = query.skip
|
|
skip = query.skip
|
|
limit = query.limit
|
|
limit = query.limit
|
|
@@ -252,6 +249,18 @@ const sizeChange = (limits) => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ .two_ipunt {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ margin: 10px 0;
|
|
|
|
+ .input {
|
|
|
|
+ margin: 0 5px 0 0;
|
|
|
|
+ }
|
|
|
|
+ .button {
|
|
|
|
+ margin: 0 0 0 5px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.twoTwo {
|
|
.twoTwo {
|
|
margin: 10px 0;
|
|
margin: 10px 0;
|
|
.twoTable {
|
|
.twoTable {
|