提交 337fb710 authored 作者: zax's avatar zax

Merge branch 'master' into 'zax'

# Conflicts: # src/router/index.js # src/services/server.js
......@@ -209,4 +209,5 @@ export default {
height: 100px;
}
</style>
......@@ -94,7 +94,8 @@ export default {
for (let item of this.allData) {
item.createDate = item.createDate === '' ? '暂无' : this.time(item.createDate);
}
}).catch(err => {
this.$message.error('数据请求失败!');
})
},
// 搜索栏
......@@ -136,7 +137,9 @@ export default {
message: '删除成功!'
});
this.init()
});
}).catch(err => {
this.$message.error('数据请求失败!');
})
}).catch(() => {
this.$message({
type: 'info',
......
......@@ -71,7 +71,7 @@
<img src="./img/GZ.png">
<span>规则配置</span>
</p>
<p class="bg" v-if="this.$store.getters.getUserData.type === 1">
<p class="bg" v-if="this.$store.getters.getUserData.type === 1" @click="jump('parameterConfiguration',6,'参数配置')">
<img src="./img/CS.png">
<span>参数配置</span>
</p>
......
......@@ -18,6 +18,7 @@
max-height="840"
:data="allData"
stripe
@row-click="jump"
style="width: 100%;">
<el-table-column
prop="technologyName"
......@@ -79,7 +80,7 @@
<!-- 新增 / 编辑 公用弹窗 -->
<el-dialog :visible.sync="openModel" class="model">
<span class="closeModel" @click="reset()"></span>
<component :is="components" @on-cancel="reset"></component>
<component :is="components" :value="value" @on-cancel="reset"></component>
</el-dialog>
</div>
</template>
......@@ -95,7 +96,8 @@ export default {
totleLength: 0, // 获取后台传的所有数据的长度
allData:[], // 列表内容
openModel: false, // 弹框开关
components: '' // 当前弹框内容
components: '', // 当前弹框内容
value: ''
}
},
created() {
......@@ -113,6 +115,8 @@ export default {
console.log(res.data)
this.allData = res.data.rows;
this.totleLength = res.data.total;
}).catch(err => {
this.$message.error('数据请求失败!');
})
},
// 搜索栏
......@@ -135,11 +139,19 @@ export default {
this.init();
this.openModel = false;
this.components = '';
this.value = ''
},
// 修改技术
jump(row) {
this.openModel = true;
this.components = 'add';
this.value = row;
},
// 新增技术
add() {
this.openModel = true;
this.components = 'add'
this.components = 'add';
this.value = '';
}
},
components: {
......
<template>
<div class="addPerson">
<div class="addkeyTechnology">
<p class="dialog-header">
<span>新增关键技术</span>
<span>{{title}}</span>
</p>
<div class="content">
<el-form :model="form" :rules="rules" ref="form">
<p class="rowForm">
<el-form-item label="技术名称" :label-width="formLabelWidth2" prop="technologyName">
<el-input v-model="form.technologyName" autocomplete="off" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="技术建议" :label-width="formLabelWidth" prop="advice">
<el-input v-model="form.advice" autocomplete="off" placeholder="请输入"></el-input>
</el-form-item>
</p>
<p class="rowForm">
<el-form-item label="适配金额" :label-width="formLabelWidth2" prop="fund">
<el-input v-model="form.fund" autocomplete="off" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="是否支持国产化" :label-width="formLabelWidth" prop="support">
<el-select v-model="form.support" placeholder="请选择" >
<el-option label="支持" value="1"></el-option>
<el-option label="不支持" value="2"></el-option>
<el-option label="未知" value="3"></el-option>
<el-option label="不完全支持" value="4"></el-option>
<el-option label="优化" value="5"></el-option>
</el-select>
</el-form-item>
</p>
<p class="rowForm">
<el-form-item label="使用技术" :label-width="formLabelWidth2" prop="backorfront">
<el-select v-model="form.backorfront" placeholder="请选择" >
<el-option label="前端技术" value="1"></el-option>
<el-option label="后端技术" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="类型:" prop="configurationId" :label-width="formLabelWidth">
<el-select v-model="form.category_id" placeholder="请选择">
<el-option
v-for="item in tableDataAdd"
:key="item.id"
:label="item.typeName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</p>
<p class="line"></p>
<p class="buttonClick">
<span class="buttonCancl" @click="resetForm('form')">取消</span>
<span class="buttonSave" @click="submitForm('form')">保存</span>
</p>
</el-form>
</div>
</div>
</template>
<script>
export default {
props: [],
props: ['value'],
data () {
return {
form: {
technologyName: '',
advice: '',
fund: '',
support: '',
backorfront: '',
category_id: ''
},
rules: {
}
// technologyName: [
// { required: true, message: '请输入名称', trigger: 'blur' }
// ],
// advice: [
// { required: true, message: '请输入技术建议', trigger: 'blur' }
// ],
// fund: [
// { required: true, message: '请输入适配金额', trigger: 'blur' }
// ],
// support: [
// { required: true, message: '请选择是否支持国产化', trigger: 'blur' }
// ],
// backorfront: [
// { required: true, message: '请选择使用技术', trigger: 'blur' }
// ],
// configurationId: [
// { required: true, message: '请选择类型', trigger: 'blur' }
// ]
},
formLabelWidth: '150px',
formLabelWidth2: '100px',
tableDataAdd:[],
title:'',
}
},
created() {
},
mounted(){
if (this.value === '') {
this.title = '适配关键技术';
} else {
this.title = '修改关键技术';
console.log(this.value)
this.form.technologyName = this.value.technologyName;
this.form.advice = this.value.advice;
this.form.fund = this.value.fund;
this.form.support = String(this.value.support);
this.form.backorfront = String(this.value.backorfront);
this.form.category_id = String(this.value.category_id);
}
this.$server.getAllKeySelect().then(res => {
console.log(res);
this.tableDataAdd = res.data;
});
},
methods: {
// 表单提交
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.form.fund = parseInt(this.form.fund);
this.form.support = parseInt(this.form.support);
this.form.backOrFront = parseInt(this.form.backOrFront);
if (this.value === '') {
this.$server.addTec(this.form).then(res => {
if (res.data === 200) {
this.$message.success('新增成功!')
this.$emit('on-cancel')
} else {
this.$message.error('新增失败!')
}
});
} else {
this.$server.editKey(this.value.id,this.form).then(res=>{
if (res.data === 200) {
this.$message.success('修改成功!')
this.$emit('on-cancel')
} else {
this.$message.error('修改失败!')
}
}).catch(err => {
this.$message.error('数据请求失败!');
})
}
} else {
return false;
}
});
},
// 取消
resetForm(formName) {
this.$refs[formName].resetFields();
this.$emit('on-cancel')
},
},
components: {
},
......@@ -33,45 +162,50 @@ export default {
}
</script>
<style scoped>
.addPerson .content{
padding: 50px 80px 0 80px;
.addkeyTechnology .content{
padding: 50px
}
.addPerson>>>.el-input__inner{
.addkeyTechnology>>>.el-input__inner{
border: 1px solid rgba(8,104,157,.3);
border-radius: 2px;
font-size: 18px;
height: 34px;
line-height: 34px;
width: 180px;
width: 150px;
}
.addPerson .line{
margin: 0px 30px 0 30px;
.addkeyTechnology .line{
margin: 55px 20px 0 20px;
height: 1px;
background: rgba(72,119,230,0.2);
}
.addPerson .buttonClick{
.addkeyTechnology .buttonClick{
display: flex;
justify-content: space-evenly;
margin-top: 20px;
}
.addPerson .inline{
.addkeyTechnology .inline{
display: inline-block;
}
.addPerson>>>.el-form-item__label{
.addkeyTechnology>>>.el-form-item__label{
font-size: 18px;
color: #666;
}
.addPerson>>>.el-radio__label{
.addkeyTechnology>>>.el-radio__label{
font-size: 18px;
color: #999;
}
.addPerson>>>.el-upload-list--picture-card .el-upload-list__item, .addPerson>>>.el-upload--picture-card{
.addkeyTechnology>>>.el-upload-list--picture-card .el-upload-list__item, .addkeyTechnology>>>.el-upload--picture-card{
height: 90px;
width: 70px;
line-height: 90px;
}
.addPerson>>>.el-form-item{
.addkeyTechnology>>>.el-form-item{
margin-bottom: 15px;
}
.addkeyTechnology .rowForm{
display: flex;
justify-content: space-between;
margin-bottom: 20px;
}
</style>
<template>
<div class="parameter">
<el-row>
<el-col :span="24">
<div class="content">
<p class="title">人员信息</p>
<p class="buttonP" @click="change">
<span class="button" title="编辑"><span></span></span>
</p>
<p class="rowFrom">
<span class="searchVal">
<span>年复利率:</span>
<el-input v-model="allVal.moneyRate.value" size="medium" placeholder="请输入" :disabled="disabled"></el-input>
</span>
<span class="searchVal">
<span>重构占比:</span>
<el-input v-model="allVal.proportion.value" size="medium" placeholder="请输入" :disabled="disabled"></el-input>
</span>
<span class="searchVal">
<span>适配占比:</span>
<el-input v-model="allVal.adaptivepro.value" size="medium" placeholder="请输入" :disabled="disabled"></el-input>
</span>
</p>
<p class="rowFrom">
<span class="searchVal">
<span>修改占比:</span>
<el-input v-model="allVal.updatepro.value" size="medium" placeholder="请输入" :disabled="disabled"></el-input>
</span>
<span class="searchVal">
<span>人工单价:</span>
<el-input v-model="allVal.personMoney.value" size="medium" placeholder="请输入" :disabled="disabled"></el-input>
</span>
<span class="searchVal">
<span>规则输入开关:</span>
<el-input v-model="allVal.admin.value" size="medium" placeholder="请输入" :disabled="disabled"></el-input>
</span>
</p>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
import $ from 'jquery';
export default {
data () {
return {
allVal: {
moneyRate: {
value: '',
id: ''
}, // 年复利率
proportion: {
value: '',
id: ''
}, // 重构占比
adaptivepro: {
value: '',
id: ''
}, // 适配占比
updatepro: {
value: '',
id: ''
}, // 修改占比
personMoney: {
value: '',
id: ''
}, // 人工单价
admin: {
value: '',
id: ''
} // 规则输入开关
},
disabled: true
}
},
created() {
},
mounted(){
this.$server.getConfigValue().then(res=>{
console.log(res)
for (let item of res.data) {
switch (item.name) {
case 'moneyRate':
this.allVal.moneyRate.value = item.value;
this.allVal.moneyRate.id = item.id;
break;
case 'proportion':
this.allVal.proportion.value = item.value;
this.allVal.proportion.id = item.id;
break;
case 'adaptivepro':
this.allVal.adaptivepro.value = item.value;
this.allVal.adaptivepro.id = item.id;
break;
case 'updatepro':
this.allVal.updatepro.value = item.value;
this.allVal.updatepro.id = item.id;
break;
case 'personMoney':
this.allVal.personMoney.value = item.value;
this.allVal.personMoney.id = item.id;
break;
case 'admin':
this.allVal.admin.value = item.value;
this.allVal.admin.id = item.id;
break;
}
}
})
},
methods: {
change() {
if (this.disabled === true) {
this.disabled = false;
$('.button>span').addClass('changeimg')
} else {
this.disabled = true;
$('.button>span').removeClass('changeimg');
let val = [];
val.push(this.allVal.moneyRate);
val.push(this.allVal.proportion);
val.push(this.allVal.adaptivepro);
val.push(this.allVal.updatepro);
val.push(this.allVal.personMoney);
val.push(this.allVal.admin);
this.$server.editConfigValue(val).then(res=>{
if (res.data === 200) {
this.$message.success('修改成功!')
} else {
this.$message.error('修改失败!')
}
}).catch(err => {
this.$message.error('数据请求失败!');
})
}
}
},
components: {
},
watch: {
}
}
</script>
<style scoped>
.parameter{
background: #ebf0f8;
width: 100%;
}
.parameter .content{
margin: 40px;
height: 841px;
background: #fff;
overflow: hidden;
}
.parameter .content .title{
padding: 30px 0 0 60px;
font-size: 20px;
color: #233b6e;
position: relative;
}
.parameter .content .buttonP{
padding: 10px 70px 40px 0px;
text-align: right;
}
.parameter .content .button{
display: inline-block;
width: 35px;
text-align: center;
background: #4877e6;
cursor: pointer;
border-radius: 4px;
color: #fff;
font-size: 18px;
}
.parameter .content .button:hover{
background: rgba(72,119,230,.6);
}
.parameter .content .button>span{
display: inline-block;
width: 19px;
height: 19px;
background: url("./img/change.png");
margin-top: 8px;
}
.parameter .content .button .changeimg{
background: url("./img/submit.png");
}
.parameter .content .rowFrom{
display: flex;
justify-content: space-evenly;
margin: 20px 0 50px 0;
}
.parameter .content .searchVal>span{
width: 120px;
display: inline-block;
text-align: right;
}
.parameter .content>>>.el-input{
width: 250px;
}
.parameter>>>.el-input--medium .el-input__inner{
font-size: 18px;
color: #333;
font-family: 'Regular';
}
</style>
......@@ -10,7 +10,7 @@
<el-input v-model="searchVal" size="medium" placeholder="请输入查询内容" @change="search"></el-input>
</span>
<span class="button buttonSave" @click="search">搜索</span>
<span class="button add" @click="addProject" :title="新增项目"><img src="./img/addpro.png"></span>
<span class="button add" @click="addProject" title="新增项目"><img src="./img/addpro.png"></span>
</p>
<div class="common-table">
<el-table
......
......@@ -267,6 +267,7 @@ export default {
font-size: 18px;
color: #666;
background: rgba(72,119,230,0.1);
font-family: 'Medium';
}
.projectInformation .title>span:nth-child(1){
display: inline-block;
......
......@@ -5,45 +5,46 @@
}
.sidebarAll .sidebar .menu{
text-align: center;
margin-top: 24px;
height: 60px;
line-height: 60px;
padding: 10px 0 10px 0px;
margin-bottom: 10px;
cursor: pointer;
position: relative;
transition: all 0.5s;
}
.sidebarAll .sidebar .line{
height: 60px;
width: 0px;
background: #4877e6;
display: inline-block;
position: absolute;
left: 0px;
transition: all 0.5s;
}
.sidebarAll .sidebar .font{
display: block;
display: inline-block;
font-size: 18px;
color: #233b6e;
transition: all 0.5s;
}
.sidebarAll .sidebar>div{
margin-top: 24px;
}
.sidebarAll .sidebar>div:hover .menu{
background: #ebf0f8;
border-top-left-radius: 50px;
border-bottom-left-radius: 50px;
}
.sidebarAll .sidebar>div:hover .font{
background: #4877e6;
border-top-left-radius: 50px;
border-bottom-left-radius: 50px;
color: #fff;
color: #4877e6;
}
.sidebarAll .sidebar>div:hover .line{
width: 5px;
}
.sidebarAll .sidebar .click{
background: #ebf0f8;
border-top-left-radius: 50px;
border-bottom-left-radius: 50px;
}
.sidebarAll .sidebar .fontClick{
background: #4877e6;
border-top-left-radius: 50px;
border-bottom-left-radius: 50px;
color: #fff;
color: #4877e6;
}
.sidebarAll .sidebar .lineClick{
width: 5px;
}
......@@ -4,102 +4,119 @@
<div @click="clickMenu('evaluationReport',1,'评估报告管理')">
<p class="menu">
<span class="font">评估报告管理</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('projectManagement',2,'项目管理')" v-if="this.$store.getters.getUserData.type === 1">
<p class="menu">
<span class="font">项目管理</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('projectManagement',2,'我的项目')" v-if="this.$store.getters.getUserData.type !== 1">
<p class="menu">
<span class="font">我的项目</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('complaintManagement',3,'投诉管理')" v-if="this.$store.getters.getUserData.type === 1">
<p class="menu">
<span class="font">投诉管理</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('complaint',3,'意见建议')" v-if="this.$store.getters.getUserData.type !== 1">
<p class="menu">
<span class="font">意见建议</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('keyTechnology',4,'关键技术管理')">
<p class="menu">
<span class="font">关键技术管理</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('roleDispose',5,'规则配置')">
<p class="menu">
<span class="font">规则配置</span>
<span class="line"></span>
</p>
</div>
<div>
<div @click="clickMenu('parameterConfiguration',6,'参数配置')">
<p class="menu">
<span class="font">参数配置</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('UnDependence',7,'未知依赖配置')">
<p class="menu">
<span class="font">未知依赖配置</span>
<span class="line"></span>
</p>
</div>
<div>
<p class="menu">
<span class="font">基地建设</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('XCalliance',9,'XX联盟')">
<p class="menu">
<span class="font">XX联盟</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('integration',10,'XXX一体化')">
<p class="menu">
<span class="font">XXX一体化</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('',11,'国家名录')" v-if="this.$store.getters.getUserData.type !== 1">
<p class="menu">
<span class="font">国家名录</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('',12,'市级名录')" v-if="this.$store.getters.getUserData.type !== 1">
<p class="menu">
<span class="font">市级名录</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('',11,'基础资料管理')" v-if="this.$store.getters.getUserData.type === 1">
<p class="menu">
<span class="font">基础资料管理</span>
<span class="line"></span>
</p>
</div>
<div @click="clickMenu('',12,'市级准入管理')" v-if="this.$store.getters.getUserData.type === 1">
<p class="menu">
<span class="font">市级准入管理</span>
<span class="line"></span>
</p>
</div>
<div>
<p class="menu">
<span class="font">课题攻关</span>
<span class="line"></span>
</p>
</div>
......@@ -244,10 +261,13 @@ export default {
clickMenu(name, num,title) {
$('.sidebar .menu').removeClass('click'); // 样式修改
$('.sidebar .font').removeClass('fontClick');
$('.sidebar .line').removeClass('lineClick');
let menu = '.sidebar>div:nth-child(' + num + ') .menu';
let font = '.sidebar>div:nth-child(' + num + ') .font';
let line = '.sidebar>div:nth-child(' + num + ') .line';
$(menu).addClass('click');
$(font).addClass('fontClick');
$(line).addClass('lineClick');
let nowName; // 定义当前path
for (let item of this.menu) {
if (item.name === title) {
......
......@@ -211,17 +211,11 @@ export default new Router({
name: 'keyTechnology',
component: resolve => require(['../components/keyTechnology/keyTechnology.vue'], resolve)
},
// 规则配置
// 参数配置
{
path: '/roleDispose',
name: 'roleDispose',
component: resolve => require(['../components/roleDispose/roleDispose.vue'], resolve)
},
// 未知依赖配置
{
path: '/UnDependence',
name: 'UnDependence',
component: resolve => require(['../components/UnDependenceDispose/UnDependence.vue'], resolve)
path: '/parameterConfiguration',
name: 'parameterConfiguration',
component: resolve => require(['../components/parameterConfiguration/parameterConfiguration.vue'], resolve)
},
]
......
......@@ -289,37 +289,36 @@ const server = {
method: 'delete'
})
},
getAllPageList(page,size,data){ // 关键技术管理
getAllPageList(page,size,data){ // 关键技术管理列表
return axios(assessment + '/technology/search/' + page + '/' + size,{
method: 'post',
data: data
})
},
getAllList(){ // 关键技术
return axios(assessment + '/technology',{
getAllKeySelect(){ // 获取关键技术类型
return axios(assessment + '/category',{
method: 'get'
})
},
editConfigUpdate(data){ // 修改规则配置
return axios(assessment + '/rule/update',{
addTec(data){ // 新增关键技术管理
return axios(assessment + '/technology/add',{
method: 'post',
data:data
data: data
})
},
addConfig(data){ // 规则
return axios(assessment + '/rule',{
editKey(id,data){ // 修改关键技术管理
return axios(assessment + '/technology/' + id,{
method: 'post',
data: data
})
},
delConfig(data){ // 规则配置删除
return axios(assessment + '/rule/',{
method: 'delete',
data: data
getConfigValue(){ // 获取参数配置
return axios(assessment + '/config',{
method: 'get',
})
},
getConfigPageList(page,size,data){ // 未知规则配置搜索
return axios(assessment + '/rule/search/' + page + '/' + size,{
editConfigValue(data){ // 修改参数配置
return axios(assessment + '/config/updates',{
method: 'post',
data: data
})
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论