文档服务地址:http://47.92.0.57:3000/ 周报索引地址:http://47.92.0.57:3000/s/NruNXRYmV

Commit 346345b5 by 李景熙

add navheader

parent def0405c
...@@ -75,6 +75,10 @@ module.exports = { ...@@ -75,6 +75,10 @@ module.exports = {
limit: 10000, limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]') name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
} }
},
{
test: /\.scss$/,
loaders: ['style', 'css', 'sass']
} }
] ]
}, },
...@@ -89,11 +93,5 @@ module.exports = { ...@@ -89,11 +93,5 @@ module.exports = {
net: 'empty', net: 'empty',
tls: 'empty', tls: 'empty',
child_process: 'empty' child_process: 'empty'
}, }
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
]
} }
{
"name": "daplatform",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "BerlinDorin <876656787@qq.com>",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"lint": "eslint --ext .js,.vue src",
"build": "node build/build.js"
},
"dependencies": {
"element-ui": "^2.13.1",
"vue": "^2.5.2",
"vue-router": "^3.0.1"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"eslint": "^4.15.0",
"eslint-config-standard": "^10.2.1",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-node": "^5.2.0",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1",
"eslint-plugin-vue": "^4.0.0",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"node-notifier": "^5.1.2",
"node-sass": "^4.14.1",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"sass-loader": "^7.3.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
"friendly-errors-webpack-plugin": "^1.6.1", "friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1", "html-webpack-plugin": "^2.30.1",
"node-notifier": "^5.1.2", "node-notifier": "^5.1.2",
"node-sass": "^4.14.1",
"optimize-css-assets-webpack-plugin": "^3.2.0", "optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0", "ora": "^1.2.0",
"portfinder": "^1.0.13", "portfinder": "^1.0.13",
...@@ -50,6 +51,7 @@ ...@@ -50,6 +51,7 @@
"postcss-loader": "^2.0.8", "postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1", "postcss-url": "^7.2.1",
"rimraf": "^2.6.0", "rimraf": "^2.6.0",
"sass-loader": "^7.3.1",
"semver": "^5.3.0", "semver": "^5.3.0",
"shelljs": "^0.7.6", "shelljs": "^0.7.6",
"uglifyjs-webpack-plugin": "^1.1.1", "uglifyjs-webpack-plugin": "^1.1.1",
......
...@@ -9,14 +9,16 @@ export default { ...@@ -9,14 +9,16 @@ export default {
name: 'App' name: 'App'
} }
</script> </script>
<style lang='scss'>
<style> body{
margin: 0;
}
#app { #app {
font-family: 'Avenir', Helvetica, Arial, sans-serif; font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
text-align: center; text-align: center;
color: #2c3e50; color: #2c3e50;
margin-top: 60px; margin:0;
} }
</style> </style>
<template>
<el-container>
<el-header>已完成任务</el-header>
<el-container>
<el-main>
<el-table
:data="tableData"
height="570"
border
style="width: 100%">
<el-table-column
prop="taskId"
label="任务ID"
width="180">
</el-table-column>
<el-table-column
prop="author"
label="发布者ID"
width="180">
</el-table-column>
<el-table-column
prop="splitNum"
label="分片数量"
width="180">
</el-table-column>
<el-table-column
prop="date"
label="发布时间"
width="180">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span style="margin-left: 10px">{{ scope.row.date }}</span>
</template>
</el-table-column>
<el-table-column
prop="name"
label="任务名称"
>
</el-table-column>
<el-table-column
prop="status"
label="任务状态"
width="180"
>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="180">
<template slot-scope="scope">
<el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
<el-button type="text" size="small">导出</el-button>
</template>
</el-table-column>
</el-table>
</el-main>
</el-container>
<el-footer>Footer</el-footer>
</el-container>
</template>
<script>
export default {
data() {
return {
tableData: [{
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '单物体语义分割',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '人脸质量判断',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}, {
taskId:'1',
author:'小明',
splitNum:'3',
date: '2016-05-03',
name: '图片属性标注',
status: '已完成'
}]
}
}
}
</script>
<style>
.el-header, .el-footer {
background-color: #B3C0D1;
color: #333;
text-align: center;
line-height: 60px;
}
.el-aside {
background-color: #D3DCE6;
color: #333;
text-align: center;
line-height: 200px;
}
.el-main {
background-color: #E9EEF3;
color: #333;
text-align: center;
line-height: 36px;
}
body > .el-container {
margin-bottom: 40px;
}
.el-container:nth-child(5) .el-aside,
.el-container:nth-child(6) .el-aside {
line-height: 260px;
}
.el-container:nth-child(7) .el-aside {
line-height: 320px;
}
</style>
\ No newline at end of file
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<h2>Essential Links</h2>
<ul>
<li>
<a
href="https://vuejs.org"
target="_blank"
>
Core Docs
</a>
</li>
<li>
<a
href="https://forum.vuejs.org"
target="_blank"
>
Forum
</a>
</li>
<li>
<a
href="https://chat.vuejs.org"
target="_blank"
>
Community Chat
</a>
</li>
<li>
<a
href="https://twitter.com/vuejs"
target="_blank"
>
Twitter
</a>
</li>
<br>
<li>
<a
href="http://vuejs-templates.github.io/webpack/"
target="_blank"
>
Docs for This Template
</a>
</li>
</ul>
<h2>Ecosystem</h2>
<ul>
<li>
<a
href="http://router.vuejs.org/"
target="_blank"
>
vue-router
</a>
</li>
<li>
<a
href="http://vuex.vuejs.org/"
target="_blank"
>
vuex
</a>
</li>
<li>
<a
href="http://vue-loader.vuejs.org/"
target="_blank"
>
vue-loader
</a>
</li>
<li>
<a
href="https://github.com/vuejs/awesome-vue"
target="_blank"
>
awesome-vue
</a>
</li>
</ul>
<el-radio-group v-model="radio">
<el-radio :label="3">备选项</el-radio>
<el-radio :label="6">备选项</el-radio>
<el-radio :label="9">备选项</el-radio>
</el-radio-group>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App', radio: 3
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>
...@@ -2,45 +2,30 @@ ...@@ -2,45 +2,30 @@
<div class="login-container"> <div class="login-container">
<div class="login-background-text">DAPlatform</div> <div class="login-background-text">DAPlatform</div>
<div class="login-panel"> <div class="login-panel">
<ul class="nav-justified"> <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"
<li role="presentation" :class="{active: mode =='login'}"> active-text-color="#409EFF">
<a @click="mode='login'">登录</a> <el-menu-item index="1">登录</el-menu-item>
</li> <el-menu-item index="2">注册</el-menu-item>
<li role="presentation" :class="{active: mode =='register'}"> </el-menu>
<a @click="mode='register'">注册</a> <div class="input-item">
</li> 用户名:
</ul> <el-input class="input" v-model="input" placeholder="请输入用户名"></el-input>
</div>
<div v-if="mode=='login'" class="login-input-group"> <div class="input-item">
<div class="input-group"> 密码:
<span>用户名:</span> <el-input class="input" v-model="input" placeholder="请输入密码"></el-input>
<input type="text" class="form-control" placeholder="输入用户名" aria-describedby="basic-addon1"> </div>
</div> <div class="input-item" v-if="activeIndex == '2'">
<div class="input-group"> 确认密码:
<span>密码:</span> <el-input class="input" v-model="input" placeholder="请确认密码"></el-input>
<input type="text" class="form-control" placeholder="输入密码" aria-describedby="basic-addon1">
</div>
<div class="btn-group btn-group-lg" role="group" aria-label="...">
<button type="button" class="btn btn-default" @click="login()">登录</button>
</div>
</div> </div>
<div v-else class="register-input-group"> <div class="input-item" v-if="activeIndex == '2'">
<div class="input-group"> 邮箱:
<span>用户名:</span> <el-input class="input" v-model="input" placeholder="请输入邮箱"></el-input>
<input type="text" class="form-control" placeholder="输入用户名" aria-describedby="basic-addon1">
</div>
<div class="input-group">
<span>密码:</span>
<input type="text" class="form-control" placeholder="输入密码" aria-describedby="basic-addon1">
</div>
<div class="input-group">
<span>邮箱:</span>
<input type="text" class="form-control" placeholder="确认密码" aria-describedby="basic-addon1">
</div>
<div class="btn-group btn-group-lg" role="group" aria-label="...">
<button type="button" class="btn btn-default">注册</button>
</div>
</div> </div>
<el-button v-if="activeIndex == '1'" class="btn" type="primary" @click="login">登录</el-button>
<el-button v-else class="btn" type="primary" @click="register">注册</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -50,83 +35,66 @@ export default { ...@@ -50,83 +35,66 @@ export default {
name: 'Login', name: 'Login',
data () { data () {
return { return {
mode: 'login' activeIndex: '1'
} }
}, },
methods: { methods: {
handleSelect (key, keyPath) {
this.activeIndex = key
},
login () { login () {
console.log('login') this.$router.push('/index').catch(data => {})
this.$router.push('/taskhall').catch(data => {}) },
register(){
this.$router.push('/index').catch(data => {})
} }
} }
} }
</script> </script>
<!-- Add 'scoped' attribute to limit CSS to this component only --> <!-- Add 'scoped' attribute to limit CSS to this component only -->
<style scoped> <style scoped lang='scss'>
.login-container { .login-container {
position: relative; position: relative;
width: 100%; width: 100%;
min-height: 100vh; min-height: 100vh;
background-color: rgb(119, 243, 202); background-color: #409EFF;
overflow: hidden; overflow: hidden;
.login-background-text {
position: absolute;
color: white;
font-size: 150px;
top: 30vh;
left: 5vw;
text-shadow: 30px 30px 0px rgba(255, 255, 255, 0.4);
}
.login-panel {
float: right;
width: 400px;
margin-right: 10vw;
margin-top: 20vh;
margin-bottom: 10vh;
padding-top: 20px;
background-color: white;
border-radius: 10px;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
// transition: height 1s;
}
} }
.login-background-text { .input-item{
position: absolute;
color: white;
font-size: 150px;
top: 30vh;
left: 5vw;
text-shadow: 30px 30px 0px rgba(255, 255, 255, 0.4);
}
.login-panel {
position: relative;
float: right;
width: 400px;
height: 450px;
margin-right: 10vw;
margin-top: 20vh;
margin-bottom: 10vh;
padding-top: 20px;
background-color: white;
border-radius: 10px;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
}
.active a{
color: rgb(97, 211, 173);
}
a {
font-weight: bold;
font-size: 1.3em;
cursor: pointer;
color: black;
}
.input-group{
/* border: solid; */
width: 100%;
display: flex; display: flex;
justify-content: space-between;
align-items: center;
padding-left: 30px; padding-left: 30px;
padding-right: 30px; padding-right: 30px;
margin-top: 40px; justify-content: space-between;
} align-items: center;
.input-group span{ margin-top: 30px;
font-size: 1.em; .input{
} width: 70%;
.input-group input{ }
width: 70%;
height: 50px;
}
.btn-group{
position: absolute;
bottom: 40px;
right: 25px;
} }
.btn-group button{ .btn{
width: 350px; width: 80%;
background-color: rgb(97, 211, 173); margin-top: 20px;
color: white; margin-bottom: 20px;
border: none;
} }
</style> </style>
<template> <template>
<div class="nav-header-container"> <div class="nav-header-container">
<div class="nav-header"> <el-menu
<div class="nav-header-logo">DAPlatform</div> :default-active="activeIndex"
<div class="nav-header-navigator"> class="el-menu-demo"
<router-link :to="{name: 'taskhall'}">任务大厅</router-link> mode="horizontal"
<router-link :to="{name: 'index'}">其它</router-link> @select="handleSelect"
</div> background-color="#409EFF"
<div class="nav-header-userInfo"> text-color="#fff"
<span class="glyphicon glyphicon-user" aria-hidden="true"></span> active-text-color="#fff"
<router-link :to="{name: 'login'}">登录</router-link> router="true">
</div> <el-menu-item index="/taskhall">任务大厅</el-menu-item>
</div> <el-menu-item index="2">我的任务</el-menu-item>
<el-menu-item index="3">发布任务</el-menu-item>
<el-menu-item index="/completed">已完成任务</el-menu-item>
<el-menu-item index="5">待审核任务</el-menu-item>
<el-menu-item index="6">我的发布</el-menu-item>
<el-menu-item index="/userhome">个人中心</el-menu-item>
<el-menu-item class="logout-btn" index="/">退出登录</el-menu-item>
</el-menu>
</div> </div>
</template> </template>
...@@ -19,53 +26,22 @@ export default { ...@@ -19,53 +26,22 @@ export default {
name: 'nav-header', name: 'nav-header',
data () { data () {
return { return {
activeIndex: '/taskhall'
} }
},
methods: {
} }
} }
</script> </script>
<!-- Add 'scoped' attribute to limit CSS to this component only --> <!-- Add 'scoped' attribute to limit CSS to this component only -->
<style scoped> <style scoped lang='scss'>
.nav-header-container{ .nav-header-container{
width: 100vw; padding-left: 10%;
background-color: rgb(97, 211, 173); padding-right: 10%;
} background-color: #409EFF;
.nav-header{ .logout-btn{
width: 90vw;
min-width: 800px;
height: 50px;
margin-left: auto;
margin-right: auto;
}
.nav-header-logo{
/* border: solid; */
float: left;
color: white;
font-size: 25px;
font-weight: bold;
line-height: 50px;
margin-right: 50px;
}
.nav-header-navigator{
float: left;
}
.nav-header-navigator a{
display: inline-block;
color: white;
font-weight: bold;
line-height: 50px;
width: 6em;
}
.nav-header-navigator a:hover{
background-color: rgb(64, 167, 132);
}
.nav-header-userInfo{
float: right; float: right;
color: white; }
line-height: 50px;
}
.nav-header-userInfo a{
color: white;
margin-left: 10px;
} }
</style> </style>
...@@ -90,7 +90,7 @@ export default { ...@@ -90,7 +90,7 @@ export default {
.task-list ul{ .task-list ul{
display: flex; display: flex;
padding: 0; padding: 0;
border-bottom: 1px solid rgb(97, 211, 173); border-bottom: 1px solid #409EFF;
margin-bottom: 0; margin-bottom: 0;
} }
.task-list ul li{ .task-list ul li{
...@@ -107,11 +107,11 @@ export default { ...@@ -107,11 +107,11 @@ export default {
} }
.tab-active{ .tab-active{
border-radius: 5px 5px 0 0; border-radius: 5px 5px 0 0;
background-color: rgb(97, 211, 173); background-color: #409EFF;
color: white; color: white;
} }
.tasks-body{ .tasks-body{
border: 1px solid rgb(97, 211, 173); border: 1px solid #409EFF;
border-top: none; border-top: none;
padding-top: 20px; padding-top: 20px;
/* width: 100%; */ /* width: 100%; */
...@@ -125,10 +125,10 @@ export default { ...@@ -125,10 +125,10 @@ export default {
margin-bottom: 20px; margin-bottom: 20px;
} }
.task-type-btn{ .task-type-btn{
background-color: rgb(97, 211, 173); background-color: #409EFF;
} }
.btn-success{ .btn-success{
background-color: rgb(97, 211, 173); background-color: #409EFF;
border: none; border: none;
} }
.task-item{ .task-item{
...@@ -139,7 +139,7 @@ export default { ...@@ -139,7 +139,7 @@ export default {
align-items: center; align-items: center;
} }
.task-item-state{ .task-item-state{
color:rgb(97, 211, 173); color:#409EFF;
font-weight: bold; font-weight: bold;
margin-left: 30px; margin-left: 30px;
} }
...@@ -159,10 +159,10 @@ export default { ...@@ -159,10 +159,10 @@ export default {
height: 500px; height: 500px;
} }
.panel-success{ .panel-success{
border-color: rgb(97, 211, 173); border-color: #409EFF;
} }
.panel-heading{ .panel-heading{
background-color: rgb(97, 211, 173); background-color: #409EFF;
border-color: rgb(97, 211, 173); border-color: #409EFF;
} }
</style> </style>
<template> <template>
<div class="main"> <el-container>
<div class="title"> <el-header>个人界面</el-header>
个人主页 <el-container>
<el-aside width="300px">
<div>
<img src ="../assets/logo.png">
</div> </div>
<div class="information"> </el-aside>
<div class="avatar"> <el-main>
头像 <el-row>
<img> <el-col :span="6"><div class="grid-content bg-purple">用户名</div></el-col>
</div> <el-col :span="18"><div class="grid-content bg-purple-light">小明</div></el-col>
<div class="others"> </el-row>
<ul> <el-row>
<li>用户名</li> <el-col :span="6"><div class="grid-content bg-purple">用户ID</div></el-col>
<li>邮箱</li> <el-col :span="18"><div class="grid-content bg-purple-light">4</div></el-col>
<li>积分</li> </el-row>
</ul> <el-row>
</div> <el-col :span="6"><div class="grid-content bg-purple">邮箱</div></el-col>
</div> <el-col :span="18"><div class="grid-content bg-purple-light">xxx@buaa.edu.cn</div></el-col>
<div class="task"> </el-row>
<ul> <el-row>
<li>单物体语义分割</li> <el-col :span="6"><div class="grid-content bg-purple">类型</div></el-col>
<li>人脸质量判断</li> <el-col :span="18"><div class="grid-content bg-purple-light">任务发布者</div></el-col>
<li>图片属性标注</li> </el-row>
<li>任务4</li> <el-row>
<li>任务5</li> <el-col :span="6"><div class="grid-content bg-purple">密码</div></el-col>
</ul> <el-col :span="18"><div class="grid-content bg-purple-light"> <el-button type="danger" plain>修改密码</el-button></div></el-col>
</div> </el-row>
</div> <el-row>
<el-col :span="24"><div class="grid-line bg-purple-dark" height:2px></div></el-col>
</el-row>
<el-row>
<el-col :span="8"><div class="grid-content bg-purple">类型</div></el-col>
<el-col :span="8"><div class="grid-content bg-purple-light">积分</div></el-col>
<el-col :span="8"><div class="grid-content bg-purple">准确率</div></el-col>
</el-row>
<el-row>
<el-col :span="8"><div class="grid-content bg-purple">图象</div></el-col>
<el-col :span="8"><div class="grid-content bg-purple-light">233</div></el-col>
<el-col :span="8"><div class="grid-content bg-purple">66%</div></el-col>
</el-row>
<el-row>
<el-col :span="8"><div class="grid-content bg-purple">文本</div></el-col>
<el-col :span="8"><div class="grid-content bg-purple-light">323</div></el-col>
<el-col :span="8"><div class="grid-content bg-purple">77%</div></el-col>
</el-row>
<el-row>
<el-col :span="8"><div class="grid-content bg-purple">发布</div></el-col>
<el-col :span="8"><div class="grid-content bg-purple-light">333</div></el-col>
<el-col :span="8"><div class="grid-content bg-purple">\</div></el-col>
</el-row>
</el-main>
</el-container>
<el-footer>Footer</el-footer>
</el-container>
</template> </template>
<style type="text/css">
/* *{ <style>
padding: 0; .el-header, .el-footer {
margin: 0; background-color: #B3C0D1;
}*/ color: #333;
.title{ text-align: center;
width: 900px; line-height: 60px;
height: 120px;
margin-left: 150px;
margin-bottom: 20px;
margin-top: 20px;
font-size: 75px;
color:black;
background-color: #c0c0c0;
} }
.information{
width: 900px; .el-aside {
height: 200px; background-color: #D3DCE6;
margin-left: 150px; color: #333;
margin-bottom: 20px; text-align: center;
line-height: 200px;
} }
.avatar{ .el-aside img{
margin-top: 50px;
width: 200px; width: 200px;
float:left; height: 200px;
} }
.others{ .el-main {
width: 650px; background-color: #E9EEF3;
float:right; color: #333;
margin-left: 10px; text-align: center;
line-height: 40px;
} }
.task{
margin-left: 150px; body > .el-container {
width: 900px; margin-bottom: 40px;
height: 1200px;
} }
.main{
background-color: #f5f5f5; .el-container:nth-child(5) .el-aside,
width:1200px; .el-container:nth-child(6) .el-aside {
height: 1200px; line-height: 260px;
margin: 20px auto;
} }
.avatar img{
height: 200px; .el-container:nth-child(7) .el-aside {
width: 200px; line-height: 320px;
}
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #99a9bf;
}
.bg-purple {
background: #d3dce6;
}
.bg-purple-light {
background: #e5e9f2;
} }
.avatar, .others{ .grid-content {
background-color: #f5f5f5; border-radius: 4px;
height:200px; height: 40px;
} }
.others li{ .grid-line {
font-weight: bold; border-radius: 4px;
list-style: none; height: 6px;
hegiht:50px;
margin-bottom: 5px;
margin-top: 5px;
background-color: white;
line-height: 50px;
cursor: pointer;
float: center;
} }
.task li{ .row-bg {
font-weight: bold; padding: 10px 0;
list-style: none; background-color: #f9fafc;
hegiht:50px;
margin-bottom: 5px;
margin-top: 5px;
background-color: white;
line-height: 50px;
cursor: pointer;
float: center;
} }
</style>
<script type="text/javascript">
</script> </style>
\ No newline at end of file
<template>
<div class="userbody">
<div class="side-bar">
</div>
<div class="main">
<div class="article" style="width: 75%;text-align: left;border-top:5px solid #343434;">
<div style="height: 100%;width: 100%;padding: 20px 30px">
<div class="userheadcontent" style="margin-bottom: 30px">
<div style="position: relative;width: 90px;height: 90px;margin-right: 15px;margin-left: 5px">
<img id="userImg" style="position: absolute;height: 120px" src="../assets/logo.png">
</div>
<div class="userheadleft">
<div class="title">{{'英语标注求助'}}</div>
<div class="status">发布用户名:{{'李宗国'}}</div>
<div class="status">发表时间:{{'2020年5月9号'}}</div>
<div class="status">所属单位:{{'北京航空航天大学'}}</div>
</div>
</div>
<div class="usercontent">
<div class="userleft">
<div class="userposttext" style = "width: 100px;">分片情况如下:</div>
<div class="userheadright">
<div class="headtext" @click="biaozhu" id="guanzhuButton1" >{{'+添加任务'}}</div>
</div>
<div style="width: 100%;height: 1px;background: darkgray"></div>
<div class="userintro1">{{'.'}}</div>
<div class="userintro">{{'人脸关键点标注,对人脸范围内的关键点进行标注和微调,每个点有准确的位置,用于精密的表情变化和人脸关键点识别。随着AI技术的发展,人脸关键点也越来越精细(数量多),对标注员的基本功和标注团队审核能力的要求也越来越高。标注质量的好坏,对人工智能人脸模型的算法精确度有很大作用,如果人脸关键点标注不好,那么人脸识别算法就无法很好地进行人脸识别,影响实际应用!'}}</div>
<div class="userheadright">
<div class="headtext" @click="biaozhu" id="guanzhuButton2" >{{'+添加任务'}}</div>
</div>
<div style="width: 100%;height: 1px;background: darkgray"></div>
<div class="userintro1">{{'.'}}</div>
<div style="position: relative;width: 90px;overflow: hidden;height: 90px;margin-right: 15px;margin-left: 5px">
<img id="userImg1" style="position: absolute;height: 90px" src="../assets/1.jpg">
</div>
<div class="userheadright">
<div class="headtext" @click="biaozhu" id="guanzhuButton3" >{{'+添加任务'}}</div>
</div>
<div style="width: 100%;height: 1px;background: darkgray"></div>
<div class="userintro1">{{'.'}}</div>
<div class="userintro">{{'人脸关键点检测方法大致分为三种:基于模型的ASM(Active Shape Model)和AAM(Active Appearnce Model)基于级联形状回归CPR(Cascaded pose regression)基于深度学习的方法专业的人工智能数据服务商,提供数据采集与数据标注服务'}}</div>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'execute',
methods: {
biaozhu () {
console.log('1')
this.$router.push({path: '/Signup'})
}
}
}
</script>
<style scoped>
.userheadcontent{
display: flex;
}
.userheadleft{
flex: 1;
height: 100%;
margin-right: 10px;
}
.userheadright{
/*display: flex;*/
width: 30%;
height: 100%;
text-align:center;
float: right;
vertical-align: middle;
}
.usercontent{
display: flex;
}
.userintro{
font-size: 14px;
margin-top: 30px;
margin-bottom: 15px;
line-height: 25px;
}
.userintro1{
font-size: 0px;
margin-top: 0px;
margin-bottom: 15px;
line-height: 25px;
}
.userleft{
flex: 1;
height: 100%;
margin-right: 20px;
}
.headtext{
outline:none;
font-family: "Yu Gothic UI";
font-size: 15px;
height: 35px;
width:100px;
border-radius: 30px;
background: rgba(0,0,0,0);
text-align: center;
vertical-align:middle;
line-height: 35px;
color: #343434;
border: 1px solid #343434;
transition: background-color 0.2s ease,border-width 0.2s ease,border-radius 0.2s ease;
}
.headtext:hover{
background: #a6dadd;
color: white;
border: 1px solid #a6dadd;
}
.headtext:active{
border-radius: 35px;
background: #343434;
color: white;
border: 1px solid #343434;
}
.userposttext{
color: #343434;
font-size: 15px;
font-weight: bold;
border-bottom: black solid 3px;
}
.userbody {
background:#f1f1f1;
/*line-height: 1.7;*/
height: 100%;
width: 100%;
}
a {
text-decoration: none;
}
a, body {
color: #9fc6dc;
}
.side-bar {
float: left;
width: 20%;
height: 100%;
position: fixed;
}
.side-bar > * {
padding: 10px 15px;
}
.side-bar .nav a,
.side-bar .tag-list a {
display: block;
padding: 5px;
color: #888;
-webkit-transition: color 200ms;
-o-transition: color 200ms;
transition: color 200ms;
}
.side-bar .nav a:hover,
.side-bar .tag-list a:hover {
color: #9fc6dc;
}
.side-bar .nav a {
font-weight: 700;
}
.main {
float: right;
width: 80%;
color: #454545;
}
.article-list .item .title,
.article .title {
color: #454545;
font-size: 26px;
font-weight: 700;
margin-bottom: 30px;
}
.article-list .item .status,
.article .status {
font-size: 13px;
color: #ccc;
}
.article-list .item > *,
.article > * {
margin: 10px 0;
}
.file input {
position: absolute;
font-size: 100px;
right: 0;
top: 0;
opacity: 0;
}
</style>
<template>
<div id = "missionDetail">
<el-container>
<el-header>
</el-header>
<el-main>
<el-row :gutter="20" >
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="待审核的任务" name="first">未完成的任务<p></p>
<el-row :gutter="24" style="border-bottom: 1px solid;border-bottom-color: #8c939d;padding-bottom: 5px">
<el-col span="4" >
<li>任务名:待审核任务:1</li>
<li>当前分数:1</li>
<li>发布者:xxx</li>
</el-col>
<el-col span="8" offset="">
任务简介:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
</el-col>
<el-col span="2" offset="4">
<el-input v-model="input" placeholder="输入得分"></el-input>
<el-button>点击打分</el-button></el-col>
</el-row>
<el-form>
<span>图片标注:</span>
<el-row :gutter="20" style="border-bottom: 1px solid;border-bottom-color: #8c939d;padding-bottom: 5px">
<el-col span="6" offset="1">
<el-row :gutter="6">图1:</el-row>
<el-row :gutter="6"><el-tag>属性1</el-tag></el-row>
</el-col>
<el-col span="6" offset="1">
<el-row :gutter="6">图2:</el-row>
<el-row :gutter="6"><el-tag>属性2</el-tag></el-row>
</el-col>
<el-col span="6" offset="1">
<el-row :gutter="6">图3:</el-row>
<el-row :gutter="6"><el-tag>属性3</el-tag></el-row>
</el-col>
</el-row>
<span>文字标注:</span>
<el-row :gutter="20" style="border-bottom: 1px solid;border-bottom-color: #8c939d;padding-bottom: 5px">
<el-col span="6" offset="1">
<el-row :gutter="6">文字1:</el-row>
<el-row :gutter="6"><el-tag>属性1</el-tag></el-row>
</el-col>
<el-col span="6" offset="1">
<el-row :gutter="6">文字2:</el-row>
<el-row :gutter="6"><el-tag>属性2</el-tag></el-row>
</el-col>
<el-col span="6" offset="1">
<el-row :gutter="6">文字3:</el-row>
<el-row :gutter="6"><el-tag>属性3</el-tag></el-row>
</el-col>
</el-row>
</el-form>
<el-button>提交</el-button>
</el-tab-pane>
<el-tab-pane label="已完成的任务" name="second">已完成的任务
<el-row :gutter="20" style="border-bottom: 1px solid;border-bottom-color: #8c939d;padding-bottom: 5px">
<el-col span="4" >
<li>任务名:已完成任务:1</li>
<li>当前分数:1</li>
<li>发布者:xxx</li>
</el-col>
<el-col span="8" >
任务简介:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
</el-col>
<el-col span="2" offset="4">
<el-button>导出任务</el-button></el-col>
</el-row>
<span>图片标注:</span>
<el-row :gutter="20" style="border-bottom: 1px solid;border-bottom-color: #8c939d;padding-bottom: 5px">
<el-col span="6" offset="1">
<el-row :gutter="6">图1:</el-row>
<el-row :gutter="6"><el-tag>属性1</el-tag></el-row>
</el-col>
<el-col span="6" offset="1">
<el-row :gutter="6">图2:</el-row>
<el-row :gutter="6"><el-tag>属性2</el-tag></el-row>
</el-col>
<el-col span="6" offset="1">
<el-row :gutter="6">图3:</el-row>
<el-row :gutter="6"><el-tag>属性3</el-tag></el-row>
</el-col>
</el-row>
<span>文字标注:</span>
<el-row :gutter="20" style="border-bottom: 1px solid;border-bottom-color: #8c939d;padding-bottom: 5px">
<el-col span="6" offset="1">
<el-row :gutter="6">文字1:</el-row>
<el-row :gutter="6"><el-tag>属性1</el-tag></el-row>
</el-col>
<el-col span="6" offset="1">
<el-row :gutter="6">文字2:</el-row>
<el-row :gutter="6"><el-tag>属性2</el-tag></el-row>
</el-col>
<el-col span="6" offset="1">
<el-row :gutter="6">文字3:</el-row>
<el-row :gutter="6"><el-tag>属性3</el-tag></el-row>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
</el-row>
</el-main>
<el-footer>
</el-footer>
</el-container>
</div>
</template>
<script>
export default {
name: 'missionDetail'
}
</script>
<style>
#missionDetail {
}
.el-header , .el-footer{
color: black;
background-color: black;
width: 100%;
height: 200px;
}
.el-main{
min-height: 400px;
}
.el-row{
margin-bottom: 20px;
}
</style>
<script>
export default {
data() {
return {
activeName: 'first'
};
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
}
}
};
</script>
<template>
<div id="release">
<el-header></el-header>
<el-main>
<el-form>
<!-- 添加图片分片-->
<el-row :gutter="20">
<el-col span="10">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:file-list="fileList"
list-type="picture">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</el-col>
<el-col span="10">
<el-upload
class="upload-demo"
ref="upload"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:file-list="fileList"
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传文本文件</div>
</el-upload>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col span="10">
<el-input v-model="input" placeholder="图片模板"></el-input>
</el-col>
<el-col span="10">
<el-input v-model="input" placeholder="文字模板"></el-input>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col span="8">
<el-input v-model="input" placeholder="输入任务名称">
</el-input>
</el-col>
<el-col span="5">
<el-button type="primary" @click="onSubmit">创建任务</el-button>
</el-col>
</el-row>
</el-form>
</el-main>
<el-footer></el-footer>
</div>
</template>
<style>
#release {
}
.el-header , .el-footer{
color: black;
background-color: black;
width: 100%;
height: 200px;
}
.el-main{
min-height: 400px;
}
.el-row{
margin-bottom: 20px;
}
</style>
<script>
export default {
name: 'release'
}
</script>
<script>
export default {
data() {
return {
fileList: [{name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100' }, {name: 'food2.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}]
};
},
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
}
}
}
</script>
<template>
<div class="taskhall">
<div class="taskhall-left">
<div class="task-list">
<div class="task-item">
<span class="task-item-title">用户名</span>
</div>
<div class="task-item">
<span class="task-item-title">邮箱号</span>
</div>
<div class="task-item">
<span class="task-item-title">积分</span>
</div>
<ul>
<li><a :class="{'tab-active': activeName == '已发布任务'}" @click="activeName='已发布任务'">已发布任务</a></li>
<li><a :class="{'tab-active': activeName == '待审核任务'}" @click="activeName='待审核任务'">待审核任务</a></li>
<li><a :class="{'tab-active': activeName == '已完成任务'}" @click="activeName='已完成任务'">已完成任务</a></li>
</ul>
<div class="tasks-body">
<div class="task-filter">
<div class="task-filter-item">
<!-- 任务类型: -->
</div>
</div>
<div class="tasks">
<div class="task-item">
<span class="task-item-title">单物体语义分割</span>
<button type="button" class="btn btn-success">进入任务</button>
</div>
<div class="task-item">
<span class="task-item-title">人脸质量判断</span>
<button type="button" class="btn btn-success">进入任务</button>
</div>
<div class="task-item">
<span class="task-item-title">图片属性标注</span>
<button type="button" class="btn btn-success">进入任务</button>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'releasepersonal',
data () {
return {
activeName: '已发布任务'
}
},
methods: {
handleClick (tab, event) {
console.log(tab, event)
}
}
}
</script>
<!-- Add 'scoped' attribute to limit CSS to this component only -->
<style scoped>
.taskhall{
width: 90vw;
min-width: 800px;
/* border: solid; */
margin-left: auto;
margin-right: auto;
margin-top: 40px;
display: flex;
}
.taskhall-left{
/* border: solid; */
width: 70%;
height: 500px;
}
.task-list{
width: 95%;
height: 100%;
}
.task-list ul{
display: flex;
padding: 0;
border-bottom: 1px solid rgb(97, 211, 173);
margin-bottom: 0;
}
.task-list ul li{
display: inline-block;
padding:0px;
}
.task-list ul li a{
display: inline-block;
width: 100%;
padding: 15px;
height: 100%;
color: black;
cursor: pointer;
}
.tab-active{
border-radius: 5px 5px 0 0;
background-color: rgb(97, 211, 173);
color: white;
}
.tasks-body{
border: 1px solid rgb(97, 211, 173);
border-top: none;
padding-top: 20px;
/* width: 100%; */
/* height: 500px; */
}
.task-filter{
text-align: left;
}
.task-filter-item{
margin-left: 30px;
margin-bottom: 20px;
}
.task-type-btn{
background-color: rgb(97, 211, 173);
}
.btn-success{
background-color: rgb(97, 211, 173);
border: none;
}
.task-item{
position: relative;
display: flex;
height: 80px;
border-top: 1px solid rgb(231, 231, 231);
align-items: center;
}
.task-item-state{
color:rgb(97, 211, 173);
font-weight: bold;
margin-left: 30px;
}
.task-item-title{
font-size: 20px;
font-weight: bold;
margin-left: 40px;
}
.task-item button{
position: absolute;
right: 20px;
/* line-height: 50px; */
}
.taskhall-right{
/* border: solid; */
width: 30%;
height: 500px;
}
.panel-success{
border-color: rgb(97, 211, 173);
}
.panel-heading{
background-color: rgb(97, 211, 173);
border-color: rgb(97, 211, 173);
}
</style>
import Vue from 'vue' import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
import release from '@/components/release' import Login from '../components/Login'
import HelloWorld from '../components/HelloWorld'
import MissionDetail from '../components/missionDetail(1)'
import execute from '../components/execute'
import Login from '@/components/Login'
import Index from '@/components/Index'
import releasepersonal from '../components/releasepersonal'
import userhome from '../components/UserHome' import userhome from '../components/UserHome'
import TaskHall from '../components/Taskhall'
import Index from '../components/Index'
import completed from '../components/CompletedTask'
Vue.use(Router) Vue.use(Router)
export default new Router({ export default new Router({
routes: [ routes: [
{ {
path: '/release',
name: 'Release',
component: release
},
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
{
path: '/missiondetail',
name: 'missiondetail',
component: MissionDetail
},
{
path: '/execute',
name: 'execute',
component: execute
},
{
path: '/index', path: '/index',
name: 'index', name: 'index',
component: Index, component: Index,
children: [ children: [
{ {
path: 'taskhall', path: '/taskhall',
name: 'taskhall', name: 'taskhall',
component: () => import('../components/TaskHall.vue') component: TaskHall
},
{
path: '/userhome',
name: 'userhome',
component: userhome
},
{
path: '/completed',
name: 'completed',
component: completed
} }
] ]
}, },
{ {
path: '/login', path: '/',
name: 'login', name: 'login',
component: Login component: Login
},
{
path: '/userinfo',
name: 'userinfo',
component: releasepersonal
},
{
path: '/userhome',
name: 'userhome',
component: userhome
} }
] ]
}) })
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment