@@ -16,6 +16,7 @@ export const setOpenIApply = (data) => { | |||||
url: '/api/v1/tech/openi', | url: '/api/v1/tech/openi', | ||||
method: 'post', | method: 'post', | ||||
data: data, | data: data, | ||||
params: {}, | |||||
}); | }); | ||||
} | } | ||||
@@ -27,6 +28,7 @@ export const setNoOpenIApply = (data) => { | |||||
url: '/api/v1/tech/no_openi', | url: '/api/v1/tech/no_openi', | ||||
method: 'post', | method: 'post', | ||||
data: data, | data: data, | ||||
params: {}, | |||||
}); | }); | ||||
} | } | ||||
@@ -34,7 +36,7 @@ export const setNoOpenIApply = (data) => { | |||||
// 返回 [{id:用户ID,name:用户名字,rel_avatar_link:用户图像地址,short_name:用户短名称},...] | // 返回 [{id:用户ID,name:用户名字,rel_avatar_link:用户图像地址,short_name:用户短名称},...] | ||||
export const getCreateRepoUser = () => { | export const getCreateRepoUser = () => { | ||||
return service({ | return service({ | ||||
url: '/api/v1/create_repo/user', | |||||
url: '/api/v1/user/owners', | |||||
method: 'get', | method: 'get', | ||||
params: {}, | params: {}, | ||||
}); | }); | ||||
@@ -98,6 +100,7 @@ export const setTechAdminOperation = (data) => { | |||||
url: `/api/v1/tech/admin/action/${data.type}`, | url: `/api/v1/tech/admin/action/${data.type}`, | ||||
method: 'post', | method: 'post', | ||||
data: data.id, | data: data.id, | ||||
params: {}, | |||||
}); | }); | ||||
} | } | ||||
@@ -108,6 +111,7 @@ export const setTechImportExcel = () => { | |||||
url: `/api/v1/tech/basic`, | url: `/api/v1/tech/basic`, | ||||
method: 'post', | method: 'post', | ||||
data: {}, | data: {}, | ||||
params: {}, | |||||
}); | }); | ||||
} | } | ||||
@@ -119,6 +123,7 @@ export const setTechAdminAdd = (data) => { | |||||
url: '/api/v1/tech/admin_add', | url: '/api/v1/tech/admin_add', | ||||
method: 'post', | method: 'post', | ||||
data: data, | data: data, | ||||
params: {}, | |||||
}); | }); | ||||
} | } | ||||
@@ -104,7 +104,7 @@ export default { | |||||
}, | }, | ||||
}, | }, | ||||
beforeMount() { | beforeMount() { | ||||
this.getData(); | |||||
}, | }, | ||||
mounted() { | mounted() { | ||||
this.tableData = new Array(15).fill(0).map((item, index) => { | this.tableData = new Array(15).fill(0).map((item, index) => { | ||||
@@ -150,7 +150,6 @@ export default { | |||||
watch: { | watch: { | ||||
condition: { | condition: { | ||||
handler(newVal) { | handler(newVal) { | ||||
console.log('Filters:watch:condition', newVal); | |||||
this.conds.type_name = newVal.type_name || ''; | this.conds.type_name = newVal.type_name || ''; | ||||
this.conds.institution_name = newVal.institution_name || ''; | this.conds.institution_name = newVal.institution_name || ''; | ||||
this.conds.execute_year = newVal.execute_year || ''; | this.conds.execute_year = newVal.execute_year || ''; | ||||
@@ -169,31 +168,24 @@ export default { | |||||
} else if (this.type == 1) { | } else if (this.type == 1) { | ||||
this.mainData = this.list_repo; | this.mainData = this.list_repo; | ||||
} | } | ||||
const data = { | |||||
type_name: ['基础前沿', '应用示范研究', '重大共性关键技术', '其他', '基础前沿1', '基础前沿2', '基础前沿3', '基础前沿4', '基础前沿5'], | |||||
institution_name: ['北京大学', '北京工业大学', '北京航空航天大学', '北京交通大学', '清华大学'], | |||||
execute_year: ['2019', '2020', '2021', '2022', '2023'], | |||||
apply_year: ['2018', '2019', '2020', '2021', '2022'], | |||||
topic: ['数据库', '操作系统', '云计算', '大数据', '数据可视化', '其他'], | |||||
project_name: ['新一代神经网络模型', '小样本条件下的自适应机器学习理论', '面向复杂数据处理的新型神经网络模型'], | |||||
} | |||||
for (let i = 0, iLen = this.mainData.length; i < iLen; i++) { | |||||
const filterItem = this.mainData[i]; | |||||
const key = filterItem.key; | |||||
const max = filterItem.showMaxLen; | |||||
if (data[key]) { | |||||
filterItem.data = data[key]; | |||||
filterItem.showData = data[key].slice(0, max); | |||||
if (this.conds[key] && filterItem.showData.indexOf(this.conds[key]) < 0) { | |||||
filterItem.showData.push(this.conds[key]); | |||||
} | |||||
} | |||||
} | |||||
return; | |||||
getTechFilterInfo({ | getTechFilterInfo({ | ||||
type: this.type, | type: this.type, | ||||
}).then(res => { | }).then(res => { | ||||
console.log(res); | |||||
const data = res.data; | |||||
if (data) { | |||||
for (let i = 0, iLen = this.mainData.length; i < iLen; i++) { | |||||
const filterItem = this.mainData[i]; | |||||
const key = filterItem.key; | |||||
const max = filterItem.showMaxLen; | |||||
if (data[key]) { | |||||
filterItem.data = data[key].map(item => item.toString()); | |||||
filterItem.showData = filterItem.data.slice(0, max); | |||||
if (this.conds[key] && filterItem.showData.indexOf(this.conds[key]) < 0) { | |||||
filterItem.showData.push(this.conds[key]); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}).catch(err => { | }).catch(err => { | ||||
console.log(err); | console.log(err); | ||||
}); | }); | ||||
@@ -264,6 +256,8 @@ export default { | |||||
.filter-item-c { | .filter-item-c { | ||||
display: flex; | display: flex; | ||||
flex-wrap: wrap; | flex-wrap: wrap; | ||||
max-height: 605px; | |||||
overflow-y: auto; | |||||
.filter-item { | .filter-item { | ||||
border-radius: 3px; | border-radius: 3px; | ||||
@@ -2,26 +2,29 @@ | |||||
<div class="item"> | <div class="item"> | ||||
<div class="title-c"> | <div class="title-c"> | ||||
<div class="avatar-c"> | <div class="avatar-c"> | ||||
<img v-if="data.RelAvatarLink" class="avatar" :src="data.RelAvatarLink" /> | |||||
<img v-else class="avatar" :avatar="data.OwnerName" /> | |||||
<img v-if="data.rel_avatar_link" class="avatar" :src="data.rel_avatar_link" /> | |||||
<img v-else class="avatar" :avatar="data.owner_name" /> | |||||
</div> | </div> | ||||
<div class="title"> | <div class="title"> | ||||
<span>{{ data.Alias }}</span> | |||||
<a target="_blank" :href="`/${data.owner_name}/${data.name}`"> | |||||
<span :title="data.alias">{{ data.alias }}</span> | |||||
</a> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="descr"> | |||||
{{ data.Description }} | |||||
<div class="descr" :title="data.description"> | |||||
{{ data.description }} | |||||
</div> | </div> | ||||
<div class="topics"> | <div class="topics"> | ||||
<a v-for="(item, index) in data.Topics" :key="index" class="topic" | |||||
:href="`/explore/repos?q=&topic=${item.topic}&sort=hot`">{{ item }}</a> | |||||
<a v-for="(item, index) in data.topics" :key="index" class="topic" target="_blank" | |||||
:href="`/explore/repos?q=&topic=${item}&sort=hot`">{{ item }}</a> | |||||
</div> | </div> | ||||
<div class="footer"> | <div class="footer"> | ||||
<div class="contractor">鹏城实验室</div> | |||||
<div class="contractor" :title="data.institution.split(',').join('、')">{{ data.institution.split(',').join('、') }} | |||||
</div> | |||||
<div class="update-time"> | <div class="update-time"> | ||||
<span>{{ $t('repos.updated') }}</span> | <span>{{ $t('repos.updated') }}</span> | ||||
<el-tooltip effect="dark" :content="dateFormat(data.UpdatedUnix)" placement="top-start"> | |||||
<span>{{ calcFromNow(data.UpdatedUnix) }}</span> | |||||
<el-tooltip effect="dark" :content="dateFormat(data.updated_unix)" placement="top-start"> | |||||
<span>{{ calcFromNow(data.updated_unix) }}</span> | |||||
</el-tooltip> | </el-tooltip> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -40,9 +43,7 @@ export default { | |||||
}, | }, | ||||
components: {}, | components: {}, | ||||
data() { | data() { | ||||
return { | |||||
}; | |||||
return {}; | |||||
}, | }, | ||||
methods: { | methods: { | ||||
calcFromNow(unix) { | calcFromNow(unix) { | ||||
@@ -1,12 +1,19 @@ | |||||
<template> | <template> | ||||
<div class="list-container"> | <div class="list-container"> | ||||
<div class="list-item-container" style="min-height:540px;" v-loading="loading"> | |||||
<div class="item-container" v-for="(item, index) in list" :key="item.ID"> | |||||
<PrjResultsItem :data="item"></PrjResultsItem> | |||||
<div style="min-height:540px;"> | |||||
<div class="list-item-container" v-loading="loading"> | |||||
<div class="item-container" v-for="(item, index) in list" :key="item.ID"> | |||||
<PrjResultsItem :data="item"></PrjResultsItem> | |||||
</div> | |||||
</div> | |||||
<div v-show="(!list.length && !loading)" class="no-data"> | |||||
<div class="item-empty"> | |||||
<div class="item-empty-icon bgtask-header-pic"></div> | |||||
<div class="item-empty-tips">没有找到相关的项目</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div v-show="(!list.length && !loading)" class="no-data">{{ $t('repos.noReposfound') }}</div> | |||||
</div> | </div> | ||||
<div class="center"> | |||||
<div class="center" v-show="list.length"> | |||||
<el-pagination ref="paginationRef" background @current-change="currentChange" @size-change="sizeChange" | <el-pagination ref="paginationRef" background @current-change="currentChange" @size-change="sizeChange" | ||||
:current-page.sync="iPage" :page-sizes="iPageSizes" :page-size.sync="iPageSize" | :current-page.sync="iPage" :page-sizes="iPageSizes" :page-size.sync="iPageSize" | ||||
layout="total, sizes, prev, pager, next, jumper" :total="total"> | layout="total, sizes, prev, pager, next, jumper" :total="total"> | ||||
@@ -18,766 +25,18 @@ | |||||
<script> | <script> | ||||
import PrjResultsItem from './PrjResultsItem.vue'; | import PrjResultsItem from './PrjResultsItem.vue'; | ||||
import LetterAvatar from '~/utils/letteravatar'; | import LetterAvatar from '~/utils/letteravatar'; | ||||
import { getTechOpenISearch } from '~/apis/modules/tech'; | |||||
export default { | export default { | ||||
name: "PrjResultsList", | name: "PrjResultsList", | ||||
props: { | props: { | ||||
q: { type: String, default: '' }, | |||||
page: { type: Number, default: 1 }, | |||||
pageSize: { type: Number, default: 15 }, | |||||
pageSizes: { type: Array, default: () => [15, 30, 50] } | |||||
condition: { type: Object, default: () => ({}) }, | |||||
}, | }, | ||||
components: { PrjResultsItem }, | components: { PrjResultsItem }, | ||||
data() { | data() { | ||||
return { | return { | ||||
loading: false, | loading: false, | ||||
list: [ | |||||
{ | |||||
"ID": 4781, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "msadapter", | |||||
"Name": "MSAdapter", | |||||
"Alias": "MSAdapter", | |||||
"NumWatches": 3, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "MindSpore对PyTorch接口的支持工具", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1669691488, | |||||
"UpdatedUnix": 1670839285, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "/user/avatar/wjtest1207/-1?18", | |||||
"UserName": "wjtest1207", | |||||
"Email": "wjtest1207@163.com", | |||||
"CommitCnt": 1 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 501, | |||||
"OwnerID": 224, | |||||
"OwnerName": "OpenIOSSG", | |||||
"LowerName": "promote", | |||||
"Name": "promote", | |||||
"Alias": "promote", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1642470476, | |||||
"UpdatedUnix": 1670256276, | |||||
"PrimaryLanguage": { | |||||
"ID": 724, | |||||
"RepoID": 501, | |||||
"CommitID": "2fd3316bcf89250f80b0d1f6a05cb2c69fdb2845", | |||||
"IsPrimary": true, | |||||
"Language": "Markdown", | |||||
"Percentage": 100, | |||||
"Color": "#cccccc", | |||||
"CreatedUnix": 1642470477 | |||||
}, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 696, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "octopus", | |||||
"Name": "octopus", | |||||
"Alias": "octopus", | |||||
"NumWatches": 3, | |||||
"NumStars": 1, | |||||
"NumForks": 0, | |||||
"Description": "面向多计算场景的一站式融合计算平台", | |||||
"Topics": [ | |||||
"openi", | |||||
"deep-learning", | |||||
"golang" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647933529, | |||||
"UpdatedUnix": 1670899396, | |||||
"PrimaryLanguage": { | |||||
"ID": 1018, | |||||
"RepoID": 696, | |||||
"CommitID": "70699543cc3bf19f70ee7b126b27b752b0577469", | |||||
"IsPrimary": true, | |||||
"Language": "CSS", | |||||
"Percentage": 36.5, | |||||
"Color": "#563d7c", | |||||
"CreatedUnix": 1647933538 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/696-c9d9105eba8ad76589b65edff1588bc5", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "2522636547@qq.com", | |||||
"CommitCnt": 253 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "835952234@qq.com", | |||||
"CommitCnt": 203 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "linfj@pcl.ac.cn", | |||||
"CommitCnt": 174 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "hackmong@163.com", | |||||
"CommitCnt": 121 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "liaowsh@pcl.ac.cn", | |||||
"CommitCnt": 114 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "/user/avatar/liwei_test/-1?25", | |||||
"UserName": "liwei_test", | |||||
"Email": "liw03@pcl.ac.cn", | |||||
"CommitCnt": 88 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 697, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "paddle", | |||||
"Name": "Paddle", | |||||
"Alias": "Paddle", | |||||
"NumWatches": 3, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "PaddlePaddle (PArallel Distributed Deep LEarning) 是一个简单易用、高效灵活、可扩展的深度学习平台,最初由百度科学家和工程师共同开发,目的是将深度学习技术应用到百度的众多产品中。", | |||||
"Topics": [ | |||||
"ai开发工具", | |||||
"deep-learning" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647933857, | |||||
"UpdatedUnix": 1670838791, | |||||
"PrimaryLanguage": { | |||||
"ID": 1021, | |||||
"RepoID": 697, | |||||
"CommitID": "c46e661dfd4dca4ccb2d8bb83225d2dcb0bff52c", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 45.9, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1647933890 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/697-c50e829c78c6c3168605586c750887e4", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "yuyang18@baidu.com", | |||||
"CommitCnt": 2039 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "luotao02@baidu.com", | |||||
"CommitCnt": 1101 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "fengjiayi@baidu.com", | |||||
"CommitCnt": 864 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "qiaolongfei@baidu.com", | |||||
"CommitCnt": 1456 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "tangjian03@baidu.com", | |||||
"CommitCnt": 730 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "panxin.grad@gmail.com", | |||||
"CommitCnt": 678 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 702, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "tensorlayerx", | |||||
"Name": "TensorLayerX", | |||||
"Alias": "TensorLayerX", | |||||
"NumWatches": 3, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "TensorLayer3.0一款兼容多深度学习框架后端的深度学习库, 目前可以用TensorFlow、MindSpore、PaddlePaddle作为后端计算引擎。", | |||||
"Topics": [ | |||||
"openi-paper", | |||||
"pytorch", | |||||
"标签aaa", | |||||
"paddlepaddle", | |||||
"test-abcdefghijklmno测-试-123456", | |||||
"tensorflow", | |||||
"mindspore", | |||||
"高层次库", | |||||
"深度学习", | |||||
"支持多计算后端" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647935532, | |||||
"UpdatedUnix": 1671012469, | |||||
"PrimaryLanguage": { | |||||
"ID": 1039, | |||||
"RepoID": 702, | |||||
"CommitID": "6eafa9118008338521d3d085d70627b37ccba51d", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 99.6, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1647935549 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/702-a18a6669062a1a24aea776744c003f34", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "dhsig552@163.com", | |||||
"CommitCnt": 1598 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "luo.mai.cs@gmail.com", | |||||
"CommitCnt": 203 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "37874862+warshallrho@users.noreply.github.com", | |||||
"CommitCnt": 130 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "jingqing.zhang15@imperial.ac.uk", | |||||
"CommitCnt": 129 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "rundi_wu@pku.edu.cn", | |||||
"CommitCnt": 159 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "lg4869@outlook.com", | |||||
"CommitCnt": 67 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 4780, | |||||
"OwnerID": 218, | |||||
"OwnerName": "PCL-Platform.Intelligence", | |||||
"LowerName": "pcl_pangu", | |||||
"Name": "pcl_pangu", | |||||
"Alias": "pcl_pangu", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "鹏程·盘古SDK 上线!集成了鹏程·盘古alpha模型、增强版Evolution模型、多语言mPangu模型,欢迎测试和使用。希望鹏程·盘古模型的可持续学习与应用生态快速发展!", | |||||
"Topics": [ | |||||
"大模型" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1669691367, | |||||
"UpdatedUnix": 1670921009, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "/repo-avatars/4780-5b45386c19f3e34b4749e6dde7dc3181", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "/user/avatar/wjtest1207/-1?40", | |||||
"UserName": "wjtest1207", | |||||
"Email": "wjtest1207@163.com", | |||||
"CommitCnt": 1 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 4405, | |||||
"OwnerID": 585, | |||||
"OwnerName": "arXiv_Computation_and_Language_2019", | |||||
"LowerName": "paddlenlp", | |||||
"Name": "PaddleNLP", | |||||
"Alias": "PaddleNLP", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1667453897, | |||||
"UpdatedUnix": 1670256902, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 4127, | |||||
"OwnerID": 507, | |||||
"OwnerName": "international_conference_on_machine_learning", | |||||
"LowerName": "fairseq", | |||||
"Name": "fairseq", | |||||
"Alias": "fairseq", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1667442805, | |||||
"UpdatedUnix": 1670256623, | |||||
"PrimaryLanguage": { | |||||
"ID": 6206, | |||||
"RepoID": 4127, | |||||
"CommitID": "b8ac3fa6cc95f9dc97085232d4faf125e5bcd2e7", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 97.8, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1667443078 | |||||
}, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": true, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 2176, | |||||
"OwnerID": 536, | |||||
"OwnerName": "openi_paper", | |||||
"LowerName": "paddledetection", | |||||
"Name": "PaddleDetection", | |||||
"Alias": "PaddleDetection", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1666872337, | |||||
"UpdatedUnix": 1670257237, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 4619, | |||||
"OwnerID": 536, | |||||
"OwnerName": "openi_paper", | |||||
"LowerName": "fairseq", | |||||
"Name": "fairseq", | |||||
"Alias": "fairseq", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1667461670, | |||||
"UpdatedUnix": 1670256376, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 598, | |||||
"OwnerID": 251, | |||||
"OwnerName": "PCL_AutoML", | |||||
"LowerName": "xbbo", | |||||
"Name": "XBBO", | |||||
"Alias": "XBBO", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "超参搜索(黑盒优化)框架", | |||||
"Topics": [ | |||||
"openi-paper", | |||||
"自动机器学习", | |||||
"优化", | |||||
"超参搜索" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1645065667, | |||||
"UpdatedUnix": 1671012526, | |||||
"PrimaryLanguage": { | |||||
"ID": 842, | |||||
"RepoID": 598, | |||||
"CommitID": "bb089a69ce3541246a948c08bd37e31ab23e439c", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 98.7, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1645065672 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/598-5c870fdbde9a0457989616263b77c63c", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "isleizhang@outlook.com", | |||||
"CommitCnt": 103 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "mathcoder.zl@gmail.com", | |||||
"CommitCnt": 10 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 999, | |||||
"OwnerID": 431, | |||||
"OwnerName": "GAMMALab", | |||||
"LowerName": "openhgnn", | |||||
"Name": "OpenHGNN", | |||||
"Alias": "OpenHGNN", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 2, | |||||
"Description": "OpenHGNN是由北邮GAMMA Lab开发的基于PyTorch和DGL的开源异质图神经网络工具包。", | |||||
"Topics": [ | |||||
"openi-paper", | |||||
"pytorch", | |||||
"dgl", | |||||
"heterogeneous", | |||||
"异质图", | |||||
"gnn", | |||||
"图神经网络" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1659322878, | |||||
"UpdatedUnix": 1671012520, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "/user/avatar/wjtest001/-1?56", | |||||
"UserName": "wjtest001", | |||||
"Email": "towangjing@yeah.net", | |||||
"CommitCnt": 1 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 703, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "apulis-ai-platform", | |||||
"Name": "Apulis-AI-Platform", | |||||
"Alias": "Apulis-AI-Platform", | |||||
"NumWatches": 3, | |||||
"NumStars": 2, | |||||
"NumForks": 0, | |||||
"Description": "依瞳人工智能平台旨在为不同行业的用户提供基于深度学习的端到端解决方案,使用户可以用最快的速度、最少的时间开始高性能的深度学习工作,从而大幅节省研究成本、提高研发效率,同时可为中小企业解决私有云难建成、成本高等问题。 平台融合了Tensorflow、PyTorch、MindSpore等开源深度学习框架,提供了模型训练、超参调优、集群状态监控等开发环境,方便AI开发者快速搭建人工智能开发环境,开展AI开发应用。在监控模块基础上搭建预警模块,自动将平台异常通知管理员,提升平台的预警效率及安全性能。", | |||||
"Topics": [ | |||||
"ai开发工具", | |||||
"openi-paper" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647935724, | |||||
"UpdatedUnix": 1671012418, | |||||
"PrimaryLanguage": { | |||||
"ID": 1054, | |||||
"RepoID": 703, | |||||
"CommitID": "18a76ed026dfa5a1e71a74f3518e9ba6f830d77f", | |||||
"IsPrimary": true, | |||||
"Language": "JavaScript", | |||||
"Percentage": 57.4, | |||||
"Color": "#f1e05a", | |||||
"CreatedUnix": 1647935738 | |||||
}, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "869071540@qq.com", | |||||
"CommitCnt": 1103 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "jinlmsft@hotmail.com", | |||||
"CommitCnt": 745 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "hongzhi.li@microsoft.com", | |||||
"CommitCnt": 504 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "xjhan1995@gmail.com", | |||||
"CommitCnt": 399 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "hongzhili@users.noreply.github.com", | |||||
"CommitCnt": 377 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "xudifsd@gmail.com", | |||||
"CommitCnt": 251 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 695, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "cubeai", | |||||
"Name": "cubeai", | |||||
"Alias": "cubeai", | |||||
"NumWatches": 3, | |||||
"NumStars": 3, | |||||
"NumForks": 0, | |||||
"Description": "CubeAI智立方是中国联通研究院自主研发的集AI模型自动化服务封装、发布、共享、部署和能力开放等功能于一体的开源AI算能服务平台,其核心作用在于打通AI模型开发至实际生产应用之间的壁垒,加速AI创新和应用进程,促进AI应用从设计、开发直到部署、运营整个生命周期的自动化快速迭代和演进。", | |||||
"Topics": [ | |||||
"ai开发工具", | |||||
"openi", | |||||
"ai模型服务化", | |||||
"ai模型共享", | |||||
"ai模型部署", | |||||
"ai能力开放" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647933184, | |||||
"UpdatedUnix": 1670838880, | |||||
"PrimaryLanguage": { | |||||
"ID": 1006, | |||||
"RepoID": 695, | |||||
"CommitID": "09e1a0146612cff32fb01881707c831414494599", | |||||
"IsPrimary": true, | |||||
"Language": "Shell", | |||||
"Percentage": 96.8, | |||||
"Color": "#89e051", | |||||
"CreatedUnix": 1647933187 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/695-5d57aff010bceee7d1634ea64ca6a298", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "huolongshe@126.com", | |||||
"CommitCnt": 15 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 595, | |||||
"OwnerID": 251, | |||||
"OwnerName": "PCL_AutoML", | |||||
"LowerName": "xnas", | |||||
"Name": "XNAS", | |||||
"Alias": "XNAS", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "神经网络结构搜索框架", | |||||
"Topics": [ | |||||
"openi-paper", | |||||
"自动机器学习", | |||||
"automl", | |||||
"神经网络结构搜索" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1645065509, | |||||
"UpdatedUnix": 1671012496, | |||||
"PrimaryLanguage": { | |||||
"ID": 838, | |||||
"RepoID": 595, | |||||
"CommitID": "2c54ceb09b255cbcabd67f3c39fc777c4b2403f4", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 100, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1645065513 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/595-4284a9fbc95ba42b7753910d8fcd1828", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "zhengxiawu@126.com", | |||||
"CommitCnt": 262 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "sdut_snow@163.com", | |||||
"CommitCnt": 66 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "1004463561@qq.com", | |||||
"CommitCnt": 31 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "thrase@163.com", | |||||
"CommitCnt": 23 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "shaokunzhang529@gmail.com", | |||||
"CommitCnt": 24 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "51071696+WOODchen7@users.noreply.github.com", | |||||
"CommitCnt": 7 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
} | |||||
], | |||||
list: [], | |||||
iPageSizes: [15, 30, 50], | iPageSizes: [15, 30, 50], | ||||
iPageSize: 15, | iPageSize: 15, | ||||
iPage: 1, | iPage: 1, | ||||
@@ -786,58 +45,28 @@ export default { | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getListData() { | getListData() { | ||||
return; | |||||
this.loading = true; | this.loading = true; | ||||
getReposListData({ | |||||
q: this.q || '', | |||||
topic: this.topic || '', | |||||
sort: this.sort || 'mostpopular', | |||||
pageSize: this.iPageSize || 15, | |||||
page: this.iPage || 1, | |||||
getTechOpenISearch({ | |||||
name: this.condition.q, | |||||
tech_name: this.condition.project_name, | |||||
institution_name: this.condition.institution_name, | |||||
topic: this.condition.topic, | |||||
page: this.condition.page, | |||||
pageSize: this.condition.pageSize, | |||||
sort: this.condition.sort, | |||||
}).then(res => { | }).then(res => { | ||||
res = res.data; | res = res.data; | ||||
this.loading = false; | this.loading = false; | ||||
if (res.Code == 0) { | |||||
const list = res.Data.Repos || []; | |||||
this.list = list.map((item) => { | |||||
item.Contributors = (item.Contributors || []).map((_item) => { | |||||
return { | |||||
..._item, | |||||
bgColor: this.randomColor(_item.Email[0].toLocaleUpperCase()), | |||||
} | |||||
}); | |||||
const contributors = item.Contributors || []; | |||||
return { | |||||
...item, | |||||
NameShow: this.handlerSearchStr(item.Alias, this.q), | |||||
DescriptionShow: this.handlerSearchStr(item.Description, this.q), | |||||
TopicsShow: (item.Topics || []).map((_item) => { | |||||
return { | |||||
topic: _item, | |||||
topicShow: this.handlerSearchStr(_item, this.q) | |||||
} | |||||
}), | |||||
} | |||||
}); | |||||
this.total = res.Data.Total; | |||||
this.iPage = this.iPage; | |||||
this.iPageSize = this.iPageSize; | |||||
this.$nextTick(() => { | |||||
LetterAvatar.transform(); | |||||
}); | |||||
} else { | |||||
this.list = []; | |||||
this.total = 0; | |||||
this.iPage = this.iPage; | |||||
this.iPageSize = this.iPageSize; | |||||
} | |||||
this.total = res.total || 0; | |||||
this.list = res.data || []; | |||||
this.$nextTick(() => { | |||||
LetterAvatar.transform(); | |||||
}); | |||||
}).catch(err => { | }).catch(err => { | ||||
console.log(err); | console.log(err); | ||||
this.loading = false; | this.loading = false; | ||||
this.list = []; | this.list = []; | ||||
this.total = 0; | this.total = 0; | ||||
this.iPage = this.iPage; | |||||
this.iPageSize = this.iPageSize; | |||||
}); | }); | ||||
}, | }, | ||||
search() { | search() { | ||||
@@ -845,19 +74,30 @@ export default { | |||||
}, | }, | ||||
currentChange(page) { | currentChange(page) { | ||||
this.iPage = page; | this.iPage = page; | ||||
this.$emit('current-change', { | |||||
this.$emit('changeCondition', { | |||||
page: this.iPage, | page: this.iPage, | ||||
pageSize: this.iPageSize, | pageSize: this.iPageSize, | ||||
changePage: true, | |||||
}); | }); | ||||
}, | }, | ||||
sizeChange(pageSize) { | sizeChange(pageSize) { | ||||
this.iPageSize = pageSize; | this.iPageSize = pageSize; | ||||
this.$emit('size-change', { | |||||
this.$emit('changeCondition', { | |||||
page: this.iPage, | page: this.iPage, | ||||
pageSize: this.iPageSize, | pageSize: this.iPageSize, | ||||
}); | }); | ||||
}, | }, | ||||
}, | }, | ||||
watch: { | |||||
condition: { | |||||
handler(newVal) { | |||||
this.iPage = newVal.page; | |||||
this.iPageSize = newVal.pageSize; | |||||
}, | |||||
immediate: true, | |||||
deep: true, | |||||
}, | |||||
}, | |||||
mounted() { }, | mounted() { }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -880,9 +120,35 @@ export default { | |||||
} | } | ||||
.no-data { | .no-data { | ||||
height: 60px; | |||||
display: flex; | display: flex; | ||||
justify-content: center; | justify-content: center; | ||||
align-items: center; | align-items: center; | ||||
padding: 0 12px; | |||||
.item-empty { | |||||
height: 180px; | |||||
width: 100%; | |||||
padding: 12px; | |||||
border-color: rgb(232, 224, 236); | |||||
border-width: 1px; | |||||
border-style: solid; | |||||
box-shadow: rgba(168, 157, 226, 0.2) 0px 5px 10px 0px; | |||||
background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%221%22%20x1%3D%220%22%20x2%3D%221%22%20y1%3D%220%22%20y2%3D%220%22%20gradientTransform%3D%22matrix(-0.01900000000000005%2C%200.997%2C%20-0.06169646324801269%2C%20-0.01900000000000005%2C%200.995%2C%200.014)%22%3E%3Cstop%20stop-color%3D%22%23f2edf5%22%20stop-opacity%3D%221%22%20offset%3D%220.01%22%3E%3C%2Fstop%3E%3Cstop%20stop-color%3D%22%23ffffff%22%20stop-opacity%3D%221%22%20offset%3D%220.31%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url(%231)%22%3E%3C%2Frect%3E%3C%2Fsvg%3E"); | |||||
display: flex; | |||||
flex-direction: column; | |||||
justify-content: center; | |||||
.item-empty-icon { | |||||
height: 80px; | |||||
width: 100%; | |||||
} | |||||
.item-empty-tips { | |||||
font-size: 16px; | |||||
color: rgb(16, 16, 16); | |||||
text-align: center; | |||||
margin-top: 2px; | |||||
} | |||||
} | |||||
} | } | ||||
</style> | </style> |
@@ -2,11 +2,11 @@ | |||||
<div class="item"> | <div class="item"> | ||||
<div class="header"> | <div class="header"> | ||||
<div class="header-l"> | <div class="header-l"> | ||||
<div class="title">小样本条件下的自适应机器学习理论与模型研究</div> | |||||
<div class="prj-type">应用示范研究</div> | |||||
<div class="title" :title="data.project_name">{{ data.project_name }}</div> | |||||
<div class="prj-type">{{ data.type }}</div> | |||||
</div> | </div> | ||||
<div class="header-r"> | <div class="header-r"> | ||||
<a href=""> | |||||
<a :href="`/tech/repo_view?project_name=${data.project_name}`"> | |||||
<span>更多成果</span> | <span>更多成果</span> | ||||
<i class="el-icon-arrow-right"></i> | <i class="el-icon-arrow-right"></i> | ||||
</a> | </a> | ||||
@@ -16,42 +16,49 @@ | |||||
<div class="item-l-c"> | <div class="item-l-c"> | ||||
<div class="row"> | <div class="row"> | ||||
<span class="tit">负责单位:</span> | <span class="tit">负责单位:</span> | ||||
<span class="val">鹏城实验室</span> | |||||
<span class="val" :title="data.institution">{{ data.institution }}</span> | |||||
</div> | </div> | ||||
<div class="row"> | <div class="row"> | ||||
<span class="tit">参与单位:</span> | <span class="tit">参与单位:</span> | ||||
<span class="val">大连理工大学、北京理工大学、北京理工大学、北京理工大学、北京理工大学、北京理工大学</span> | |||||
<span class="val" :title="data.all_institution.split(',').join('、')">{{ | |||||
data.all_institution.split(',').join('、') | |||||
}}</span> | |||||
</div> | </div> | ||||
<div class="row"> | <div class="row"> | ||||
<span class="tit">申报年份:</span> | <span class="tit">申报年份:</span> | ||||
<span class="val">2018</span> | |||||
<span class="val">{{ data.apply_year }}</span> | |||||
</div> | </div> | ||||
<div class="row"> | <div class="row"> | ||||
<span class="tit">执行周期:</span> | <span class="tit">执行周期:</span> | ||||
<span class="val">2019 - 2023</span> | |||||
<span class="val">{{ data.execute_period }}</span> | |||||
</div> | </div> | ||||
<div class="row"> | <div class="row"> | ||||
<span class="tit">项目成果数:</span> | <span class="tit">项目成果数:</span> | ||||
<span class="val">10</span> | |||||
<span class="val">{{ data.repo_numer }}</span> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="item-r-c"> | <div class="item-r-c"> | ||||
<a class="repo-item-c" href="javascript:;" v-for="(item, index) in [1, 2]"> | |||||
<a class="repo-item-c" target="_blank" :href="`/${item.owner_name}/${item.name}`" | |||||
v-for="(item, index) in data.Repos"> | |||||
<div class="repo-item"> | <div class="repo-item"> | ||||
<div class="repo-hd"> | <div class="repo-hd"> | ||||
<div class="repo-avatar"> | <div class="repo-avatar"> | ||||
<img v-if="data.RelAvatarLink" class="avatar" :src="data.RelAvatarLink" /> | |||||
<img v-else class="avatar" :avatar="data.OwnerName" /> | |||||
<img v-if="data.rel_avatar_link" class="avatar" :src="data.rel_avatar_link" /> | |||||
<img v-else class="avatar" :avatar="item.owner_name" /> | |||||
</div> | </div> | ||||
<div class="repo-tit">面向服务的群智化生态化软件开发支撑平台(aiforge)</div> | |||||
<div class="repo-tit">{{ item.alias }}</div> | |||||
</div> | </div> | ||||
<div class="repo-content"> | <div class="repo-content"> | ||||
<div class="repo-descr"> | <div class="repo-descr"> | ||||
本项目是群体化方法与技术的开源实现案例,在基于Gitea的基础上,进一步支持社交化的协同开发、协同学习、协同研究等群体创新实践服务,特别是针对新一代人工智能技术特点,重点支持项目管理、git代码管理、大数据集存储管理与智能计算平台接入。 | |||||
{{ item.description }} | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</a> | </a> | ||||
<div class="repo-item-c" v-if="!data.Repos.length"> | |||||
<div class="bgtask-header-pic" style="margin-top:-20px;"></div> | |||||
<div class="repo-item" style="text-align:center;">项目成果待展示</div> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -4,9 +4,14 @@ | |||||
<div class="item-container" v-for="(item, index) in list" :key="item.ID"> | <div class="item-container" v-for="(item, index) in list" :key="item.ID"> | ||||
<SciAndTechPrjItem :data="item"></SciAndTechPrjItem> | <SciAndTechPrjItem :data="item"></SciAndTechPrjItem> | ||||
</div> | </div> | ||||
<div v-show="(!list.length && !loading)" class="no-data">{{ $t('repos.noReposfound') }}</div> | |||||
<div v-show="(!list.length && !loading)" class="no-data"> | |||||
<div class="item-empty"> | |||||
<div class="item-empty-icon bgtask-header-pic"></div> | |||||
<div class="item-empty-tips">没有找到相关的科技项目</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="center"> | |||||
<div class="center" v-show="list.length"> | |||||
<el-pagination ref="paginationRef" background @current-change="currentChange" @size-change="sizeChange" | <el-pagination ref="paginationRef" background @current-change="currentChange" @size-change="sizeChange" | ||||
:current-page.sync="iPage" :page-sizes="iPageSizes" :page-size.sync="iPageSize" | :current-page.sync="iPage" :page-sizes="iPageSizes" :page-size.sync="iPageSize" | ||||
layout="total, sizes, prev, pager, next, jumper" :total="total"> | layout="total, sizes, prev, pager, next, jumper" :total="total"> | ||||
@@ -18,766 +23,18 @@ | |||||
<script> | <script> | ||||
import SciAndTechPrjItem from './SciAndTechPrjItem.vue'; | import SciAndTechPrjItem from './SciAndTechPrjItem.vue'; | ||||
import LetterAvatar from '~/utils/letteravatar'; | import LetterAvatar from '~/utils/letteravatar'; | ||||
import { getTechSearch } from '~/apis/modules/tech'; | |||||
export default { | export default { | ||||
name: "SciAndTechPrjList", | name: "SciAndTechPrjList", | ||||
props: { | props: { | ||||
q: { type: String, default: '' }, | |||||
page: { type: Number, default: 1 }, | |||||
pageSize: { type: Number, default: 15 }, | |||||
pageSizes: { type: Array, default: () => [15, 30, 50] } | |||||
condition: { type: Object, default: () => ({}) }, | |||||
}, | }, | ||||
components: { SciAndTechPrjItem }, | components: { SciAndTechPrjItem }, | ||||
data() { | data() { | ||||
return { | return { | ||||
loading: false, | loading: false, | ||||
list: [ | |||||
{ | |||||
"ID": 4781, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "msadapter", | |||||
"Name": "MSAdapter", | |||||
"Alias": "MSAdapter", | |||||
"NumWatches": 3, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "MindSpore对PyTorch接口的支持工具", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1669691488, | |||||
"UpdatedUnix": 1670839285, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "/user/avatar/wjtest1207/-1?18", | |||||
"UserName": "wjtest1207", | |||||
"Email": "wjtest1207@163.com", | |||||
"CommitCnt": 1 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 501, | |||||
"OwnerID": 224, | |||||
"OwnerName": "OpenIOSSG", | |||||
"LowerName": "promote", | |||||
"Name": "promote", | |||||
"Alias": "promote", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1642470476, | |||||
"UpdatedUnix": 1670256276, | |||||
"PrimaryLanguage": { | |||||
"ID": 724, | |||||
"RepoID": 501, | |||||
"CommitID": "2fd3316bcf89250f80b0d1f6a05cb2c69fdb2845", | |||||
"IsPrimary": true, | |||||
"Language": "Markdown", | |||||
"Percentage": 100, | |||||
"Color": "#cccccc", | |||||
"CreatedUnix": 1642470477 | |||||
}, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 696, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "octopus", | |||||
"Name": "octopus", | |||||
"Alias": "octopus", | |||||
"NumWatches": 3, | |||||
"NumStars": 1, | |||||
"NumForks": 0, | |||||
"Description": "面向多计算场景的一站式融合计算平台", | |||||
"Topics": [ | |||||
"openi", | |||||
"deep-learning", | |||||
"golang" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647933529, | |||||
"UpdatedUnix": 1670899396, | |||||
"PrimaryLanguage": { | |||||
"ID": 1018, | |||||
"RepoID": 696, | |||||
"CommitID": "70699543cc3bf19f70ee7b126b27b752b0577469", | |||||
"IsPrimary": true, | |||||
"Language": "CSS", | |||||
"Percentage": 36.5, | |||||
"Color": "#563d7c", | |||||
"CreatedUnix": 1647933538 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/696-c9d9105eba8ad76589b65edff1588bc5", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "2522636547@qq.com", | |||||
"CommitCnt": 253 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "835952234@qq.com", | |||||
"CommitCnt": 203 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "linfj@pcl.ac.cn", | |||||
"CommitCnt": 174 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "hackmong@163.com", | |||||
"CommitCnt": 121 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "liaowsh@pcl.ac.cn", | |||||
"CommitCnt": 114 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "/user/avatar/liwei_test/-1?25", | |||||
"UserName": "liwei_test", | |||||
"Email": "liw03@pcl.ac.cn", | |||||
"CommitCnt": 88 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 697, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "paddle", | |||||
"Name": "Paddle", | |||||
"Alias": "Paddle", | |||||
"NumWatches": 3, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "PaddlePaddle (PArallel Distributed Deep LEarning) 是一个简单易用、高效灵活、可扩展的深度学习平台,最初由百度科学家和工程师共同开发,目的是将深度学习技术应用到百度的众多产品中。", | |||||
"Topics": [ | |||||
"ai开发工具", | |||||
"deep-learning" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647933857, | |||||
"UpdatedUnix": 1670838791, | |||||
"PrimaryLanguage": { | |||||
"ID": 1021, | |||||
"RepoID": 697, | |||||
"CommitID": "c46e661dfd4dca4ccb2d8bb83225d2dcb0bff52c", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 45.9, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1647933890 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/697-c50e829c78c6c3168605586c750887e4", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "yuyang18@baidu.com", | |||||
"CommitCnt": 2039 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "luotao02@baidu.com", | |||||
"CommitCnt": 1101 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "fengjiayi@baidu.com", | |||||
"CommitCnt": 864 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "qiaolongfei@baidu.com", | |||||
"CommitCnt": 1456 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "tangjian03@baidu.com", | |||||
"CommitCnt": 730 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "panxin.grad@gmail.com", | |||||
"CommitCnt": 678 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 702, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "tensorlayerx", | |||||
"Name": "TensorLayerX", | |||||
"Alias": "TensorLayerX", | |||||
"NumWatches": 3, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "TensorLayer3.0一款兼容多深度学习框架后端的深度学习库, 目前可以用TensorFlow、MindSpore、PaddlePaddle作为后端计算引擎。", | |||||
"Topics": [ | |||||
"openi-paper", | |||||
"pytorch", | |||||
"标签aaa", | |||||
"paddlepaddle", | |||||
"test-abcdefghijklmno测-试-123456", | |||||
"tensorflow", | |||||
"mindspore", | |||||
"高层次库", | |||||
"深度学习", | |||||
"支持多计算后端" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647935532, | |||||
"UpdatedUnix": 1671012469, | |||||
"PrimaryLanguage": { | |||||
"ID": 1039, | |||||
"RepoID": 702, | |||||
"CommitID": "6eafa9118008338521d3d085d70627b37ccba51d", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 99.6, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1647935549 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/702-a18a6669062a1a24aea776744c003f34", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "dhsig552@163.com", | |||||
"CommitCnt": 1598 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "luo.mai.cs@gmail.com", | |||||
"CommitCnt": 203 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "37874862+warshallrho@users.noreply.github.com", | |||||
"CommitCnt": 130 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "jingqing.zhang15@imperial.ac.uk", | |||||
"CommitCnt": 129 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "rundi_wu@pku.edu.cn", | |||||
"CommitCnt": 159 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "lg4869@outlook.com", | |||||
"CommitCnt": 67 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 4780, | |||||
"OwnerID": 218, | |||||
"OwnerName": "PCL-Platform.Intelligence", | |||||
"LowerName": "pcl_pangu", | |||||
"Name": "pcl_pangu", | |||||
"Alias": "pcl_pangu", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "鹏程·盘古SDK 上线!集成了鹏程·盘古alpha模型、增强版Evolution模型、多语言mPangu模型,欢迎测试和使用。希望鹏程·盘古模型的可持续学习与应用生态快速发展!", | |||||
"Topics": [ | |||||
"大模型" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1669691367, | |||||
"UpdatedUnix": 1670921009, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "/repo-avatars/4780-5b45386c19f3e34b4749e6dde7dc3181", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "/user/avatar/wjtest1207/-1?40", | |||||
"UserName": "wjtest1207", | |||||
"Email": "wjtest1207@163.com", | |||||
"CommitCnt": 1 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 4405, | |||||
"OwnerID": 585, | |||||
"OwnerName": "arXiv_Computation_and_Language_2019", | |||||
"LowerName": "paddlenlp", | |||||
"Name": "PaddleNLP", | |||||
"Alias": "PaddleNLP", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1667453897, | |||||
"UpdatedUnix": 1670256902, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 4127, | |||||
"OwnerID": 507, | |||||
"OwnerName": "international_conference_on_machine_learning", | |||||
"LowerName": "fairseq", | |||||
"Name": "fairseq", | |||||
"Alias": "fairseq", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1667442805, | |||||
"UpdatedUnix": 1670256623, | |||||
"PrimaryLanguage": { | |||||
"ID": 6206, | |||||
"RepoID": 4127, | |||||
"CommitID": "b8ac3fa6cc95f9dc97085232d4faf125e5bcd2e7", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 97.8, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1667443078 | |||||
}, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": true, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 2176, | |||||
"OwnerID": 536, | |||||
"OwnerName": "openi_paper", | |||||
"LowerName": "paddledetection", | |||||
"Name": "PaddleDetection", | |||||
"Alias": "PaddleDetection", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1666872337, | |||||
"UpdatedUnix": 1670257237, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 4619, | |||||
"OwnerID": 536, | |||||
"OwnerName": "openi_paper", | |||||
"LowerName": "fairseq", | |||||
"Name": "fairseq", | |||||
"Alias": "fairseq", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "", | |||||
"Topics": null, | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1667461670, | |||||
"UpdatedUnix": 1670256376, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 598, | |||||
"OwnerID": 251, | |||||
"OwnerName": "PCL_AutoML", | |||||
"LowerName": "xbbo", | |||||
"Name": "XBBO", | |||||
"Alias": "XBBO", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "超参搜索(黑盒优化)框架", | |||||
"Topics": [ | |||||
"openi-paper", | |||||
"自动机器学习", | |||||
"优化", | |||||
"超参搜索" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1645065667, | |||||
"UpdatedUnix": 1671012526, | |||||
"PrimaryLanguage": { | |||||
"ID": 842, | |||||
"RepoID": 598, | |||||
"CommitID": "bb089a69ce3541246a948c08bd37e31ab23e439c", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 98.7, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1645065672 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/598-5c870fdbde9a0457989616263b77c63c", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "isleizhang@outlook.com", | |||||
"CommitCnt": 103 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "mathcoder.zl@gmail.com", | |||||
"CommitCnt": 10 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 999, | |||||
"OwnerID": 431, | |||||
"OwnerName": "GAMMALab", | |||||
"LowerName": "openhgnn", | |||||
"Name": "OpenHGNN", | |||||
"Alias": "OpenHGNN", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 2, | |||||
"Description": "OpenHGNN是由北邮GAMMA Lab开发的基于PyTorch和DGL的开源异质图神经网络工具包。", | |||||
"Topics": [ | |||||
"openi-paper", | |||||
"pytorch", | |||||
"dgl", | |||||
"heterogeneous", | |||||
"异质图", | |||||
"gnn", | |||||
"图神经网络" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1659322878, | |||||
"UpdatedUnix": 1671012520, | |||||
"PrimaryLanguage": null, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "/user/avatar/wjtest001/-1?56", | |||||
"UserName": "wjtest001", | |||||
"Email": "towangjing@yeah.net", | |||||
"CommitCnt": 1 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 703, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "apulis-ai-platform", | |||||
"Name": "Apulis-AI-Platform", | |||||
"Alias": "Apulis-AI-Platform", | |||||
"NumWatches": 3, | |||||
"NumStars": 2, | |||||
"NumForks": 0, | |||||
"Description": "依瞳人工智能平台旨在为不同行业的用户提供基于深度学习的端到端解决方案,使用户可以用最快的速度、最少的时间开始高性能的深度学习工作,从而大幅节省研究成本、提高研发效率,同时可为中小企业解决私有云难建成、成本高等问题。 平台融合了Tensorflow、PyTorch、MindSpore等开源深度学习框架,提供了模型训练、超参调优、集群状态监控等开发环境,方便AI开发者快速搭建人工智能开发环境,开展AI开发应用。在监控模块基础上搭建预警模块,自动将平台异常通知管理员,提升平台的预警效率及安全性能。", | |||||
"Topics": [ | |||||
"ai开发工具", | |||||
"openi-paper" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647935724, | |||||
"UpdatedUnix": 1671012418, | |||||
"PrimaryLanguage": { | |||||
"ID": 1054, | |||||
"RepoID": 703, | |||||
"CommitID": "18a76ed026dfa5a1e71a74f3518e9ba6f830d77f", | |||||
"IsPrimary": true, | |||||
"Language": "JavaScript", | |||||
"Percentage": 57.4, | |||||
"Color": "#f1e05a", | |||||
"CreatedUnix": 1647935738 | |||||
}, | |||||
"RelAvatarLink": "", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "869071540@qq.com", | |||||
"CommitCnt": 1103 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "jinlmsft@hotmail.com", | |||||
"CommitCnt": 745 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "hongzhi.li@microsoft.com", | |||||
"CommitCnt": 504 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "xjhan1995@gmail.com", | |||||
"CommitCnt": 399 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "hongzhili@users.noreply.github.com", | |||||
"CommitCnt": 377 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "xudifsd@gmail.com", | |||||
"CommitCnt": 251 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 695, | |||||
"OwnerID": 679, | |||||
"OwnerName": "OpenI", | |||||
"LowerName": "cubeai", | |||||
"Name": "cubeai", | |||||
"Alias": "cubeai", | |||||
"NumWatches": 3, | |||||
"NumStars": 3, | |||||
"NumForks": 0, | |||||
"Description": "CubeAI智立方是中国联通研究院自主研发的集AI模型自动化服务封装、发布、共享、部署和能力开放等功能于一体的开源AI算能服务平台,其核心作用在于打通AI模型开发至实际生产应用之间的壁垒,加速AI创新和应用进程,促进AI应用从设计、开发直到部署、运营整个生命周期的自动化快速迭代和演进。", | |||||
"Topics": [ | |||||
"ai开发工具", | |||||
"openi", | |||||
"ai模型服务化", | |||||
"ai模型共享", | |||||
"ai模型部署", | |||||
"ai能力开放" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1647933184, | |||||
"UpdatedUnix": 1670838880, | |||||
"PrimaryLanguage": { | |||||
"ID": 1006, | |||||
"RepoID": 695, | |||||
"CommitID": "09e1a0146612cff32fb01881707c831414494599", | |||||
"IsPrimary": true, | |||||
"Language": "Shell", | |||||
"Percentage": 96.8, | |||||
"Color": "#89e051", | |||||
"CreatedUnix": 1647933187 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/695-5d57aff010bceee7d1634ea64ca6a298", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "huolongshe@126.com", | |||||
"CommitCnt": 15 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
}, | |||||
{ | |||||
"ID": 595, | |||||
"OwnerID": 251, | |||||
"OwnerName": "PCL_AutoML", | |||||
"LowerName": "xnas", | |||||
"Name": "XNAS", | |||||
"Alias": "XNAS", | |||||
"NumWatches": 1, | |||||
"NumStars": 0, | |||||
"NumForks": 0, | |||||
"Description": "神经网络结构搜索框架", | |||||
"Topics": [ | |||||
"openi-paper", | |||||
"自动机器学习", | |||||
"automl", | |||||
"神经网络结构搜索" | |||||
], | |||||
"AiTaskCnt": 0, | |||||
"ModelCnt": 0, | |||||
"DatasetCnt": 0, | |||||
"CreatedUnix": 1645065509, | |||||
"UpdatedUnix": 1671012496, | |||||
"PrimaryLanguage": { | |||||
"ID": 838, | |||||
"RepoID": 595, | |||||
"CommitID": "2c54ceb09b255cbcabd67f3c39fc777c4b2403f4", | |||||
"IsPrimary": true, | |||||
"Language": "Python", | |||||
"Percentage": 100, | |||||
"Color": "#3572A5", | |||||
"CreatedUnix": 1645065513 | |||||
}, | |||||
"RelAvatarLink": "/repo-avatars/595-4284a9fbc95ba42b7753910d8fcd1828", | |||||
"Contributors": [ | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "zhengxiawu@126.com", | |||||
"CommitCnt": 262 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "sdut_snow@163.com", | |||||
"CommitCnt": 66 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "1004463561@qq.com", | |||||
"CommitCnt": 31 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "thrase@163.com", | |||||
"CommitCnt": 23 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "shaokunzhang529@gmail.com", | |||||
"CommitCnt": 24 | |||||
}, | |||||
{ | |||||
"RelAvatarLink": "", | |||||
"UserName": "", | |||||
"Email": "51071696+WOODchen7@users.noreply.github.com", | |||||
"CommitCnt": 7 | |||||
} | |||||
], | |||||
"IsPrivate": false, | |||||
"IsFork": false, | |||||
"IsMirror": false, | |||||
"IsOwnerPrivate": false, | |||||
"IsArchived": false | |||||
} | |||||
], | |||||
list: [], | |||||
iPageSizes: [15, 30, 50], | iPageSizes: [15, 30, 50], | ||||
iPageSize: 15, | iPageSize: 15, | ||||
iPage: 1, | iPage: 1, | ||||
@@ -786,58 +43,29 @@ export default { | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getListData() { | getListData() { | ||||
return; | |||||
this.loading = true; | this.loading = true; | ||||
getReposListData({ | |||||
q: this.q || '', | |||||
topic: this.topic || '', | |||||
sort: this.sort || 'mostpopular', | |||||
pageSize: this.iPageSize || 15, | |||||
page: this.iPage || 1, | |||||
getTechSearch({ | |||||
name: this.condition.q, | |||||
type_name: this.condition.type_name, | |||||
institution_name: this.condition.institution_name, | |||||
execute_year: this.condition.execute_year, | |||||
apply_year: this.condition.apply_year, | |||||
sort: this.condition.sort, | |||||
page: this.condition.page, | |||||
pageSize: this.condition.pageSize, | |||||
}).then(res => { | }).then(res => { | ||||
res = res.data; | res = res.data; | ||||
this.loading = false; | this.loading = false; | ||||
if (res.Code == 0) { | |||||
const list = res.Data.Repos || []; | |||||
this.list = list.map((item) => { | |||||
item.Contributors = (item.Contributors || []).map((_item) => { | |||||
return { | |||||
..._item, | |||||
bgColor: this.randomColor(_item.Email[0].toLocaleUpperCase()), | |||||
} | |||||
}); | |||||
const contributors = item.Contributors || []; | |||||
return { | |||||
...item, | |||||
NameShow: this.handlerSearchStr(item.Alias, this.q), | |||||
DescriptionShow: this.handlerSearchStr(item.Description, this.q), | |||||
TopicsShow: (item.Topics || []).map((_item) => { | |||||
return { | |||||
topic: _item, | |||||
topicShow: this.handlerSearchStr(_item, this.q) | |||||
} | |||||
}), | |||||
} | |||||
}); | |||||
this.total = res.Data.Total; | |||||
this.iPage = this.iPage; | |||||
this.iPageSize = this.iPageSize; | |||||
this.$nextTick(() => { | |||||
LetterAvatar.transform(); | |||||
}); | |||||
} else { | |||||
this.list = []; | |||||
this.total = 0; | |||||
this.iPage = this.iPage; | |||||
this.iPageSize = this.iPageSize; | |||||
} | |||||
this.total = res.total || 0; | |||||
this.list = res.data; | |||||
this.$nextTick(() => { | |||||
LetterAvatar.transform(); | |||||
}); | |||||
}).catch(err => { | }).catch(err => { | ||||
console.log(err); | console.log(err); | ||||
this.loading = false; | this.loading = false; | ||||
this.list = []; | this.list = []; | ||||
this.total = 0; | this.total = 0; | ||||
this.iPage = this.iPage; | |||||
this.iPageSize = this.iPageSize; | |||||
}); | }); | ||||
}, | }, | ||||
search() { | search() { | ||||
@@ -845,19 +73,30 @@ export default { | |||||
}, | }, | ||||
currentChange(page) { | currentChange(page) { | ||||
this.iPage = page; | this.iPage = page; | ||||
this.$emit('current-change', { | |||||
this.$emit('changeCondition', { | |||||
page: this.iPage, | page: this.iPage, | ||||
pageSize: this.iPageSize, | pageSize: this.iPageSize, | ||||
changePage: true, | |||||
}); | }); | ||||
}, | }, | ||||
sizeChange(pageSize) { | sizeChange(pageSize) { | ||||
this.iPageSize = pageSize; | this.iPageSize = pageSize; | ||||
this.$emit('size-change', { | |||||
this.$emit('changeCondition', { | |||||
page: this.iPage, | page: this.iPage, | ||||
pageSize: this.iPageSize, | pageSize: this.iPageSize, | ||||
}); | }); | ||||
}, | }, | ||||
}, | }, | ||||
watch: { | |||||
condition: { | |||||
handler(newVal) { | |||||
this.iPage = newVal.page; | |||||
this.iPageSize = newVal.pageSize; | |||||
}, | |||||
immediate: true, | |||||
deep: true, | |||||
}, | |||||
}, | |||||
mounted() { }, | mounted() { }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -877,9 +116,35 @@ export default { | |||||
} | } | ||||
.no-data { | .no-data { | ||||
height: 60px; | |||||
display: flex; | display: flex; | ||||
justify-content: center; | justify-content: center; | ||||
align-items: center; | align-items: center; | ||||
padding: 0 12px; | |||||
.item-empty { | |||||
height: 205px; | |||||
width: 100%; | |||||
padding: 12px; | |||||
border-color: rgb(232, 224, 236); | |||||
border-width: 1px; | |||||
border-style: solid; | |||||
box-shadow: rgba(168, 157, 226, 0.2) 0px 5px 10px 0px; | |||||
background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%221%22%20x1%3D%220%22%20x2%3D%221%22%20y1%3D%220%22%20y2%3D%220%22%20gradientTransform%3D%22matrix(-0.01900000000000005%2C%200.997%2C%20-0.06169646324801269%2C%20-0.01900000000000005%2C%200.995%2C%200.014)%22%3E%3Cstop%20stop-color%3D%22%23f2edf5%22%20stop-opacity%3D%221%22%20offset%3D%220.01%22%3E%3C%2Fstop%3E%3Cstop%20stop-color%3D%22%23ffffff%22%20stop-opacity%3D%221%22%20offset%3D%220.31%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url(%231)%22%3E%3C%2Frect%3E%3C%2Fsvg%3E"); | |||||
display: flex; | |||||
flex-direction: column; | |||||
justify-content: center; | |||||
.item-empty-icon { | |||||
height: 80px; | |||||
width: 100%; | |||||
} | |||||
.item-empty-tips { | |||||
font-size: 16px; | |||||
color: rgb(16, 16, 16); | |||||
text-align: center; | |||||
margin-top: 10px; | |||||
} | |||||
} | |||||
} | } | ||||
</style> | </style> |
@@ -3,7 +3,7 @@ | |||||
<div class="search-bar-l"> | <div class="search-bar-l"> | ||||
<div class="search-c"> | <div class="search-c"> | ||||
<div class="search-input-c"> | <div class="search-input-c"> | ||||
<input type="text" :placeholder="serchPlaceHolder" v-model="keyword" @keyup.enter.native="search"> | |||||
<input type="text" :placeholder="serchPlaceHolder" v-model="keyword" @keyup.enter="search"> | |||||
</div> | </div> | ||||
<div class="search-btn" @click="search">搜索</div> | <div class="search-btn" @click="search">搜索</div> | ||||
</div> | </div> | ||||
@@ -11,7 +11,7 @@ | |||||
<el-button class="apply-btn" type="primary" icon="el-icon-s-management" size="medium" v-if="isTechAdmin" | <el-button class="apply-btn" type="primary" icon="el-icon-s-management" size="medium" v-if="isTechAdmin" | ||||
@click="manage">管理展示项目</el-button> | @click="manage">管理展示项目</el-button> | ||||
<div class="openi-link-c"> | <div class="openi-link-c"> | ||||
<a class="openi-link" href="">OpenI启智社区开源指南</a> | |||||
<a class="openi-link" target="_blank" href="javascript:;">OpenI启智社区开源指南</a> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="sort-c"> | <div class="sort-c"> | ||||
@@ -28,22 +28,36 @@ import { getIsTechAdmin } from '~/apis/modules/tech'; | |||||
export default { | export default { | ||||
name: "SearchBar", | name: "SearchBar", | ||||
props: { | props: { | ||||
type: { type: Number, default: -1 }, // 0-tech_view, 1-repo_view | |||||
condition: { type: Object, default: () => ({}) }, | condition: { type: Object, default: () => ({}) }, | ||||
}, | }, | ||||
components: {}, | components: {}, | ||||
data() { | data() { | ||||
return { | return { | ||||
keyword: '', | keyword: '', | ||||
serchPlaceHolder: '搜索项目名称/简介', | |||||
serchPlaceHolder: '', | |||||
sortType: '', | sortType: '', | ||||
sortList: [{ | |||||
k: '1', | |||||
techSortList: [{ | |||||
k: 'time', | |||||
v: '最近更新', | v: '最近更新', | ||||
}, { | }, { | ||||
k: '2', | |||||
k: 'count', | |||||
v: '项目成果数', | v: '项目成果数', | ||||
}], | }], | ||||
isTechAdmin: true, | |||||
repoSortList: [ | |||||
{ | |||||
k: 'mostpopular', | |||||
v: '近期热门', | |||||
}, { | |||||
k: 'recentupdate', | |||||
v: '最近更新', | |||||
}, { | |||||
k: 'newest', | |||||
v: '最近创建', | |||||
} | |||||
], | |||||
sortList: [], | |||||
isTechAdmin: false, | |||||
}; | }; | ||||
}, | }, | ||||
methods: { | methods: { | ||||
@@ -67,7 +81,6 @@ export default { | |||||
watch: { | watch: { | ||||
condition: { | condition: { | ||||
handler(newVal) { | handler(newVal) { | ||||
console.log('searchBar:watch:condition', newVal); | |||||
this.keyword = newVal.q; | this.keyword = newVal.q; | ||||
this.sortType = newVal.sort; | this.sortType = newVal.sort; | ||||
}, | }, | ||||
@@ -76,8 +89,18 @@ export default { | |||||
}, | }, | ||||
}, | }, | ||||
beforeMount() { | beforeMount() { | ||||
if (this.type == 0) { | |||||
this.sortList = this.techSortList; | |||||
this.serchPlaceHolder = '搜索科技项目名称'; | |||||
} else if (this.type == 1) { | |||||
this.serchPlaceHolder = '搜索项目名称/简介/标签'; | |||||
this.sortList = this.repoSortList; | |||||
} | |||||
getIsTechAdmin().then(res => { | getIsTechAdmin().then(res => { | ||||
console.log(res); | |||||
res = res.data; | |||||
if (res.data && res.data.is_admin) { | |||||
this.isTechAdmin = true; | |||||
} | |||||
}).catch(err => { | }).catch(err => { | ||||
console.log(err); | console.log(err); | ||||
}); | }); | ||||
@@ -39,7 +39,6 @@ export default { | |||||
}, | }, | ||||
methods: { | methods: { | ||||
changeMenu(item, index) { | changeMenu(item, index) { | ||||
if (this.focusIndex == index) return; | |||||
this.focusIndex = index; | this.focusIndex = index; | ||||
window.location.href = item.url; | window.location.href = item.url; | ||||
} | } | ||||
@@ -90,7 +89,6 @@ export default { | |||||
} | } | ||||
&.focused { | &.focused { | ||||
cursor: default; | |||||
color: rgb(255, 255, 255); | color: rgb(255, 255, 255); | ||||
background: rgba(249, 249, 249, 0.2); | background: rgba(249, 249, 249, 0.2); | ||||
} | } | ||||
@@ -14,10 +14,10 @@ | |||||
<el-radio v-model="form.type" label="no-openi" @input="changeType()">非启智社区</el-radio> | <el-radio v-model="form.type" label="no-openi" @input="changeType()">非启智社区</el-radio> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-row"> | |||||
<div class="form-row" :class="form.url_err ? 'form-row-err' : ''"> | |||||
<div class="row-label required">现项目地址</div> | <div class="row-label required">现项目地址</div> | ||||
<div class="row-content"> | <div class="row-content"> | ||||
<el-input size="medium" v-model="form.url" @input="changeUrl" | |||||
<el-input size="medium" v-model="form.url" @input="changeUrl" class="can-err" | |||||
placeholder='请输入现有项目的 HTTP(s) 或 Git " clone" URL,如:https://openi.pcl.ac.cn/OpenI/aiforge'></el-input> | placeholder='请输入现有项目的 HTTP(s) 或 Git " clone" URL,如:https://openi.pcl.ac.cn/OpenI/aiforge'></el-input> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -26,7 +26,7 @@ | |||||
<div class="row-label required baseline">启智项目名称</div> | <div class="row-label required baseline">启智项目名称</div> | ||||
<div class="row-content"> | <div class="row-content"> | ||||
<div> | <div> | ||||
<el-input size="medium" v-model="form.repo_alias" @input="changeAlias"></el-input> | |||||
<el-input size="medium" v-model="form.repo_alias" @input="changeAlias" class="can-err"></el-input> | |||||
</div> | </div> | ||||
<div class="tips"> | <div class="tips"> | ||||
请输入中文、字母、数字和-_ .,最多100个字符。 | 请输入中文、字母、数字和-_ .,最多100个字符。 | ||||
@@ -37,9 +37,19 @@ | |||||
<div class="row-label required baseline">启智项目路径</div> | <div class="row-label required baseline">启智项目路径</div> | ||||
<div class="row-content"> | <div class="row-content"> | ||||
<div class="reop-url-c"> | <div class="reop-url-c"> | ||||
<el-select size="medium" v-model="form.uid"></el-select> | |||||
<el-select size="medium" class="owner-sel" v-model="form.uid" @change="changeOwner"> | |||||
<div slot="prefix" class="owner-item" style="height:100%;padding-left:10px"> | |||||
<img class="owner-img" :src="ownerSelect.RelAvatarLink"> | |||||
</div> | |||||
<el-option v-for="item in ownerList" :key="item.value" :value="item.value" :label="item.label"> | |||||
<div class="owner-item"> | |||||
<img class="owner-img" :src="item.RelAvatarLink"> | |||||
<span class="owner-name">{{(item.FullName || item.Name)}}</span> | |||||
</div> | |||||
</el-option> | |||||
</el-select> | |||||
<span style="margin: 0 8px;font-size:22px;"> / </span> | <span style="margin: 0 8px;font-size:22px;"> / </span> | ||||
<el-input size="medium" v-model="form.repo_name" @input="changeRepoName"></el-input> | |||||
<el-input size="medium" v-model="form.repo_name" @input="changeRepoName" class="can-err"></el-input> | |||||
</div> | </div> | ||||
<div class="tips"> | <div class="tips"> | ||||
启智项目地址:<span class="openi-repo-url">{{ form.repo_url }}</span> | 启智项目地址:<span class="openi-repo-url">{{ form.repo_url }}</span> | ||||
@@ -65,25 +75,27 @@ | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-row"> | |||||
<div class="form-row" :class="form.tech_err ? 'form-row-err' : ''"> | |||||
<div class="row-label required">科技项目</div> | <div class="row-label required">科技项目</div> | ||||
<div class="row-content"> | <div class="row-content"> | ||||
<el-input placeholder="请选择科技项目" size="medium" v-model="form.tech_show" :readonly="true"> | |||||
<el-button size="medium" slot="append" @click="goSelectTechPrj">选择科技项目</el-button> | |||||
<el-input placeholder="请选择科技项目" size="medium" v-model="form.tech_show" :readonly="true" class="can-err"> | |||||
<el-button size="medium" slot="append" class="btn-select" @click="goSelectTechPrj">选择科技项目</el-button> | |||||
<el-button size="medium" slot="append" class="btn-clear" @click="clearTechPrj">清除</el-button> | |||||
</el-input> | </el-input> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-row"> | |||||
<div class="form-row" :class="form.institution_err ? 'form-row-err' : ''"> | |||||
<div class="row-label required">成果贡献单位</div> | <div class="row-label required">成果贡献单位</div> | ||||
<div class="row-content"> | <div class="row-content"> | ||||
<el-select style="width:100%" size="medium" v-model="form.institution" multiple> | |||||
<el-select style="width:100%" size="medium" v-model="form.institution" multiple class="can-err"> | |||||
<el-option v-for="item in institutionList" :key="item.key" :label="item.value" | <el-option v-for="item in institutionList" :key="item.key" :label="item.value" | ||||
:value="item.value"></el-option> | :value="item.value"></el-option> | ||||
</el-select> | </el-select> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-btn-group"> | <div class="form-btn-group"> | ||||
<el-button size="medium" type="primary" class="btn confirm-btn" @click="submit">提交申请</el-button> | |||||
<el-button size="medium" type="primary" :loading="submitLoading" class="btn confirm-btn" | |||||
@click="submit">提交申请</el-button> | |||||
<el-button size="medium" class="btn" @click="cancel">{{ $t('cancel') }}</el-button> | <el-button size="medium" class="btn" @click="cancel">{{ $t('cancel') }}</el-button> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -91,10 +103,15 @@ | |||||
</div> | </div> | ||||
<div class="form-select-tech-prj" v-show="selectTechPrj"> | <div class="form-select-tech-prj" v-show="selectTechPrj"> | ||||
<div class="form-wrap"> | <div class="form-wrap"> | ||||
<div class="form-header">选择科技项目</div> | |||||
<div class="form-header"> | |||||
<span>选择科技项目</span> | |||||
<span> | |||||
<el-button class="form-btn-go-back" @click="goBack">返回</el-button> | |||||
</span> | |||||
</div> | |||||
<div class="form-content"> | <div class="form-content"> | ||||
<div class="form-row"> | <div class="form-row"> | ||||
<div class="row-label required">请输入科技项目</div> | |||||
<div class="row-label">请输入科技项目</div> | |||||
<div class="row-content"> | <div class="row-content"> | ||||
<el-input placeholder="请输入内容" size="medium" v-model="form.tech_search_keyword" | <el-input placeholder="请输入内容" size="medium" v-model="form.tech_search_keyword" | ||||
@keyup.enter.native="searchTechList" class="input-with-select"> | @keyup.enter.native="searchTechList" class="input-with-select"> | ||||
@@ -114,13 +131,14 @@ | |||||
<el-table-column prop="no" label="项目立项编号" align="center" header-align="center" | <el-table-column prop="no" label="项目立项编号" align="center" header-align="center" | ||||
width="120"></el-table-column> | width="120"></el-table-column> | ||||
<el-table-column prop="name" label="科技项目名称" align="center" header-align="center" | <el-table-column prop="name" label="科技项目名称" align="center" header-align="center" | ||||
width="150"></el-table-column> | |||||
<el-table-column prop="unit" label="项目承担单位" align="center" header-align="center" | |||||
width="150"></el-table-column> | |||||
<el-table-column prop="allunit" label="所有参与单位" align="center" header-align="center"></el-table-column> | |||||
width="200"></el-table-column> | |||||
<el-table-column prop="institution" label="项目承担单位" align="center" header-align="center" | |||||
width="200"></el-table-column> | |||||
<el-table-column prop="all_institution" label="所有参与单位" align="center" | |||||
header-align="center"></el-table-column> | |||||
<el-table-column width="100" label="操作" align="center" header-align="center"> | <el-table-column width="100" label="操作" align="center" header-align="center"> | ||||
<template slot-scope="scope"> | <template slot-scope="scope"> | ||||
<el-button type="primary">选择</el-button> | |||||
<el-button type="primary" @click="selectedTechPrj(scope.row)">选择</el-button> | |||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
</el-table> | </el-table> | ||||
@@ -143,6 +161,7 @@ export default { | |||||
form: { | form: { | ||||
type: 'openi', | type: 'openi', | ||||
url: '', | url: '', | ||||
url_err: false, | |||||
repo_alias: '', | repo_alias: '', | ||||
alias_err: false, | alias_err: false, | ||||
uid: '', | uid: '', | ||||
@@ -155,27 +174,23 @@ export default { | |||||
tech_search_sel: '0', | tech_search_sel: '0', | ||||
tech_search_keyword: '', | tech_search_keyword: '', | ||||
tech_obj: null, | |||||
tech_show: '', | tech_show: '', | ||||
tech_err: false, | |||||
institution: [], | institution: [], | ||||
institution_err: false, | |||||
}, | }, | ||||
selectTechPrj: false, | selectTechPrj: false, | ||||
loading: false, | loading: false, | ||||
tableData: [{ | |||||
selected: '0', | |||||
no: 'xxxxxxxxxx1', | |||||
name: 'Name NameName', | |||||
unit: '项目承担单位项目承担单位1', | |||||
allunit: '所有参与单位1、所有参与单位、所有参与单位、所有参与单位、所有参与单位', | |||||
}, { | |||||
selected: '0', | |||||
no: 'xxxxxxxxxx2', | |||||
name: 'Name NameName2', | |||||
unit: '项目承担单位项目承担单位2', | |||||
allunit: '所有参与单位2、所有参与单位、所有参与单位', | |||||
}], | |||||
tableData: [], | |||||
topicsList: [], | topicsList: [], | ||||
institutionList: [], | institutionList: [], | ||||
ownerList: [], | |||||
ownerSelect: {}, | |||||
submitLoading: false, | |||||
}; | }; | ||||
}, | }, | ||||
components: { | components: { | ||||
@@ -184,9 +199,10 @@ export default { | |||||
methods: { | methods: { | ||||
resetData() { | resetData() { | ||||
this.form.url = ''; | this.form.url = ''; | ||||
this.form.url_err = false; | |||||
this.form.repo_alias = ''; | this.form.repo_alias = ''; | ||||
this.form.alias_err = false; | this.form.alias_err = false; | ||||
this.form.uid = ''; | |||||
this.form.uid = this.ownerList.length ? this.ownerList[0].value : ''; | |||||
this.form.repo_name = ''; | this.form.repo_name = ''; | ||||
this.form.repo_url = ''; | this.form.repo_url = ''; | ||||
this.form.name_err = false; | this.form.name_err = false; | ||||
@@ -195,14 +211,23 @@ export default { | |||||
this.form.description = ''; | this.form.description = ''; | ||||
this.form.tech_search_sel = '0'; | this.form.tech_search_sel = '0'; | ||||
this.form.tech_search_keyword = ''; | this.form.tech_search_keyword = ''; | ||||
this.form.tech_obj = null; | |||||
this.form.tech_show = ''; | this.form.tech_show = ''; | ||||
this.form.tech_err = false; | |||||
this.form.institution = []; | this.form.institution = []; | ||||
this.form.institution_err = false; | |||||
this.tableData = []; | this.tableData = []; | ||||
this.topicsList = []; | this.topicsList = []; | ||||
this.institutionList = []; | |||||
this.submitLoading = false; | |||||
}, | }, | ||||
changeType() { | changeType() { | ||||
this.resetData(); | this.resetData(); | ||||
}, | }, | ||||
checkUrl() { | |||||
this.form.url_err = !this.form.url; | |||||
return !this.form.url_err; | |||||
}, | |||||
checkRepoAlias() { | checkRepoAlias() { | ||||
const reg = /^[\u4E00-\u9FA5A-Za-z0-9_.-]{1,100}$/; | const reg = /^[\u4E00-\u9FA5A-Za-z0-9_.-]{1,100}$/; | ||||
const res = reg.test(this.form.repo_alias); | const res = reg.test(this.form.repo_alias); | ||||
@@ -215,16 +240,26 @@ export default { | |||||
this.form.name_err = !res; | this.form.name_err = !res; | ||||
return res; | return res; | ||||
}, | }, | ||||
checkTech() { | |||||
this.form.tech_err = !this.form.tech_obj; | |||||
return !this.form.tech_err; | |||||
}, | |||||
checkinstitution() { | |||||
this.form.institution_err = this.form.institution.length == 0; | |||||
return !this.form.institution_err; | |||||
}, | |||||
changeUrl() { | changeUrl() { | ||||
if (this.form.type == 'openi') return; | if (this.form.type == 'openi') return; | ||||
const owner = 'Itx003'; | |||||
const owner = this.ownerSelect.Name; | |||||
const urlAdd = location.href.split("/")[0] + "//" + location.href.split("/")[2]; | const urlAdd = location.href.split("/")[0] + "//" + location.href.split("/")[2]; | ||||
const repoValue = this.form.url.match(/^(.*\/)?((.+?)(\.git)?)$/)[3]; | const repoValue = this.form.url.match(/^(.*\/)?((.+?)(\.git)?)$/)[3]; | ||||
this.form.repo_alias = repoValue; | this.form.repo_alias = repoValue; | ||||
getCheckRepoName({ owner: 'Itx003', q: repoValue }).then(res => { | |||||
this.checkRepoAlias(); | |||||
getCheckRepoName({ owner: owner, q: repoValue }).then(res => { | |||||
const repo_name = res.data.name; | const repo_name = res.data.name; | ||||
this.form.repo_name = repo_name; | this.form.repo_name = repo_name; | ||||
this.form.repo_url = `${urlAdd}/${owner}/${repo_name}.git`; | this.form.repo_url = `${urlAdd}/${owner}/${repo_name}.git`; | ||||
this.checkRepoName(); | |||||
}).catch(err => { | }).catch(err => { | ||||
console.log(err); | console.log(err); | ||||
this.form.repo_name = ''; | this.form.repo_name = ''; | ||||
@@ -232,11 +267,11 @@ export default { | |||||
}); | }); | ||||
}, | }, | ||||
changeAlias() { | changeAlias() { | ||||
const owner = 'Itx003'; | |||||
const owner = this.ownerSelect.Name; | |||||
const aliasValue = this.form.repo_alias; | const aliasValue = this.form.repo_alias; | ||||
const urlAdd = location.href.split("/")[0] + "//" + location.href.split("/")[2]; | const urlAdd = location.href.split("/")[0] + "//" + location.href.split("/")[2]; | ||||
if (aliasValue && this.checkRepoAlias()) { | if (aliasValue && this.checkRepoAlias()) { | ||||
getCheckRepoName({ owner: 'Itx003', q: aliasValue }).then(res => { | |||||
getCheckRepoName({ owner: owner, q: aliasValue }).then(res => { | |||||
const repo_name = res.data.name; | const repo_name = res.data.name; | ||||
this.form.repo_name = repo_name; | this.form.repo_name = repo_name; | ||||
this.form.repo_url = `${urlAdd}/${owner}/${repo_name}.git`; | this.form.repo_url = `${urlAdd}/${owner}/${repo_name}.git`; | ||||
@@ -250,8 +285,12 @@ export default { | |||||
this.form.repo_url = ''; | this.form.repo_url = ''; | ||||
} | } | ||||
}, | }, | ||||
changeOwner(value) { | |||||
this.ownerSelect = this.ownerList.filter(item => item.value == value)[0]; | |||||
this.form.repo_name && this.changeRepoName(); | |||||
}, | |||||
changeRepoName() { | changeRepoName() { | ||||
const owner = 'Itx003'; | |||||
const owner = this.ownerSelect.Name; | |||||
const repo_name = this.form.repo_name; | const repo_name = this.form.repo_name; | ||||
const urlAdd = location.href.split("/")[0] + "//" + location.href.split("/")[2]; | const urlAdd = location.href.split("/")[0] + "//" + location.href.split("/")[2]; | ||||
if (this.checkRepoName()) { | if (this.checkRepoName()) { | ||||
@@ -280,28 +319,112 @@ export default { | |||||
} | } | ||||
}, | }, | ||||
goSelectTechPrj() { | goSelectTechPrj() { | ||||
this.form.tech_search_sel = '0'; | |||||
this.form.tech_search_keyword = ''; | |||||
this.tableData = []; | |||||
this.selectTechPrj = true; | this.selectTechPrj = true; | ||||
this.searchTechList(); | |||||
}, | |||||
clearTechPrj() { | |||||
this.form.institution = []; | |||||
this.institutionList = []; | |||||
this.form.tech_show = ''; | |||||
this.form.tech_obj = null; | |||||
this.form.tech_err = false; | |||||
}, | |||||
goBack() { | |||||
this.selectTechPrj = false; | |||||
}, | }, | ||||
searchTechList() { | searchTechList() { | ||||
this.loading = true; | |||||
getTechs({ | getTechs({ | ||||
no: this.form.tech_search_sel == '0' ? this.form.tech_search_keyword : '', | no: this.form.tech_search_sel == '0' ? this.form.tech_search_keyword : '', | ||||
institution: this.form.tech_search_sel == '1' ? this.form.tech_search_keyword : '', | institution: this.form.tech_search_sel == '1' ? this.form.tech_search_keyword : '', | ||||
name: this.form.tech_search_sel == '2' ? this.form.tech_search_keyword : '', | name: this.form.tech_search_sel == '2' ? this.form.tech_search_keyword : '', | ||||
}).then(res => { | }).then(res => { | ||||
console.log(res); | |||||
this.loading = false; | |||||
res = res.data; | |||||
this.tableData = res.data || []; | |||||
}).catch(err => { | }).catch(err => { | ||||
console.log(err); | console.log(err); | ||||
}) | |||||
this.loading = false; | |||||
this.tableData = []; | |||||
}); | |||||
}, | }, | ||||
changeTableSelect(row) { | |||||
for (let i = 0, iLen = this.tableData.length; i < iLen; i++) { | |||||
this.tableData[i].selected = '0'; | |||||
} | |||||
row.selected = '1'; | |||||
this.$refs.tableRef.setCurrentRow(row); | |||||
selectedTechPrj(item) { | |||||
this.form.institution = []; | |||||
this.institutionList = item.all_institution.split(',').map((item, index) => { | |||||
return { | |||||
key: item, | |||||
value: item, | |||||
} | |||||
}); | |||||
this.form.tech_show = `【${item.no}】 ${item.name}`; | |||||
this.form.tech_obj = item; | |||||
this.checkTech(); | |||||
this.goBack(); | |||||
}, | }, | ||||
submit() { | submit() { | ||||
console.log(this.form); | |||||
const subData = {}; | |||||
let setApi = null; | |||||
if (this.form.type == 'openi') { | |||||
setApi = setOpenIApply; | |||||
const r1 = this.checkUrl(); | |||||
const r2 = this.checkTech(); | |||||
const r3 = this.checkinstitution(); | |||||
if (r1 && r2 && r3) { | |||||
subData.url = this.form.url; | |||||
subData.no = this.form.tech_obj.no; | |||||
subData.institution = this.form.institution.join(','); | |||||
} else { | |||||
return; | |||||
} | |||||
} else { | |||||
setApi = setNoOpenIApply; | |||||
const r1 = this.checkUrl(); | |||||
const r2 = this.checkTech(); | |||||
const r3 = this.checkinstitution(); | |||||
const r4 = this.checkRepoAlias(); | |||||
const r5 = this.checkRepoName(); | |||||
if (r1 && r2 && r3 && r4 && r5) { | |||||
subData.url = this.form.url; | |||||
subData.uid = this.form.uid; | |||||
subData.repo_alias = this.form.repo_alias; | |||||
subData.repo_name = this.form.repo_name; | |||||
subData.topics = [...this.form.topics]; | |||||
subData.description = this.form.description; | |||||
subData.no = this.form.tech_obj.no; | |||||
subData.institution = this.form.institution.join(','); | |||||
} else { | |||||
return; | |||||
} | |||||
} | |||||
// console.log(subData); | |||||
// return; | |||||
this.submitLoading = true; | |||||
setApi(subData).then(res => { | |||||
if (res.data && res.data.code == 0) { | |||||
this.$message({ | |||||
type: 'success', | |||||
message: '提交成功' | |||||
}); | |||||
setTimeout(() => { | |||||
window.location.href = '/tech/tech_view'; | |||||
}, 2000); | |||||
} else { | |||||
this.submitLoading = false; | |||||
this.$message({ | |||||
type: 'info', | |||||
message: res.data.msg | |||||
}); | |||||
} | |||||
}).catch(err => { | |||||
this.submitLoading = false; | |||||
this.$message({ | |||||
type: 'error', | |||||
message: '提交失败' | |||||
}); | |||||
}); | |||||
}, | }, | ||||
cancel() { | cancel() { | ||||
window.history.back(); | window.history.back(); | ||||
@@ -309,14 +432,21 @@ export default { | |||||
}, | }, | ||||
beforeMount() { | beforeMount() { | ||||
getCreateRepoUser().then(res => { | getCreateRepoUser().then(res => { | ||||
console.log(res); | |||||
const data = res.data.Data || []; | |||||
this.ownerList = data.map(item => { | |||||
return { | |||||
value: item.ID, | |||||
label: item.FullName || item.Name, | |||||
...item, | |||||
} | |||||
}); | |||||
this.ownerSelect = this.ownerList.length ? this.ownerList[0] : {}; | |||||
this.form.uid = this.ownerList.length ? this.ownerList[0].value : ''; | |||||
}).catch(err => { | }).catch(err => { | ||||
console.log(err); | console.log(err); | ||||
}); | }); | ||||
}, | }, | ||||
mounted() { | |||||
}, | |||||
mounted() { }, | |||||
beforeDestroy() { }, | beforeDestroy() { }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -349,10 +479,12 @@ export default { | |||||
border-bottom: 1px solid rgb(212, 212, 213); | border-bottom: 1px solid rgb(212, 212, 213); | ||||
color: rgb(16, 16, 16); | color: rgb(16, 16, 16); | ||||
padding-left: 16px; | padding-left: 16px; | ||||
padding-right: 16px; | |||||
font-size: 16px; | font-size: 16px; | ||||
font-weight: 700; | font-weight: 700; | ||||
display: flex; | display: flex; | ||||
align-items: center; | align-items: center; | ||||
justify-content: space-between; | |||||
} | } | ||||
.form-content { | .form-content { | ||||
@@ -413,7 +545,7 @@ export default { | |||||
color: #9f3a38; | color: #9f3a38; | ||||
} | } | ||||
/deep/ .el-input__inner:not([readonly="readonly"]) { | |||||
/deep/ .can-err .el-input__inner { | |||||
color: #9f3a38; | color: #9f3a38; | ||||
background: #fff6f6; | background: #fff6f6; | ||||
border-color: #e0b4b4; | border-color: #e0b4b4; | ||||
@@ -467,4 +599,30 @@ export default { | |||||
margin-right: 20px; | margin-right: 20px; | ||||
} | } | ||||
} | } | ||||
.btn-select { | |||||
background-color: rgb(50, 145, 248) !important; | |||||
color: white !important; | |||||
border-radius: 0 !important; | |||||
height: 35px; | |||||
} | |||||
.owner-sel { | |||||
/deep/ .el-input__inner { | |||||
padding-left: 48px; | |||||
} | |||||
} | |||||
.owner-item { | |||||
display: flex; | |||||
align-items: center; | |||||
.owner-img { | |||||
width: 24px; | |||||
height: 24px; | |||||
margin-right: 10px; | |||||
} | |||||
.owner-name {} | |||||
} | |||||
</style> | </style> |
@@ -2,13 +2,14 @@ | |||||
<div> | <div> | ||||
<TopHeader :menu="1"></TopHeader> | <TopHeader :menu="1"></TopHeader> | ||||
<div class="ui container"> | <div class="ui container"> | ||||
<SearchBar :condition="condition" @changeCondition="changeCondition"></SearchBar> | |||||
<SearchBar :type="1" :condition="condition" @changeCondition="changeCondition"></SearchBar> | |||||
<div class="conent-c"> | <div class="conent-c"> | ||||
<div class="filter-c"> | <div class="filter-c"> | ||||
<Filters :type="1" :condition="condition" @changeCondition="changeCondition"></Filters> | <Filters :type="1" :condition="condition" @changeCondition="changeCondition"></Filters> | ||||
</div> | </div> | ||||
<div class="result-c"> | <div class="result-c"> | ||||
<PrjResultsList ref="resultListRef" :condition="condition"></PrjResultsList> | |||||
<PrjResultsList ref="resultListRef" :condition="condition" @changeCondition="changeCondition"> | |||||
</PrjResultsList> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -35,7 +36,7 @@ export default { | |||||
pageSize: '', | pageSize: '', | ||||
sort: '', | sort: '', | ||||
}, | }, | ||||
pageSizes: [15, 30, 50, 100], | |||||
pageSizes: [15, 30, 50], | |||||
}; | }; | ||||
}, | }, | ||||
components: { | components: { | ||||
@@ -50,6 +51,9 @@ export default { | |||||
...this.condition, | ...this.condition, | ||||
...params, | ...params, | ||||
}; | }; | ||||
if (!params.changePage) { | |||||
this.condition.page = 1; | |||||
} | |||||
window.location.href = `/tech/repo_view?` + `q=${encodeURIComponent(this.condition.q.trim())}` + | window.location.href = `/tech/repo_view?` + `q=${encodeURIComponent(this.condition.q.trim())}` + | ||||
`&topic=${encodeURIComponent(this.condition.topic)}` + | `&topic=${encodeURIComponent(this.condition.topic)}` + | ||||
`&project_name=${encodeURIComponent(this.condition.project_name)}` + | `&project_name=${encodeURIComponent(this.condition.project_name)}` + | ||||
@@ -68,6 +72,9 @@ export default { | |||||
this.condition.sort = urlParams.sort || ''; | this.condition.sort = urlParams.sort || ''; | ||||
this.condition.page = Number(urlParams.page) || 1; | this.condition.page = Number(urlParams.page) || 1; | ||||
this.condition.pageSize = this.pageSizes.indexOf(Number(urlParams.pageSize)) >= 0 ? Number(urlParams.pageSize) : 15; | this.condition.pageSize = this.pageSizes.indexOf(Number(urlParams.pageSize)) >= 0 ? Number(urlParams.pageSize) : 15; | ||||
this.$nextTick(() => { | |||||
this.$refs.resultListRef.search(); | |||||
}); | |||||
}, | }, | ||||
mounted() { }, | mounted() { }, | ||||
beforeDestroy() { }, | beforeDestroy() { }, | ||||
@@ -2,13 +2,14 @@ | |||||
<div> | <div> | ||||
<TopHeader :menu="0"></TopHeader> | <TopHeader :menu="0"></TopHeader> | ||||
<div class="ui container"> | <div class="ui container"> | ||||
<SearchBar :condition="condition" @changeCondition="changeCondition"></SearchBar> | |||||
<SearchBar :type="0" :condition="condition" @changeCondition="changeCondition"></SearchBar> | |||||
<div class="conent-c"> | <div class="conent-c"> | ||||
<div class="filter-c"> | <div class="filter-c"> | ||||
<Filters :type="0" :condition="condition" @changeCondition="changeCondition"></Filters> | <Filters :type="0" :condition="condition" @changeCondition="changeCondition"></Filters> | ||||
</div> | </div> | ||||
<div class="result-c"> | <div class="result-c"> | ||||
<SciAndTechPrjList ref="resultListRef" :condition="condition"></SciAndTechPrjList> | |||||
<SciAndTechPrjList ref="resultListRef" :condition="condition" @changeCondition="changeCondition"> | |||||
</SciAndTechPrjList> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -35,7 +36,7 @@ export default { | |||||
pageSize: '', | pageSize: '', | ||||
sort: '', | sort: '', | ||||
}, | }, | ||||
pageSizes: [15, 30, 50, 100], | |||||
pageSizes: [15, 30, 50], | |||||
}; | }; | ||||
}, | }, | ||||
components: { | components: { | ||||
@@ -50,6 +51,9 @@ export default { | |||||
...this.condition, | ...this.condition, | ||||
...params, | ...params, | ||||
}; | }; | ||||
if (!params.changePage) { | |||||
this.condition.page = 1; | |||||
} | |||||
window.location.href = `/tech/tech_view?` + `q=${encodeURIComponent(this.condition.q.trim())}` + | window.location.href = `/tech/tech_view?` + `q=${encodeURIComponent(this.condition.q.trim())}` + | ||||
`&type_name=${encodeURIComponent(this.condition.type_name)}` + | `&type_name=${encodeURIComponent(this.condition.type_name)}` + | ||||
`&institution_name=${encodeURIComponent(this.condition.institution_name)}` + | `&institution_name=${encodeURIComponent(this.condition.institution_name)}` + | ||||
@@ -70,6 +74,9 @@ export default { | |||||
this.condition.sort = urlParams.sort || ''; | this.condition.sort = urlParams.sort || ''; | ||||
this.condition.page = Number(urlParams.page) || 1; | this.condition.page = Number(urlParams.page) || 1; | ||||
this.condition.pageSize = this.pageSizes.indexOf(Number(urlParams.pageSize)) >= 0 ? Number(urlParams.pageSize) : 15; | this.condition.pageSize = this.pageSizes.indexOf(Number(urlParams.pageSize)) >= 0 ? Number(urlParams.pageSize) : 15; | ||||
this.$nextTick(() => { | |||||
this.$refs.resultListRef.search(); | |||||
}); | |||||
}, | }, | ||||
mounted() { }, | mounted() { }, | ||||
beforeDestroy() { }, | beforeDestroy() { }, | ||||