Commit 922dd728 authored by Kimber's avatar Kimber

Merge branch 'rev2'

parents 6491b0fc 617ec579
...@@ -88,9 +88,9 @@ export default { ...@@ -88,9 +88,9 @@ export default {
}, },
// 修改 // 修改
set: (iotNormalMachine) => { set: (iotNormalMachine) => {
iotNormalMachine.enterpriseId = null // iotNormalMachine.enterpriseId = null
iotNormalMachine.mineType = null // iotNormalMachine.mineType = null
iotNormalMachine.mineId = null // iotNormalMachine.mineId = null
iotNormalMachine.createDatetime = null iotNormalMachine.createDatetime = null
iotNormalMachine.createBy = null iotNormalMachine.createBy = null
iotNormalMachine.updateDatetime = null iotNormalMachine.updateDatetime = null
......
...@@ -61,9 +61,9 @@ export default { ...@@ -61,9 +61,9 @@ export default {
}, },
// 修改 // 修改
set: (iotNormalMachine) => { set: (iotNormalMachine) => {
iotNormalMachine.enterpriseId = null // iotNormalMachine.enterpriseId = null
iotNormalMachine.mineType = null // iotNormalMachine.mineType = null
iotNormalMachine.mineId = null // iotNormalMachine.mineId = null
iotNormalMachine.createDatetime = null iotNormalMachine.createDatetime = null
iotNormalMachine.createBy = null iotNormalMachine.createBy = null
iotNormalMachine.updateDatetime = null iotNormalMachine.updateDatetime = null
......
...@@ -64,7 +64,7 @@ export default { ...@@ -64,7 +64,7 @@ export default {
// 修改露天矿山 // 修改露天矿山
setOpencast: (mine) => { setOpencast: (mine) => {
mine.hasEnable = null mine.hasEnable = null
mine.enterpriseId = null // mine.enterpriseId = null
mine.createDatetime = null mine.createDatetime = null
mine.createBy = null mine.createBy = null
mine.updateDatetime = null mine.updateDatetime = null
...@@ -78,7 +78,7 @@ export default { ...@@ -78,7 +78,7 @@ export default {
// 修改尾矿库 // 修改尾矿库
setTailings: (mine) => { setTailings: (mine) => {
mine.hasEnable = null mine.hasEnable = null
mine.enterpriseId = null // mine.enterpriseId = null
mine.createDatetime = null mine.createDatetime = null
mine.createBy = null mine.createBy = null
mine.updateDatetime = null mine.updateDatetime = null
......
src/assets/home4Index/icon1.png

36.9 KB | W: | H:

src/assets/home4Index/icon1.png

5.18 KB | W: | H:

src/assets/home4Index/icon1.png
src/assets/home4Index/icon1.png
src/assets/home4Index/icon1.png
src/assets/home4Index/icon1.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/home4Index/icon2.png

31 KB | W: | H:

src/assets/home4Index/icon2.png

7.22 KB | W: | H:

src/assets/home4Index/icon2.png
src/assets/home4Index/icon2.png
src/assets/home4Index/icon2.png
src/assets/home4Index/icon2.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/home4Index/icon3.png

34.2 KB | W: | H:

src/assets/home4Index/icon3.png

5.85 KB | W: | H:

src/assets/home4Index/icon3.png
src/assets/home4Index/icon3.png
src/assets/home4Index/icon3.png
src/assets/home4Index/icon3.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/home4Index/icon4.png

32 KB | W: | H:

src/assets/home4Index/icon4.png

4.49 KB | W: | H:

src/assets/home4Index/icon4.png
src/assets/home4Index/icon4.png
src/assets/home4Index/icon4.png
src/assets/home4Index/icon4.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -29,7 +29,7 @@ export default { ...@@ -29,7 +29,7 @@ export default {
data() { data() {
return { return {
selectedMine: {}, selectedMine: {},
title: '中和地信应急平台', title: '中和地信企业管理平台',
logo: false, logo: false,
showPublic: false, showPublic: false,
showMineUnderground: false, showMineUnderground: false,
......
...@@ -2,7 +2,7 @@ module.exports = { ...@@ -2,7 +2,7 @@ module.exports = {
/** /**
* @description 网站标题 * @description 网站标题
*/ */
title: '应急管理', title: '中和地信企业管理平台',
/** /**
* @description 是否显示 tagsView * @description 是否显示 tagsView
*/ */
...@@ -38,7 +38,7 @@ module.exports = { ...@@ -38,7 +38,7 @@ module.exports = {
/** /**
* 底部文字,支持html语法 * 底部文字,支持html语法
*/ */
footerTxt: '© 2023 <a href="#" target="_blank">淄博应急局</a>', footerTxt: '© 2024 <a href="#" target="_blank">中和地信有限公司</a>',
/** /**
* 备案号 * 备案号
*/ */
......
<template> <template>
<div class="login" :style="'background-image:url(' + Background + ');'"> <div class="login" :style="'background-image:url(' + Background + ');'">
<div class="topTitle" :style="'background-image:url(' + Title + ');'"> <div class="topTitle" :style="'background-image:url(' + Title + ');'">
中和地信应急平台 中和地信企业管理平台
</div> </div>
<div class="subTopTitle"> <div class="subTopTitle">
<h2 :style="'background-image:url(' + Welcome + ');'"> <h2 :style="'background-image:url(' + Welcome + ');'">
<img src="@/assets/home4Index/icon5.png" />中和地信有限公司欢迎您! <img src="@/assets/home4Index/icon5.png" />
<div class="wrapper" style=" position: absolute;
top: 38px;
left: 86px;
width: 300px;
padding-left: 20px;
overflow: hidden;
"> <div class="floating-text">
中和地信有限公司欢迎您!
</div>
</div>
</h2> </h2>
<h2 @click="navTo('admin')" style="cursor: pointer;"> <h2 @click="navTo('admin')" style="cursor: pointer;">
<img src="@/assets/home4Index/icon6.png" />管理后台 <img src="@/assets/home4Index/icon6.png" />管理后台
...@@ -124,11 +137,11 @@ export default { ...@@ -124,11 +137,11 @@ export default {
<style rel="stylesheet/scss" lang="scss"> <style rel="stylesheet/scss" lang="scss">
@keyframes floatShadow { @keyframes floatShadow {
0% { 0% {
transform: translateX(1300px); transform: translateX(280px);
display: block; display: block;
} }
100% { 100% {
transform: translateX(-1300px); transform: translateX(-300px);
display: none; display: none;
} }
} }
...@@ -136,15 +149,15 @@ export default { ...@@ -136,15 +149,15 @@ export default {
.floating-text { .floating-text {
font-size: 18px; font-size: 18px;
line-height: 1; line-height: 1;
color: #fdd756; color: #fff;
text-shadow: 0 0 5px #fff; text-shadow: 0 0 5px #fff;
animation: floatShadow; animation: floatShadow;
animation-name: floatShadow; animation-name: floatShadow;
animation-duration: 20s; animation-duration: 10s;
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-timing-function: linear; animation-timing-function: linear;
position: absolute; // position: absolute;
top: 8px; // top: 38px;
} }
.subTopTitle { .subTopTitle {
...@@ -257,7 +270,7 @@ export default { ...@@ -257,7 +270,7 @@ export default {
align-items: center; align-items: center;
& > img { & > img {
width: 120px; width: 120px;
margin-left: 30px; margin-left: 20px;
} }
p { p {
width: 180px; width: 180px;
......
...@@ -4,7 +4,9 @@ ...@@ -4,7 +4,9 @@
<div class="head-container"> <div class="head-container">
<div> <div>
<el-input v-model="searchParam.nameLike" clearable size="small" placeholder="设备名称" style="width: 200px;" class="filter-item" /> <el-input v-model="searchParam.nameLike" clearable size="small" placeholder="设备名称" style="width: 200px;" class="filter-item" />
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="searchSubmit">搜索</el-button> <el-input v-model="searchParam.enterpriseName" clearable size="small" placeholder="所属企业" style="width: 200px;" class="filter-item" />
<el-input v-model="searchParam.mineName" clearable size="small" placeholder="所属矿山" style="width: 200px;" class="filter-item" />
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="searchSubmit">搜索2</el-button>
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="searchParamReset">重置</el-button> <el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="searchParamReset">重置</el-button>
<el-tooltip class="item" effect="dark" content="按当前查询条件导出" placement="top"> <el-tooltip class="item" effect="dark" content="按当前查询条件导出" placement="top">
<el-button :loading="exporting" class="filter-item" size="mini" type="info" plain icon="el-icon-download" @click="exportSubmit">导出</el-button> <el-button :loading="exporting" class="filter-item" size="mini" type="info" plain icon="el-icon-download" @click="exportSubmit">导出</el-button>
...@@ -28,6 +30,34 @@ ...@@ -28,6 +30,34 @@
<!--弹出框1--> <!--弹出框1-->
<el-dialog append-to-body :close-on-click-modal="true" :visible.sync="dialog1Show" :title="editState==1?'新增':editState==2?'修改':'查看'" width="960px"> <el-dialog append-to-body :close-on-click-modal="true" :visible.sync="dialog1Show" :title="editState==1?'新增':editState==2?'修改':'查看'" width="960px">
<el-form ref="dialog1Form" :hide-required-asterisk="!dialog1Editing" :model="dialog1Data" :rules="dialog1Rules" size="mini" label-width="180px" style="margin-right: 80px;"> <el-form ref="dialog1Form" :hide-required-asterisk="!dialog1Editing" :model="dialog1Data" :rules="dialog1Rules" size="mini" label-width="180px" style="margin-right: 80px;">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="所属企业:" prop="enterpriseId">
<span v-show="!dialog1Editing">{{ dialog1Data.enterpriseName }}</span>
<el-select
v-model="dialog1Data.enterpriseId"
placeholder="请选择"
@change="enterpriseChange"
>
<el-option
v-for="item in options4enterpriseIdList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属矿山" prop="mineId">
<span v-show="!dialog1Editing">{{ dialog1Data.mineName }}</span>
<el-select v-model="dialog1Data.mineId" placeholder="请选择" clearable size="small" class="filter-item" style="width: 200px;">
<el-option v-for="mine in mineList" :key="mine.index" :label="mine.name" :value="mine.index" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备编号:" prop="code"> <el-form-item label="设备编号:" prop="code">
...@@ -164,6 +194,8 @@ ...@@ -164,6 +194,8 @@
<el-table-column :show-overflow-tooltip="true" prop="id" label="编号" width="100px" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="id" label="编号" width="100px" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="name" label="设备名称" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="name" label="设备名称" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="code" label="设备编码" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="code" label="设备编码" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="enterpriseName" label="所属企业" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="mineName" label="所属矿山" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="unit" label="单位" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="unit" label="单位" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="manufacturer" label="生产厂家" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="manufacturer" label="生产厂家" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="place" label="安装位置" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="place" label="安装位置" align="center" />
...@@ -190,6 +222,8 @@ ...@@ -190,6 +222,8 @@
<script> <script>
import iotGroundPressureMachineApi from '@/api/kd/iotGroundPressureMachine' import iotGroundPressureMachineApi from '@/api/kd/iotGroundPressureMachine'
import mineApi from '@/api/kd/mine'
import {getCompanyList} from '@/api/system/user'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { downloadFile } from '@/utils' import { downloadFile } from '@/utils'
...@@ -197,13 +231,18 @@ import { downloadFile } from '@/utils' ...@@ -197,13 +231,18 @@ import { downloadFile } from '@/utils'
const searchParam = {// 默认搜索条件 const searchParam = {// 默认搜索条件
page: 1, page: 1,
count: 10, count: 10,
searchCount: true searchCount: true,
mineName: '',
enterpriseName: ''
} }
export default { export default {
name: 'EIotGroundPressureMachine', // 本页面名 name: 'EIotGroundPressureMachine', // 本页面名
components: {}, components: {},
data() { data() {
return { return {
options4enterpriseIdList: [],
mineList: [],
selectedMine: {}, selectedMine: {},
httpHeaders: { httpHeaders: {
'Authorization': getToken() 'Authorization': getToken()
...@@ -220,6 +259,8 @@ export default { ...@@ -220,6 +259,8 @@ export default {
dialog1Saving: false, dialog1Saving: false,
dialog1Data: {}, dialog1Data: {},
dialog1Rules: { dialog1Rules: {
enterpriseId: [{ required: true, message: '请选择' }],
mineId: [{ required: true, message: '请选择' }],
code: [{ required: true, message: '请填写' }], code: [{ required: true, message: '请填写' }],
name: [{ required: true, message: '请填写' }], name: [{ required: true, message: '请填写' }],
unit: [{ required: true, message: '请填写' }], unit: [{ required: true, message: '请填写' }],
...@@ -252,26 +293,44 @@ export default { ...@@ -252,26 +293,44 @@ export default {
} }
}, },
mounted() { mounted() {
const selectedMineJson = window.localStorage.getItem('kd.selected.mine') // const selectedMineJson = window.localStorage.getItem('kd.selected.mine')
let noMine = false // let noMine = false
if (!selectedMineJson) { // if (!selectedMineJson) {
noMine = true // noMine = true
} else { // } else {
const selectedMine = JSON.parse(selectedMineJson) // const selectedMine = JSON.parse(selectedMineJson)
if (!selectedMine || selectedMine.enterpriseId !== this.user.enterpriseId) { // if (!selectedMine || selectedMine.enterpriseId !== this.user.enterpriseId) {
noMine = true // noMine = true
} else { // } else {
this.selectedMine = selectedMine // this.selectedMine = selectedMine
} // }
} // }
// if (noMine) { // // if (noMine) {
// this.$message.error('当前未选择矿山') // this.$message.error('当前未选择矿山')
// this.$router.replace('/dashboard') // this.$router.replace('/dashboard')
// } // }
this.searchParamReset() this.searchParamReset()
this.searchSubmit() this.searchSubmit()
// 获取企业公司
getCompanyList({})
.then((res) => {
this.options4enterpriseIdList = res.body;
});
}, },
methods: { methods: {
enterpriseChange(value){
// 矿山选项卡
this.getAllMineByEnterpriseId(value)
},
getAllMineByEnterpriseId(enterpriseId){
mineApi.getAllMineByEnterpriseId({
enterpriseId
}).then(response => {
let i = 1
response.body.forEach(x => { x.index = i++ })
this.mineList = response.body
})
},
searchParamReset() { searchParamReset() {
this.searchParam = JSON.parse(JSON.stringify(searchParam)) this.searchParam = JSON.parse(JSON.stringify(searchParam))
}, },
...@@ -309,8 +368,8 @@ export default { ...@@ -309,8 +368,8 @@ export default {
} else { } else {
this.dialog1Saving = true this.dialog1Saving = true
if (this.editState === 1) { // 新增 if (this.editState === 1) { // 新增
this.dialog1Data.mineType = this.selectedMine.mineType // this.dialog1Data.mineType = this.selectedMine.mineType
this.dialog1Data.mineId = this.selectedMine.id // this.dialog1Data.mineId = this.selectedMine.id
iotGroundPressureMachineApi.add(this.dialog1Data).then(() => { iotGroundPressureMachineApi.add(this.dialog1Data).then(() => {
this.dialog1Show = false this.dialog1Show = false
this.$message.success('保存成功') this.$message.success('保存成功')
...@@ -365,6 +424,7 @@ export default { ...@@ -365,6 +424,7 @@ export default {
this.dialog1Show = true this.dialog1Show = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dialog1Form'].clearValidate() this.$refs['dialog1Form'].clearValidate()
this.getAllMineByEnterpriseId(this.dialog1Data.enterpriseId)
}) })
}).catch(() => { }).catch(() => {
this.searchSubmit() this.searchSubmit()
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
<div class="head-container"> <div class="head-container">
<div> <div>
<el-input v-model="searchParam.nameLike" clearable size="small" placeholder="设备名称" style="width: 200px;" class="filter-item" /> <el-input v-model="searchParam.nameLike" clearable size="small" placeholder="设备名称" style="width: 200px;" class="filter-item" />
<el-input v-model="searchParam.enterpriseName" clearable size="small" placeholder="所属企业" style="width: 200px;" class="filter-item" />
<el-input v-model="searchParam.mineName" clearable size="small" placeholder="所属矿山" style="width: 200px;" class="filter-item" />
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="searchSubmit">搜索</el-button> <el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="searchSubmit">搜索</el-button>
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="searchParamReset">重置</el-button> <el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="searchParamReset">重置</el-button>
<el-tooltip class="item" effect="dark" content="按当前查询条件导出" placement="top"> <el-tooltip class="item" effect="dark" content="按当前查询条件导出" placement="top">
...@@ -28,6 +30,34 @@ ...@@ -28,6 +30,34 @@
<!--弹出框1--> <!--弹出框1-->
<el-dialog append-to-body :close-on-click-modal="true" :visible.sync="dialog1Show" :title="editState==1?'新增':editState==2?'修改':'查看'" width="960px"> <el-dialog append-to-body :close-on-click-modal="true" :visible.sync="dialog1Show" :title="editState==1?'新增':editState==2?'修改':'查看'" width="960px">
<el-form ref="dialog1Form" :hide-required-asterisk="!dialog1Editing" :model="dialog1Data" :rules="dialog1Rules" size="mini" label-width="180px" style="margin-right: 80px;"> <el-form ref="dialog1Form" :hide-required-asterisk="!dialog1Editing" :model="dialog1Data" :rules="dialog1Rules" size="mini" label-width="180px" style="margin-right: 80px;">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="所属企业:" prop="enterpriseId">
<span v-show="!dialog1Editing">{{ dialog1Data.enterpriseName }}</span>
<el-select
v-model="dialog1Data.enterpriseId"
placeholder="请选择"
@change="enterpriseChange"
>
<el-option
v-for="item in options4enterpriseIdList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属矿山" prop="mineId">
<span v-show="!dialog1Editing">{{ dialog1Data.mineName }}</span>
<el-select v-model="dialog1Data.mineId" placeholder="请选择" clearable size="small" class="filter-item" style="width: 200px;">
<el-option v-for="mine in mineList" :key="mine.index" :label="mine.name" :value="mine.index" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备编号:" prop="code"> <el-form-item label="设备编号:" prop="code">
...@@ -164,6 +194,8 @@ ...@@ -164,6 +194,8 @@
<el-table-column :show-overflow-tooltip="true" prop="id" label="编号" width="100px" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="id" label="编号" width="100px" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="name" label="设备名称" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="name" label="设备名称" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="code" label="设备编号" align="center" /> <el-table-column :show-overflow-tooltip="true" prop="code" label="设备编号" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="enterpriseName" label="所属企业" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="mineName" label="所属矿山" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="monitoringType" label="监测类型" align="center"> <el-table-column :show-overflow-tooltip="true" prop="monitoringType" label="监测类型" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ (getMonitoringTypeByCode(scope.row.code)||{}).name }}</span> <span>{{ (getMonitoringTypeByCode(scope.row.code)||{}).name }}</span>
...@@ -195,6 +227,8 @@ ...@@ -195,6 +227,8 @@
<script> <script>
import iotTailingsMachineApi from '@/api/kd/iotTailingsMachine' import iotTailingsMachineApi from '@/api/kd/iotTailingsMachine'
import AMapSearchPoint from '@/components/AMap/AMapSearchPoint' import AMapSearchPoint from '@/components/AMap/AMapSearchPoint'
import mineApi from '@/api/kd/mine'
import {getCompanyList} from '@/api/system/user'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { downloadFile } from '@/utils' import { downloadFile } from '@/utils'
...@@ -202,13 +236,17 @@ import { downloadFile } from '@/utils' ...@@ -202,13 +236,17 @@ import { downloadFile } from '@/utils'
const searchParam = {// 默认搜索条件 const searchParam = {// 默认搜索条件
page: 1, page: 1,
count: 10, count: 10,
searchCount: true searchCount: true,
mineName: '',
enterpriseName: ''
} }
export default { export default {
name: 'EIotTailingsMachine', // 本页面名 name: 'EIotTailingsMachine', // 本页面名
components: { AMapSearchPoint }, components: { AMapSearchPoint },
data() { data() {
return { return {
options4enterpriseIdList: [],
mineList: [],
selectedMine: {}, selectedMine: {},
httpHeaders: { httpHeaders: {
'Authorization': getToken() 'Authorization': getToken()
...@@ -225,6 +263,8 @@ export default { ...@@ -225,6 +263,8 @@ export default {
dialog1Saving: false, dialog1Saving: false,
dialog1Data: {}, dialog1Data: {},
dialog1Rules: { dialog1Rules: {
enterpriseId: [{ required: true, message: '请选择' }],
mineId: [{ required: true, message: '请选择' }],
code: [{ required: true, message: '请填写' }], code: [{ required: true, message: '请填写' }],
name: [{ required: true, message: '请填写' }], name: [{ required: true, message: '请填写' }],
unit: [{ required: true, message: '请填写' }], unit: [{ required: true, message: '请填写' }],
...@@ -259,26 +299,44 @@ export default { ...@@ -259,26 +299,44 @@ export default {
} }
}, },
mounted() { mounted() {
const selectedMineJson = window.localStorage.getItem('kd.selected.mine') // const selectedMineJson = window.localStorage.getItem('kd.selected.mine')
let noMine = false // let noMine = false
if (!selectedMineJson) { // if (!selectedMineJson) {
noMine = true // noMine = true
} else { // } else {
const selectedMine = JSON.parse(selectedMineJson) // const selectedMine = JSON.parse(selectedMineJson)
if (!selectedMine || selectedMine.enterpriseId !== this.user.enterpriseId) { // if (!selectedMine || selectedMine.enterpriseId !== this.user.enterpriseId) {
noMine = true // noMine = true
} else { // } else {
this.selectedMine = selectedMine // this.selectedMine = selectedMine
} // }
} // }
// if (noMine) { // if (noMine) {
// this.$message.error('当前未选择矿山') // this.$message.error('当前未选择矿山')
// this.$router.replace('/dashboard') // this.$router.replace('/dashboard')
// } // }
this.searchParamReset() this.searchParamReset()
this.searchSubmit() this.searchSubmit()
// 获取企业公司
getCompanyList({})
.then((res) => {
this.options4enterpriseIdList = res.body;
});
}, },
methods: { methods: {
enterpriseChange(value){
// 矿山选项卡
this.getAllMineByEnterpriseId(value)
},
getAllMineByEnterpriseId(enterpriseId){
mineApi.getAllMineByEnterpriseId({
enterpriseId
}).then(response => {
let i = 1
response.body.forEach(x => { x.index = i++ })
this.mineList = response.body
})
},
searchParamReset() { searchParamReset() {
this.searchParam = JSON.parse(JSON.stringify(searchParam)) this.searchParam = JSON.parse(JSON.stringify(searchParam))
}, },
...@@ -316,8 +374,8 @@ export default { ...@@ -316,8 +374,8 @@ export default {
} else { } else {
this.dialog1Saving = true this.dialog1Saving = true
if (this.editState === 1) { // 新增 if (this.editState === 1) { // 新增
this.dialog1Data.mineType = this.selectedMine.mineType // this.dialog1Data.mineType = this.selectedMine.mineType
this.dialog1Data.mineId = this.selectedMine.id // this.dialog1Data.mineId = this.selectedMine.id
iotTailingsMachineApi.add(this.dialog1Data).then(() => { iotTailingsMachineApi.add(this.dialog1Data).then(() => {
this.dialog1Show = false this.dialog1Show = false
this.$message.success('保存成功') this.$message.success('保存成功')
...@@ -372,6 +430,7 @@ export default { ...@@ -372,6 +430,7 @@ export default {
this.dialog1Show = true this.dialog1Show = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dialog1Form'].clearValidate() this.$refs['dialog1Form'].clearValidate()
this.getAllMineByEnterpriseId(this.dialog1Data.enterpriseId)
}) })
}).catch(() => { }).catch(() => {
this.searchSubmit() this.searchSubmit()
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<div> <div>
<el-input v-model="searchParam.code" clearable size="small" placeholder="矿山编号" style="width: 200px;" class="filter-item" /> <el-input v-model="searchParam.code" clearable size="small" placeholder="矿山编号" style="width: 200px;" class="filter-item" />
<el-input v-model="searchParam.nameLike" clearable size="small" placeholder="矿山名称" style="width: 200px;" class="filter-item" /> <el-input v-model="searchParam.nameLike" clearable size="small" placeholder="矿山名称" style="width: 200px;" class="filter-item" />
<el-input v-model="searchParam.enterpriseName" clearable size="small" placeholder="所属企业" style="width: 200px;" class="filter-item" />
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="searchSubmit">搜索</el-button> <el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="searchSubmit">搜索</el-button>
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="searchParamReset">重置</el-button> <el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="searchParamReset">重置</el-button>
</div> </div>
...@@ -30,9 +31,20 @@ ...@@ -30,9 +31,20 @@
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所属行政区划:" prop="_administrativeAreaCascade"> <!-- <el-form-item label="所属行政区划:" prop="_administrativeAreaCascade">
<span v-show="!editing">{{ dialog1Data.administrativeAreaName }}</span> <span v-show="!editing">{{ dialog1Data.administrativeAreaName }}</span>
<el-cascader v-show="editing" v-model="dialog1Data._administrativeAreaCascade" style="width: 100%;" :options="administrativeAreaList" clearable /> <el-cascader v-show="editing" v-model="dialog1Data._administrativeAreaCascade" style="width: 100%;" :options="administrativeAreaList" clearable />
</el-form-item> -->
<el-form-item label="所属企业:" prop="enterpriseId">
<span v-show="!editing">{{ dialog1Data.enterpriseName }}</span>
<el-select v-show="editing" size="mini" v-model="dialog1Data.enterpriseId" placeholder="" @change="handleChange">
<el-option
v-for="item in companyList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -433,6 +445,7 @@ ...@@ -433,6 +445,7 @@
<!-- <el-table-column type="selection" width="55" /> --> <!-- <el-table-column type="selection" width="55" /> -->
<el-table-column :show-overflow-tooltip="true" label="编号" prop="id" width="100px" align="center" /> <el-table-column :show-overflow-tooltip="true" label="编号" prop="id" width="100px" align="center" />
<el-table-column :show-overflow-tooltip="true" label="矿山名称" prop="name" align="center" /> <el-table-column :show-overflow-tooltip="true" label="矿山名称" prop="name" align="center" />
<el-table-column :show-overflow-tooltip="true" label="所属企业" prop="enterpriseName" align="center" />
<el-table-column :show-overflow-tooltip="true" label="矿山编号" prop="code" align="center" /> <el-table-column :show-overflow-tooltip="true" label="矿山编号" prop="code" align="center" />
<el-table-column :show-overflow-tooltip="true" label="矿山地址" prop="address" align="center" /> <el-table-column :show-overflow-tooltip="true" label="矿山地址" prop="address" align="center" />
<el-table-column :show-overflow-tooltip="true" label="建矿时间" prop="buildDate" align="center" /> <el-table-column :show-overflow-tooltip="true" label="建矿时间" prop="buildDate" align="center" />
...@@ -467,6 +480,7 @@ ...@@ -467,6 +480,7 @@
</template> </template>
<script> <script>
import {getCompanyList} from '@/api/system/user'
import mineApi from '@/api/kd/mine' import mineApi from '@/api/kd/mine'
import mineStopApplyApi from '@/api/kd/mineStopApply' import mineStopApplyApi from '@/api/kd/mineStopApply'
import dictionaryApi from '@/api/kd/dictionary' import dictionaryApi from '@/api/kd/dictionary'
...@@ -478,7 +492,8 @@ import { validatePhone } from '@/utils/validate' ...@@ -478,7 +492,8 @@ import { validatePhone } from '@/utils/validate'
const searchParam = {// 默认搜索条件 const searchParam = {// 默认搜索条件
page: 1, page: 1,
count: 10, count: 10,
searchCount: true searchCount: true,
enterpriseName: ''
} }
export default { export default {
name: 'EOpencast', // 本页面名 name: 'EOpencast', // 本页面名
...@@ -488,6 +503,7 @@ export default { ...@@ -488,6 +503,7 @@ export default {
httpHeaders: { httpHeaders: {
'Authorization': getToken() 'Authorization': getToken()
}, },
companyList: [],
administrativeAreaList: [], administrativeAreaList: [],
dict12List: [], dict12List: [],
dict13List: [], dict13List: [],
...@@ -514,7 +530,8 @@ export default { ...@@ -514,7 +530,8 @@ export default {
liablePersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }], liablePersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }],
managedPersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }], managedPersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }],
safetyPersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }], safetyPersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }],
runState: [{ required: true, message: '请选择' }] runState: [{ required: true, message: '请选择' }],
enterpriseId: [{ required: true, message: '请选择' }]
}, },
editState: 0, // (刚打开窗口时)记录了上次窗口作用;(保存编辑时)记录了当前窗口作用; 0无 1新增 2修改 3查看 editState: 0, // (刚打开窗口时)记录了上次窗口作用;(保存编辑时)记录了当前窗口作用; 0无 1新增 2修改 3查看
addingData: {}, // 上次正在新增时的内容,下次打开dialog1窗口时记录下来 addingData: {}, // 上次正在新增时的内容,下次打开dialog1窗口时记录下来
...@@ -539,6 +556,7 @@ export default { ...@@ -539,6 +556,7 @@ export default {
} }
}, },
mounted() { mounted() {
administrativeAreaApi.cascadeElementUI().then(response => { administrativeAreaApi.cascadeElementUI().then(response => {
this.administrativeAreaList = response.results this.administrativeAreaList = response.results
}) })
...@@ -550,8 +568,15 @@ export default { ...@@ -550,8 +568,15 @@ export default {
}) })
this.searchParamReset() this.searchParamReset()
this.searchSubmit() this.searchSubmit()
this.getCompanyList()
}, },
methods: { methods: {
getCompanyList(){
getCompanyList({})
.then((res) => {
this.companyList = res.body;
});
},
searchParamReset() { searchParamReset() {
this.searchParam = JSON.parse(JSON.stringify(searchParam)) this.searchParam = JSON.parse(JSON.stringify(searchParam))
}, },
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<div> <div>
<el-input v-model="searchParam.code" clearable size="small" placeholder="尾矿库编号" style="width: 200px;" class="filter-item" /> <el-input v-model="searchParam.code" clearable size="small" placeholder="尾矿库编号" style="width: 200px;" class="filter-item" />
<el-input v-model="searchParam.nameLike" clearable size="small" placeholder="尾矿库名称" style="width: 200px;" class="filter-item" /> <el-input v-model="searchParam.nameLike" clearable size="small" placeholder="尾矿库名称" style="width: 200px;" class="filter-item" />
<el-input v-model="searchParam.enterpriseName" clearable size="small" placeholder="所属企业" style="width: 200px;" class="filter-item" />
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="searchSubmit">搜索</el-button> <el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="searchSubmit">搜索</el-button>
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="searchParamReset">重置</el-button> <el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="searchParamReset">重置</el-button>
</div> </div>
...@@ -30,9 +31,20 @@ ...@@ -30,9 +31,20 @@
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所属行政区划:" prop="_administrativeAreaCascade"> <!-- <el-form-item label="所属行政区划:" prop="_administrativeAreaCascade">
<span v-show="!editing">{{ dialog1Data.administrativeAreaName }}</span> <span v-show="!editing">{{ dialog1Data.administrativeAreaName }}</span>
<el-cascader v-show="editing" v-model="dialog1Data._administrativeAreaCascade" style="width: 100%;" :options="administrativeAreaList" clearable /> <el-cascader v-show="editing" v-model="dialog1Data._administrativeAreaCascade" style="width: 100%;" :options="administrativeAreaList" clearable />
</el-form-item> -->
<el-form-item label="所属企业:" prop="enterpriseId">
<span v-show="!editing">{{ dialog1Data.enterpriseName }}</span>
<el-select v-show="editing" size="mini" v-model="dialog1Data.enterpriseId" placeholder="" @change="handleChange">
<el-option
v-for="item in companyList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -567,6 +579,7 @@ ...@@ -567,6 +579,7 @@
<!-- <el-table-column type="selection" width="55" /> --> <!-- <el-table-column type="selection" width="55" /> -->
<el-table-column :show-overflow-tooltip="true" label="编号" prop="id" width="100px" align="center" /> <el-table-column :show-overflow-tooltip="true" label="编号" prop="id" width="100px" align="center" />
<el-table-column :show-overflow-tooltip="true" label="尾矿库名称" prop="name" align="center" /> <el-table-column :show-overflow-tooltip="true" label="尾矿库名称" prop="name" align="center" />
<el-table-column :show-overflow-tooltip="true" label="所属企业" prop="enterpriseName" align="center" />
<el-table-column :show-overflow-tooltip="true" label="尾矿库编号" prop="code" align="center" /> <el-table-column :show-overflow-tooltip="true" label="尾矿库编号" prop="code" align="center" />
<el-table-column :show-overflow-tooltip="true" label="尾矿库地址" prop="address" align="center" /> <el-table-column :show-overflow-tooltip="true" label="尾矿库地址" prop="address" align="center" />
<el-table-column :show-overflow-tooltip="true" label="尾矿库等级" prop="dict19Name" align="center" /> <el-table-column :show-overflow-tooltip="true" label="尾矿库等级" prop="dict19Name" align="center" />
...@@ -601,6 +614,7 @@ ...@@ -601,6 +614,7 @@
</template> </template>
<script> <script>
import {getCompanyList} from '@/api/system/user'
import mineApi from '@/api/kd/mine' import mineApi from '@/api/kd/mine'
import mineStopApplyApi from '@/api/kd/mineStopApply' import mineStopApplyApi from '@/api/kd/mineStopApply'
import dictionaryApi from '@/api/kd/dictionary' import dictionaryApi from '@/api/kd/dictionary'
...@@ -612,13 +626,15 @@ import { validatePhone } from '@/utils/validate' ...@@ -612,13 +626,15 @@ import { validatePhone } from '@/utils/validate'
const searchParam = {// 默认搜索条件 const searchParam = {// 默认搜索条件
page: 1, page: 1,
count: 10, count: 10,
searchCount: true searchCount: true,
enterpriseName: ''
} }
export default { export default {
name: 'ETailings', // 本页面名 name: 'ETailings', // 本页面名
components: { AMapSearchPoint }, components: { AMapSearchPoint },
data() { data() {
return { return {
companyList: [],
httpHeaders: { httpHeaders: {
'Authorization': getToken() 'Authorization': getToken()
}, },
...@@ -658,7 +674,8 @@ export default { ...@@ -658,7 +674,8 @@ export default {
liablePersonPhone: [{ required: true, trigger: 'blur', validator: validatePhone }], liablePersonPhone: [{ required: true, trigger: 'blur', validator: validatePhone }],
safetyPersonPhone: [{ required: true, trigger: 'blur', validator: validatePhone }], safetyPersonPhone: [{ required: true, trigger: 'blur', validator: validatePhone }],
dutyPhone: [{ required: true, trigger: 'blur', validator: validatePhone }], dutyPhone: [{ required: true, trigger: 'blur', validator: validatePhone }],
runState: [{ required: true, message: '请选择' }] runState: [{ required: true, message: '请选择' }],
enterpriseId: [{ required: true, message: '请选择' }]
}, },
editState: 0, // (刚打开窗口时)记录了上次窗口作用;(保存编辑时)记录了当前窗口作用; 0无 1新增 2修改 3查看 editState: 0, // (刚打开窗口时)记录了上次窗口作用;(保存编辑时)记录了当前窗口作用; 0无 1新增 2修改 3查看
addingData: {}, // 上次正在新增时的内容,下次打开dialog1窗口时记录下来 addingData: {}, // 上次正在新增时的内容,下次打开dialog1窗口时记录下来
...@@ -694,8 +711,15 @@ export default { ...@@ -694,8 +711,15 @@ export default {
}) })
this.searchParamReset() this.searchParamReset()
this.searchSubmit() this.searchSubmit()
this.getCompanyList()
}, },
methods: { methods: {
getCompanyList(){
getCompanyList({})
.then((res) => {
this.companyList = res.body;
});
},
searchParamReset() { searchParamReset() {
this.searchParam = JSON.parse(JSON.stringify(searchParam)) this.searchParam = JSON.parse(JSON.stringify(searchParam))
}, },
......
...@@ -484,7 +484,8 @@ export default { ...@@ -484,7 +484,8 @@ export default {
liablePersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }], liablePersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }],
managedPersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }], managedPersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }],
safetyPersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }], safetyPersonPhone: [{ required: false, trigger: 'blur', validator: validatePhone }],
runState: [{ required: true, message: '请选择' }] runState: [{ required: true, message: '请选择' }],
enterpriseId: [{ required: true, message: '请选择' }],
}, },
editState: 0, // (刚打开窗口时)记录了上次窗口作用;(保存编辑时)记录了当前窗口作用; 0无 1新增 2修改 3查看 editState: 0, // (刚打开窗口时)记录了上次窗口作用;(保存编辑时)记录了当前窗口作用; 0无 1新增 2修改 3查看
addingData: {}, // 上次正在新增时的内容,下次打开dialog1窗口时记录下来 addingData: {}, // 上次正在新增时的内容,下次打开dialog1窗口时记录下来
......
<template> <template>
<div v-show="show" class="login" :style="'background-image:url('+ Background +');'"> <div
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-position="left" label-width="0px" class="login-form"> v-show="show"
<h2 class="title"> class="login"
中和地信应急平台 :style="'background-image:url(' + Background + ');'"
</h2> >
<h4 class="title"> <!-- <div class="top">
{{ userStyle }}账号登录 <div class="bd top_main">
</h4> <div class="tempWrap" style="overflow:hidden; position:relative; width:1280px"><ul style="width: 3840px; position: relative; overflow: hidden; padding: 0px; margin: 0px; left: -1807px;"><li class="clone" style="float: left; width: 1280px;">欢迎您访问中和地信有限公司官网 </li><li style="float: left; width: 1280px;">欢迎您访问中和地信有限公司官网 </li><li class="clone" style="float: left; width: 1280px;">欢迎您访问中和地信有限公司官网 </li></ul></div>
</div>
</div> -->
<div class="topTitle">
<div class="floating-text">中和地信有限公司欢迎您!</div>
</div>
<el-form
ref="loginForm"
:model="loginForm"
:rules="loginRules"
label-position="left"
label-width="0px"
class="login-form"
>
<h2 class="title">中和地信企业管理平台</h2>
<h4 class="title">{{ userStyle }}账号登录</h4>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号"> <el-input
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> v-model="loginForm.username"
type="text"
auto-complete="off"
placeholder="账号"
>
<svg-icon
slot="prefix"
icon-class="user"
class="el-input__icon input-icon"
/>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="密码" @keyup.enter.native="handleLogin"> <el-input
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> v-model="loginForm.password"
type="password"
auto-complete="off"
placeholder="密码"
@keyup.enter.native="handleLogin"
>
<svg-icon
slot="prefix"
icon-class="password"
class="el-input__icon input-icon"
/>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="code"> <el-form-item prop="code">
<el-input v-model="loginForm.code" auto-complete="off" placeholder="验证码" style="width: 63%" @keyup.enter.native="handleLogin"> <el-input
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> v-model="loginForm.code"
auto-complete="off"
placeholder="验证码"
style="width: 63%"
@keyup.enter.native="handleLogin"
>
<svg-icon
slot="prefix"
icon-class="validCode"
class="el-input__icon input-icon"
/>
</el-input> </el-input>
<div class="login-code"> <div class="login-code">
<img :src="codeUrl" @click="getCode"> <img :src="codeUrl" @click="getCode" />
</div> </div>
</el-form-item> </el-form-item>
<el-checkbox v-model="loginForm.rememberMe" style="margin:0 0 25px 0;"> <el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0">
记住我 记住我
</el-checkbox> </el-checkbox>
<el-form-item style="width:100%;"> <el-form-item style="width: 100%">
<el-button :loading="loading" size="medium" type="primary" style="width:100%;" @click.native.prevent="handleLogin"> <el-button
:loading="loading"
size="medium"
type="primary"
style="width: 100%"
@click.native.prevent="handleLogin"
>
<span v-if="!loading">登 录</span> <span v-if="!loading">登 录</span>
<span v-else>登 录 中...</span> <span v-else>登 录 中...</span>
</el-button> </el-button>
...@@ -43,193 +93,327 @@ ...@@ -43,193 +93,327 @@
</el-form-item> --> </el-form-item> -->
</el-form> </el-form>
<!-- 底部 --> <!-- 底部 -->
<div v-if="$store.state.settings.showFooter" id="el-login-footer"> <!-- <div v-if="$store.state.settings.showFooter" id="el-login-footer">
<span v-html="$store.state.settings.footerTxt" /> <span v-html="$store.state.settings.footerTxt" />
<span v-if="$store.state.settings.caseNumber"></span> <span v-if="$store.state.settings.caseNumber"></span>
<a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">{{ $store.state.settings.caseNumber }}</a> <a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">{{ $store.state.settings.caseNumber }}</a>
</div> -->
<div class="foots">
<div class="foots_logo">
<img
src="http://zhidcl.com/static/modules/cms/images/foot_logo.png"
alt="logo"
/>
</div>
<div class="foots_con">
<div class="foots_info" style="float: left">
<p>网址: http://zhidcLcomy</p>
<p>地址: 淄博市张店区潘南西路8号院</p>
<p>电话/传真: 0533-3338333</p>
</div>
<div
class="r foots_ewm"
style="
float: right;
display: flex;
justify-content: space-between;
align-items: center;
"
>
<div class="foots_ewm_info">
扫一扫<br /><br />
手机浏览网站
</div>
<div class="foots_ewm_img">
<img
src="http://zhidcl.com/static/modules/cms/images/ewm.jpg"
alt="二维码"
/>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { encrypt } from '@/utils/rsaEncrypt' import { encrypt } from "@/utils/rsaEncrypt";
import Config from '@/settings' import Config from "@/settings";
import { getCodeImg } from '@/api/login' import { getCodeImg } from "@/api/login";
import Cookies from 'js-cookie' import Cookies from "js-cookie";
import qs from 'qs' import qs from "qs";
import Background from '@/assets/images/background.webp' import Background from "@/assets/images/background.png";
import { mapGetters } from 'vuex' import { mapGetters } from "vuex";
export default { export default {
name: 'Login', name: "Login",
data() { data() {
return { return {
show: false, show: false,
userStyle: null, userStyle: null,
Background: Background, Background: Background,
codeUrl: '', codeUrl: "",
cookiePass: '', cookiePass: "",
loginForm: { loginForm: {
username: '', username: "",
password: '', password: "",
rememberMe: false, rememberMe: false,
code: '', code: "",
uuid: '' uuid: "",
}, },
loginRules: { loginRules: {
username: [{ required: true, trigger: 'blur', message: '用户名不能为空' }], username: [
password: [{ required: true, trigger: 'blur', message: '密码不能为空' }], { required: true, trigger: "blur", message: "用户名不能为空" },
code: [{ required: true, trigger: 'change', message: '验证码不能为空' }] ],
password: [
{ required: true, trigger: "blur", message: "密码不能为空" },
],
code: [
{ required: true, trigger: "change", message: "验证码不能为空" },
],
}, },
loading: false, loading: false,
redirect: undefined redirect: undefined,
} };
}, },
computed: { computed: {
...mapGetters([ ...mapGetters(["user"]),
'user'
])
}, },
watch: { watch: {
$route: { $route: {
handler: function(route) { handler: function (route) {
const data = route.query const data = route.query;
if (data && data.redirect) { if (data && data.redirect) {
this.redirect = data.redirect this.redirect = data.redirect;
delete data.redirect delete data.redirect;
if (JSON.stringify(data) !== '{}') { if (JSON.stringify(data) !== "{}") {
this.redirect = this.redirect + '&' + qs.stringify(data, { indices: false }) this.redirect =
this.redirect + "&" + qs.stringify(data, { indices: false });
} }
} }
}, },
immediate: true immediate: true,
} },
}, },
created() { created() {
// 按照不同域名加载不同页面样式(企业、应急局),加载完毕后再显示页面 // 按照不同域名加载不同页面样式(企业、应急局),加载完毕后再显示页面
const host = window.location.host const host = window.location.host;
if (host === 'yingji.longxijiancai.com') { if (host === "yingji.longxijiancai.com") {
this.userStyle = '应急局' this.userStyle = "应急局";
} }
if (host === 'qiye.longxijiancai.com') { if (host === "qiye.longxijiancai.com") {
this.userStyle = '企业' this.userStyle = "企业";
} }
this.show = true this.show = true;
// 获取验证码 // 获取验证码
this.getCode() this.getCode();
// 获取用户名密码等Cookie // 获取用户名密码等Cookie
this.getCookie() this.getCookie();
// token 过期提示 // token 过期提示
this.point() this.point();
}, },
methods: { methods: {
getCode() { getCode() {
getCodeImg().then(res => { getCodeImg().then((res) => {
this.codeUrl = res.img this.codeUrl = res.img;
this.loginForm.uuid = res.uuid this.loginForm.uuid = res.uuid;
}) });
}, },
getCookie() { getCookie() {
const username = Cookies.get('username') const username = Cookies.get("username");
let password = Cookies.get('password') let password = Cookies.get("password");
const rememberMe = Cookies.get('rememberMe') const rememberMe = Cookies.get("rememberMe");
// 保存cookie里面的加密后的密码 // 保存cookie里面的加密后的密码
this.cookiePass = password === undefined ? '' : password this.cookiePass = password === undefined ? "" : password;
password = password === undefined ? this.loginForm.password : password password = password === undefined ? this.loginForm.password : password;
this.loginForm = { this.loginForm = {
username: username === undefined ? this.loginForm.username : username, username: username === undefined ? this.loginForm.username : username,
password: password, password: password,
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
code: '' code: "",
} };
}, },
handleLogin() { handleLogin() {
this.$refs.loginForm.validate(valid => { this.$refs.loginForm.validate((valid) => {
const user = { const user = {
username: this.loginForm.username, username: this.loginForm.username,
password: this.loginForm.password, password: this.loginForm.password,
rememberMe: this.loginForm.rememberMe, rememberMe: this.loginForm.rememberMe,
code: this.loginForm.code, code: this.loginForm.code,
uuid: this.loginForm.uuid uuid: this.loginForm.uuid,
} };
if (user.password !== this.cookiePass) { if (user.password !== this.cookiePass) {
user.password = encrypt(user.password) user.password = encrypt(user.password);
} }
if (valid) { if (valid) {
this.loading = true this.loading = true;
if (user.rememberMe) { if (user.rememberMe) {
Cookies.set('username', user.username, { expires: Config.passCookieExpires }) Cookies.set("username", user.username, {
Cookies.set('password', user.password, { expires: Config.passCookieExpires }) expires: Config.passCookieExpires,
Cookies.set('rememberMe', user.rememberMe, { expires: Config.passCookieExpires }) });
Cookies.set("password", user.password, {
expires: Config.passCookieExpires,
});
Cookies.set("rememberMe", user.rememberMe, {
expires: Config.passCookieExpires,
});
} else { } else {
Cookies.remove('username') Cookies.remove("username");
Cookies.remove('password') Cookies.remove("password");
Cookies.remove('rememberMe') Cookies.remove("rememberMe");
} }
this.$store.dispatch('Login', user).then(() => { this.$store
this.loading = false .dispatch("Login", user)
.then(() => {
this.loading = false;
if (this.userStyle) { if (this.userStyle) {
if (this.userStyle === '应急局' && this.user.enterpriseId !== 0) { if (
this.$message.error('您是企业用户,请使用企业端登录') this.userStyle === "应急局" &&
this.user.enterpriseId !== 0
) {
this.$message.error("您是企业用户,请使用企业端登录");
setTimeout(() => { setTimeout(() => {
this.$store.dispatch('LogOut').then(() => { this.$store.dispatch("LogOut").then(() => {
location.reload() location.reload();
}) });
}, 1000) }, 1000);
return return;
} }
if (this.userStyle === '企业' && this.user.enterpriseId === 0) { if (this.userStyle === "企业" && this.user.enterpriseId === 0) {
this.$message.error('您是应急局用户,请使用应急局端登录') this.$message.error("您是应急局用户,请使用应急局端登录");
setTimeout(() => { setTimeout(() => {
this.$store.dispatch('LogOut').then(() => { this.$store.dispatch("LogOut").then(() => {
location.reload() location.reload();
}) });
}, 1000) }, 1000);
return return;
} }
} }
// this.$router.push({ path: /* 记住上次退出时的页面 */ /* this.redirect || */'/home4Login' }) // this.$router.push({ path: /* 记住上次退出时的页面 */ /* this.redirect || */'/home4Login' })
this.$router.push({ path: 'login4Index' }) this.$router.push({ path: "login4Index" });
}).catch(() => {
this.loading = false
this.getCode()
}) })
.catch(() => {
this.loading = false;
this.getCode();
});
} else { } else {
console.log('error submit!!') console.log("error submit!!");
return false return false;
} }
}) });
}, },
point() { point() {
const point = Cookies.get('point') !== undefined const point = Cookies.get("point") !== undefined;
if (point) { if (point) {
this.$notify({ this.$notify({
title: '提示', title: "提示",
message: '当前登录状态已过期,请重新登录!', message: "当前登录状态已过期,请重新登录!",
type: 'warning', type: "warning",
duration: 5000 duration: 5000,
}) });
Cookies.remove('point') Cookies.remove("point");
}
},
},
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.foots {
position: absolute;
bottom: 0;
width: 100%;
padding: 0.8rem 0 0.2rem 0;
background: rgba(4,38,75, 0.9);
.foots_logo {
width: 1140px;
padding-bottom: 0.2rem;
margin: 0 auto;
font-size: 0;
// border-bottom: 1px solid #4a637e;
img {
height: 48px;
}
}
.foots_con {
width: 1140px;
margin: 2px auto 15px;
overflow: hidden;
.foots_info {
font-size: 14px;
line-height: 18px;
color: #adb2ba;
letter-spacing: 1px;
}
.foots_ewm {
font-size: 16px;
line-height: 16px;
color: #c7cacf;
padding-top: 0.3rem;
letter-spacing: 1px;
.foots_ewm_info {
text-align: right;
padding-right: 18px;
}
.foots_ewm_img img {
width: 101px;
} }
} }
} }
} }
</script>
<style rel="stylesheet/scss" lang="scss"> @keyframes floatShadow {
.login { 0% {
transform: translateX(1300px);
display: block;
}
100% {
transform: translateX(-200px);
display: none;
}
}
.floating-text {
font-size: 14px;
color: #fff;
animation: floatShadow;
animation-name: floatShadow;
animation-duration: 20s;
animation-iteration-count: infinite;
animation-timing-function: linear;
position: absolute;
top: 0px;
}
.topTitle {
position: absolute;
// display: flex;
// align-items: center;
top: 0;
background: rgba(110,148,178,0.8);
color: #fff;
height: 30px;
width: 100%;
line-height: 30px;
text-align: center;
}
.login {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 100%; height: 100%;
background-size: cover; background-size: cover;
} }
.title { .title {
margin: 0 auto 30px auto; margin: 0 auto 30px auto;
text-align: center; text-align: center;
color: #707070; color: #707070;
} }
.login-form { .login-form {
border-radius: 6px; border-radius: 6px;
background: #ffffff; background: #ffffff;
width: 500px; /* 385px */ width: 500px; /* 385px */
...@@ -240,23 +424,25 @@ export default { ...@@ -240,23 +424,25 @@ export default {
height: 38px; height: 38px;
} }
} }
.input-icon{ .input-icon {
height: 39px;width: 14px;margin-left: 2px; height: 39px;
width: 14px;
margin-left: 2px;
} }
} }
.login-tip { .login-tip {
font-size: 13px; font-size: 13px;
text-align: center; text-align: center;
color: #bfbfbf; color: #bfbfbf;
} }
.login-code { .login-code {
width: 33%; width: 33%;
display: inline-block; display: inline-block;
height: 38px; height: 38px;
float: right; float: right;
img{ img {
cursor: pointer; cursor: pointer;
vertical-align:middle vertical-align: middle;
}
} }
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment