提交 56bbc08b authored 作者: CRS's avatar CRS

new

上级 02616c7a
......@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
<title>XXX工作台</title>
</head>
<body>
<noscript>
......
......@@ -12,25 +12,6 @@
<span>产品组合:</span>
<div>
<el-scrollbar style="height: 100%">
<p style="margin-bottom: 10px;">
<el-select v-model="product1" placeholder="请选择" clearable>
<el-option
v-for="item in product1List"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="product2" placeholder="请选择" clearable style="margin-left: 20px;">
<el-option
v-for="item in product2List"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
<img src="./img/delN.png" class="del">
</p>
<p style="margin-bottom: 10px;" v-for="(val,index) of allProduct" v-if="allProduct.length !== 0">
<el-select v-model="val.product1" placeholder="请选择" clearable @change="changeVal(val.product1,index)">
<el-option
......@@ -48,7 +29,7 @@
:value="item.id">
</el-option>
</el-select>
<img src="./img/delN.png" class="del" @click="dele(index)">
<img src="./img/delN.png" class="del" @click="dele(index)" v-if="allProduct.length > 1">
</p>
<p class="addProduct" @click="addProduct"><img src="./img/clickN.png"><span>新增产品组合</span></p>
</el-scrollbar>
......@@ -69,8 +50,6 @@ export default {
data () {
return {
addVal: '',
product1: '',
product2: '',
product1List: [
{
value: 1,
......@@ -93,8 +72,35 @@ export default {
label: '其他'
}
],
product2List: [],
allProduct: []
allProduct: [
{
'product1': '',
'product2': '',
'product1List': [
{
value: 1,
label: '服务器'
}, {
value: 2,
label: 'CPU'
}, {
value: 3,
label: '操作系统'
}, {
value: 4,
label: '数据库'
}, {
value: 5,
label: '中间件'
},
{
value: 6,
label: '其他'
}
],
'product2List': []
}
]
}
},
created() {
......@@ -104,17 +110,6 @@ export default {
this.addVal = this.row.name; // 修改名称
console.log(this.row)
for (let i = 0; i < this.row.producies.length; i++) {
if (i === 0) { // 修改第一个产品类型
this.product1 = this.row.producies[i].form;
this.$server.getFindByForm(this.row.producies[i].form).then((res) => { // 数据请求
if (res.data.code === 200) {
this.product2List = res.data.data;
this.product2 = this.row.producies[i].id;
}
}).catch(err => {
this.$message.error('数据请求失败!');
})
} else { // 修改后面自动生成的产品类型
let product2List;
this.$server.getFindByForm(this.row.producies[i].form).then((res) => { // 数据请求
if (res.data.code === 200) {
......@@ -132,13 +127,11 @@ export default {
})
}
}
}
},
methods: {
// 保存
save() {
let va = [];
va.push(this.product2);
for (let item of this.allProduct) {
va.push(item.product2)
}
......@@ -205,7 +198,11 @@ export default {
},
// 删除产品组合
dele(index) {
if (this.allProduct.length !== 1) {
this.allProduct.splice(index,1)
} else {
console.log('111111111111111111')
}
}
},
components: {
......
......@@ -43,7 +43,7 @@
<img src="./img/WD.png">
<span>我的项目</span>
</p>
<p class="bg" v-if="this.$store.getters.getUserData.type === 1" @click="jump('document',7,'项目管理')">
<p class="bg" v-if="this.$store.getters.getUserData.type === 1" @click="jump('projectManagement',7,'项目管理')">
<img src="./img/WD.png">
<span>项目管理</span>
</p>
......@@ -121,7 +121,7 @@ export default {
},
// 跳转到其他页面
goOther(path) {
if (path === 'http://120.55.57.35:8080/assessment/#/homeDetailcopy' && this.$store.getters.getUserData.type !== 1) {
if (path === 'http://120.55.57.35:8080/assessment/#/homeDetailcopy') {
let val = 'http://120.55.57.35:8080/assessment/#/homeDetailcopy' + '?username=' + this.$store.getters.getUserData.userName;
window.open(val);
} else {
......
......@@ -4,7 +4,6 @@
<el-row>
<el-col :span="24">
<div class="content">
<p class="title">文件管理</p>
<p class="search">
<span class="searchVal">
<el-input v-model="searchVal" size="medium" placeholder="请输入"></el-input>
......@@ -47,6 +46,19 @@
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-size="pagesize"
background
layout="prev, pager, next"
:total="totleLength">
</el-pagination>
</div>
<!-- 分页 -->
</div>
</el-col>
</el-row>
......@@ -59,7 +71,21 @@ export default {
data () {
return {
searchVal: '',
allData: []
allData: [],
currentPage: 1, // 分页第一页
pagesize: 7, // 每页个数
totleLength: 0, // 获取后台传的所有数据的长度
}
},
methods: {
// 点击分页
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
// 当前页数
handleCurrentChange(val) {
// console.log(`当前页: ${val}`);
this.currentPage = val;
}
}
}
......@@ -67,20 +93,8 @@ export default {
<style scoped>
.document{
background: #ebf0f8;
width: 100%;
}
.document .content{
margin: 40px;
height: 841px;
background: #fff;
overflow: hidden;
cursor: default;
}
.document .content .title{
padding: 30px 0 0 60px;
font-size: 20px;
color: #233b6e;
}
.document .content .search{
position: relative;
......
......@@ -4,7 +4,6 @@
<el-row>
<el-col :span="24">
<div class="content">
<p class="title">硬件清单</p>
<p class="search">
<span class="searchVal">
<el-input v-model="searchVal" size="medium" placeholder="请输入"></el-input>
......@@ -40,6 +39,19 @@
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-size="pagesize"
background
layout="prev, pager, next"
:total="totleLength">
</el-pagination>
</div>
<!-- 分页 -->
</div>
</el-col>
</el-row>
......@@ -52,7 +64,21 @@ export default {
data () {
return {
searchVal: '',
allData: []
allData: [],
currentPage: 1, // 分页第一页
pagesize: 7, // 每页个数
totleLength: 0, // 获取后台传的所有数据的长度
}
},
methods: {
// 点击分页
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
// 当前页数
handleCurrentChange(val) {
// console.log(`当前页: ${val}`);
this.currentPage = val;
}
}
}
......@@ -60,20 +86,8 @@ export default {
<style scoped>
.hardware{
background: #ebf0f8;
width: 100%;
}
.hardware .content{
margin: 40px;
height: 841px;
background: #fff;
overflow: hidden;
cursor: default;
}
.hardware .content .title{
padding: 30px 0 0 60px;
font-size: 20px;
color: #233b6e;
}
.hardware .content .search{
position: relative;
......
......@@ -4,7 +4,6 @@
<el-row>
<el-col :span="24">
<div class="content">
<p class="title">操作日志</p>
<p class="search">
<span class="searchVal">
<el-input v-model="searchVal" size="medium" placeholder="请输入"></el-input>
......@@ -40,6 +39,19 @@
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-size="pagesize"
background
layout="prev, pager, next"
:total="totleLength">
</el-pagination>
</div>
<!-- 分页 -->
</div>
</el-col>
</el-row>
......@@ -52,7 +64,21 @@ export default {
data () {
return {
searchVal: '',
allData: []
allData: [],
currentPage: 1, // 分页第一页
pagesize: 7, // 每页个数
totleLength: 0, // 获取后台传的所有数据的长度
}
},
methods: {
// 点击分页
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
// 当前页数
handleCurrentChange(val) {
// console.log(`当前页: ${val}`);
this.currentPage = val;
}
}
}
......@@ -60,20 +86,8 @@ export default {
<style scoped>
.journal{
background: #ebf0f8;
width: 100%;
}
.journal .content{
margin: 40px;
height: 841px;
background: #fff;
overflow: hidden;
cursor: default;
}
.journal .content .title{
padding: 30px 0 0 60px;
font-size: 20px;
color: #233b6e;
}
.journal .content .search{
position: relative;
......
......@@ -18,6 +18,7 @@
max-height="840"
:data="allData"
stripe
@row-click="jump"
style="width: 100%;">
<el-table-column
prop="name"
......@@ -61,6 +62,19 @@
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-size="pagesize"
background
layout="prev, pager, next"
:total="totleLength">
</el-pagination>
</div>
<!-- 分页 -->
</div>
</el-col>
</el-row>
......@@ -72,17 +86,56 @@ export default {
data () {
return {
searchVal: '',
allData: [],
pageName: ''
allData: [
{
number: 1
}
],
pageName: '',
currentPage: 1, // 分页第一页
pagesize: 8, // 每页个数
totleLength: 0, // 获取后台传的所有数据的长度
}
},
mounted() {
this.pageName = this.$store.getters.getSidebar.name;
this.init();
},
methods: {
// 初始请求
init() {
this.$server.postProjectPage(this.pagesize, this.currentPage).then((res) => { // 数据请求
console.log(res.data.data)
if (res.data.code === 200) {
console.log(res.data.data);
this.allData = res.data.data.rows;
this.totleLength = res.data.data.total;
}
}).catch(err => {
this.$message.error('数据请求失败!');
})
},
// 搜索栏
search() {
this.init();
},
// 新增项目
addProject () {
this.$router.push({name: 'projectAdd'});
},
// 项目详情
jump() {
this.$router.push({name: 'projectDetails'});
},
// 点击分页
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
// 当前页数
handleCurrentChange(val) {
// console.log(`当前页: ${val}`);
this.currentPage = val;
this.init();
}
}
}
......
<template>
<div class="projectDetails">
<el-row>
<el-col :span="24">
<div class="contentAll">
<p class="title">项目管理
<img src="./img/goback.png" class="back" @click="back" title="返回">
</p>
<p class="titleList">
<span class="titleListClick" @click="changeMenu('projectInformation',1)">项目信息</span>
<span @click="changeMenu('software',2)">软件清单</span>
<span @click="changeMenu('hardware',3)">硬件清单</span>
<span @click="changeMenu('technicalRoute',4)">技术路线</span>
<span @click="changeMenu('document',5)">文件管理</span>
<span @click="changeMenu('journal',6)">操作日志</span>
</p>
<component :is="components"></component>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
import projectInformation from '../projectInformation/projectInformation'; // 项目信息
import document from '../document/document'; // 文件管理
import hardware from '../hardware/hardware'; // 硬件管理
import software from '../software/software'; // 软件管理
import technicalRoute from '../technicalRoute/technicalRoute'; // 技术路线
import journal from '../journal/journal'; // 操作日志
import $ from 'jquery';
export default {
data () {
return {
components: 'projectInformation'
}
},
created() {
},
mounted(){
},
methods: {
// 返回
back() {
this.$router.push({name: 'projectManagement'});
},
changeMenu(val,index) {
this.components = val;
$('.titleList>span').removeClass('titleListClick');
let va = '.titleList>span:nth-child(' + index +')'
$(va).addClass('titleListClick')
}
},
components: {
document,
hardware,
journal,
software,
technicalRoute,
projectInformation
},
watch: {
}
}
</script>
<style scoped>
.projectDetails{
background: #ebf0f8;
width: 100%;
color: #666;
}
.projectDetails .contentAll{
margin: 40px;
background: #fff;
overflow: hidden;
cursor: default;
}
.projectDetails .contentAll .title{
padding: 30px 60px 0px 60px;
font-size: 20px;
color: #233b6e;
position: relative;
}
.projectDetails .contentAll .back{
position: absolute;
left: 25px;
top: 28px;
cursor: pointer;
}
.projectDetails .contentAll .back:hover{
content: url("./img/gobackH.png");
}
.projectDetails .contentAll .titleList{
margin: 30px 60px 0 60px;
font-size: 18px;
border-bottom: 1px solid rgba(72,119,230,0.3);
}
.projectDetails .contentAll .titleList>span{
display: inline-block;
width: 144px;
height: 48px;
line-height: 48px;
text-align: center;
cursor: pointer;
border-radius: 2px;
transition: all 0.5s;
}
.projectDetails .contentAll .titleList>span:hover{
background: #4877e6;
color: #fff;
}
.projectDetails .contentAll .titleListClick{
background: #4877e6;
color: #fff;
}
</style>
<template>
<div class="projectInformation">
<el-row>
<el-col :span="24">
<div class="content">
<!-- 基础信息-->
<p class="title">
<span></span>
<span>基础信息</span>
</p>
<p class="informationList">
<span class="value">
<span>项目名称:</span>
<el-input v-model="allVal.name" size="medium" :disabled="true"></el-input>
</span>
<span class="value">
<span>开始时间:</span>
<el-input v-model="allVal.startTime" size="medium" :disabled="true"></el-input>
</span>
<span class="value">
<span>完成时间:</span>
<el-input v-model="allVal.endTime" size="medium" :disabled="true"></el-input>
</span>
</p>
<p class="informationList">
<span class="value">
<span>技术路线:</span>
<el-input v-model="allVal.technical" size="medium" :disabled="true"></el-input>
</span>
<span class="value">
<span>项目当前阶段:</span>
<el-input v-model="allVal.now" size="medium" :disabled="true"></el-input>
</span>
<span class="value">
<span>建设方:</span>
<el-input v-model="allVal.build" size="medium" :disabled="true"></el-input>
</span>
</p>
<p class="informationList">
<span class="value">
<span>基础商:</span>
<el-input v-model="allVal.basis" size="medium" :disabled="true"></el-input>
</span>
<span class="value">
<span>开发商:</span>
<el-input v-model="allVal.develop" size="medium" :disabled="true"></el-input>
</span>
<span class="value">
<span>监理方:</span>
<el-input v-model="allVal.supervision" size="medium" :disabled="true"></el-input>
</span>
</p>
<!-- 里程碑-->
<p class="title">
<span></span>
<span>里程碑</span>
</p>
<div class="milestone">
<div>
<p class="process">
<span>新建</span>
<span>3030-02-01</span>
<span></span>
<span></span>
</p>
</div>
</div>
<!-- 最新动态-->
<p class="title">
<span></span>
<span>最新动态</span>
</p>
<div class="new">
<el-scrollbar style="height: 100%">
<p v-for="(item,index) of newList" v-show="newList !== ''" :key="index" class="newAll">
<span>{{index + 1}}{{item.content}}</span>
<span><img src="./img/time.png">{{item.time}}</span>
</p>
</el-scrollbar>
</div>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data () {
return {
allVal: {
name: 'XX局XX工程', // 项目名称
startTime: '2020-02-01', // 开始时间
endTime: '2022-07-12', // 结束时间
technical: '龙芯+达梦+金蝶+曙光服务器', // 技术路线
now: 'XX阶段', // 当前阶段
build: 'XX局', // 建设方
basis: 'XXX公司', // 基础商
develop: 'XXX公司', // 开发商
supervision: 'XX公司' // 监理方
},
newList: [
{
content: 'test',
time: '2020-02-02'
}
]
}
},
created() {
},
mounted(){
},
methods: {
},
components: {
},
watch: {
}
}
</script>
<style scoped>
.projectInformation{
width: 100%;
}
.projectInformation .content{
padding:0 60px 0 60px;
}
.projectInformation .title{
margin-top: 24px;
height: 32px;
line-height: 32px;
border-radius: 2px;
font-size: 18px;
color: #666;
background: rgba(72,119,230,0.1);
}
.projectInformation .title>span:nth-child(1){
display: inline-block;
width: 5px;
height: 100%;
background: #4877e6;
vertical-align: bottom;
margin-right: 5px;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
}
.projectInformation .informationList{
margin-top: 30px;
display: flex;
justify-content: space-evenly;
}
.projectInformation .informationList .value{
width: 410px;
display: flex;
font-size: 18px;
color: #666;
}
.projectInformation .informationList .value>span{
width: 180px;
display: inline-block;
line-height: 34px;
text-align: right;
}
.projectInformation>>>.el-input--medium .el-input__inner{
font-size: 18px;
color: #333;
background: #f5f8fd;
width: 280px;
font-family: 'Regular';
}
.projectInformation .content .milestone{
height: 180px;
margin-top: 30px;
padding: 10px;
border: 1px solid rgba(8, 104, 157, .1);
border-radius: 2px;
}
.projectInformation .content .new{
margin-top: 30px;
margin-bottom: 30px;
height: 220px;
padding: 10px;
border: 1px solid rgba(8, 104, 157, .1);
border-radius: 2px;
}
.projectInformation .content .newAll{
position: relative;
}
.projectInformation .content .newAll>span:nth-child(2){
position: absolute;
right: 10px;
color: #999;
}
.projectInformation .content .newAll>span:nth-child(2)>img {
margin-right: 5px;
vertical-align: top;
}
.projectInformation>>>.el-scrollbar__wrap {
overflow-x: hidden;
}
.projectInformation .process{
display: inline-block;
width: 90px;
text-align: center;
}
.projectInformation .process>span:nth-child(1), .projectInformation .process>span:nth-child(1){
display: block;
}
.projectInformation .process>span:nth-child(3){
display: block;
width: 30px;
height: 30px;
border-radius: 50%;
background: #ccc;
}
</style>
......@@ -4,7 +4,6 @@
<el-row>
<el-col :span="24">
<div class="content">
<p class="title">软件清单</p>
<p class="search">
<span class="searchVal">
<el-input v-model="searchVal" size="medium" placeholder="请输入"></el-input>
......@@ -45,6 +44,19 @@
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-size="pagesize"
background
layout="prev, pager, next"
:total="totleLength">
</el-pagination>
</div>
<!-- 分页 -->
</div>
</el-col>
</el-row>
......@@ -57,7 +69,21 @@ export default {
data () {
return {
searchVal: '',
allData: []
allData: [],
currentPage: 1, // 分页第一页
pagesize: 7, // 每页个数
totleLength: 0, // 获取后台传的所有数据的长度
}
},
methods: {
// 点击分页
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
// 当前页数
handleCurrentChange(val) {
// console.log(`当前页: ${val}`);
this.currentPage = val;
}
}
}
......@@ -65,20 +91,8 @@ export default {
<style scoped>
.software{
background: #ebf0f8;
width: 100%;
}
.software .content{
margin: 40px;
height: 841px;
background: #fff;
overflow: hidden;
cursor: default;
}
.software .content .title{
padding: 30px 0 0 60px;
font-size: 20px;
color: #233b6e;
}
.software .content .search{
position: relative;
......
......@@ -5,7 +5,6 @@
<div class="content">
<el-row>
<el-col :span="24">
<p class="title">技术路线</p>
<p class="search">
<span class="value">
<span>中间件:</span>
......@@ -76,23 +75,11 @@ export default {
</script>
<style scoped>
.technicalRoute{
background: #ebf0f8;
width: 100%;
}
.technicalRoute .content{
margin: 40px;
height: 841px;
background: #fff;
overflow: hidden;
}
.technicalRoute .content .title{
padding: 30px 0 0 60px;
font-size: 20px;
color: #233b6e;
position: relative;
}
.technicalRoute .content .search{
margin-top: 36px;
margin-top: 60px;
display: flex;
padding: 0px 70px 30px 70px;
justify-content: space-evenly;
......
......@@ -49,7 +49,7 @@
</p>
</div>
<div @click="clickMenu('',7,'项目管理')" v-if="this.$store.getters.getUserData.type === 1">
<div @click="clickMenu('projectManagement',7,'项目管理')" v-if="this.$store.getters.getUserData.type === 1">
<p class="menu">
<span class="font">项目管理</span>
</p>
......@@ -182,12 +182,7 @@ export default {
},
{
name: '项目管理',
menuList: [
{
name: '项目管理',
path: 'projectManagement'
}
]
menuList: []
},
{
name: '我的项目',
......
......@@ -193,6 +193,12 @@ export default new Router({
name: 'projectAdd',
component: resolve => require(['../components/projectManagement/project/projectAdd.vue'], resolve)
},
// 项目管理-项目新增
{
path: '/projectDetails',
name: 'projectDetails',
component: resolve => require(['../components/projectManagement/projectDetails/projectDetails.vue'], resolve)
},
]
}
......
......@@ -189,5 +189,10 @@ const server = {
data: data
});
},
postProjectPage(size,page) { // 获取项目管理列表
return axios('/project/page/' + size + '/' + page, {
method: 'post'
});
},
}
export default server;
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论