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

new

......@@ -7,12 +7,22 @@ textarea, p, blockquote, th, td {
margin: 0;
padding: 0;
}
html{
width: 100%;
height:100%;
}
body {
font-size: 16px;
line-height: 20px;
background: #fff;
font-family: "Regular";
width: 100%;
height:100%;
}
#app{
width: 100%;
height:100%;
position: absolute;
}
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
......@@ -14,21 +14,19 @@
<el-select v-model="classVal" placeholder="请选择">
<el-option
v-for="item in companyClass"
:key="item.name"
:label="typeCompany(item)"
:value="typeCompany(item)">
</el-option>
</el-select>
</span>
<span class="button" @click="search">搜索</span>
<span class="button" @click="addCompany">新建单位</span>
<span class="button import" @click="importCompany">导入单位
<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-preview="handlePreview"
:file-list="fileList">
: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>
......@@ -67,13 +65,13 @@
label="查看详情"
align="center">
<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>
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="block" v-if='totalLength >= 10'>
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
......@@ -98,37 +96,39 @@
<script>
import newCompany from './newCompany';
import './company.css'
export default {
data () {
return {
totalLength: 0,
currentPage: 1, // 分页第一页
pageSize: 8, // 每页个数
searchName: '',
openModel: false, // 弹框开关
components: '', // 当前弹框内容
companyName: '',
companyList: '',
classVal: '',
companyClass: [],
totalLength: 0,
currentPage: 1, // 分页第一页
pageSize: 8, // 每页个数
allData: [
{
name: '单位名称',
type: '类型',
number: '联系方式',
address: '地址',
status: '状态'
}
companyClass: [
{type: '1'},
{type: '2'},
{type: '3'},
{type: '4'},
{type: '5'},
{type: '6'},
{type: '7'},
{type: '8'}
],
fileList: [], // 导入列表
allData: [],
typeVal: { // 单位类别
'1': '中心方',
'2': '建设方',
'3': '承建方',
'4': '产品供应商(供应软件或硬件)',
'5': '监理方',
'6': '测试机构',
'7': '专家'
'1': 'AK中心',
'2': '实施系统管理员',
'3': '监理方',
'4': '集成商',
'5': '建设方',
'6': '专家',
'7': '测试机构',
'8': '开发商'
}
}
},
......@@ -137,6 +137,7 @@ export default {
},
mounted() {
let val = this.$store.getters.getSidebar;
if (val[val.length - 1].path !== 'company') {
val.push(
{
name: '单位管理',
......@@ -144,35 +145,39 @@ export default {
}
)
this.$store.commit('changeSidebar', val);
this.unit();
}
this.search('page')
},
methods: {
// 获取单位类别
unit() {
this.$server.getUnitFindAll().then(res => {
console.log(res.data.data)
this.companyClass = res.data.data;
})
},
// 单位搜索
search() {
search(val) {
let message = {
address: '',
name: '',
number: '',
principal: '',
score: 0,
status: 0,
type: 0
};
if (val !== 'page') { // 点击搜索按钮,不是点击分页跳转
if (!this.searchName || !this.classVal) {
this.$message.error('单位名称和单位类别不可为空!');
return;
}
let message = {};
this.companyClass.map(item => {
let type = this.typeVal[item.type];
if (this.classVal === type) {
console.log(item)
message = item;
}
})
}
let data = {
page: this.currentPage,
pageSize: this.pageSize,
t: message
}
console.log(data)
this.$server.postUnitSearch(data).then(res => {
this.allData = res.data.data.rows;
this.totalLength = this.allData.length;
......@@ -185,13 +190,16 @@ export default {
// 当前页数
handleCurrentChange(val) {
this.currentPage = val;
this.search();
this.search('page')
},
// 关闭弹框
reset() {
reset(val) {
this.openModel = false;
this.components = '';
this.companyName = ''
this.companyName = '';
if (val) {
this.unit()
}
},
// 获取单位名称
getName(val) {
......@@ -213,10 +221,24 @@ export default {
this.openModel = true;
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>
......@@ -282,7 +304,7 @@ export default {
text-align: center;
background: #4877e6;
cursor: pointer;
margin-left: 35px;
margin-left: 100px;
border-radius: 2px;
color: #fff;
font-size: 18px;
......@@ -290,10 +312,12 @@ export default {
.role .content .button:hover{
background: rgba(72,119,230,.6);
}
.role .content .import{
.role .content .new{
position: absolute;
right: 70px;
}
/*表格样式*/
.role .content .common-table{
margin: 24px 70px 0 70px;
}
......@@ -351,4 +375,20 @@ export default {
.role .content>>>.el-table__body tr.current-row > td{
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>
<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>
<div class="newrole">
<p class="dialog-header">
<span>单位</span>
<span>单位</span>
</p>
<div class="company-content" style="text-align: center; margin-top: 4px;">
<p class="add">
<p class="new">
<span class="addVal">
<span>单位名称:</span>
<el-input v-model="nameVal" size="medium" placeholder="请输入"></el-input>
<el-input v-model="name" size="medium" placeholder="请输入"></el-input>
</span>
<span class="addVal">
<span class="addVal" style="width: 450px;">
<span>单位类别:</span>
<el-radio-group v-model="classVal" size="small" style="line-height: 34px;width: 100%;text-align: left">
<el-radio label="1">备选项1</el-radio>
<el-radio label="2">备选项2</el-radio>
<el-radio label="3">备选项2</el-radio>
<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">
<span class="addVal" style="margin-top: 4px">
<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="2"></el-radio>
</el-radio-group>
......@@ -28,9 +33,13 @@
<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="tell" size="medium" placeholder="请输入"></el-input>
<el-input v-model="number" size="medium" placeholder="请输入"></el-input>
</span>
</p>
</div>
......@@ -46,11 +55,12 @@
export default {
data () {
return {
classVal: '',
nameVal: '',
getVal: '',
type: '',
name: '',
status: '',
address: '',
tell: ''
number: '',
principal: ''
}
},
created() {
......@@ -62,12 +72,29 @@ export default {
this.$emit('on-cancel')
},
save() {
console.log(this.classVal);
if (this.classVal === '') {
this.$message.error('角色名称不能为空!')
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.$emit('on-name', this.classVal)
this.$message.error('单位新建失败!');
}
}).catch(err => {
this.$message.error('单位新建失败!');
})
}
},
components: {
......@@ -77,16 +104,19 @@ export default {
}
</script>
<style scoped>
.newrole .add{
.newrole .new{
display: inline-block;
}
.new{
right: 220px;
}
.newrole .addVal{
width: 390px;
display: flex;
font-size: 18px;
color: #666;
text-align: center;
margin-top: 24px;
margin-top: 15px;
}
.newrole .addVal>span{
width: 140px;
......@@ -103,17 +133,19 @@ export default {
width: 180px;
}
.newrole .line{
margin: 29px 30px 0 30px;
margin: 25px 30px 0 30px;
height: 1px;
background: rgba(72,119,230,0.2);
}
.newrole .buttonClick{
display: flex;
justify-content: space-evenly;
margin-top: 20px;
margin-top: 13px;
}
.newrole .company-content>>>.el-radio{
margin-right: 22px;
margin-bottom: 11px;
width: 49px;
}
.newrole .company-content>>>.el-input__inner{
width: 290px;
......
......@@ -71,7 +71,7 @@
</el-table>
</div>
<!-- 分页 -->
<div class="block" v-if="this.totleLength >= 10">
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
......
<template>
<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>
</template>
......@@ -8,6 +18,8 @@
export default {
data () {
return {
user: '',
password: ''
}
},
created() {
......@@ -15,6 +27,27 @@ export default {
mounted(){
},
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: {
},
......@@ -23,4 +56,78 @@ export default {
}
</script>
<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>
......@@ -31,7 +31,7 @@
</p>
</div>
<div>
<div @click="clickMenu('product',4,'市准入管理')">
<span class="line"></span>
<p class="menu" style="margin-top: 0">
<span class="icon">
......
......@@ -108,6 +108,6 @@ const server = {
data: data,
headers: {'Content-Type': 'multipart/form-data'}
});
},
}
}
export default server;
......@@ -6,6 +6,12 @@ const actions = {
sidebar: payload
})
},
changeUserData(store, payload) {
store.commit({
type: 'changeUserData',
userData: payload
})
},
};
export default actions;
......@@ -3,6 +3,9 @@ const getters = {
getSidebar(state) {
return state.sidebar
},
getUserData(state) {
return state.userData
}
};
export default getters;
......@@ -3,6 +3,9 @@ const mutations = {
changeSidebar(state, payload) {
state.sidebar = payload;
},
changeUserData(state, payload) {
state.userData = payload;
},
};
export default mutations;
const state = {
sidebar: []
sidebar: [],
userData: {} // 登录用户信息
};
export default state;
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论