Merge pull request 'master' (#18) from master into lukeyan

Reviewed-on: #18
pull/19/head^2
lukeyan 1 year ago
commit b741f91e09

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

@ -4,8 +4,8 @@ import vm from "../main";
import { getToken } from '@/utils/auth'
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const request = axios.create({
//baseURL: 'http://172.18.113.50:8080/zhapi',
baseURL: `http://${window.location.host}/zhapi`,
baseURL: 'http://172.18.113.50:8080/zhapi',
//baseURL: `http://${window.location.host}/zhapi`,
timeout: 50000,
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>
<yujing :companyID="companyID" ref="child2-3"></yujing>
<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>
<wupin :companyID="companyID" ref="child5"></wupin>
<anjian :companyID="companyID" ref="child6"></anjian>
@ -196,6 +197,7 @@
<script>
//import download from '@/api/download'
import { safeIndex } from '@/api/archives'
import { searchList } from '@/api/enterpriseArchives'
import monitor from './monitor.vue'
import kakou from './kakou.vue'
import yujing from './yujing.vue'
@ -204,6 +206,7 @@ import wupin from './wupin.vue'
import anjian from './anjian.vue'
import qiyeyuangong from './qiyeyuangong.vue'
// import liudongrenyuan from './liudongrenyuan.vue'
// import fangke from './fangke.vue'
export default {
components: {
monitor,
@ -213,7 +216,8 @@ export default {
wupin,
anjian,
qiyeyuangong,
//liudongrenyuan
// liudongrenyuan,
// fangke
},
data() {
return {
@ -230,10 +234,7 @@ export default {
}
},
created() {
this.companyData = this.$route.query
console.log(this.companyData, '路由传递参数');
this.companyID = this.companyData.id
this.getsafeIndex()
this.searchCompany()
},
methods: {
getsafeIndex() {
@ -313,6 +314,17 @@ export default {
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() {
this.$router.go(-1)
}

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

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

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

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

@ -13,11 +13,7 @@
<!-- 顶部搜索区域 -->
<div class="top">
<div class="top_search">
<el-input
class="top_search_input"
placeholder="输入企业名称搜索"
v-model="searchCompany"
>
<el-input class="top_search_input" placeholder="输入企业名称搜索" v-model="searchCompany">
</el-input>
<div class="top_search_button">
<i class="el-icon-search" @click="getData_icon()"></i>
@ -34,27 +30,21 @@
<img :src="item.picUrl" alt="" @error="setDefaultImage" />
<span class="company_name"> {{ item.companyName }} </span>
<div class="company_label">
<div
:class="{
shewei: val == '剧毒' || val == '易制毒',
zhongdian: val == '消防重点' || val == '所管消防',
zhibao: val == '放射源' || val == '易制爆',
zhian: val == '治安重点' || val == '创安单位',
}"
v-for="(val, index) in item.companyTypes"
:key="index"
>
<div :class="{
shewei: val == '剧毒' || val == '易制毒',
zhongdian: val == '消防重点' || val == '所管消防',
zhibao: val == '放射源' || val == '易制爆',
zhian: val == '治安重点' || val == '创安单位',
}" v-for="(val, index) in item.companyTypes" :key="index">
{{ val }}
</div>
</div>
<span class="company_unit"
><i class="el-icon-location"></i>
{{ item.companyAddress }}</span
>
<span class="company_unit"><i class="el-icon-location"></i>
{{ item.companyAddress }}</span>
<!-- 遮罩层 -->
<div class="image_mask">
<div class="btn">
<button class="check" @click="jump()"></button>
<button class="check" @click="jump(item)"></button>
<button class="change" @click="openDialog(3, item)">
编辑
</button>
@ -68,15 +58,9 @@
</div>
<!-- 分页区域 -->
<div class="footer">
<el-pagination
:background="true"
@current-change="handleCurrentChange"
:page-sizes="[6]"
:page-size="pageSize"
:current-page="pageNum"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
<el-pagination :background="true" @current-change="handleCurrentChange" :page-sizes="[6]"
:page-size="pageSize" :current-page="pageNum" layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</div>
@ -165,8 +149,12 @@ export default {
back() {
this.getData();
},
jump() {
jump(val) {
console.log(val, 'Val');
sessionStorage.setItem('companyID', val.id)
sessionStorage.setItem('companyName', val.companyName)
this.$router.push("/home/archives");
},
setDefaultImage(e) {
//
@ -178,11 +166,14 @@ export default {
<style lang="less" scoped>
/* card统一样式 */
.el-card.box-card.is-always-shadow {
height: calc(100vh - 116px); /* 控制card布局高度,用于适配 */
height: calc(100vh - 116px);
/* 控制card布局高度,用于适配 */
position: relative;
/* card统一样式 */
/deep/.el-card__header {
border-bottom: 1px solid #a1a1a1 !important;
.clearfix {
span {
font-size: 17px;
@ -193,38 +184,47 @@ export default {
}
}
}
.main {
height: 100%;
.el-card.box-card.is-always-shadow {
background: url("~@/assets/companyFile/22136.png") no-repeat !important;
background-size: 100% 100% !important;
border: 0px;
}
.card_body {
height: 90% !important;
.top {
width: 100%;
display: flex;
justify-content: space-between;
.top_search {
margin-left: 2vw;
display: flex;
width: 40%;
height: 40px;
.top_search_input ::v-deep {
/* 查询框 */
width: 60%;
.el-input__inner {
border-radius: 4px 0px 0px 4px;
background: #3c4b4a;
color: #fff;
}
/* 查询框点击颜色变化 */
.el-input__inner:focus,
.el-input__inner:hover {
border-color: #1b3736;
}
}
.top_search_button {
width: 7%;
height: 100%;
@ -233,19 +233,23 @@ export default {
text-align: center;
font-size: 28px;
cursor: pointer;
.el-icon-search {
color: #fff;
padding: 11% 0;
}
}
.top_search_button:focus,
.top_search_button:hover {
/* 放大镜点击特效 */
background: #126a58;
}
}
.top_add_btn {
width: 10%;
.el-button {
width: 82%;
border: 1px solid #4a6072;
@ -254,6 +258,7 @@ export default {
background: url("~@/assets/companyFile/btn05.png") no-repeat !important;
background-size: 100% 100% !important;
}
.el-button:focus,
.el-button:hover {
text-shadow: 0 0 9px #34e1b3;
@ -261,17 +266,20 @@ export default {
}
}
}
/* 公司图片展示区域 */
.center {
width: 100%;
height: 65vh;
margin-top: 22px;
ul {
display: flex;
justify-content: flex-start;
height: 100%;
flex-wrap: wrap;
padding-left: 0px;
li {
margin-left: 2.5%;
position: relative;
@ -280,12 +288,14 @@ export default {
height: 31vh;
background: #1b3736;
border: 1px solid #fff;
img {
margin-left: 0.3vw;
margin-top: 0.5vh;
width: 25vw;
height: 30vh;
}
/* 公司图片相关信息区域 */
.company_name {
position: absolute;
@ -296,12 +306,14 @@ export default {
bottom: 70px;
font-size: 18px;
}
.company_label {
display: flex;
position: absolute;
z-index: 2;
left: 10px;
bottom: 35px;
.shewei {
height: 26px;
line-height: 26px;
@ -320,8 +332,7 @@ export default {
height: 26px;
line-height: 26px;
width: auto;
background: url("~@/assets/companyFile/编组 11222221.png")
no-repeat;
background: url("~@/assets/companyFile/编组 11222221.png") no-repeat;
padding: 0 5px;
font-size: 14px;
color: #e3deff;
@ -335,8 +346,7 @@ export default {
height: 26px;
line-height: 26px;
width: auto;
background: url("~@/assets/companyFile/编组 11991备份 10.png")
no-repeat;
background: url("~@/assets/companyFile/编组 11991备份 10.png") no-repeat;
padding: 0 5px;
font-size: 14px;
color: #e3deff;
@ -350,8 +360,7 @@ export default {
height: 26px;
line-height: 26px;
width: auto;
background: url("~@/assets/companyFile/编组 11991备份 21.png")
no-repeat;
background: url("~@/assets/companyFile/编组 11991备份 21.png") no-repeat;
padding: 0 5px;
font-size: 14px;
color: #e3deff;
@ -361,6 +370,7 @@ export default {
margin-right: 10px;
}
}
.company_unit {
position: absolute;
z-index: 2;
@ -368,6 +378,7 @@ export default {
left: 10px;
bottom: 10px;
}
/* 图片鼠标经过 */
.image_mask {
z-index: 3;
@ -378,10 +389,12 @@ export default {
background: rgba(73, 72, 72, 0.6);
color: #ffffff;
opacity: 0;
/* 图片鼠标经过按钮 */
.btn {
margin-left: 25%;
margin-top: 25%;
button {
height: 60px;
padding: 20px;
@ -392,28 +405,34 @@ export default {
border-radius: 0px;
cursor: pointer;
}
button.check {
background: url("~@/assets/companyFile/btn05.png") no-repeat !important;
background-size: 100% 100% !important;
}
/* 点击高亮 */
button.check:hover,
button.check:focus {
filter: brightness(150%);
}
button.change {
background: url("~@/assets/companyFile/btn06.png") no-repeat !important;
background-size: 100% 100% !important;
}
/* 点击高亮 */
button.change:hover,
button.change:focus {
filter: brightness(150%);
}
button.clear {
background: url("~@/assets/companyFile/btn07.png") no-repeat !important;
background-size: 100% 100% !important;
}
/* 点击高亮 */
button.clear:hover,
button.clear:focus {
@ -422,50 +441,62 @@ export default {
}
}
}
li:hover .image_mask {
opacity: 1;
cursor: default;
}
li:hover .shewei {
opacity: 0;
}
li:hover .zhongdian {
opacity: 0;
}
li:hover .zhibao {
opacity: 0;
}
li:hover .zhian {
opacity: 0;
}
li:hover span {
opacity: 0;
}
}
}
/* 底部分页展示区域 */
.footer {
.el-pagination {
margin-left: 50%;
/deep/.el-pagination__total {
color: #fff;
}
/deep/.el-input__inner {
border-radius: 0px;
background: #3c4b4a;
color: #fff;
}
/deep/.btn-prev {
border-radius: 0px;
background: #3c4b4a;
color: #fff;
}
/deep/ul {
li {
background: #3c4b4a;
color: #fff;
}
}
/deep/.btn-next {
border-radius: 0px;
background: #3c4b4a;

16169
yarn.lock

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save