pull/18/head
xuhaoyun 1 year ago
parent fdaae172a1
commit e9d761af0d

@ -63,6 +63,15 @@ export function tbSafeCompanyFlowCount(params) {
params params
}) })
} }
//访客
export function tbSafeCompanyVisit(params) {
return request({
url: '/safety/enterpriseArchives/tbSafeCompanyVisit',
method: 'get',
params
})
}
//流动人员 //流动人员
export function tbSafeCompanyFlow(params) { export function tbSafeCompanyFlow(params) {
return request({ return request({

@ -4,8 +4,8 @@ import vm from "../main";
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const request = axios.create({ const request = axios.create({
//baseURL: 'http://172.18.113.50:8080/zhapi', baseURL: 'http://172.18.113.50:8080/zhapi',
baseURL: `http://${window.location.host}/zhapi`, //baseURL: `http://${window.location.host}/zhapi`,
timeout: 50000, timeout: 50000,
headers: { 'content-type': 'application/json' }, headers: { 'content-type': 'application/json' },
}) })

@ -0,0 +1,386 @@
<template>
<div class="mainBox scroll-target">
<div class="topZS"></div>
<div class="title">
企业访客<span>{{ total }}</span>
</div>
<el-form :model="formInline" class="search">
<el-form-item label="时间:" class="formItem" style="width:500px">
<el-date-picker v-model="chooseTime" type="datetimerange" range-separator="" start-placeholder=""
end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" @change="GetchangeTime"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
<el-form-item label="人员姓名:" class="formItem">
<el-input v-model.trim="formInline.flowName" class="formIpt"></el-input>
</el-form-item>
<el-button type="primary" @click="getList()"></el-button>
</el-form>
<div class="monitorBox">
<el-table :cell-style="{ background: 'revert' }" :data="tableData" class="table"
style="width: calc(100% - 40px); margin:0 20px;" :row-style="tableRowStyle"
:header-row-style="tableHeaderColor" :header-cell-style="tableHeaderCellColor">
<el-table-column type="index" width="50" label="序号">
</el-table-column>
<el-table-column show-overflow-tooltip label="姓名">
<template slot-scope="scope">
<div class="visitName">{{ scope.row.visitName }}</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="sexCn" label="性别" width="160">
</el-table-column>
<el-table-column show-overflow-tooltip label="身份证号">
<template slot-scope="scope">
<div class="identityId">{{ scope.row.identityId }}</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="visitTypeCn" label="访客类别">
</el-table-column>
<el-table-column show-overflow-tooltip prop="visitTime" label="来访时间">
</el-table-column>
<el-table-column show-overflow-tooltip prop="visitContactInfo" label="联系方式">
</el-table-column>
<el-table-column show-overflow-tooltip label="对接人" prop="contactPerson">
</el-table-column>
</el-table>
</div>
<div class="block">
<el-pagination style="float:right;margin:5px;" class="msg-pagination-container" :background="true"
@size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum"
:page-sizes="[5]" layout="total, sizes, prev, pager, next, jumper" :total="total">
</el-pagination>
</div>
<div class="bottomZS"></div>
</div>
</template>
<script>
import { tbSafeCompanyVisit } from '@/api/archives'
export default {
props: ['companyID'],
data() {
return {
formInline: {},
pageSize: 5,
pageNum: 1,
total: 0,
tableData: [],
wpCount: {},
goodsType: null,
chooseTime: '',
}
},
created() {
this.formInline.startTime = this.timeDefault + ' 00:00:00';
this.formInline.endTime = this.timeDefault + ' 23:59:59';
this.getList()
},
mounted() {
this.$nextTick(() => {
this.chooseTime = [this.timeDefault + ' 00:00:00', this.timeDefault + ' 23:59:59']
})
},
computed: {
timeDefault() {
const date = new Date();
let s1 = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + (date.getDate());
return s1;
}
},
methods: {
getList() {
tbSafeCompanyVisit({ pageSize: this.pageSize, pageNum: this.pageNum, ...this.formInline, companyId: this.companyID }).then(res => {
this.tableData = res.data
this.total = res.total
})
},
showDia() {
this.diaVisible = true
},
tableRowStyle({ rowIndex }) {
if ((rowIndex + 1) % 2 == 1) {
return { 'background': 'rgba(0,0,0,0)', 'color': '#fff', 'border': '0' }
} else {
return { 'background': 'rgba(61, 85, 102, 0.16)', 'border': '0', 'color': '#fff' }
}
},
tableHeaderColor() {
return { 'background': 'linear-gradient( rgba(38, 88, 76, 0.6) 100%, rgba(55, 131, 128, 0.6) 100%, rgba(34, 74, 53, 0.46) 46%)' }
// return { 'background': 'url("~@/assets/archives/9910.png") no-repeat;', 'background-size': '100% 100%;', 'color': '#fff' }
},
tableHeaderCellColor() {
return { 'background': 'rgba(0,0,0,0)', 'border': '0', 'color': '#fff' }
},
handleSizeChange(val) {
this.pageNum = 1;
this.pageSize = val;
this.getList()
},
handleCurrentChange(val) {
this.pageNum = val;
this.getList()
},
GetchangeTime() {
console.log(this.chooseTime);
if (this.chooseTime != null && this.chooseTime.length > 1) {
this.formInline.startTime = this.chooseTime[0]
this.formInline.endTime = this.chooseTime[1]
} else {
this.formInline.startTime = null
this.formInline.endTime = null
}
},
},
}
</script>
<style lang="less" scoped>
.mainBox {
width: 100%;
height: 450px;
background: url('~@/assets/companyFile/背景22136.png') no-repeat;
background-size: 100% 100%;
padding: 70px 20px 60px;
box-sizing: border-box;
display: flex;
position: relative;
margin-top: 20px;
.monitorBox {
width: 100%;
height: 100%;
flex-wrap: wrap;
}
/deep/.el-input__inner {
// background: url('~@/assets/companyFile/2121.png') no-repeat;
background: url('~@/assets/companyFile/矩形备份 18.png') no-repeat;
background-size: 100% 100%;
border: 1px solid rgba(40, 132, 126, 1);
color: rgba(234, 246, 255, 0.7);
;
.el-range-separator {
color: #ccc;
}
.el-range-input {
background: rgba(0, 0, 0, 0);
color: #ccc;
}
}
/deep/.el-tabs--border-card {
background: rgba(0, 0, 0, 0);
border: 0;
height: 50px;
width: calc(100% - 40px);
margin: 0 20px;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .12), 0 0 6px 0 rgba(0, 0, 0, .04);
.el-tabs__header {
display: inline-block;
width: auto;
background: linear-gradient(180deg, rgba(234, 241, 248, 0.1) 0%, rgba(208, 222, 238, 0.1) 100%);
opacity: 0.7;
border: 1px solid #5B748C;
.el-tabs__nav {
display: inline-block;
width: auto;
display: flex;
}
.el-tabs__item {
width: 150px;
border: 0;
color: #EAF6FF;
padding: 5px;
box-sizing: border-box;
display: flex;
align-items: center;
.paneInner {
width: 140px;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
}
.el-tabs__item:not(:last-child)::after {
content: '';
width: 1px;
height: 20px;
background: #EAF6FF;
display: inline-block;
vertical-align: middle;
margin-left: 5px;
}
.el-tabs__item.is-active {
background: rgba(0, 0, 0, 0);
border: 0;
color: #4BFFAD;
padding: 5px;
box-sizing: border-box;
.paneInner {
background: rgba(129, 255, 204, 0.26);
}
}
}
}
/deep/.el-table {
background: rgba(0, 0, 0, 0);
td.el-table__cell {
border: 0;
box-sizing: border-box;
padding: 5px 0;
height: 56px;
}
.ygzp {
width: 40px;
height: 60px;
margin-top: 5px;
}
.identityId {
color: #30C4FF;
letter-spacing: 1px;
cursor: pointer;
}
.xiangqing {
background: rgba(0, 0, 0, 0);
border: 0;
color: rgba(48, 196, 255, 0.7);
cursor: pointer;
}
.alarmType {
width: 72px;
height: 32px;
font-size: 14px;
color: rgba(255, 255, 255, 0.9);
letter-spacing: 1px;
font-weight: 400;
.red {
width: 100%;
height: 100%;
background: rgba(152, 7, 7, 0.21);
border: 1px solid rgba(214, 38, 38, 1);
display: flex;
justify-content: center;
align-items: center;
}
.yellow {
width: 100%;
height: 100%;
background: rgba(152, 95, 7, 0.21);
border: 1px solid rgba(255, 169, 38, 1);
display: flex;
justify-content: center;
align-items: center;
}
}
}
.title {
position: absolute;
top: 14px;
left: 20px;
width: 162px;
height: 36px;
line-height: 36;
font-size: 16px;
color: #EBFFF4;
letter-spacing: 2px;
line-height: 36px;
text-shadow: 0 0 9px rgba(21, 255, 195, 0.60);
font-weight: 400;
span {
color: #FF9191;
}
}
.picForm {
/deep/ .el-dialog {
background-color: rgba(0, 0, 0, 0);
background: url('~@/assets/companyFile/背景091.png') no-repeat;
background-size: 100% 100%;
width: 1041px;
height: 420px;
position: relative;
.el-dialog__title {
font-size: 16px;
color: #EBFFF4;
letter-spacing: 2px;
text-shadow: 0 0 9px rgba(21, 255, 195, 0.77);
font-weight: 400;
}
.el-dialog__body {
box-sizing: border-box;
height: 360px;
.scopeQuantity {
letter-spacing: 2px;
}
}
}
}
/deep/.el-form-item {
display: flex;
margin-left: 20px;
.el-form-item__label {
color: #EAF6FF;
letter-spacing: 1px;
text-align: center;
font-weight: 400;
}
}
/deep/.el-button--primary {
margin-top: 5px;
margin-left: 20px;
width: 60px;
height: 30px;
line-height: 30px;
padding: 0;
text-align: center;
background: rgba(0, 0, 0, 0);
border: 0;
background: url('~@/assets/companyFile/2121.png') no-repeat;
background-size: 100% 100%;
font-size: 14px;
color: #F8FBFF;
letter-spacing: 0.89px;
font-weight: 500;
}
}
</style>

@ -184,7 +184,8 @@
<kakou :companyID="companyID" ref="child2-2"></kakou> <kakou :companyID="companyID" ref="child2-2"></kakou>
<yujing :companyID="companyID" ref="child2-3"></yujing> <yujing :companyID="companyID" ref="child2-3"></yujing>
<qiyeyuangong :companyID="companyID" ref="child3-1"></qiyeyuangong> <qiyeyuangong :companyID="companyID" ref="child3-1"></qiyeyuangong>
<!-- <liudongrenyuan :companyID="companyID" ref="child3-2"></liudongrenyuan> --> <liudongrenyuan :companyID="companyID" ref="child3-2"></liudongrenyuan>
<fangke :companyID="companyID" ref="child3-3"></fangke>
<car :companyID="companyID" ref="child4"></car> <car :companyID="companyID" ref="child4"></car>
<wupin :companyID="companyID" ref="child5"></wupin> <wupin :companyID="companyID" ref="child5"></wupin>
<anjian :companyID="companyID" ref="child6"></anjian> <anjian :companyID="companyID" ref="child6"></anjian>
@ -196,6 +197,7 @@
<script> <script>
//import download from '@/api/download' //import download from '@/api/download'
import { safeIndex } from '@/api/archives' import { safeIndex } from '@/api/archives'
import { searchList } from '@/api/enterpriseArchives'
import monitor from './monitor.vue' import monitor from './monitor.vue'
import kakou from './kakou.vue' import kakou from './kakou.vue'
import yujing from './yujing.vue' import yujing from './yujing.vue'
@ -203,7 +205,8 @@ import car from './car.vue'
import wupin from './wupin.vue' import wupin from './wupin.vue'
import anjian from './anjian.vue' import anjian from './anjian.vue'
import qiyeyuangong from './qiyeyuangong.vue' import qiyeyuangong from './qiyeyuangong.vue'
// import liudongrenyuan from './liudongrenyuan.vue' import liudongrenyuan from './liudongrenyuan.vue'
import fangke from './fangke.vue'
export default { export default {
components: { components: {
monitor, monitor,
@ -213,7 +216,8 @@ export default {
wupin, wupin,
anjian, anjian,
qiyeyuangong, qiyeyuangong,
//liudongrenyuan liudongrenyuan,
fangke
}, },
data() { data() {
return { return {
@ -230,10 +234,7 @@ export default {
} }
}, },
created() { created() {
this.companyData = this.$route.query this.searchCompany()
console.log(this.companyData, '路由传递参数');
this.companyID = this.companyData.id
this.getsafeIndex()
}, },
methods: { methods: {
getsafeIndex() { getsafeIndex() {
@ -313,6 +314,18 @@ export default {
child.$el.scrollIntoView() child.$el.scrollIntoView()
} }
}, },
searchCompany() {
const id = sessionStorage.getItem('companyID')
const companyName = sessionStorage.getItem('companyName')
console.log(id, 'id');
searchList({ pageNum: 1, pageSize: 1, id, searchValue: companyName }).then(res => {
this.companyData = res.data[0]
this.companyID = this.companyData.id
console.log(this.companyData, '接口获取参数');
this.getsafeIndex()
})
},
goBack() { goBack() {
this.$router.go(-1) this.$router.go(-1)
} }

@ -137,7 +137,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.mainBox { .mainBox {
width: 100%; width: 100%;
height: 720px; height: 620px;
background: url('~@/assets/companyFile/背景22136.png') no-repeat; background: url('~@/assets/companyFile/背景22136.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
padding: 70px 20px 60px; padding: 70px 20px 60px;
@ -149,8 +149,6 @@ export default {
.monitorBox { .monitorBox {
width: 100%; width: 100%;
height: 100%; height: 100%;
flex-wrap: wrap; flex-wrap: wrap;
} }

@ -8,7 +8,7 @@
<el-form-item label="设备名称:" class="formItem"> <el-form-item label="设备名称:" class="formItem">
<el-input v-model.trim="formInline.deviceName" class="formIpt"></el-input> <el-input v-model.trim="formInline.deviceName" class="formIpt"></el-input>
</el-form-item> </el-form-item>
<el-button type="primary">搜索</el-button> <el-button type="primary" @click="getList()"></el-button>
</el-form> </el-form>
<div class="monitorBox"> <div class="monitorBox">

@ -2,7 +2,7 @@
<div class="mainBox scroll-target"> <div class="mainBox scroll-target">
<div class="topZS"></div> <div class="topZS"></div>
<div class="title"> <div class="title">
实时预警<span>{{ total }}</span> 实时预警<span>{{ total }}</span>
</div> </div>
<div class="monitorBox"> <div class="monitorBox">
<el-table :cell-style="{ background: 'revert' }" :data="tableData" class="table" <el-table :cell-style="{ background: 'revert' }" :data="tableData" class="table"
@ -111,7 +111,6 @@ export default {
}, },
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.mainBox { .mainBox {
width: 100%; width: 100%;
@ -129,8 +128,6 @@ export default {
height: 100%; height: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
/deep/.el-input { /deep/.el-input {
@ -140,11 +137,9 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
border: 1px solid rgba(40, 132, 126, 1); border: 1px solid rgba(40, 132, 126, 1);
color: rgba(234, 246, 255, 0.7); color: rgba(234, 246, 255, 0.7);
;
} }
} }
/deep/.el-table { /deep/.el-table {
background: rgba(0, 0, 0, 0); background: rgba(0, 0, 0, 0);
@ -170,7 +165,6 @@ export default {
.red { .red {
width: 100%; width: 100%;
height: 100%; height: 100%;
background: rgba(152, 7, 7, 0.21); background: rgba(152, 7, 7, 0.21);
border: 1px solid rgba(214, 38, 38, 1); border: 1px solid rgba(214, 38, 38, 1);
display: flex; display: flex;
@ -181,7 +175,6 @@ export default {
.yellow { .yellow {
width: 100%; width: 100%;
height: 100%; height: 100%;
background: rgba(152, 95, 7, 0.21); background: rgba(152, 95, 7, 0.21);
border: 1px solid rgba(255, 169, 38, 1); border: 1px solid rgba(255, 169, 38, 1);
display: flex; display: flex;

@ -53,6 +53,7 @@
<script> <script>
import { historyList, searchList } from '@/api/enterpriseArchives' import { historyList, searchList } from '@/api/enterpriseArchives'
export default { export default {
props: { props: {
searchVal: String, searchVal: String,
@ -92,6 +93,7 @@ export default {
this.regex = new RegExp(this.modifiedText, "i") this.regex = new RegExp(this.modifiedText, "i")
this.resultList1 = this.resultList1.map(item => { this.resultList1 = this.resultList1.map(item => {
if (item.companyName) { if (item.companyName) {
item.companyName1 = item.companyName
item.companyName = item.companyName.replace(this.regex, '<span class="highlight">$&</span>') item.companyName = item.companyName.replace(this.regex, '<span class="highlight">$&</span>')
} }
if (item.resultList.length) { if (item.resultList.length) {
@ -115,10 +117,11 @@ export default {
this.showResult(this.modifiedText) this.showResult(this.modifiedText)
}, },
goArchives(val) { goArchives(val) {
console.log(val, 'val'); sessionStorage.setItem('companyID', val.id)
sessionStorage.setItem('companyName', val.companyName1)
this.$router.push({ this.$router.push({
name: 'archives', name: 'archives',
query: val
}) })
}, },
showResult(val) { showResult(val) {

Loading…
Cancel
Save