提交 b0201580 authored 作者: zax's avatar zax

单位管理和产品管理样式修改

上级 f3ec1475
...@@ -105,6 +105,7 @@ ...@@ -105,6 +105,7 @@
padding: 0; padding: 0;
height: 60px; height: 60px;
background: #f5f8fd; background: #f5f8fd;
cursor: pointer;
} }
.content .block{ .content .block{
text-align: right; text-align: right;
...@@ -132,3 +133,10 @@ ...@@ -132,3 +133,10 @@
.content>>>.el-table__body tr.current-row > td{ .content>>>.el-table__body tr.current-row > td{
background: #f5f8fd; background: #f5f8fd;
} }
/*input搜索*/
/*.content .search>>>.el-input__prefix{*/
/* left: 154px;*/
/*}*/
/*.content .search>>>.el-input--prefix .el-input__inner{*/
/* padding-left: 15px;*/
/*}*/
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
<p class="search"> <p class="search">
<span class="searchVal"> <span class="searchVal">
<span>单位名称:</span> <span>单位名称:</span>
<el-input v-model="searchName" size="medium" placeholder="请输入"></el-input> <el-input v-model="searchName" size="medium" @keyup-enter="search('search')" placeholder="请输入"></el-input>
</span> </span>
<span class="searchVal"> <span class="searchVal">
<span>单位类别:</span> <span>单位类别:</span>
<el-select v-model="classVal" placeholder="请选择"> <el-select v-model="classVal" @change="search" placeholder="请选择">
<el-option <el-option
v-for="item in companyClass" v-for="item in companyClass"
:label="typeCompany(item)" :label="typeCompany(item)"
...@@ -20,22 +20,13 @@ ...@@ -20,22 +20,13 @@
</el-select> </el-select>
</span> </span>
<span class="button searchBtn" @click="search">搜索</span> <span class="button searchBtn" @click="search">搜索</span>
<span class="button add" @click="addCompany">新建单位</span>
<span class="button import">导入单位
<el-upload
style="margin-top: -35px;"
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-change="uploadFile">
<el-button size="small" type="primary" style="width: 100px;height: 34px;background-color: rgba(0,0,0,0);border: none"></el-button>
</el-upload>
</span>
</p> </p>
<div class="common-table"> <div class="common-table">
<el-table <el-table
highlight-current-row highlight-current-row
max-height="840" max-height="840"
:data="allData" :data="allData"
@row-click="details"
stripe stripe
style="width: 100%;margin-bottom: 10px;"> style="width: 100%;margin-bottom: 10px;">
<el-table-column <el-table-column
...@@ -49,25 +40,11 @@ ...@@ -49,25 +40,11 @@
label="单位类别" label="单位类别"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column
:formatter="statusCompany"
prop="status"
label="准入状态"
align="center">
</el-table-column>
<el-table-column <el-table-column
prop="number" prop="number"
label="联系方式" label="联系方式"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column
prop="type"
label="查看详情"
align="center">
<template slot-scope='scope'>
<span class="change" @click="details(scope.row)"><img src="./img/look.png">查看</span>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<!-- 分页 --> <!-- 分页 -->
...@@ -145,25 +122,32 @@ export default { ...@@ -145,25 +122,32 @@ export default {
name: '', name: '',
number: '', number: '',
principal: '', principal: '',
score: 0, score: '',
status: 0, status: '',
type: 0 type: ''
}; };
let change = {
'AK中心': 1,
'实施系统管理员': 2,
'监理方': 3,
'集成商': 4,
'建设方': 5,
'专家': 6,
'测试机构': 7,
'开发商': 8
}
if (val !== 'page') { // 点击搜索按钮,不是点击分页跳转 if (val !== 'page') { // 点击搜索按钮,不是点击分页跳转
this.currentPage = 1; this.currentPage = 1;
this.companyClass.map(item => { message.name = this.searchName;
let type = this.typeVal[item.type]; console.log(this.classVal)
if (this.classVal === type) { message.type = change[this.classVal];
message = item;
}
})
} }
let data = { let data = {
page: this.currentPage, page: this.currentPage,
pageSize: this.pageSize, pageSize: this.pageSize,
t: message t: message
} }
console.log(data)
this.$server.postUnitSearchAccess(data).then(res => { this.$server.postUnitSearchAccess(data).then(res => {
this.allData = res.data.data.rows; this.allData = res.data.data.rows;
this.totalLength = this.allData.length; this.totalLength = this.allData.length;
...@@ -193,33 +177,10 @@ export default { ...@@ -193,33 +177,10 @@ export default {
this.companyName = val; this.companyName = val;
} }
}, },
// 单位准入状态转换
statusCompany (row) {
return row.status === 1 ? '已准入': '未被准入'
},
// 单位类别转换 // 单位类别转换
typeCompany (row) { typeCompany (row) {
return this.typeVal[String(row.type)] return this.typeVal[String(row.type)]
}, },
// 新建单位
addCompany() {
this.openModel = true;
this.components = 'newCompany';
},
// 单位导入
uploadFile (file){
let formdata = new FormData();
formdata.append('file', file.raw);
this.$server.postUnitLoad(formdata).then(res => {
if (res.data.msg === 'OK') {
this.$message.success('导入单位成功!');
} else {
this.$message.error('导入单位失败!');
}
}).catch(err => {
this.$message.error('导入单位失败!');
})
},
// 单位查看详情 // 单位查看详情
details(val) { details(val) {
this.$router.push({name: 'companyDetails',params:{'value': val, 'type': this.typeVal}}); this.$router.push({name: 'companyDetails',params:{'value': val, 'type': this.typeVal}});
...@@ -323,6 +284,7 @@ export default { ...@@ -323,6 +284,7 @@ export default {
} }
.company .content .common-table>>>.el-table tr{ .company .content .common-table>>>.el-table tr{
font-size: 18px; font-size: 18px;
cursor: pointer;
} }
.company .content .common-table>>>.el-table{ .company .content .common-table>>>.el-table{
color: #233b6e; color: #233b6e;
...@@ -348,9 +310,25 @@ export default { ...@@ -348,9 +310,25 @@ export default {
.company .content>>>.el-table td{ .company .content>>>.el-table td{
border-bottom: 1px solid #d5e3ff; border-bottom: 1px solid #d5e3ff;
} }
/*.company .content>>>.btn-prev,.role .content>>>.btn-next{*/
/* background: #c5d5f7;*/
/* background-image: linear-gradient(to bottom, #c5d5f7,#7a95e6);*/
/* color: #fff;*/
/*}*/
/*.company .content>>>.btn-prev:disabled,.dynamicList .content>>>.btn-next:disabled{*/
/* color: #C0C4CC;*/
/*}*/
.company .content>>>.el-table__body tr.current-row > td{ .company .content>>>.el-table__body tr.current-row > td{
background: #f5f8fd; background: #f5f8fd;
} }
.company .content>>>.el-pagination.is-background .el-pager li{
background-image: linear-gradient(to bottom, #c5d5f7,#7a95e6);
color: #fff;
}
.company .content>>>.el-pagination.is-background .el-pager li:not(.disabled).active{
background-image: linear-gradient(to bottom, #7a9eeb,#274acf);
color: #fff;
}
.company .content .common-table { .company .content .common-table {
box-shadow: rgba(72, 119, 230, 0.1) 4px 4px 5px; box-shadow: rgba(72, 119, 230, 0.1) 4px 4px 5px;
border-width: 0.5px; border-width: 0.5px;
......
<template> <template>
<div class="details"> <div class="details">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="content"> <div class="content">
<el-row> <el-row>
<el-col :span="9"> <el-col :span="9">
<p class="title">单位信息</p> <p class="title">单位信息</p>
<p class="search"> <p class="search">
<span class="value"> <span class="value">
<span>单位名称:</span> <span>单位名称:</span>
<el-input v-model="data.name" size="medium" :disabled="true"></el-input> <el-input v-model="data.name" size="medium" :disabled="true"></el-input>
</span> </span>
</p> </p>
<p class="search"> <p class="search">
<span class="value"> <span class="value">
<span>单位地址:</span> <span>单位地址:</span>
<el-input v-model="data.address" size="medium" :disabled="true"></el-input> <el-input v-model="data.address" size="medium" :disabled="true"></el-input>
</span> </span>
</p> </p>
<p class="search"> <p class="search">
<span class="value"> <span class="value">
<span>联系方式:</span> <span>联系方式:</span>
<el-input v-model="data.number" size="medium" :disabled="true"></el-input> <el-input v-model="data.number" size="medium" :disabled="true"></el-input>
</span> </span>
</p> </p>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<p class="search"> <p class="search">
<span class="status"> <span class="status">
<span>单位类别:</span> <span>单位类别:</span>
<img src="../person/img/click.png" style="width: 21px;height: 21px;"> <img src="../person/img/click.png" style="width: 21px;height: 21px;">
<span>{{typeChange(data.type)}}</span> <span>{{typeChange(data.type)}}</span>
</span> </span>
</p> </p>
<p class="search"> <p class="search">
<span class="status"> <span class="status">
<span>是否准入:</span> <span>是否准入:</span>
<img src="../person/img/click.png" style="width: 21px;height: 21px;"> <img src="../person/img/click.png" style="width: 21px;height: 21px;">
<span>{{statusChange(data.status)}}</span> <span>{{statusChange(data.status)}}</span>
</span> </span>
</p> </p>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<p class="search"> <p class="search">
<span class="button">相关项目</span> <span class="button">相关项目</span>
</p> </p>
<p class="search"> <p class="search">
<span class="button" @click="personPage">相关人员</span> <span class="button" @click="personPage">相关人员</span>
</p> </p>
<p class="search"> <p class="search">
<span class="button">相关评价</span> <span class="button">相关评价</span>
</p> </p>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</template> </template>
...@@ -69,16 +69,6 @@ export default { ...@@ -69,16 +69,6 @@ export default {
} }
}, },
mounted() { mounted() {
let val = this.$store.getters.getSidebar;
if (val[val.length - 1].path !== 'companyDetails') {
val.push(
{
name: '单位信息',
path: 'companyDetails'
}
)
this.$store.commit('changeSidebar', val);
}
this.data = this.$route.params.value; this.data = this.$route.params.value;
this.type = this.$route.params.type; this.type = this.$route.params.type;
}, },
......
...@@ -31,6 +31,10 @@ ...@@ -31,6 +31,10 @@
<span>产品型号:</span> <span>产品型号:</span>
<el-input v-model="model" size="medium" placeholder="请输入"></el-input> <el-input v-model="model" size="medium" placeholder="请输入"></el-input>
</span> </span>
<span class="addVal">
<span>厂商:</span>
<el-input v-model="producer" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal"> <span class="addVal">
<span>是否准入:</span> <span>是否准入:</span>
<el-radio-group v-model="status" size="small" style="padding-top: 11px; width: 100%;text-align: left"> <el-radio-group v-model="status" size="small" style="padding-top: 11px; width: 100%;text-align: left">
...@@ -60,7 +64,8 @@ export default { ...@@ -60,7 +64,8 @@ export default {
number: '', number: '',
form: '', form: '',
productList: [], productList: [],
text: '' text: '',
producer: ''
} }
}, },
created() { created() {
...@@ -73,6 +78,7 @@ export default { ...@@ -73,6 +78,7 @@ export default {
this.type = String(this.productList.type); this.type = String(this.productList.type);
this.form = String(this.productList.form); this.form = String(this.productList.form);
this.model = this.productList.model; this.model = this.productList.model;
this.producer = this.productList.producer;
this.text = '产品信息修改' this.text = '产品信息修改'
} else { } else {
this.text = '产品新增' this.text = '产品新增'
...@@ -91,35 +97,21 @@ export default { ...@@ -91,35 +97,21 @@ export default {
form: parseInt(this.form), form: parseInt(this.form),
model: this.model, model: this.model,
name: this.name, name: this.name,
producer: '', producer: this.producer,
status: parseInt(this.status), status: parseInt(this.status),
techId: 0, techId: 0,
type: parseInt(this.type) type: parseInt(this.type)
}; };
if (this.productName === '产品信息') { this.$server.postProduceAdd(data).then(res => {
this.$server.putProduceUpdata(data).then(res => { if (res.data.code === 200) {
if (res.data.code === 200) { this.$message.success(this.text + '成功!');
this.$message.success(this.text + '成功!'); this.$emit('on-cancel', true)
this.$emit('on-cancel', true) } else {
} else {
this.$message.error(this.text + '失败!');
}
}).catch(err => {
this.$message.error(this.text + '失败!'); this.$message.error(this.text + '失败!');
}) }
} else { }).catch(err => {
this.$server.postProduceAdd(data).then(res => { this.$message.error(this.text + '失败!');
if (res.data.code === 200) { })
this.$message.success(this.text + '成功!');
this.$emit('on-cancel', true)
} else {
this.$message.error(this.text + '失败!');
}
}).catch(err => {
this.$message.error(this.text + '失败!');
})
}
} }
}, },
components: { components: {
...@@ -141,7 +133,7 @@ export default { ...@@ -141,7 +133,7 @@ export default {
font-size: 18px; font-size: 18px;
color: #666; color: #666;
text-align: center; text-align: center;
margin-top: 20px; margin-top: 15px;
} }
.newCompany .addVal>span{ .newCompany .addVal>span{
width: 140px; width: 140px;
...@@ -158,14 +150,14 @@ export default { ...@@ -158,14 +150,14 @@ export default {
width: 180px; width: 180px;
} }
.newCompany .line{ .newCompany .line{
margin: 30px 30px 0 30px; margin: 20px 30px 0 30px;
height: 1px; height: 1px;
background: rgba(72,119,230,0.2); background: rgba(72,119,230,0.2);
} }
.newCompany .buttonClick{ .newCompany .buttonClick{
display: flex; display: flex;
justify-content: space-evenly; justify-content: space-evenly;
margin-top: 20px; margin-top: 15px;
} }
.newCompany .company-content>>>.el-radio{ .newCompany .company-content>>>.el-radio{
margin-right: 22px; margin-right: 22px;
......
...@@ -7,22 +7,22 @@ ...@@ -7,22 +7,22 @@
<p class="search"> <p class="search">
<span class="searchVal"> <span class="searchVal">
<span>产品名称:</span> <span>产品名称:</span>
<el-input v-model="name" size="medium" placeholder="请输入"></el-input> <el-input v-model="name" size="medium" placeholder="请输入" @keyup-enter="search('search')"></el-input>
</span> </span>
<span class="searchVal"> <span class="searchVal">
<span>产品分类</span> <span>产品类型</span>
<el-select v-model="type" placeholder="请选择"> <el-select v-model="formValue" @change="search('search')" placeholder="请选择">
<el-option <el-option
v-for="item in typeList" v-for="item in formList"
:key="item.id" :key="item.id"
:label="typeChange(item)" :label="formChange(item)"
:value="typeChange(item)"> :value="formChange(item)">
</el-option> </el-option>
</el-select> </el-select>
</span> </span>
<span class="searchVal" style="margin-left: 6px"> <span class="searchVal" style="margin-left: 6px">
<span>技术路线:</span> <span>技术路线:</span>
<el-select v-model="techVal" placeholder="请选择"> <el-select v-model="techVal" @change="search('search')" placeholder="请选择">
<el-option <el-option
v-for="item in techList" v-for="item in techList"
:key="item.id" :key="item.id"
...@@ -32,22 +32,13 @@ ...@@ -32,22 +32,13 @@
</el-select> </el-select>
</span> </span>
<span class="button searchBtn" @click="search('search')">搜索</span> <span class="button searchBtn" @click="search('search')">搜索</span>
<span class="button add" @click="addProduct">新建产品</span>
<span class="button import">导入产品
<el-upload
style="margin-top: -35px;"
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-change="uploadFile">
<el-button size="small" type="primary" style="width: 100px;height: 34px;background-color: rgba(0,0,0,0);border: none"></el-button>
</el-upload>
</span>
</p> </p>
<div class="common-table"> <div class="common-table">
<el-table <el-table
highlight-current-row highlight-current-row
max-height="840" max-height="840"
:data="allData" :data="allData"
@row-click="details"
stripe stripe
style="width: 100%;margin-bottom: 10px;"> style="width: 100%;margin-bottom: 10px;">
<el-table-column <el-table-column
...@@ -56,32 +47,16 @@ ...@@ -56,32 +47,16 @@
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="typeChange" :formatter="formChange"
prop="type" prop="form"
label="产品分类" label="产品类型"
align="center">
</el-table-column>
<el-table-column
:formatter="statusChange"
prop="status"
label="准入状态"
align="center"> align="center">
</el-table-column> </el-table-column>>
<el-table-column <el-table-column
prop="number" :formatter="techIdChange"
prop="techId"
label="技术路线" label="技术路线"
align="center"> align="center">
<template slot-scope='scope'>
<span class="change" @click="technology(scope.row)"><img src="../../basicInformation/company/img/look.png">查看</span>
</template>
</el-table-column>
<el-table-column
prop="type"
label="查看详情"
align="center">
<template slot-scope='scope'>
<span class="change" @click="details(scope.row)"><img src="../../basicInformation/company/img/look.png">查看</span>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
...@@ -119,20 +94,24 @@ export default { ...@@ -119,20 +94,24 @@ export default {
totalLength: 0, totalLength: 0,
currentPage: 1, // 分页第一页 currentPage: 1, // 分页第一页
pageSize: 8, // 每页个数 pageSize: 8, // 每页个数
type: '', formValue: '',
name: '', name: '',
typeList: [{type: '1'}, {type: '2'}], formList: [{form: 1},{form: 2},{form: 3},{form: 4},{form: 5},{form: 6}],
allData: [], formVal: {
typeVal: { '1': '服务器',
'1':'软件', '2': 'CPU',
'2': '硬件' '3': '操作系统',
'4': '数据库',
'5': '中间件',
'6': '其他'
}, },
techList: [], techList: [],
techVal: '', techVal: '',
openModel: false, // 弹框开关 openModel: false, // 弹框开关
components: '', // 当前弹框内容 components: '', // 当前弹框内容
productName: '', productName: '',
productList: '' productList: '',
allData: []
} }
}, },
components: { components: {
...@@ -141,7 +120,7 @@ export default { ...@@ -141,7 +120,7 @@ export default {
}, },
mounted() { mounted() {
this.init(); this.init();
// this.search(); this.search();
}, },
methods: { methods: {
init() { init() {
...@@ -152,26 +131,41 @@ export default { ...@@ -152,26 +131,41 @@ export default {
this.techList = res.data.data this.techList = res.data.data
}) })
}, },
// 产品分类转换 // 技术路线值转换
typeChange(row) { techIdChange (row) {
return this.typeVal[String(row.type)] if (row.techId === null) {
return ''
} else {
this.techList.map(item => {
if (item.id === row.techId) {
return item.name
}
})
}
}, },
// 准入状态转换 // 产品分类转换
statusChange(row) { formChange(row) {
return row.status === 1 ? '已准入': '未被准入' return this.formVal[row.form]
}, },
// 搜索 // 搜索
search(val) { search(val) {
let message = { let message = {
form: 0, form: '',
model: '', model: '',
name: '', name: '',
producer: '', producer: '',
status: 0, status: '',
techId: 0, techId: '',
type: 0 type: ''
}; };
console.log(val) let change = {
'服务器': 1,
'CPU': 2,
'操作系统': 3,
'数据库': 4,
'中间件': 5,
'其他': 6
}
if (val === 'search') { if (val === 'search') {
this.page = 1; this.page = 1;
message.name = this.name; message.name = this.name;
...@@ -180,7 +174,7 @@ export default { ...@@ -180,7 +174,7 @@ export default {
message.techId = item.id message.techId = item.id
} }
}) })
message.type = this.type === '软件' ? 1 : 2 message.form = change[this.formValue]
} }
let data = { let data = {
page: this.page, page: this.page,
...@@ -202,12 +196,6 @@ export default { ...@@ -202,12 +196,6 @@ export default {
this.currentPage = val; this.currentPage = val;
this.search('page') this.search('page')
}, },
// 新建产品
addProduct() {
this.openModel = true;
this.components = 'newProduct';
this.productName = '新建产品'
},
// 关闭弹框 // 关闭弹框
reset(val) { reset(val) {
this.openModel = false; this.openModel = false;
...@@ -223,23 +211,9 @@ export default { ...@@ -223,23 +211,9 @@ export default {
this.productName = val; this.productName = val;
} }
}, },
// 产品导入
uploadFile (file){
let formdata = new FormData();
formdata.append('file', file.raw);
this.$server.postProduceUpload(formdata).then(res => {
if (res.data.msg === 'OK') {
this.$message.success('产品导入成功!');
this.search();
} else {
this.$message.error('产品导入失败!');
}
}).catch(err => {
this.$message.error('产品导入失败!');
})
},
// 产品详情 // 产品详情
details (row) { details (row) {
console.log(row)
this.openModel = true; this.openModel = true;
this.components = 'newProduct'; this.components = 'newProduct';
this.productName = '产品信息'; this.productName = '产品信息';
...@@ -329,10 +303,10 @@ export default { ...@@ -329,10 +303,10 @@ export default {
position: absolute; position: absolute;
right: 70px; right: 70px;
} }
.product .add{ /*.product .add{*/
position: absolute; /* position: absolute;*/
right: 180px; /* right: 180px;*/
} /*}*/
.product .content .common-table{ .product .content .common-table{
margin: 24px 70px 0 70px; margin: 24px 70px 0 70px;
} }
......
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
<p class="search"> <p class="search">
<span class="searchVal"> <span class="searchVal">
<span>单位名称:</span> <span>单位名称:</span>
<el-input v-model="searchName" size="medium" placeholder="请输入"></el-input> <el-input v-model="searchName" size="medium" placeholder="请输入" @keyup-enter="search"></el-input>
</span> </span>
<span class="searchVal"> <span class="searchVal">
<span>单位类别:</span> <span>单位类别:</span>
<el-select v-model="classVal" placeholder="请选择"> <el-select v-model="classVal" @change="search" placeholder="请选择">
<el-option <el-option
v-for="item in companyClass" v-for="item in companyClass"
:label="typeCompany(item)" :label="typeCompany(item)"
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
</el-option> </el-option>
</el-select> </el-select>
</span> </span>
<span class="button searchBtn" @click="search">搜索</span> <span class="button searchBtn">搜索</span>
<span class="button add" @click="addCompany">新建单位</span> <span class="button add" @click="addCompany"><img src="../../../assets/img/add.png"></span>
<span class="button import">导入单位 <span class="button import"><img src="../../../assets/img/import.png">
<el-upload <el-upload
style="margin-top: -35px;" style="margin-top: -35px;"
class="upload-demo" class="upload-demo"
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
highlight-current-row highlight-current-row
max-height="840" max-height="840"
:data="allData" :data="allData"
@row-click="details"
stripe stripe
style="width: 100%;margin-bottom: 10px;"> style="width: 100%;margin-bottom: 10px;">
<el-table-column <el-table-column
...@@ -60,14 +61,6 @@ ...@@ -60,14 +61,6 @@
label="联系方式" label="联系方式"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column
prop="type"
label="查看详情"
align="center">
<template slot-scope='scope'>
<span class="change" @click="details(scope.row)"><img src="./img/look.png">查看</span>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<!-- 分页 --> <!-- 分页 -->
...@@ -145,24 +138,32 @@ export default { ...@@ -145,24 +138,32 @@ export default {
name: '', name: '',
number: '', number: '',
principal: '', principal: '',
score: 0, score: '',
status: 0, status: '',
type: 0 type: ''
}; };
let change = {
'AK中心': 1,
'实施系统管理员': 2,
'监理方': 3,
'集成商': 4,
'建设方': 5,
'专家': 6,
'测试机构': 7,
'开发商': 8
}
if (val !== 'page') { // 点击搜索按钮,不是点击分页跳转 if (val !== 'page') { // 点击搜索按钮,不是点击分页跳转
this.currentPage = 1; this.currentPage = 1;
this.companyClass.map(item => { message.name = this.searchName;
let type = this.typeVal[item.type]; console.log(this.classVal)
if (this.classVal === type) { message.type = change[this.classVal];
message = item;
}
})
} }
let data = { let data = {
page: this.currentPage, page: this.currentPage,
pageSize: this.pageSize, pageSize: this.pageSize,
t: message t: message
} }
this.$server.postUnitSearch(data).then(res => { this.$server.postUnitSearch(data).then(res => {
this.allData = res.data.data.rows; this.allData = res.data.data.rows;
this.totalLength = this.allData.length; this.totalLength = this.allData.length;
...@@ -296,6 +297,14 @@ export default { ...@@ -296,6 +297,14 @@ export default {
.company .content .button:hover{ .company .content .button:hover{
background: rgba(72,119,230,.6); background: rgba(72,119,230,.6);
} }
.company .content .add{
right: 145px;
position: absolute;
width: 50px;
}
.company .content .import{
width: 50px;
}
.company .content .new{ .company .content .new{
position: absolute; position: absolute;
right: 70px; right: 70px;
......
...@@ -69,16 +69,6 @@ export default { ...@@ -69,16 +69,6 @@ export default {
} }
}, },
mounted() { mounted() {
let val = this.$store.getters.getSidebar;
if (val[val.length - 1].path !== 'companyDetails') {
val.push(
{
name: '单位信息',
path: 'companyDetails'
}
)
this.$store.commit('changeSidebar', val);
}
this.data = this.$route.params.value; this.data = this.$route.params.value;
this.type = this.$route.params.type; this.type = this.$route.params.type;
}, },
......
...@@ -31,6 +31,10 @@ ...@@ -31,6 +31,10 @@
<span>产品型号:</span> <span>产品型号:</span>
<el-input v-model="model" size="medium" placeholder="请输入"></el-input> <el-input v-model="model" size="medium" placeholder="请输入"></el-input>
</span> </span>
<span class="addVal">
<span>厂商:</span>
<el-input v-model="producer" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal"> <span class="addVal">
<span>是否准入:</span> <span>是否准入:</span>
<el-radio-group v-model="status" size="small" style="padding-top: 11px; width: 100%;text-align: left"> <el-radio-group v-model="status" size="small" style="padding-top: 11px; width: 100%;text-align: left">
...@@ -42,6 +46,7 @@ ...@@ -42,6 +46,7 @@
</div> </div>
<p class="line"></p> <p class="line"></p>
<p class="buttonClick"> <p class="buttonClick">
<span class="buttonCancl" @click="cancel">取消</span>
<span class="buttonSave" @click="save">确定</span> <span class="buttonSave" @click="save">确定</span>
</p> </p>
</div> </div>
...@@ -59,13 +64,25 @@ export default { ...@@ -59,13 +64,25 @@ export default {
number: '', number: '',
form: '', form: '',
productList: [], productList: [],
text: '' text: '',
producer: ''
} }
}, },
created() { created() {
}, },
mounted(){ mounted(){
console.log(this.list) if (this.productName === '产品信息') {
this.productList = this.list;
this.name = this.productList.name;
this.status = String(this.productList.status);
this.type = String(this.productList.type);
this.form = String(this.productList.form);
this.model = this.productList.model;
this.producer = this.productList.producer;
this.text = '产品信息修改'
} else {
this.text = '产品新增'
}
}, },
methods: { methods: {
cancel() { cancel() {
...@@ -80,7 +97,7 @@ export default { ...@@ -80,7 +97,7 @@ export default {
form: parseInt(this.form), form: parseInt(this.form),
model: this.model, model: this.model,
name: this.name, name: this.name,
producer: '', producer: this.producer,
status: parseInt(this.status), status: parseInt(this.status),
techId: 0, techId: 0,
type: parseInt(this.type) type: parseInt(this.type)
...@@ -116,7 +133,7 @@ export default { ...@@ -116,7 +133,7 @@ export default {
font-size: 18px; font-size: 18px;
color: #666; color: #666;
text-align: center; text-align: center;
margin-top: 20px; margin-top: 15px;
} }
.newCompany .addVal>span{ .newCompany .addVal>span{
width: 140px; width: 140px;
...@@ -133,14 +150,14 @@ export default { ...@@ -133,14 +150,14 @@ export default {
width: 180px; width: 180px;
} }
.newCompany .line{ .newCompany .line{
margin: 30px 30px 0 30px; margin: 20px 30px 0 30px;
height: 1px; height: 1px;
background: rgba(72,119,230,0.2); background: rgba(72,119,230,0.2);
} }
.newCompany .buttonClick{ .newCompany .buttonClick{
display: flex; display: flex;
justify-content: space-evenly; justify-content: space-evenly;
margin-top: 20px; margin-top: 15px;
} }
.newCompany .company-content>>>.el-radio{ .newCompany .company-content>>>.el-radio{
margin-right: 22px; margin-right: 22px;
......
...@@ -7,22 +7,22 @@ ...@@ -7,22 +7,22 @@
<p class="search"> <p class="search">
<span class="searchVal"> <span class="searchVal">
<span>产品名称:</span> <span>产品名称:</span>
<el-input v-model="name" size="medium" placeholder="请输入"></el-input> <el-input v-model="name" size="medium" placeholder="请输入" @keyup-enter="search('search')"></el-input>
</span> </span>
<span class="searchVal"> <span class="searchVal">
<span>产品分类</span> <span>产品类型</span>
<el-select v-model="type" placeholder="请选择"> <el-select v-model="formValue" @change="search('search')" placeholder="请选择">
<el-option <el-option
v-for="item in typeList" v-for="item in formList"
:key="item.id" :key="item.id"
:label="typeChange(item)" :label="formChange(item)"
:value="typeChange(item)"> :value="formChange(item)">
</el-option> </el-option>
</el-select> </el-select>
</span> </span>
<span class="searchVal" style="margin-left: 6px"> <span class="searchVal" style="margin-left: 6px">
<span>技术路线:</span> <span>技术路线:</span>
<el-select v-model="techVal" placeholder="请选择"> <el-select v-model="techVal" @change="search('search')" placeholder="请选择">
<el-option <el-option
v-for="item in techList" v-for="item in techList"
:key="item.id" :key="item.id"
...@@ -32,8 +32,8 @@ ...@@ -32,8 +32,8 @@
</el-select> </el-select>
</span> </span>
<span class="button searchBtn" @click="search('search')">搜索</span> <span class="button searchBtn" @click="search('search')">搜索</span>
<span class="button add" @click="addProduct">新建产品</span> <span class="button add" @click="addProduct"><img src="../../../assets/img/add.png"></span>
<span class="button import">导入产品 <span class="button import"><img src="../../../assets/img/import.png">
<el-upload <el-upload
style="margin-top: -35px;" style="margin-top: -35px;"
class="upload-demo" class="upload-demo"
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
highlight-current-row highlight-current-row
max-height="840" max-height="840"
:data="allData" :data="allData"
@row-click="details"
stripe stripe
style="width: 100%;margin-bottom: 10px;"> style="width: 100%;margin-bottom: 10px;">
<el-table-column <el-table-column
...@@ -56,32 +57,22 @@ ...@@ -56,32 +57,22 @@
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="typeChange" :formatter="formChange"
prop="type" prop="form"
label="产品分类" label="产品类型"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="typeChange" :formatter="statusChange"
prop="status" prop="status"
label="准入状态" label="准入状态"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="number" :formatter="techIdChange"
prop="techId"
label="技术路线" label="技术路线"
align="center"> align="center">
<template slot-scope='scope'>
<span class="change" @click="technology(scope.row)"><img src="../../basicInformation/company/img/look.png">查看</span>
</template>
</el-table-column>
<el-table-column
prop="type"
label="查看详情"
align="center">
<template slot-scope='scope'>
<span class="change" @click="details(scope.row)"><img src="../../basicInformation/company/img/look.png">查看</span>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
...@@ -104,14 +95,14 @@ ...@@ -104,14 +95,14 @@
<!-- 新增 / 编辑 公用弹窗 --> <!-- 新增 / 编辑 公用弹窗 -->
<el-dialog :visible.sync="openModel" class="model"> <el-dialog :visible.sync="openModel" class="model">
<img src="../../../assets/img/close.png" class="closeModel" @click="reset()"> <img src="../../../assets/img/close.png" class="closeModel" @click="reset()">
<component :is="components" :productName="productName" :list="productList" @on-cancel="reset" @on-name="getName"></component> <component :is="components" :productName="productName" :list="productList" :techList="techList" @on-cancel="reset" @on-name="getName"></component>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import newProduct from './newProduct'; import newProduct from './newProduct';
import technology from "./technology"; import technology from './technology';
export default { export default {
name: 'product', name: 'product',
data() { data() {
...@@ -119,20 +110,24 @@ export default { ...@@ -119,20 +110,24 @@ export default {
totalLength: 0, totalLength: 0,
currentPage: 1, // 分页第一页 currentPage: 1, // 分页第一页
pageSize: 8, // 每页个数 pageSize: 8, // 每页个数
type: '', formValue: '',
name: '', name: '',
typeList: [{type: '1'}, {type: '2'}], formList: [{form: 1},{form: 2},{form: 3},{form: 4},{form: 5},{form: 6}],
allData: [], formVal: {
typeVal: { '1': '服务器',
'1':'软件', '2': 'CPU',
'2': '硬件' '3': '操作系统',
'4': '数据库',
'5': '中间件',
'6': '其他'
}, },
techList: [], techList: [],
techVal: '', techVal: '',
openModel: false, // 弹框开关 openModel: false, // 弹框开关
components: '', // 当前弹框内容 components: '', // 当前弹框内容
productName: '', productName: '',
productList: '' productList: '',
allData: []
} }
}, },
components: { components: {
...@@ -141,33 +136,56 @@ export default { ...@@ -141,33 +136,56 @@ export default {
}, },
mounted() { mounted() {
this.init(); this.init();
// this.search(); this.search();
}, },
methods: { methods: {
init() { init() {
// this.$server.getProduceFindAll().then(res => { // this.$server.getProduceFindAccess().then(res => {
// this.allData = res.data.data // this.allData = res.data.data
// }) // })
this.$server.getTechFindAll().then(res => { // 请求技术路线 this.$server.getTechFindAll().then(res => { // 请求技术路线
this.techList = res.data.data this.techList = res.data.data
}) })
}, },
// 技术路线值转换
techIdChange (row) {
if (row.techId === null) {
return ''
} else {
this.techList.map(item => {
if (item.id === row.techId) {
return item.name
}
})
}
},
// 产品分类转换 // 产品分类转换
typeChange(row) { formChange(row) {
return this.typeVal[String(row.type)] return this.formVal[row.form]
},
// 准入状态转换
statusChange(row) {
return row.status === 1 ? '已准入': '未被准入'
}, },
// 搜索 // 搜索
search(val) { search(val) {
let message = { let message = {
form: 0, form: '',
model: '', model: '',
name: '', name: '',
producer: '', producer: '',
status: 0, status: '',
techId: 0, techId: '',
type: 0 type: ''
}; };
console.log(val) let change = {
'服务器': 1,
'CPU': 2,
'操作系统': 3,
'数据库': 4,
'中间件': 5,
'其他': 6
}
if (val === 'search') { if (val === 'search') {
this.page = 1; this.page = 1;
message.name = this.name; message.name = this.name;
...@@ -176,7 +194,7 @@ export default { ...@@ -176,7 +194,7 @@ export default {
message.techId = item.id message.techId = item.id
} }
}) })
message.type = this.type === '软件' ? 1 : 2 message.form = change[this.formValue]
} }
let data = { let data = {
page: this.page, page: this.page,
...@@ -236,6 +254,7 @@ export default { ...@@ -236,6 +254,7 @@ export default {
}, },
// 产品详情 // 产品详情
details (row) { details (row) {
console.log(row)
this.openModel = true; this.openModel = true;
this.components = 'newProduct'; this.components = 'newProduct';
this.productName = '产品信息'; this.productName = '产品信息';
...@@ -324,10 +343,12 @@ export default { ...@@ -324,10 +343,12 @@ export default {
.product .content .import{ .product .content .import{
position: absolute; position: absolute;
right: 70px; right: 70px;
width: 50px
} }
.product .add{ .product .content .add{
position: absolute; position: absolute;
right: 180px; right: 145px;
width: 50px;
} }
.product .content .common-table{ .product .content .common-table{
margin: 24px 70px 0 70px; margin: 24px 70px 0 70px;
...@@ -367,18 +388,55 @@ export default { ...@@ -367,18 +388,55 @@ export default {
.product .content>>>.el-table td{ .product .content>>>.el-table td{
border-bottom: 1px solid #d5e3ff; border-bottom: 1px solid #d5e3ff;
} }
/*.product .content>>>.btn-prev,.product .content>>>.btn-next{*/
/* background: #c5d5f7;*/
/* background-image: linear-gradient(to bottom, #c5d5f7,#7a95e6);*/
/* color: #fff;*/
/*}*/
/*.product .content>>>.btn-prev:disabled,.dynamicList .content>>>.btn-next:disabled{*/
/* color: #C0C4CC;*/
/*}*/
.product .content>>>.el-table__body tr.current-row > td{ .product .content>>>.el-table__body tr.current-row > td{
background: #f5f8fd; background: #f5f8fd;
} }
.product>>>.el-upload-list{ .product>>>.el-upload-list{
display: none; display: none;
} }
.newCompany .new{
display: inline-block;
}
.newCompany .new{
right: 220px;
}
.newCompany .addVal{
width: 390px;
display: flex;
font-size: 18px;
color: #666;
text-align: center;
margin-top: 20px;
}
.newCompany .addVal>span{
width: 140px;
display: inline-block;
line-height: 34px;
}
.newCompany>>>.el-input__inner{
border: 1px solid rgba(8,104,157,.3);
border-radius: 2px;
font-size: 18px;
color: #999;
height: 34px;
line-height: 34px;
width: 180px;
}
.newCompany .line{
margin: 30px 30px 0 30px;
height: 1px;
background: rgba(72,119,230,0.2);
}
.newCompany .buttonClick{
display: flex;
justify-content: space-evenly;
margin-top: 20px;
}
.newCompany .company-content>>>.el-radio{
margin-right: 22px;
width: 50px;
}
.newCompany .company-content>>>.el-input__inner{
width: 290px;
}
</style> </style>
\ No newline at end of file
...@@ -192,11 +192,11 @@ export default { ...@@ -192,11 +192,11 @@ export default {
menuList: [ menuList: [
{ {
name: '单位名录', name: '单位名录',
path: '' path: 'company'
}, },
{ {
name: '产品名录', name: '产品名录',
path: '' path: 'basisProduct'
} }
] ]
}, },
...@@ -205,15 +205,15 @@ export default { ...@@ -205,15 +205,15 @@ export default {
menuList: [ menuList: [
{ {
name: '单位管理', name: '单位管理',
path: '' path: 'admittanceCompany'
}, },
{ {
name: '产品管理', name: '产品管理',
path: '' path: 'product'
}, },
{ {
name: '技术路线', name: '技术路线',
path: '' path: 'technical'
} }
] ]
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论