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

单位管理和产品管理

上级 829d24c1
.role{
background: #ebf0f8;
width: 100%;
}
.role .content{
margin: 40px;
height: 841px;
background: #fff;
overflow: hidden;
}
.role .content .title{
padding: 30px 0 0 60px;
font-size: 20px;
color: #233b6e;
}
.role .content .search{
position: relative;
margin-top: 36px;
padding: 0px 70px 0px 70px;
display: flex;
}
.role .content .searchVal{
width: 280px;
display: flex;
font-size: 18px;
color: #4663a6;
}
.role .content .searchVal>span{
width: 140px;
display: inline-block;
line-height: 34px;
}
.role .content .change{
color: #4877e6;
cursor: pointer;
}
.role .content .change>img{
margin-right: 3px;
}
.role .content .common-table{
box-shadow: 4px 4px 5px rgba(72,119,230,0.1);
border: .5px solid transparent;
border-radius: 10px;
}
.role>>>.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;
}
.role .content .button{
display: inline-block;
width: 100px;
height: 34px;
line-height: 34px;
text-align: center;
background: #4877e6;
cursor: pointer;
margin-left: 35px;
border-radius: 2px;
color: #fff;
font-size: 18px;
}
.role .content .button:hover{
background: rgba(72,119,230,.6);
}
.role .content .import{
position: absolute;
right: 70px;
}
.add{
position: absolute;
right: 220px;
}
.role .content .common-table{
margin: 24px 70px 0 70px;
}
.role .content .common-table>>>.el-table th > .cell{
font-size: 18px;
color: #333;
font-weight: normal;
}
.role .content .common-table>>>.el-table th.is-leaf{
height: 70px;
}
.role .content .common-table>>>.el-table tr{
font-size: 18px;
}
.role .content .common-table>>>.el-table{
color: #233b6e;
}
.role .content .common-table>>>.el-table--striped .el-table__body tr.el-table__row--striped.el-table__row--striped.el-table__row--striped td {
background-color: #fff;
}
.role .content .common-table>>>.el-table--enable-row-hover .el-table__body tr:hover>td{
background-color: #f5f8fd;
}
.role .content .common-table>>>.el-table th.is-leaf, .el-table td {
border-bottom: 1px solid #d5e3ff;
}
.role .content .common-table>>>.el-table__body tr, .el-table__body td {
padding: 0;
height: 60px;
background: #f5f8fd;
}
.role .content .block{
text-align: right;
padding: 30px 70px 0 0;
}
.role .content>>>.el-pagination.is-background .el-pager li{
background-image: linear-gradient(to bottom, #c5d5f7,#7a95e6);
color: #fff;
}
.role .content>>>.el-pagination.is-background .el-pager li:not(.disabled).active{
background-image: linear-gradient(to bottom, #7a9eeb,#274acf);
color: #fff;
}
.role .content>>>.el-table td{
border-bottom: 1px solid #d5e3ff;
}
.role .content>>>.btn-prev,.role .content>>>.btn-next{
background: #c5d5f7;
background-image: linear-gradient(to bottom, #c5d5f7,#7a95e6);
color: #fff;
}
.role .content>>>.btn-prev:disabled,.dynamicList .content>>>.btn-next:disabled{
color: #C0C4CC;
}
.role .content>>>.el-table__body tr.current-row > td{
background: #f5f8fd;
}
\ No newline at end of file
差异被折叠。
<template>
<div class="details">
<el-row>
<el-col :span="24">
<div class="content">
<el-row>
<el-col :span="9">
<p class="title">单位信息</p>
<p class="search">
<span class="value">
<span>单位名称:</span>
<el-input v-model="data.name" size="medium" :disabled="true"></el-input>
</span>
</p>
<p class="search">
<span class="value">
<span>单位地址:</span>
<el-input v-model="data.address" size="medium" :disabled="true"></el-input>
</span>
</p>
<p class="search">
<span class="value">
<span>联系方式:</span>
<el-input v-model="data.number" size="medium" :disabled="true"></el-input>
</span>
</p>
</el-col>
<el-col :span="5">
<p class="search">
<span class="status">
<span>单位类别:</span>
<img src="../person/img/click.png" style="width: 21px;height: 21px;">
<span>{{typeChange(data.type)}}</span>
</span>
</p>
<p class="search">
<span class="status">
<span>是否准入:</span>
<img src="../person/img/click.png" style="width: 21px;height: 21px;">
<span>{{statusChange(data.status)}}</span>
</span>
</p>
</el-col>
<el-col :span="4">
<p class="search">
<span class="button">相关项目</span>
</p>
<p class="search">
<span class="button" @click="personPage">相关人员</span>
</p>
<p class="search">
<span class="button">相关评价</span>
</p>
</el-col>
</el-row>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
name: 'details',
data () {
return {
data: {},
type: {}
}
},
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.type = this.$route.params.type;
},
methods: {
// 单位类别转换
typeChange(val) {
return this.type[String(val)];
},
// 准入状态转换
statusChange(val) {
return val === 1 ? '是': '否'
},
// 相关人员跳转
personPage () {
console.log(this.data)
this.$router.push({name: 'person',params:{'value': this.data}});
}
}
}
</script>
<style scoped>
.details{
background: #ebf0f8;
width: 100%;
}
.details .content{
margin: 40px;
height: 841px;
background: #fff;
overflow: hidden;
}
.details .content .title{
padding: 30px 0 0 60px;
font-size: 20px;
color: #233b6e;
}
.details .content .search{
position: relative;
margin-top: 36px;
padding: 0px 0px 0px 70px;
height: 36px;
width: 100%;
}
.details .content .value{
width: 410px;
display: flex;
font-size: 18px;
color: #666;
}
.details .content .status>span{
vertical-align: bottom;
}
.details .content .value>span{
width: 150px;
display: inline-block;
line-height: 34px;
text-align: right;
}
.details .content .button{
display: inline-block;
width: 100px;
height: 34px;
line-height: 34px;
text-align: center;
background: #4877e6;
cursor: pointer;
margin-left: 55px;
border-radius: 2px;
color: #fff;
font-size: 18px;
}
.details .content .button:hover{
background: rgba(72,119,230,.6);
}
.details>>>.el-input--medium .el-input__inner{
font-size: 18px;
color: #333;
font-family: 'Regular';
}
.status{
display: flex;
font-size: 18px;
color: #666;
}
.details>>>.el-col-9{
width: 49.5%;
}
.details>>>.el-col-5{
margin-top: 57px;
}
.details>>>.el-col-4{
margin-top: 49px;
}
.button{
display: inline-block;
width: 100px;
height: 34px;
line-height: 34px;
text-align: center;
background: #4877e6;
cursor: pointer;
margin-left: 100px;
border-radius: 2px;
color: #fff;
font-size: 18px;
}
</style>
\ No newline at end of file
<template>
<div class="newCompany">
<p class="dialog-header">
<span>新建单位</span>
</p>
<div class="company-content" style="text-align: center; margin-top: 4px;">
<p class="new">
<span class="addVal">
<span>单位名称:</span>
<el-input v-model="name" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal" style="width: 450px;">
<span>单位类别:</span>
<el-radio-group v-model="type" size="small" style="padding-top: 11px;width: 100%;text-align: left">
<el-radio label="1">AK中心 </el-radio>
<el-radio label="3">监理方</el-radio>
<el-radio label="6">专家</el-radio>
<el-radio label="7">测试机构 </el-radio>
<el-radio label="4">集成商</el-radio>
<el-radio label="5">建设方</el-radio>
<el-radio label="8">开发商 </el-radio>
<el-radio label="2">实施系统管理员</el-radio>
</el-radio-group>
</span>
<span class="addVal" style="margin-top: 4px">
<span>是否准入:</span>
<el-radio-group v-model="status" size="small" style="padding-top: 11px; width: 100%;text-align: left">
<el-radio label="1"></el-radio>
<el-radio label="2"></el-radio>
</el-radio-group>
</span>
<span class="addVal">
<span>单位地址:</span>
<el-input v-model="address" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal">
<span>负责人:</span>
<el-input v-model="principal" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal">
<span>联系方式:</span>
<el-input v-model="number" size="medium" placeholder="请输入"></el-input>
</span>
</p>
</div>
<p class="line"></p>
<p class="buttonClick">
<span class="buttonCancl" @click="cancel">取消</span>
<span class="buttonSave" @click="save">确定</span>
</p>
</div>
</template>
<script>
export default {
data () {
return {
type: '',
name: '',
status: '',
address: '',
number: '',
principal: ''
}
},
created() {
},
mounted(){
},
methods: {
cancel() {
this.$emit('on-cancel')
},
save() {
if (!this.name) {
this.$message.error('单位名称不可为空!');
return;
};
let data = {
address: this.address,
name: this.name,
number: this.number,
principal: this.principal,
score: '',
status: parseInt(this.status),
type: parseInt(this.type)
};
this.$server.postUnitAdd(data).then(res => {
if (res.data.code === 200) {
this.$message.success('单位新建成功!');
this.$emit('on-cancel', true)
} else {
this.$message.error('单位新建失败!');
}
}).catch(err => {
this.$message.error('单位新建失败!');
})
}
},
components: {
},
watch: {
}
}
</script>
<style scoped>
.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: 15px;
}
.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: 25px 30px 0 30px;
height: 1px;
background: rgba(72,119,230,0.2);
}
.newCompany .buttonClick{
display: flex;
justify-content: space-evenly;
margin-top: 13px;
}
.newCompany .company-content>>>.el-radio{
margin-right: 22px;
margin-bottom: 11px;
width: 49px;
}
.newCompany .company-content>>>.el-input__inner{
width: 290px;
}
</style>
<template> <template>
<div class="newCompany"> <div class="newCompany">
<p class="dialog-header"> <p class="dialog-header">
<span>新建产品</span> <span>{{productName}}</span>
</p> </p>
<div class="company-content" style="text-align: center; margin-top: 4px;"> <div class="company-content" style="text-align: center; margin-top: 8px;">
<p class="new"> <p class="new">
<span class="addVal"> <span class="addVal">
<span>产品名称:</span> <span>产品名称:</span>
<el-input v-model="name" size="medium" placeholder="请输入"></el-input> <el-input v-model="name" size="medium" placeholder="请输入"></el-input>
</span> </span>
<span class="addVal" style="width: 450px;"> <span class="addVal">
<span>产品分类:</span> <span>产品分类:</span>
<el-radio-group v-model="type" size="small" style="padding-top: 11px;width: 100%;text-align: left"> <el-radio-group v-model="type" size="small" style="padding-top: 11px;width: 100%;text-align: left">
<el-radio label="1">软件 </el-radio> <el-radio label="1">软件 </el-radio>
<el-radio label="2">硬件</el-radio> <el-radio label="2">硬件</el-radio>
</el-radio-group> </el-radio-group>
</span> </span>
<span class="addVal" style="margin-top: 4px"> <span class="addVal">
<span>产品类型:</span> <span>产品类型:</span>
<el-radio-group v-model="form" size="small" style="padding-top: 11px; width: 100%;text-align: left"> <el-radio-group v-model="form" size="small" style="padding-top: 11px; width: 100%;text-align: left">
<el-radio label="1">服务器</el-radio> <el-radio label="1" style="margin-bottom: 11px;">服务器</el-radio>
<el-radio label="2">CPU</el-radio> <el-radio label="2" style="margin-bottom: 11px;">CPU</el-radio>
<el-radio label="3">操作系统</el-radio> <el-radio label="3" style="margin-bottom: 11px;">操作系统</el-radio>
<el-radio label="4">数据库</el-radio> <el-radio label="4">数据库</el-radio>
<el-radio label="5">中间件</el-radio> <el-radio label="5">中间件</el-radio>
<el-radio label="6">其他</el-radio> <el-radio label="6">其他</el-radio>
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
<script> <script>
export default { export default {
props: ['productName','list'],
data () { data () {
return { return {
type: '', type: '',
...@@ -57,19 +58,31 @@ export default { ...@@ -57,19 +58,31 @@ export default {
status: '', status: '',
model: '', model: '',
number: '', number: '',
form: '' form: '',
productList: [],
text: ''
} }
}, },
created() { created() {
}, },
mounted(){ mounted(){
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.text = '产品信息修改'
} else {
this.text = '产品新增'
}
}, },
methods: { methods: {
cancel() { cancel() {
this.$emit('on-cancel') this.$emit('on-cancel')
}, },
save() { save() {
console.log(1111)
if (!this.name) { if (!this.name) {
this.$message.error('产品名称不可为空!'); this.$message.error('产品名称不可为空!');
return; return;
...@@ -80,19 +93,33 @@ export default { ...@@ -80,19 +93,33 @@ export default {
name: this.name, name: this.name,
producer: '', producer: '',
status: parseInt(this.status), status: parseInt(this.status),
techId: '', techId: 0,
type: parseInt(this.type) type: parseInt(this.type)
}; };
this.$server.postProduceAdd(data).then(res => { if (this.productName === '产品信息') {
if (res.data.code === 200) { this.$server.putProduceUpdata(data).then(res => {
this.$message.success('产品新建成功!'); if (res.data.code === 200) {
this.$emit('on-cancel', true) this.$message.success(this.text + '成功!');
} else { this.$emit('on-cancel', true)
this.$message.error('产品新建失败!'); } else {
} this.$message.error(this.text + '失败!');
}).catch(err => { }
this.$message.error('产品新建失败!'); }).catch(err => {
}) this.$message.error(this.text + '失败!');
})
} else {
this.$server.postProduceAdd(data).then(res => {
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: {
...@@ -114,7 +141,7 @@ export default { ...@@ -114,7 +141,7 @@ export default {
font-size: 18px; font-size: 18px;
color: #666; color: #666;
text-align: center; text-align: center;
margin-top: 15px; margin-top: 20px;
} }
.newCompany .addVal>span{ .newCompany .addVal>span{
width: 140px; width: 140px;
...@@ -131,19 +158,18 @@ export default { ...@@ -131,19 +158,18 @@ export default {
width: 180px; width: 180px;
} }
.newCompany .line{ .newCompany .line{
margin: 25px 30px 0 30px; margin: 30px 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: 13px; margin-top: 20px;
} }
.newCompany .company-content>>>.el-radio{ .newCompany .company-content>>>.el-radio{
margin-right: 22px; margin-right: 22px;
margin-bottom: 11px; width: 50px;
width: 49px;
} }
.newCompany .company-content>>>.el-input__inner{ .newCompany .company-content>>>.el-input__inner{
width: 290px; width: 290px;
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<el-select v-model="type" placeholder="请选择"> <el-select v-model="type" placeholder="请选择">
<el-option <el-option
v-for="item in typeList" v-for="item in typeList"
:key="item" :key="item.id"
:label="typeChange(item)" :label="typeChange(item)"
:value="typeChange(item)"> :value="typeChange(item)">
</el-option> </el-option>
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<el-select v-model="techVal" placeholder="请选择"> <el-select v-model="techVal" placeholder="请选择">
<el-option <el-option
v-for="item in techList" v-for="item in techList"
:key="item.id"
:label="item.name" :label="item.name"
:value="item.name"> :value="item.name">
</el-option> </el-option>
...@@ -33,6 +34,13 @@ ...@@ -33,6 +34,13 @@
<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">新建产品</span>
<span class="button import">导入产品 <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> </span>
</p> </p>
<div class="common-table"> <div class="common-table">
...@@ -54,7 +62,7 @@ ...@@ -54,7 +62,7 @@
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">
...@@ -63,16 +71,16 @@ ...@@ -63,16 +71,16 @@
prop="number" prop="number"
label="技术路线" label="技术路线"
align="center"> align="center">
<template> <template slot-scope='scope'>
<span class="change"><img src="../../basicInformation/company/img/look.png">查看</span> <span class="change" @click="technology(scope.row)"><img src="../../basicInformation/company/img/look.png">查看</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="type" prop="type"
label="查看详情" label="查看详情"
align="center"> align="center">
<template> <template slot-scope='scope'>
<span class="change"><img src="../../basicInformation/company/img/look.png">查看</span> <span class="change" @click="details(scope.row)"><img src="../../basicInformation/company/img/look.png">查看</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -96,7 +104,7 @@ ...@@ -96,7 +104,7 @@
<!-- 新增 / 编辑 公用弹窗 --> <!-- 新增 / 编辑 公用弹窗 -->
<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" :name="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>
...@@ -104,6 +112,7 @@ ...@@ -104,6 +112,7 @@
<script> <script>
import '../../basicInformation/company/company.css'; import '../../basicInformation/company/company.css';
import newProduct from './newProduct'; import newProduct from './newProduct';
import technology from "./technology";
export default { export default {
name: 'product', name: 'product',
data() { data() {
...@@ -128,7 +137,8 @@ export default { ...@@ -128,7 +137,8 @@ export default {
} }
}, },
components: { components: {
newProduct newProduct,
technology
}, },
mounted() { mounted() {
this.init(); this.init();
...@@ -147,10 +157,14 @@ export default { ...@@ -147,10 +157,14 @@ export default {
typeChange(row) { typeChange(row) {
return this.typeVal[String(row.type)] return this.typeVal[String(row.type)]
}, },
// 准入状态转换
statusChange(row) {
return row.status === 1 ? '已准入': '未被准入'
},
// 搜索 // 搜索
search(val) { search(val) {
let message = { let message = {
form: '', form: 0,
model: '', model: '',
name: '', name: '',
producer: '', producer: '',
...@@ -158,21 +172,27 @@ export default { ...@@ -158,21 +172,27 @@ export default {
techId: 0, techId: 0,
type: 0 type: 0
}; };
console.log(val)
if (val === 'search') { if (val === 'search') {
this.page = 1; this.page = 1;
message.name = this.name; message.name = this.name;
console.log(this.techVal); this.techList.map(item => {
console.log(this.type); if (item.name === this.techVal) {
message.techId = item.id
}
})
message.type = this.type === '软件' ? 1 : 2
} }
// let data = { let data = {
// page: this.page, page: this.page,
// pageSize: this.pageSize, pageSize: this.pageSize,
// t: message t: message
// }; };
// this.$server.postProduceSearch(data).then(res => { console.log(data)
// this.allData = res.data.data; this.$server.postProduceSearchAccess(data).then(res => {
// this.totalLength = this.allData.length; this.allData = res.data.data.rows;
// }) this.totalLength = this.allData.length;
})
}, },
// 点击分页 // 点击分页
handleSizeChange(val) { handleSizeChange(val) {
...@@ -187,6 +207,7 @@ export default { ...@@ -187,6 +207,7 @@ export default {
addProduct() { addProduct() {
this.openModel = true; this.openModel = true;
this.components = 'newProduct'; this.components = 'newProduct';
this.productName = '新建产品'
}, },
// 关闭弹框 // 关闭弹框
reset(val) { reset(val) {
...@@ -194,7 +215,7 @@ export default { ...@@ -194,7 +215,7 @@ export default {
this.components = ''; this.components = '';
this.productName = ''; this.productName = '';
if (val) { if (val) {
this.unit() this.search()
} }
}, },
// 获取单位名称 // 获取单位名称
...@@ -203,6 +224,34 @@ export default { ...@@ -203,6 +224,34 @@ 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) {
this.openModel = true;
this.components = 'newProduct';
this.productName = '产品信息';
this.productList = row;
},
// 技术路线信息
technology(row) {
this.openModel = true;
this.components = 'technology';
this.productList = row;
}
} }
} }
</script> </script>
...@@ -342,4 +391,52 @@ export default { ...@@ -342,4 +391,52 @@ export default {
.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{
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
<template>
<div class="newCompany">
<p class="dialog-header">
<span>技术路线信息</span>
</p>
<div class="company-content" style="text-align: center; margin-top: 40px;">
<p style="padding-top: 30px;" v-if="list.techId === null">{{text}}</p>
<p class="new" v-if="list.techId != null">
<span class="addVal">
<span>路线名称:</span>
<el-input v-model="name" size="medium" disabled></el-input>
</span>
<span class="addVal">
<span>产品组合:</span>
<span v-for="item in techNameList" style="color: #666;border: 1px solid rgba(8,104,157,.3); background-color: #f5f7fa; margin-left: 8px">{{formChange(item.form)}}</span>
</span>
</p>
</div>
<p class="line"></p>
<p class="buttonClick">
<span class="buttonSave" @click="cancel">确定</span>
</p>
</div>
</template>
<script>
export default {
props: ['techList','list'],
data () {
return {
type: '',
name: '',
formList: {
1: '服务器',
2: 'CPU',
3: '操作系统',
4: '数据库',
5: '中间件',
6: '其他',
},
text: '',
techNameList: []
}
},
created() {
},
mounted(){
console.log(this.list.techId);
this.list.techId = 4;
if (this.list.techId === null) {
this.text = '该产品没有添加到技术路线'
} else {
this.techList.map(item => {
if (item.id === this.list.techId) {
this.name = item.name
}
})
this.$server.getProduceFind(this.list).then(res => {
console.log(res)
this.techNameList = res.data.data
})
}
},
methods: {
cancel() {
this.$emit('on-cancel')
},
formChange(val) {
console.log(this.formList[val])
return this.formList[val]
}
},
components: {
},
watch: {
}
}
</script>
<style scoped>
.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: 50px;
}
.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: 60px 30px 0 30px;
height: 1px;
background: rgba(72,119,230,0.2);
}
.newCompany .buttonClick{
display: flex;
justify-content: space-evenly;
margin-top: 40px;
}
.newCompany .company-content>>>.el-radio{
margin-right: 22px;
width: 50px;
}
.newCompany .company-content>>>.el-input__inner{
width: 290px;
}
</style>
...@@ -164,7 +164,6 @@ export default { ...@@ -164,7 +164,6 @@ export default {
pageSize: this.pageSize, pageSize: this.pageSize,
t: message t: message
} }
console.log(data)
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;
......
<template>
<div class="newCompany">
<p class="dialog-header">
<span>{{productName}}</span>
</p>
<div class="company-content" style="text-align: center; margin-top: 8px;">
<p class="new">
<span class="addVal">
<span>产品名称:</span>
<el-input v-model="name" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal">
<span>产品分类:</span>
<el-radio-group v-model="type" size="small" style="padding-top: 11px;width: 100%;text-align: left">
<el-radio label="1">软件 </el-radio>
<el-radio label="2">硬件</el-radio>
</el-radio-group>
</span>
<span class="addVal">
<span>产品类型:</span>
<el-radio-group v-model="form" size="small" style="padding-top: 11px; width: 100%;text-align: left">
<el-radio label="1" style="margin-bottom: 11px;">服务器</el-radio>
<el-radio label="2" style="margin-bottom: 11px;">CPU</el-radio>
<el-radio label="3" style="margin-bottom: 11px;">操作系统</el-radio>
<el-radio label="4">数据库</el-radio>
<el-radio label="5">中间件</el-radio>
<el-radio label="6">其他</el-radio>
</el-radio-group>
</span>
<span class="addVal">
<span>产品型号:</span>
<el-input v-model="model" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal">
<span>是否准入:</span>
<el-radio-group v-model="status" size="small" style="padding-top: 11px; width: 100%;text-align: left">
<el-radio label="1"></el-radio>
<el-radio label="-1"></el-radio>
</el-radio-group>
</span>
</p>
</div>
<p class="line"></p>
<p class="buttonClick">
<span class="buttonSave" @click="save">确定</span>
</p>
</div>
</template>
<script>
export default {
props: ['productName','list'],
data () {
return {
type: '',
name: '',
status: '',
model: '',
number: '',
form: '',
productList: [],
text: ''
}
},
created() {
},
mounted(){
console.log(this.list)
},
methods: {
cancel() {
this.$emit('on-cancel')
},
save() {
if (!this.name) {
this.$message.error('产品名称不可为空!');
return;
};
let data = {
form: parseInt(this.form),
model: this.model,
name: this.name,
producer: '',
status: parseInt(this.status),
techId: 0,
type: parseInt(this.type)
};
this.$server.postProduceAdd(data).then(res => {
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: {
},
watch: {
}
}
</script>
<style scoped>
.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>
<template>
<div class="newCompany">
<p class="dialog-header">
<span>技术路线信息</span>
</p>
<div class="company-content" style="text-align: center; margin-top: 40px;">
<p style="padding-top: 30px;" v-if="list.techId === null">{{text}}</p>
<p class="new" v-if="list.techId != null">
<span class="addVal">
<span>路线名称:</span>
<el-input v-model="name" size="medium" disabled></el-input>
</span>
<span class="addVal">
<span>产品组合:</span>
<span v-for="item in techNameList" style="color: #666;border: 1px solid rgba(8,104,157,.3); background-color: #f5f7fa; margin-left: 8px">{{formChange(item.form)}}</span>
</span>
</p>
</div>
<p class="line"></p>
<p class="buttonClick">
<span class="buttonSave" @click="cancel">确定</span>
</p>
</div>
</template>
<script>
export default {
props: ['techList','list'],
data () {
return {
type: '',
name: '',
formList: {
1: '服务器',
2: 'CPU',
3: '操作系统',
4: '数据库',
5: '中间件',
6: '其他',
},
text: '',
techNameList: []
}
},
created() {
},
mounted(){
console.log(this.list.techId);
this.list.techId = 4;
if (this.list.techId === null) {
this.text = '该产品没有添加到技术路线'
} else {
this.techList.map(item => {
if (item.id === this.list.techId) {
this.name = item.name
}
})
this.$server.getProduceFind(this.list).then(res => {
console.log(res)
this.techNameList = res.data.data
})
}
},
methods: {
cancel() {
this.$emit('on-cancel')
},
formChange(val) {
console.log(this.formList[val])
return this.formList[val]
}
},
components: {
},
watch: {
}
}
</script>
<style scoped>
.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: 50px;
}
.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: 60px 30px 0 30px;
height: 1px;
background: rgba(72,119,230,0.2);
}
.newCompany .buttonClick{
display: flex;
justify-content: space-evenly;
margin-top: 40px;
}
.newCompany .company-content>>>.el-radio{
margin-right: 22px;
width: 50px;
}
.newCompany .company-content>>>.el-input__inner{
width: 290px;
}
</style>
...@@ -158,7 +158,7 @@ export default { ...@@ -158,7 +158,7 @@ export default {
}, },
{ {
name: '产品管理', name: '产品管理',
path: '' path: 'basisProduct'
}, },
{ {
name: '角色管理', name: '角色管理',
...@@ -174,12 +174,12 @@ export default { ...@@ -174,12 +174,12 @@ export default {
name: '市准入管理', name: '市准入管理',
menuList: [ menuList: [
{ {
name: '单位管理', name: '产品管理',
path: '' path: 'product'
}, },
{ {
name: '产品管理', name: '单位管理',
path: '' path: 'admittanceCompany'
}, },
{ {
name: '技术路线', name: '技术路线',
......
...@@ -133,7 +133,20 @@ export default new Router({ ...@@ -133,7 +133,20 @@ export default new Router({
name: 'addComplaintManagement', name: 'addComplaintManagement',
component: resolve => require(['../components/complaint/complaintManagement/addComplaintManagement.vue'], resolve) component: resolve => require(['../components/complaint/complaintManagement/addComplaintManagement.vue'], resolve)
}, },
// 市准入管理-单位管理
{
path: '/admittanceCompany',
name: 'admittanceCompany',
component: resolve => require(['../components/admittance/company/company.vue'], resolve)
},
// 基础资料管理-产品管理
{
path: '/basisProduct',
name: 'basisProduct',
component: resolve => require(['../components/basicInformation/product/product.vue'], resolve)
},
] ]
} }
] ]
}) })
...@@ -120,7 +120,7 @@ const server = { ...@@ -120,7 +120,7 @@ const server = {
}); });
}, },
postProduceSearchAccess(data) { // 准入产品分页查询 postProduceSearchAccess(data) { // 准入产品分页查询
return axios('/produce/searchAccesss', { return axios('/produce/searchAccess', {
method: 'post', method: 'post',
data: data data: data
}); });
...@@ -136,5 +136,35 @@ const server = { ...@@ -136,5 +136,35 @@ const server = {
data: data data: data
}); });
}, },
postUnitSearchAccess(data) { // 准入单位分页查询
return axios('/unit/searchAccess', {
method: 'post',
data: data
});
},
postProduceUpload(data) { // 单位导入
return axios('/produce/upload', {
method: 'post',
data: data,
headers: {'Content-Type': 'multipart/form-data'}
});
},
postProduceSearch(data) { // 产品分页查询
return axios('/produce/search', {
method: 'post',
data: data
});
},
getProduceFind(data) { // 根据技术路线id查询数据路线产品组合
return axios('produce/findByTech/' + data.techId , {
method: 'get'
});
},
putProduceUpdata(data) { // 根据技术路线id查询数据路线产品组合
return axios('/produce/update' , {
method: 'put',
data: data
});
},
} }
export default server; export default server;
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论