|
@@ -5,7 +5,7 @@
|
|
<el-col :span="24" class="one">
|
|
<el-col :span="24" class="one">
|
|
<div class="one_left">
|
|
<div class="one_left">
|
|
<span>收藏分类</span>
|
|
<span>收藏分类</span>
|
|
- <el-select v-model="searchForm.type" placeholder="请选择" style="width: 240px">
|
|
|
|
|
|
+ <el-select v-model="searchForm.type" placeholder="请选择" style="width: 240px" @change="search">
|
|
<el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.value" />
|
|
<el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.value" />
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
@@ -18,17 +18,17 @@
|
|
<template #empty>
|
|
<template #empty>
|
|
<el-empty description="暂无数据" />
|
|
<el-empty description="暂无数据" />
|
|
</template>
|
|
</template>
|
|
- <el-table-column prop="name" align="center" label="需求名称" />
|
|
|
|
- <el-table-column prop="created_time" align="center" label="发布时间" width="180" />
|
|
|
|
- <el-table-column prop="status" align="center" label="状态" width="180">
|
|
|
|
|
|
+ <el-table-column prop="source_name" align="center" label="名称" />
|
|
|
|
+ <el-table-column prop="created_time" align="center" label="收藏时间" width="180" />
|
|
|
|
+ <el-table-column prop="status" align="center" label="来源" width="180">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <div>{{ getDict(scope.row.status, 'status') }}</div>
|
|
|
|
|
|
+ <div>{{ getDict(scope.row.type, 'type') }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" label="操作" width="180">
|
|
<el-table-column align="center" label="操作" width="180">
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
- <el-link :underline="false" type="primary" size="mini" @click="toEdit(row)" style="margin-right: 10px">修改</el-link>
|
|
|
|
- <el-link :underline="false" type="danger" size="mini" @click="toDelete(row)"> 删除 </el-link>
|
|
|
|
|
|
+ <el-link :underline="false" type="primary" size="mini" @click="toView(row)" style="margin-right: 10px">查看</el-link>
|
|
|
|
+ <el-link :underline="false" type="danger" size="mini" @click="toDelete(row)"> 取消收藏 </el-link>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -48,9 +48,12 @@ 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)
|
|
|
|
+// 路由
|
|
|
|
+const router = useRouter()
|
|
|
|
+
|
|
// 接口
|
|
// 接口
|
|
-import { DemandStore } from '@/store/api/platform/demand'
|
|
|
|
-const store = DemandStore()
|
|
|
|
|
|
+import { CollectionStore } from '@/store/api/platform/collection'
|
|
|
|
+const store = CollectionStore()
|
|
import { DictDataStore } from '@/store/api/system/dictData'
|
|
import { DictDataStore } from '@/store/api/system/dictData'
|
|
const dictDataStore = DictDataStore()
|
|
const dictDataStore = DictDataStore()
|
|
// 加载中
|
|
// 加载中
|
|
@@ -63,15 +66,7 @@ const total = ref(0)
|
|
const currentPage = ref(1)
|
|
const currentPage = ref(1)
|
|
const searchForm = ref({})
|
|
const searchForm = ref({})
|
|
// 字典表
|
|
// 字典表
|
|
-const statusList = ref([])
|
|
|
|
-const typeList = ref([
|
|
|
|
- { value: '1', label: '全部' },
|
|
|
|
- { value: '2', label: '需求' },
|
|
|
|
- { value: '3', label: '成果' },
|
|
|
|
- { value: '4', label: '项目' },
|
|
|
|
- { value: '5', label: '专家' },
|
|
|
|
- { value: '5', label: '企业' }
|
|
|
|
-])
|
|
|
|
|
|
+const typeList = ref([])
|
|
// 请求
|
|
// 请求
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
loading.value = true
|
|
loading.value = true
|
|
@@ -80,34 +75,58 @@ onMounted(async () => {
|
|
loading.value = false
|
|
loading.value = false
|
|
})
|
|
})
|
|
const search = async (query = { skip, limit }) => {
|
|
const search = async (query = { skip, limit }) => {
|
|
- // skip = query.skip
|
|
|
|
- // limit = query.limit
|
|
|
|
- // const info = {
|
|
|
|
- // skip: query.skip,
|
|
|
|
- // limit: query.limit,
|
|
|
|
- // user: user.value.id,
|
|
|
|
- // ...searchForm.value
|
|
|
|
- // }
|
|
|
|
- // const res = await store.list(info)
|
|
|
|
- // if (res.errcode == '0') {
|
|
|
|
- // list.value = res.data
|
|
|
|
- // total.value = res.total
|
|
|
|
- // }
|
|
|
|
|
|
+ skip = query.skip
|
|
|
|
+ limit = query.limit
|
|
|
|
+ const info = {
|
|
|
|
+ skip: query.skip,
|
|
|
|
+ limit: query.limit,
|
|
|
|
+ user: user.value.id,
|
|
|
|
+ ...searchForm.value
|
|
|
|
+ }
|
|
|
|
+ const res = await store.list(info)
|
|
|
|
+ if (res.errcode == '0') {
|
|
|
|
+ list.value = res.data
|
|
|
|
+ total.value = res.total
|
|
|
|
+ }
|
|
}
|
|
}
|
|
const searchOther = async () => {
|
|
const searchOther = async () => {
|
|
let result
|
|
let result
|
|
- // 状态
|
|
|
|
- result = await dictDataStore.query({ code: 'examStatus', is_use: '0' })
|
|
|
|
- if ($checkRes(result)) statusList.value = result.data
|
|
|
|
|
|
+ // 类型
|
|
|
|
+ result = await dictDataStore.query({ code: 'collectType', is_use: '0' })
|
|
|
|
+ if ($checkRes(result)) typeList.value = result.data
|
|
}
|
|
}
|
|
// 字典数据转换
|
|
// 字典数据转换
|
|
const getDict = (data, model) => {
|
|
const getDict = (data, model) => {
|
|
if (data) {
|
|
if (data) {
|
|
let res
|
|
let res
|
|
- if (model == 'status') res = statusList.value.find((f) => f.value == data)
|
|
|
|
|
|
+ if (model == 'type') res = typeList.value.find((f) => f.value == data)
|
|
return get(res, 'label')
|
|
return get(res, 'label')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+// 查看
|
|
|
|
+const toView = (data) => {
|
|
|
|
+ if (data.type == 'achievement') router.push({ path: '/achievement/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'company') router.push({ path: '/company/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'demand') router.push({ path: '/demand/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'expert') router.push({ path: '/expert/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'match') router.push({ path: '/match/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'news') router.push({ path: '/news/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'footplate') router.push({ path: '/platform/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'project') router.push({ path: '/project/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'support') router.push({ path: '/service/detail', query: { id: data.source } })
|
|
|
|
+ if (data.type == 'supply') router.push({ path: '/supply/detail', query: { id: data.source } })
|
|
|
|
+}
|
|
|
|
+// 删除
|
|
|
|
+const toDelete = (data) => {
|
|
|
|
+ ElMessageBox.confirm(`您确认取消收藏?`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' })
|
|
|
|
+ .then(async () => {
|
|
|
|
+ const res = await store.del(data.id)
|
|
|
|
+ if ($checkRes(res, true)) {
|
|
|
|
+ search({ skip, limit })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(() => {})
|
|
|
|
+}
|
|
// 分页
|
|
// 分页
|
|
const changePage = (page = currentPage.value) => {
|
|
const changePage = (page = currentPage.value) => {
|
|
search({ skip: (page - 1) * limit, limit: limit })
|
|
search({ skip: (page - 1) * limit, limit: limit })
|