@@ -903,7 +903,7 @@ func RegisterRoutes(m *macaron.Macaron) { | |||
m.Get("/tech_view", tech.TechView) | |||
m.Get("/repo_view", tech.RepoView) | |||
m.Get("/admin_view", tech.AdminView) | |||
m.Get("/my_view", tech.AdminView) | |||
m.Get("/my_view", tech.MyView) | |||
}, reqSignIn) | |||
@@ -0,0 +1,5 @@ | |||
{{template "base/head_home" .}} | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/vp-tech-myview.css?v={{MD5 AppVer}}" /> | |||
<div id="__vue-root"></div> | |||
<script src="{{StaticUrlPrefix}}/js/vp-tech-myview.js?v={{MD5 AppVer}}"></script> | |||
{{template "base/footer" .}} |
@@ -79,6 +79,19 @@ export const getTechOpenISearch = (params) => { | |||
}); | |||
} | |||
// 我申请的项目列表 | |||
// 输入 page,pageSize | |||
// 返回 {"total":10,"data":[{}]} | |||
// data: {id:记录的id,name:启智项目名称,owner_name:启智项目拥有者名称,tech_name:科技项目名称,tech_number:科技项目编号,institution:项目承担单位, | |||
// execute_period:执行周期,contact:联系人,contact_phone:联系电话,contact_email:联系邮件,apply_user:申请账号,status:状态} | |||
export const getTechMyList = (params) => { | |||
return service({ | |||
url: '/api/v1/tech/my', | |||
method: 'get', | |||
params: params, | |||
}); | |||
} | |||
// 后台管理项目列表 | |||
// 输入 page,pageSize | |||
// 返回 {"total":10,"data":[{}]} | |||
@@ -97,9 +110,11 @@ export const getTechAdminList = (params) => { | |||
// 返回 { code:0, message:"" } | |||
export const setTechAdminOperation = (data) => { | |||
return service({ | |||
url: `/api/v1/tech/admin/action/${data.type}`, | |||
url: `/api/v1/tech/admin/${data.type}`, | |||
method: 'post', | |||
data: data.id, | |||
data: { | |||
id: data.id | |||
}, | |||
params: {}, | |||
}); | |||
} | |||
@@ -1,10 +1,11 @@ | |||
<template> | |||
<div> | |||
<TopHeader :menu="'admin_view'"></TopHeader> | |||
<div class="ui container"> | |||
<div class="top-container"> | |||
<el-checkbox class="check-toggle" v-model="allChecked" @change="allSelectChange">全选/全不选</el-checkbox> | |||
<el-button class="btn-agree">批量同意展示</el-button> | |||
<el-button class="btn-cancel">批量取消展示</el-button> | |||
<el-button class="btn-agree" @click="batchOperate(true)">批量同意展示</el-button> | |||
<el-button class="btn-cancel" @click="batchOperate(false)">批量取消展示</el-button> | |||
</div> | |||
<div class="table-container"> | |||
<div class="table-title">2030科技项目管理</div> | |||
@@ -15,19 +16,93 @@ | |||
<el-checkbox v-model="scope.row.checked" @change="rowSelectChange(scope.row)"></el-checkbox> | |||
</template> | |||
</el-table-column> | |||
<el-table-column prop="name" label="启智项目名称" align="center" header-align="center" fixed></el-table-column> | |||
<el-table-column prop="tech_name" label="科技项目名称" align="center" header-align="center" | |||
fixed></el-table-column> | |||
<el-table-column prop="status" label="展示状态" align="center" header-align="center" fixed></el-table-column> | |||
<el-table-column prop="tech_number" label="项目立项编号" align="center" header-align="center"></el-table-column> | |||
<el-table-column prop="institution" label="项目承担单位" align="center" header-align="center"></el-table-column> | |||
<el-table-column prop="execute_period" label="执行周期" align="center" header-align="center"></el-table-column> | |||
<el-table-column prop="contact" label="联系人" align="center" header-align="center"></el-table-column> | |||
<el-table-column prop="contact_phone" label="电话" align="center" header-align="center"></el-table-column> | |||
<el-table-column prop="apply_user" label="申请账号" align="center" header-align="center"></el-table-column> | |||
<el-table-column prop="" label="操作" align="center" header-align="center" fixed="right"></el-table-column> | |||
<el-table-column label="启智项目名称" align="center" header-align="center" fixed min-width="150"> | |||
<template slot-scope="scope"> | |||
<a target="_blank" :href="`/${scope.row.repo_owner_name}/${scope.row.repo_name}`">{{ | |||
`${scope.row.repo_owner_name}/${scope.row.repo_name}` }}</a> | |||
</template> | |||
</el-table-column> | |||
<el-table-column prop="name" label="科技项目名称" align="center" header-align="center" fixed | |||
min-width="200"></el-table-column> | |||
<el-table-column prop="status" label="展示状态" align="center" header-align="center" fixed> | |||
<template slot-scope="scope"> | |||
<span style="color:rgb(255, 37, 37)" | |||
:style="scope.row.status == 1 ? { color: 'rgb(56, 158, 13)' } : ''">{{ | |||
statusMap[scope.row.status] }}</span> | |||
</template> | |||
</el-table-column> | |||
<el-table-column prop="no" label="项目立项编号" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="institution" label="项目承担单位" align="center" header-align="center" | |||
min-width="160"></el-table-column> | |||
<el-table-column prop="province" label="所属省(省市)" align="center" header-align="center" | |||
min-width="100"></el-table-column> | |||
<el-table-column prop="category" label="单位性质" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="recommend" label="推荐单位" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="owner" label="项目负责人" align="center" header-align="center" | |||
min-width="100"></el-table-column> | |||
<el-table-column prop="phone" label="负责人电话" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="email" label="负责人邮箱" align="center" header-align="center" | |||
min-width="150"></el-table-column> | |||
<el-table-column prop="contact" label="项目联系人" align="center" header-align="center" | |||
min-width="100"></el-table-column> | |||
<el-table-column prop="contact_phone" label="联系人电话" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="contact_email" label="联系人邮箱" align="center" header-align="center" | |||
min-width="150"></el-table-column> | |||
<el-table-column prop="apply_year" label="申报年度" align="center" header-align="center" | |||
min-width="80"></el-table-column> | |||
<el-table-column prop="execute_month" label="执行周期(月)" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="execute_period" label="执行期限" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="type" label="项目类型" align="center" header-align="center" | |||
min-width="100"></el-table-column> | |||
<el-table-column prop="start_up" label="启动会时间" align="center" header-align="center" | |||
min-width="100"></el-table-column> | |||
<el-table-column prop="number_topic" label="课题数量" align="center" header-align="center" | |||
min-width="80"></el-table-column> | |||
<el-table-column prop="topic1" label="课题一级名称及承担单位" align="center" header-align="center" | |||
min-width="200"></el-table-column> | |||
<el-table-column prop="topic2" label="课题二级名称及承担单位" align="center" header-align="center" | |||
min-width="200"></el-table-column> | |||
<el-table-column prop="topic3" label="课题三级名称及承担单位" align="center" header-align="center" | |||
min-width="200"></el-table-column> | |||
<el-table-column prop="topic4" label="课题四级名称及承担单位" align="center" header-align="center" | |||
min-width="200"></el-table-column> | |||
<el-table-column prop="topic5" label="课题五级名称及承担单位" align="center" header-align="center" | |||
min-width="200"></el-table-column> | |||
<el-table-column prop="all_institution" label="所有参与单位" align="center" header-align="center" | |||
min-width="300"></el-table-column> | |||
<el-table-column prop="contribution_institution" label="成果贡献单位" align="center" header-align="center" | |||
min-width="300"></el-table-column> | |||
<el-table-column prop="user_name" label="申请账号" align="center" header-align="center" width="120"> | |||
<template slot-scope="scope"> | |||
<a target="_blank" :href="`/${scope.row.user_name}`">{{ | |||
`${scope.row.user_name}` }}</a> | |||
</template> | |||
</el-table-column> | |||
<el-table-column prop="" label="操作" align="center" header-align="center" fixed="right" width="100"> | |||
<template slot-scope="scope"> | |||
<span v-if="scope.row.status == 2" class="op-btn agree" @click="toggleStatus(scope.row)"> | |||
<i class="el-icon-check"></i> | |||
<span>同意展示</span> | |||
</span> | |||
<span v-if="scope.row.status == 1" class="op-btn cancel" @click="toggleStatus(scope.row)"> | |||
<i class="el-icon-close"></i> | |||
<span>取消展示</span> | |||
</span> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
</div> | |||
<div class="op-tips"> | |||
<i class="el-icon-info"></i> | |||
提示:批量操作只会对【展示状态】为 “未展示” 或 “已展示” 的数据生效。 | |||
</div> | |||
<div class="center"> | |||
<el-pagination ref="paginationRef" background @current-change="currentChange" @size-change="sizeChange" | |||
:current-page.sync="page" :page-sizes="pageSizes" :page-size.sync="pageSize" | |||
@@ -40,6 +115,7 @@ | |||
</template> | |||
<script> | |||
import TopHeader from '../components/TopHeader.vue'; | |||
import { getTechAdminList, setTechAdminOperation } from '~/apis/modules/tech'; | |||
export default { | |||
@@ -53,9 +129,17 @@ export default { | |||
pageSizes: [15, 30, 50, 100], | |||
pageSize: 50, | |||
total: 0, | |||
statusMap: { | |||
'1': '已展示', | |||
'2': '未展示', | |||
'3': '项目迁移中', | |||
'4': '项目迁移失败', | |||
'5': '项目不存在', | |||
}, | |||
}; | |||
}, | |||
components: {}, | |||
components: { TopHeader }, | |||
methods: { | |||
getData() { | |||
this.loading = true; | |||
@@ -68,10 +152,10 @@ export default { | |||
this.tableData = data.map((item, index) => { | |||
return { | |||
checked: false, | |||
id: 'id' + Math.random(), | |||
...item, | |||
} | |||
}); | |||
this.allChecked = false; | |||
this.total = total; | |||
}).catch(err => { | |||
this.loading = false; | |||
@@ -102,29 +186,74 @@ export default { | |||
this.pageSize = pageSize; | |||
this.getData(); | |||
}, | |||
toggleStatus(row) { | |||
if (row.status != 1 && row.status != 2) return; | |||
setTechAdminOperation({ | |||
type: row.status == 1 ? 'hide' : 'show', | |||
id: [row.id], | |||
}).then(res => { | |||
res = res.data; | |||
if (res.Code == 0) { | |||
this.$message({ | |||
type: 'success', | |||
message: this.$t('submittedSuccessfully'), | |||
}); | |||
row.status = row.status == 1 ? 2 : 1; | |||
} else { | |||
this.$message({ | |||
type: 'error', | |||
message: this.$t('submittedFailed'), | |||
}); | |||
} | |||
}).catch(err => { | |||
console.log(err); | |||
this.$message({ | |||
type: 'error', | |||
message: this.$t('submittedFailed'), | |||
}); | |||
}); | |||
}, | |||
batchOperate(showOr) { | |||
const selectedData = this.tableData.filter((item) => { | |||
return item.checked && item.status == (showOr ? 2 : 1); | |||
}); | |||
if (!selectedData.length) { | |||
this.$message({ | |||
type: 'info', | |||
message: '请选择符合条件的数据进行操作!', | |||
}); | |||
return; | |||
} | |||
setTechAdminOperation({ | |||
type: showOr ? 'show' : 'hide', | |||
id: selectedData.map(item => item.id), | |||
}).then(res => { | |||
res = res.data; | |||
if (res.Code == 0) { | |||
this.$message({ | |||
type: 'success', | |||
message: this.$t('submittedSuccessfully'), | |||
}); | |||
this.getData(); | |||
} else { | |||
this.$message({ | |||
type: 'error', | |||
message: this.$t('submittedFailed'), | |||
}); | |||
} | |||
}).catch(err => { | |||
console.log(err); | |||
this.$message({ | |||
type: 'error', | |||
message: this.$t('submittedFailed'), | |||
}); | |||
}); | |||
}, | |||
}, | |||
beforeMount() { | |||
this.getData(); | |||
}, | |||
mounted() { | |||
this.tableData = new Array(15).fill(0).map((item, index) => { | |||
return { | |||
id: '记录的id-' + index, | |||
name: '启智项目名称-' + index, | |||
owner_name: '启智项目拥有者名称-' + index, | |||
tech_name: '科技项目名称-' + index, | |||
tech_number: '科技项目编号-' + index, | |||
institution: '项目承担单位-' + index, | |||
execute_period: '执行周期-' + index, | |||
contact: '联系人-' + index, | |||
contact_phone: '联系电话-' + index, | |||
contact_email: '联系邮件-' + index, | |||
apply_user: '申请账号-' + index, | |||
status: '状态-' + index, | |||
} | |||
}); | |||
this.total = this.tableData.length; | |||
}, | |||
mounted() { }, | |||
beforeDestroy() { }, | |||
}; | |||
</script> | |||
@@ -133,7 +262,7 @@ export default { | |||
.top-container { | |||
display: flex; | |||
align-items: center; | |||
margin: 15px 0; | |||
margin: 30px 0 15px 0; | |||
.check-toggle { | |||
margin-right: 20px; | |||
@@ -185,7 +314,6 @@ export default { | |||
} | |||
.table-wrap { | |||
margin-bottom: 12px; | |||
overflow-x: auto; | |||
/deep/ .el-table__header { | |||
@@ -208,4 +336,26 @@ export default { | |||
} | |||
} | |||
} | |||
.op-tips { | |||
margin: 10px 0 10px 0; | |||
color: #606266; | |||
font-size: 12px; | |||
i { | |||
margin-right: 4px; | |||
} | |||
} | |||
.op-btn { | |||
cursor: pointer; | |||
&.agree { | |||
color: rgb(56, 158, 13); | |||
} | |||
&.cancel { | |||
color: rgb(50, 145, 248); | |||
} | |||
} | |||
</style> |
@@ -76,9 +76,7 @@ export default { | |||
}, | |||
components: {}, | |||
data() { | |||
return { | |||
}; | |||
return {}; | |||
}, | |||
methods: { | |||
calcFromNow(unix) { | |||
@@ -5,11 +5,9 @@ | |||
<div class="search-input-c"> | |||
<input type="text" :placeholder="serchPlaceHolder" v-model="keyword" @keyup.enter="search"> | |||
</div> | |||
<div class="search-btn" @click="search">搜索</div> | |||
<div class="search-btn" @click="search">{{ $t('repos.search') }}</div> | |||
</div> | |||
<el-button class="apply-btn" type="primary" icon="el-icon-plus" size="medium" @click="apply">申请展示项目</el-button> | |||
<el-button class="apply-btn" type="primary" icon="el-icon-s-management" size="medium" v-if="isTechAdmin" | |||
@click="manage">管理展示项目</el-button> | |||
<div class="openi-link-c"> | |||
<a class="openi-link" target="_blank" href="javascript:;">OpenI启智社区开源指南</a> | |||
</div> | |||
@@ -23,7 +21,6 @@ | |||
</template> | |||
<script> | |||
import { getIsTechAdmin } from '~/apis/modules/tech'; | |||
export default { | |||
name: "SearchBar", | |||
@@ -39,7 +36,7 @@ export default { | |||
sortType: '', | |||
techSortList: [{ | |||
k: 'time', | |||
v: '最近更新', | |||
v: this.$t('repos.recentlyUpdated'), | |||
}, { | |||
k: 'count', | |||
v: '项目成果数', | |||
@@ -47,13 +44,13 @@ export default { | |||
repoSortList: [ | |||
{ | |||
k: 'mostpopular', | |||
v: '近期热门', | |||
v: this.$t('repos.mostPopular'), | |||
}, { | |||
k: 'recentupdate', | |||
v: '最近更新', | |||
v: this.$t('repos.recentlyUpdated'), | |||
}, { | |||
k: 'newest', | |||
v: '最近创建', | |||
v: this.$t('repos.newest'), | |||
} | |||
], | |||
sortList: [], | |||
@@ -96,14 +93,6 @@ export default { | |||
this.serchPlaceHolder = '搜索项目名称/简介/标签'; | |||
this.sortList = this.repoSortList; | |||
} | |||
getIsTechAdmin().then(res => { | |||
res = res.data; | |||
if (res.data && res.data.is_admin) { | |||
this.isTechAdmin = true; | |||
} | |||
}).catch(err => { | |||
console.log(err); | |||
}); | |||
}, | |||
mounted() { }, | |||
}; | |||
@@ -24,7 +24,7 @@ import TopMenu from './TopMenu.vue'; | |||
export default { | |||
name: "TopHeader", | |||
props: { | |||
menu: { type: Number, default: -1 }, | |||
menu: { type: String, default: '' }, | |||
}, | |||
components: { | |||
TopMenu | |||
@@ -2,49 +2,72 @@ | |||
<div class="container ui" style="padding:0 75px;"> | |||
<div class="menu"> | |||
<div class="menu-l"> | |||
<div class="menu-item" v-for="(item, index) in list" :key="index" :class="focusIndex == index ? 'focused' : ''" | |||
@click="changeMenu(item, index)"> | |||
<div class="menu-item" v-for="(item, index) in listL" :key="index" | |||
:class="focusMenu == item.key ? 'focused' : ''" @click="changeMenu(item)"> | |||
{{ item.title }} | |||
</div> | |||
</div> | |||
<div class="menu-r"> | |||
<div class="menu-item" v-for="(item, index) in listR" :key="index" | |||
:class="focusMenu == item.key ? 'focused' : ''" @click="changeMenu(item)"> | |||
{{ item.title }} | |||
</div> | |||
</div> | |||
<div class="menu-r"></div> | |||
</div> | |||
</div> | |||
</template> | |||
<script> | |||
import { getIsTechAdmin } from '~/apis/modules/tech'; | |||
export default { | |||
name: "TopMenu", | |||
props: { | |||
menu: { type: Number, default: -1 }, | |||
menu: { type: String, default: '' }, | |||
}, | |||
components: {}, | |||
data() { | |||
return { | |||
focusIndex: 0, | |||
list: [{ | |||
focusMenu: '', | |||
listL: [{ | |||
key: 'tech_view', | |||
title: '按科技项目查看', | |||
url: '/tech/tech_view', | |||
}, { | |||
key: 'repo_view', | |||
title: '按项目成果查看', | |||
url: '/tech/repo_view', | |||
},/* { | |||
key: '', | |||
}], | |||
listR: [{ | |||
key: 'my_view', | |||
title: '我申请的项目', | |||
url: '', | |||
}*/], | |||
url: '/tech/my_view', | |||
},], | |||
isTechAdmin: false, | |||
}; | |||
}, | |||
methods: { | |||
changeMenu(item, index) { | |||
this.focusIndex = index; | |||
this.focusMenu = item.key; | |||
window.location.href = item.url; | |||
} | |||
}, | |||
beforeMount() { | |||
this.focusIndex = this.menu; | |||
this.focusMenu = this.menu; | |||
getIsTechAdmin().then(res => { | |||
res = res.data; | |||
if (res.data && res.data.is_admin) { | |||
this.isTechAdmin = true; | |||
this.listR.push({ | |||
key: 'admin_view', | |||
title: '管理展示项目', | |||
url: '/tech/admin_view', | |||
}); | |||
} | |||
}).catch(err => { | |||
console.log(err); | |||
}); | |||
}, | |||
mounted() { }, | |||
}; | |||
@@ -113,10 +113,9 @@ | |||
<div class="form-row"> | |||
<div class="row-label">请输入科技项目</div> | |||
<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"> | |||
<el-select v-model="form.tech_search_sel" style="width:142px" size="medium" slot="prepend" | |||
placeholder="请选择"> | |||
<el-select v-model="form.tech_search_sel" style="width:142px" size="medium" slot="prepend"> | |||
<el-option label="项目立项编号" value="0"></el-option> | |||
<el-option label="参与单位" value="1"></el-option> | |||
<el-option label="项目名称" value="2"></el-option> | |||
@@ -136,7 +135,7 @@ | |||
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="$t('operation')" align="center" header-align="center"> | |||
<template slot-scope="scope"> | |||
<el-button type="primary" @click="selectedTechPrj(scope.row)">选择</el-button> | |||
</template> | |||
@@ -406,7 +405,7 @@ export default { | |||
if (res.data && res.data.code == 0) { | |||
this.$message({ | |||
type: 'success', | |||
message: '提交成功' | |||
message: this.$t('submittedSuccessfully'), | |||
}); | |||
setTimeout(() => { | |||
window.location.href = '/tech/tech_view'; | |||
@@ -422,7 +421,7 @@ export default { | |||
this.submitLoading = false; | |||
this.$message({ | |||
type: 'error', | |||
message: '提交失败' | |||
message: this.$t('submittedFailed'), | |||
}); | |||
}); | |||
}, | |||
@@ -622,7 +621,5 @@ export default { | |||
height: 24px; | |||
margin-right: 10px; | |||
} | |||
.owner-name {} | |||
} | |||
</style> |
@@ -0,0 +1,160 @@ | |||
<template> | |||
<div> | |||
<TopHeader :menu="'my_view'"></TopHeader> | |||
<div class="ui container"> | |||
<div class="table-container"> | |||
<div class="table-title">2030科技项目</div> | |||
<div class="table-wrap"> | |||
<el-table ref="tableRef" border :data="tableData" style="width:100%;" v-loading="loading" stripe row-key="id"> | |||
<el-table-column label="序号" type="index" align="center" header-align="center" width="50" | |||
fixed></el-table-column> | |||
<el-table-column label="启智项目名称" align="center" header-align="center" fixed min-width="140"> | |||
<template slot-scope="scope"> | |||
<a target="_blank" :href="`/${scope.row.repo_owner_name}/${scope.row.repo_name}`">{{ | |||
`${scope.row.repo_owner_name}/${scope.row.repo_name}` }}</a> | |||
</template> | |||
</el-table-column> | |||
<el-table-column prop="name" label="科技项目名称" align="center" header-align="center" fixed | |||
min-width="200"></el-table-column> | |||
<el-table-column prop="status" label="展示状态" align="center" header-align="center" fixed> | |||
<template slot-scope="scope"> | |||
<span style="color:rgb(255, 37, 37)" | |||
:style="scope.row.status == 1 ? { color: 'rgb(56, 158, 13)' } : ''">{{ | |||
statusMap[scope.row.status] }}</span> | |||
</template> | |||
</el-table-column> | |||
<el-table-column prop="no" label="项目立项编号" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="institution" label="项目承担单位" align="center" header-align="center" | |||
min-width="120"></el-table-column> | |||
<el-table-column prop="all_institution" label="所有参与单位" align="center" header-align="center" | |||
min-width="280"></el-table-column> | |||
<el-table-column prop="contribution_institution" label="成果贡献单位" align="center" header-align="center" | |||
min-width="280"></el-table-column> | |||
<el-table-column prop="contribution_institution" label="申请时间" align="center" header-align="center" | |||
min-width="120"> | |||
<template slot-scope="scope"> | |||
<span>{{ dateFormat(scope.row.created_unix) }}</span> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
</div> | |||
<div class="center"> | |||
<el-pagination ref="paginationRef" background @current-change="currentChange" @size-change="sizeChange" | |||
:current-page.sync="page" :page-sizes="pageSizes" :page-size.sync="pageSize" | |||
layout="total, sizes, prev, pager, next, jumper" :total="total"> | |||
</el-pagination> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</template> | |||
<script> | |||
import dayjs from 'dayjs'; | |||
import TopHeader from '../components/TopHeader.vue'; | |||
import { getTechMyList } from '~/apis/modules/tech'; | |||
export default { | |||
data() { | |||
return { | |||
loading: false, | |||
tableData: [], | |||
page: 1, | |||
pageSizes: [15, 30, 50], | |||
pageSize: 15, | |||
total: 0, | |||
statusMap: { | |||
'1': '已展示', | |||
'2': '未展示', | |||
'3': '项目迁移中', | |||
'4': '项目迁移失败', | |||
'5': '项目不存在', | |||
}, | |||
}; | |||
}, | |||
components: { TopHeader }, | |||
methods: { | |||
getData() { | |||
this.loading = true; | |||
getTechMyList({ | |||
page: this.page, | |||
pageSize: this.pageSize, | |||
}).then(res => { | |||
this.loading = false; | |||
const { total, data } = res.data; | |||
this.tableData = data.map((item, index) => { | |||
return { ...item, } | |||
}); | |||
this.total = total; | |||
}).catch(err => { | |||
this.loading = false; | |||
console.log(err); | |||
}); | |||
}, | |||
currentChange(page) { | |||
this.page = page; | |||
this.getData(); | |||
}, | |||
sizeChange(pageSize) { | |||
this.pageSize = pageSize; | |||
this.getData(); | |||
}, | |||
dateFormat(unix) { | |||
return dayjs(unix * 1000).format('YYYY-MM-DD HH:mm'); | |||
} | |||
}, | |||
beforeMount() { | |||
this.getData(); | |||
}, | |||
mounted() { }, | |||
beforeDestroy() { }, | |||
}; | |||
</script> | |||
<style scoped lang="less"> | |||
.table-container { | |||
margin-top: 30px; | |||
.table-title { | |||
height: 43px; | |||
font-size: 16px; | |||
font-weight: 700; | |||
padding: 15px; | |||
color: rgb(16, 16, 16); | |||
border-color: rgb(212, 212, 213); | |||
border-width: 1px; | |||
border-style: solid; | |||
border-radius: 5px 5px 0px 0px; | |||
background: rgb(240, 240, 240); | |||
display: flex; | |||
align-items: center; | |||
} | |||
.table-wrap { | |||
overflow-x: auto; | |||
margin-bottom: 20px; | |||
/deep/ .el-table__header { | |||
th { | |||
background: rgb(249, 249, 249); | |||
font-size: 12px; | |||
color: rgb(136, 136, 136); | |||
font-weight: normal; | |||
} | |||
} | |||
/deep/ .el-table__body { | |||
td { | |||
font-size: 12px; | |||
} | |||
} | |||
/deep/ .el-radio__label { | |||
display: none; | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,17 @@ | |||
import Vue from 'vue'; | |||
import ElementUI from 'element-ui'; | |||
import 'element-ui/lib/theme-chalk/index.css'; | |||
import localeEn from 'element-ui/lib/locale/lang/en'; | |||
import localeZh from 'element-ui/lib/locale/lang/zh-CN'; | |||
import { i18n, lang } from '~/langs'; | |||
import App from './index.vue'; | |||
Vue.use(ElementUI, { | |||
locale: lang === 'zh-CN' ? localeZh : localeEn, | |||
size: 'small', | |||
}); | |||
new Vue({ | |||
i18n, | |||
render: (h) => h(App), | |||
}).$mount('#__vue-root'); |
@@ -1,6 +1,6 @@ | |||
<template> | |||
<div> | |||
<TopHeader :menu="1"></TopHeader> | |||
<TopHeader :menu="'repo_view'"></TopHeader> | |||
<div class="ui container"> | |||
<SearchBar :type="1" :condition="condition" @changeCondition="changeCondition"></SearchBar> | |||
<div class="conent-c"> | |||
@@ -1,6 +1,6 @@ | |||
<template> | |||
<div> | |||
<TopHeader :menu="0"></TopHeader> | |||
<TopHeader :menu="'tech_view'"></TopHeader> | |||
<div class="ui container"> | |||
<SearchBar :type="0" :condition="condition" @changeCondition="changeCondition"></SearchBar> | |||
<div class="conent-c"> | |||