提交 fce69cb7 authored 作者: CRS's avatar CRS

new

...@@ -7,12 +7,22 @@ textarea, p, blockquote, th, td { ...@@ -7,12 +7,22 @@ textarea, p, blockquote, th, td {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
html{
width: 100%;
height:100%;
}
body { body {
font-size: 16px; font-size: 16px;
line-height: 20px; line-height: 20px;
background: #fff; background: #fff;
font-family: "Regular"; font-family: "Regular";
width: 100%;
height:100%;
}
#app{
width: 100%;
height:100%;
position: absolute;
} }
a { a {
......
<template>
<div class="role">
<el-row>
<el-col :span="24">
<div class="content">
<p class="title">产品管理</p>
<p class="search">
<span class="searchVal">
<span>产品名称:</span>
<el-input size="medium" placeholder="请输入"></el-input>
</span>
<span class="searchVal">
<span>产品分类:</span>
<el-select v-model="type" placeholder="请选择">
<el-option
v-for="item in typeList"
:key="item"
:label="typeChange(item)"
:value="typeChange(item)">
</el-option>
</el-select>
</span>
<span class="searchVal">
<span>技术路线:</span>
</span>
<span class="button">搜索</span>
<span class="button add">新建产品</span>
<span class="button import">导入产品
</span>
</p>
<div class="common-table">
<el-table
highlight-current-row
max-height="840"
:data="allData"
stripe
style="width: 100%;margin-bottom: 10px;">
<el-table-column
prop="name"
label="产品名称"
align="center">
</el-table-column>
<el-table-column
:formatter="typeChange"
prop="type"
label="产品分类"
align="center">
</el-table-column>
<el-table-column
:formatter="typeChange"
prop="status"
label="准入状态"
align="center">
</el-table-column>
<el-table-column
prop="number"
label="技术路线"
align="center">
</el-table-column>
<el-table-column
prop="type"
label="查看详情"
align="center">
<template>
<span class="change"><img src="../../basicInformation/company/img/look.png">查看</span>
</template>
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<!-- 分页 -->
</div>
</el-col>
</el-row>
<!-- 新增 / 编辑 公用弹窗 -->
<!-- <el-dialog :visible.sync="openModel" class="model">-->
<!-- <img src="../../../assets/img/close.png" class="closeModel" @click="reset()">-->
<!-- <component :is="components" :name="companyName" :list="companyList" @on-cancel="reset" @on-name="getName"></component>-->
<!-- </el-dialog>-->
</div>
</template>
<script>
import '../../basicInformation/company/company.css'
export default {
name: 'product',
data() {
return {
type: '',
typeList: [
{type: '1'},
{type: '2'}
],
allData: [],
typeVal: {
'1':'软件',
'2': '硬件'
}
}
},
mounted() {
this.init();
},
methods: {
init() {
this.$server.getProduceFindAll().then(res => {
this.allData = res.data.data;
})
},
typeChange(row) {
return this.typeVal[String(row.type)]
}
}
}
</script>
<style scoped>
.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;
}
</style>
\ No newline at end of file
.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
...@@ -5,30 +5,28 @@ ...@@ -5,30 +5,28 @@
<div class="content"> <div class="content">
<p class="title">单位管理</p> <p class="title">单位管理</p>
<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="请输入"></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" placeholder="请选择">
<el-option <el-option
v-for="item in companyClass" v-for="item in companyClass"
:key="item.name"
:label="typeCompany(item)" :label="typeCompany(item)"
:value="typeCompany(item)"> :value="typeCompany(item)">
</el-option> </el-option>
</el-select> </el-select>
</span> </span>
<span class="button" @click="search">搜索</span> <span class="button" @click="search">搜索</span>
<span class="button" @click="addCompany">新建单位</span> <span class="button add" @click="addCompany">新建单位</span>
<span class="button import" @click="importCompany">导入单位 <span class="button import">导入单位
<el-upload <el-upload
style="margin-top: -35px;" style="margin-top: -35px;"
class="upload-demo" class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/" action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview" :on-change="uploadFile">
:file-list="fileList">
<el-button size="small" type="primary" style="width: 100px;height: 34px;background-color: rgba(0,0,0,0);border: none"></el-button> <el-button size="small" type="primary" style="width: 100px;height: 34px;background-color: rgba(0,0,0,0);border: none"></el-button>
</el-upload> </el-upload>
</span> </span>
...@@ -67,13 +65,13 @@ ...@@ -67,13 +65,13 @@
label="查看详情" label="查看详情"
align="center"> align="center">
<template slot-scope='scope'> <template slot-scope='scope'>
<span class="change"><img src="./img/look.png">查看</span> <span class="change" @click="details(scope.row)"><img src="./img/look.png">查看</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<!-- 分页 --> <!-- 分页 -->
<div class="block" v-if='totalLength >= 10'> <div class="block">
<el-pagination <el-pagination
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
...@@ -98,37 +96,39 @@ ...@@ -98,37 +96,39 @@
<script> <script>
import newCompany from './newCompany'; import newCompany from './newCompany';
import './company.css'
export default { export default {
data () { data () {
return { return {
totalLength: 0,
currentPage: 1, // 分页第一页
pageSize: 8, // 每页个数
searchName: '', searchName: '',
openModel: false, // 弹框开关 openModel: false, // 弹框开关
components: '', // 当前弹框内容 components: '', // 当前弹框内容
companyName: '', companyName: '',
companyList: '', companyList: '',
classVal: '', classVal: '',
companyClass: [], companyClass: [
totalLength: 0, {type: '1'},
currentPage: 1, // 分页第一页 {type: '2'},
pageSize: 8, // 每页个数 {type: '3'},
allData: [ {type: '4'},
{ {type: '5'},
name: '单位名称', {type: '6'},
type: '类型', {type: '7'},
number: '联系方式', {type: '8'}
address: '地址',
status: '状态'
}
], ],
fileList: [], // 导入列表 allData: [],
typeVal: { // 单位类别 typeVal: { // 单位类别
'1': '中心方', '1': 'AK中心',
'2': '建设方', '2': '实施系统管理员',
'3': '承建方', '3': '监理方',
'4': '产品供应商(供应软件或硬件)', '4': '集成商',
'5': '监理方', '5': '建设方',
'6': '测试机构', '6': '专家',
'7': '专家' '7': '测试机构',
'8': '开发商'
} }
} }
}, },
...@@ -137,45 +137,50 @@ export default { ...@@ -137,45 +137,50 @@ export default {
}, },
mounted() { mounted() {
let val = this.$store.getters.getSidebar; let val = this.$store.getters.getSidebar;
val.push( if (val[val.length - 1].path !== 'company') {
{ val.push(
name: '单位管理', {
path: 'company' name: '单位管理',
} path: 'company'
) }
this.$store.commit('changeSidebar', val); )
this.unit(); this.$store.commit('changeSidebar', val);
}
this.search('page')
}, },
methods: { methods: {
// 获取单位类别
unit() {
this.$server.getUnitFindAll().then(res => {
console.log(res.data.data)
this.companyClass = res.data.data;
})
},
// 单位搜索 // 单位搜索
search() { search(val) {
if (!this.searchName || !this.classVal) { let message = {
this.$message.error('单位名称和单位类别不可为空!'); address: '',
return; name: '',
} number: '',
let message = {}; principal: '',
this.companyClass.map(item => { score: 0,
let type = this.typeVal[item.type]; status: 0,
if (this.classVal === type) { type: 0
console.log(item) };
message = item; if (val !== 'page') { // 点击搜索按钮,不是点击分页跳转
if (!this.searchName || !this.classVal) {
this.$message.error('单位名称和单位类别不可为空!');
return;
} }
}) this.companyClass.map(item => {
let type = this.typeVal[item.type];
if (this.classVal === type) {
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.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;
}) })
}, },
// 点击分页 // 点击分页
...@@ -185,13 +190,16 @@ export default { ...@@ -185,13 +190,16 @@ export default {
// 当前页数 // 当前页数
handleCurrentChange(val) { handleCurrentChange(val) {
this.currentPage = val; this.currentPage = val;
this.search(); this.search('page')
}, },
// 关闭弹框 // 关闭弹框
reset() { reset(val) {
this.openModel = false; this.openModel = false;
this.components = ''; this.components = '';
this.companyName = '' this.companyName = '';
if (val) {
this.unit()
}
}, },
// 获取单位名称 // 获取单位名称
getName(val) { getName(val) {
...@@ -213,10 +221,24 @@ export default { ...@@ -213,10 +221,24 @@ export default {
this.openModel = true; this.openModel = true;
this.components = 'newCompany'; this.components = 'newCompany';
}, },
handlePreview(file) { // 单位导入
console.log(file); 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('导入单位失败!');
})
}, },
importCompany() {} // 单位查看详情
details(val) {
this.$router.push({name: 'companyDetails',params:{'value': val, 'type': this.typeVal}});
}
} }
} }
</script> </script>
...@@ -282,7 +304,7 @@ export default { ...@@ -282,7 +304,7 @@ export default {
text-align: center; text-align: center;
background: #4877e6; background: #4877e6;
cursor: pointer; cursor: pointer;
margin-left: 35px; margin-left: 100px;
border-radius: 2px; border-radius: 2px;
color: #fff; color: #fff;
font-size: 18px; font-size: 18px;
...@@ -290,10 +312,12 @@ export default { ...@@ -290,10 +312,12 @@ export default {
.role .content .button:hover{ .role .content .button:hover{
background: rgba(72,119,230,.6); background: rgba(72,119,230,.6);
} }
.role .content .import{ .role .content .new{
position: absolute; position: absolute;
right: 70px; right: 70px;
} }
/*表格样式*/
.role .content .common-table{ .role .content .common-table{
margin: 24px 70px 0 70px; margin: 24px 70px 0 70px;
} }
...@@ -351,4 +375,20 @@ export default { ...@@ -351,4 +375,20 @@ export default {
.role .content>>>.el-table__body tr.current-row > td{ .role .content>>>.el-table__body tr.current-row > td{
background: #f5f8fd; background: #f5f8fd;
} }
.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 .common-table {
box-shadow: rgba(72, 119, 230, 0.1) 4px 4px 5px;
border-width: 0.5px;
border-style: solid;
border-color: transparent;
border-image: initial;
border-radius: 10px;
}
</style> </style>
<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">相关人员</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 ? '是': '否'
}
}
}
</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="details">
<el-row>
<el-col :span="24">
<div class="content">
<p class="title">单位信息</p>
<ul>
<li></li>
</ul>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
name: 'details'
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template> <template>
<div class="newrole"> <div class="newrole">
<p class="dialog-header"> <p class="dialog-header">
<span>单位</span> <span>单位</span>
</p> </p>
<div class="company-content" style="text-align: center; margin-top: 4px;"> <div class="company-content" style="text-align: center; margin-top: 4px;">
<p class="add"> <p class="new">
<span class="addVal"> <span class="addVal">
<span>单位名称:</span> <span>单位名称:</span>
<el-input v-model="nameVal" size="medium" placeholder="请输入"></el-input> <el-input v-model="name" size="medium" placeholder="请输入"></el-input>
</span> </span>
<span class="addVal"> <span class="addVal" style="width: 450px;">
<span>单位类别:</span> <span>单位类别:</span>
<el-radio-group v-model="classVal" size="small" style="line-height: 34px;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">备选项1</el-radio> <el-radio label="1">AK中心 </el-radio>
<el-radio label="2">备选项2</el-radio> <el-radio label="3">监理方</el-radio>
<el-radio label="3">备选项2</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> </el-radio-group>
</span> </span>
<span class="addVal"> <span class="addVal" style="margin-top: 4px">
<span>是否准入:</span> <span>是否准入:</span>
<el-radio-group v-model="getVal" size="small" style="line-height: 34px;width: 100%;text-align: left"> <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 label="2"></el-radio> <el-radio label="2"></el-radio>
</el-radio-group> </el-radio-group>
...@@ -28,9 +33,13 @@ ...@@ -28,9 +33,13 @@
<span>单位地址:</span> <span>单位地址:</span>
<el-input v-model="address" size="medium" placeholder="请输入"></el-input> <el-input v-model="address" size="medium" placeholder="请输入"></el-input>
</span> </span>
<span class="addVal">
<span>负责人:</span>
<el-input v-model="principal" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal"> <span class="addVal">
<span>联系方式:</span> <span>联系方式:</span>
<el-input v-model="tell" size="medium" placeholder="请输入"></el-input> <el-input v-model="number" size="medium" placeholder="请输入"></el-input>
</span> </span>
</p> </p>
</div> </div>
...@@ -46,11 +55,12 @@ ...@@ -46,11 +55,12 @@
export default { export default {
data () { data () {
return { return {
classVal: '', type: '',
nameVal: '', name: '',
getVal: '', status: '',
address: '', address: '',
tell: '' number: '',
principal: ''
} }
}, },
created() { created() {
...@@ -62,12 +72,29 @@ export default { ...@@ -62,12 +72,29 @@ export default {
this.$emit('on-cancel') this.$emit('on-cancel')
}, },
save() { save() {
console.log(this.classVal); if (!this.name) {
if (this.classVal === '') { this.$message.error('单位名称不可为空!');
this.$message.error('角色名称不能为空!') return;
} else { };
this.$emit('on-name', this.classVal) 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: { components: {
...@@ -77,16 +104,19 @@ export default { ...@@ -77,16 +104,19 @@ export default {
} }
</script> </script>
<style scoped> <style scoped>
.newrole .add{ .newrole .new{
display: inline-block; display: inline-block;
} }
.new{
right: 220px;
}
.newrole .addVal{ .newrole .addVal{
width: 390px; width: 390px;
display: flex; display: flex;
font-size: 18px; font-size: 18px;
color: #666; color: #666;
text-align: center; text-align: center;
margin-top: 24px; margin-top: 15px;
} }
.newrole .addVal>span{ .newrole .addVal>span{
width: 140px; width: 140px;
...@@ -103,17 +133,19 @@ export default { ...@@ -103,17 +133,19 @@ export default {
width: 180px; width: 180px;
} }
.newrole .line{ .newrole .line{
margin: 29px 30px 0 30px; margin: 25px 30px 0 30px;
height: 1px; height: 1px;
background: rgba(72,119,230,0.2); background: rgba(72,119,230,0.2);
} }
.newrole .buttonClick{ .newrole .buttonClick{
display: flex; display: flex;
justify-content: space-evenly; justify-content: space-evenly;
margin-top: 20px; margin-top: 13px;
} }
.newrole .company-content>>>.el-radio{ .newrole .company-content>>>.el-radio{
margin-right: 22px; margin-right: 22px;
margin-bottom: 11px;
width: 49px;
} }
.newrole .company-content>>>.el-input__inner{ .newrole .company-content>>>.el-input__inner{
width: 290px; width: 290px;
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
</el-table> </el-table>
</div> </div>
<!-- 分页 --> <!-- 分页 -->
<div class="block" v-if="this.totleLength >= 10"> <div class="block">
<el-pagination <el-pagination
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
......
<template> <template>
<div class="login"> <div class="login">
this is login page <div class="login-border">
<p class="login-text">欢迎登录</p>
<div class="login-content">
<p class="login-content-text">登录</p>
<div class="login-input">
<input class="input user" type="text" v-model="user" placeholder="请输入用户名"/>
<input class="input user" type="password" v-model="password" @keyup.enter="login" placeholder="请输入密码"/>
<button class="button" @click="login">登录</button>
</div>
</div>
</div> </div>
</div>
</template> </template>
<script> <script>
export default { export default {
data () { data () {
return { return {
user: '',
password: ''
} }
}, },
created() { created() {
...@@ -15,6 +27,27 @@ export default { ...@@ -15,6 +27,27 @@ export default {
mounted(){ mounted(){
}, },
methods: { methods: {
// 登录
login() {
if (!this.user || !this.password) {
this.$message.error('用户名和密码不能为空!');
return;
}
let data = {
userName: this.user,
password: this.password
}
this.$server.postUserLogin(data).then(res => {
if (res.data.code === 200) {
this.$store.commit('changeUserData', res.data.data);
this.$router.push({name: 'XCalliance'})
} else {
this.$message.error(res.data.msg);
}
}).catch(err => {
this.$message.error('用户登录失败');
})
}
}, },
components: { components: {
}, },
...@@ -23,4 +56,78 @@ export default { ...@@ -23,4 +56,78 @@ export default {
} }
</script> </script>
<style scoped> <style scoped>
.login{
width: 100%;
height: 100%;
background-image: url("./img/login-bg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
}
.login-border{
width: 664px;
height: 531px;
background-image: url("./img/login-border.png");
background-repeat: no-repeat;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
position: absolute;
left: 50%;
top: 50%;
margin-left: -332px;
margin-top: -265px;
color: #ffffff;
}
.login-text{
font-size: 24px;
font-weight: bold;
position: absolute;
left: 15%;
top: 42%;
}
.login-content-text{
color: #333333;
font-size: 32px;
font-weight: bold;
}
.login-content{
position: absolute;
width: 250px;
text-align: left;
top: 22%;
right: 74px;
}
.login-input{
margin-top: 12px;
}
.button{
width: 160px;
height: 40px;
background-color: #4877e6;
border-radius: 4px;
border: none;
font-size: 20px;
color: #ffffff;
cursor: pointer;
margin-top: 40px;
}
.button:hover{
background: rgba(72,119,230,.6);
}
.input{
width: 208px;
height: 36px;
border: none;
padding-left: 12px;
border-bottom: 1px solid #cccccc;
background-color: rgba(0,0,0,0);
font-size: 18px;
margin-top: 32px;
}
.login .login-border .login-content>>>.el-input--medium .el-input__inner{
width: 208px;
}
.login .login-border .login-content>>>.el-input{
margin-top: 32px;
}
</style> </style>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
</p> </p>
</div> </div>
<div> <div @click="clickMenu('product',4,'市准入管理')">
<span class="line"></span> <span class="line"></span>
<p class="menu" style="margin-top: 0"> <p class="menu" style="margin-top: 0">
<span class="icon"> <span class="icon">
......
...@@ -108,6 +108,6 @@ const server = { ...@@ -108,6 +108,6 @@ const server = {
data: data, data: data,
headers: {'Content-Type': 'multipart/form-data'} headers: {'Content-Type': 'multipart/form-data'}
}); });
}, }
} }
export default server; export default server;
...@@ -6,6 +6,12 @@ const actions = { ...@@ -6,6 +6,12 @@ const actions = {
sidebar: payload sidebar: payload
}) })
}, },
changeUserData(store, payload) {
store.commit({
type: 'changeUserData',
userData: payload
})
},
}; };
export default actions; export default actions;
...@@ -3,6 +3,9 @@ const getters = { ...@@ -3,6 +3,9 @@ const getters = {
getSidebar(state) { getSidebar(state) {
return state.sidebar return state.sidebar
}, },
getUserData(state) {
return state.userData
}
}; };
export default getters; export default getters;
...@@ -3,6 +3,9 @@ const mutations = { ...@@ -3,6 +3,9 @@ const mutations = {
changeSidebar(state, payload) { changeSidebar(state, payload) {
state.sidebar = payload; state.sidebar = payload;
}, },
changeUserData(state, payload) {
state.userData = payload;
},
}; };
export default mutations; export default mutations;
const state = { const state = {
sidebar: [] sidebar: [],
userData: {} // 登录用户信息
}; };
export default state; export default state;
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论