This commit is contained in:
parent
ccd5595032
commit
fc51e54c32
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div style="text-align: left">
|
<div style="text-align: left">
|
||||||
<div class="table-search">
|
<div class="table-search" v-if="searchItems.length > 0">
|
||||||
<a-form class="ant-advanced-search-form" :form="form" @submit="handleSearch" layout="inline" @change="handleSearchFormChange">
|
<a-form class="ant-advanced-search-form" :form="form" @submit="handleSearch" layout="inline" @change="handleSearchFormChange">
|
||||||
<a-form-item v-for="menuItem in searchItems" :key="menuItem.key" :label="menuItem.label">
|
<a-form-item v-for="menuItem in searchItems" :key="menuItem.key" :label="menuItem.label">
|
||||||
<a-input
|
<a-input
|
||||||
|
|
@ -21,18 +21,19 @@
|
||||||
:placeholder="menuItem.placeholder || ''" v-decorator="[menuItem.key]" v-else-if="menuItem.type === 'dateRange'" format="YYYY-MM-DD" />
|
:placeholder="menuItem.placeholder || ''" v-decorator="[menuItem.key]" v-else-if="menuItem.type === 'dateRange'" format="YYYY-MM-DD" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-button type="primary" html-type="submit">查询</a-button>
|
<a-button type="primary" html-type="submit" v-if="!hideSearch">查询</a-button>
|
||||||
<a-button :style="{ marginLeft: '8px' }" @click="reset">重置</a-button>
|
<a-button :style="{ marginLeft: '8px' }" @click="reset" v-if="!hideSearch">重置</a-button>
|
||||||
|
<slot name="search-button" v-bind:search="form.getFieldsValue()"></slot>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
<a-divider />
|
<a-divider v-if="!hideButton && searchItems.length > 0" />
|
||||||
<div class="table-operations">
|
<div class="table-operations" v-if="!hideButton">
|
||||||
<a-button @click="addRow" type="primary">
|
<a-button @click="addRow" type="primary">
|
||||||
添加
|
添加
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
<a-table :row-key="primaryKey" :columns="realColumns" :data-source="tableDataSource" @change="handleChange" >
|
<a-table v-bind="tableProps" :pagination="page" :row-key="primaryKey" :columns="realColumns" :data-source="tableDataSource" @change="handleChange" >
|
||||||
<span slot="action" slot-scope="text, record">
|
<span slot="action" slot-scope="text, record">
|
||||||
<a-button type="danger" size="small" @click="deleteRow(record)">删除</a-button>
|
<a-button type="danger" size="small" @click="deleteRow(record)">删除</a-button>
|
||||||
<a-divider type="vertical" />
|
<a-divider type="vertical" />
|
||||||
|
|
@ -99,12 +100,29 @@ export default {
|
||||||
selectRow: null,
|
selectRow: null,
|
||||||
page: {
|
page: {
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
pageNo: 1
|
current: 1,
|
||||||
|
total: 0
|
||||||
},
|
},
|
||||||
searchFormModel: {}
|
searchFormModel: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
tableProps: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
},
|
||||||
|
hideSearch: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
hideAction: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
hideButton: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
// 表单内容配置
|
// 表单内容配置
|
||||||
formItems: {
|
formItems: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|
@ -130,6 +148,7 @@ export default {
|
||||||
return this.formItems.filter(item => !!item.isSearch)
|
return this.formItems.filter(item => !!item.isSearch)
|
||||||
},
|
},
|
||||||
realColumns () {
|
realColumns () {
|
||||||
|
if (this.hideAction) return [ ...this.columns ]
|
||||||
return [
|
return [
|
||||||
...this.columns,
|
...this.columns,
|
||||||
{
|
{
|
||||||
|
|
@ -188,12 +207,14 @@ export default {
|
||||||
},
|
},
|
||||||
deleteRow(row) {
|
deleteRow(row) {
|
||||||
const self = this
|
const self = this
|
||||||
|
if (!self.apiConf.deleteApi) return
|
||||||
this.$confirm({
|
this.$confirm({
|
||||||
title: '确认要删除么?',
|
title: '确认要删除么?',
|
||||||
okText: '确认',
|
okText: '确认',
|
||||||
okType: 'danger',
|
okType: 'danger',
|
||||||
cancelText: '再想想',
|
cancelText: '再想想',
|
||||||
onOk() {
|
onOk() {
|
||||||
|
|
||||||
const { api,deleteKey, paramsType, method } = self.apiConf.deleteApi
|
const { api,deleteKey, paramsType, method } = self.apiConf.deleteApi
|
||||||
let params = {}
|
let params = {}
|
||||||
if (paramsType === 'Array') {
|
if (paramsType === 'Array') {
|
||||||
|
|
@ -210,9 +231,9 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
handleChange ({ pageSize, pageNo }) {
|
handleChange ({ pageSize, current }) {
|
||||||
this.page.pageSize = pageSize
|
this.page.pageSize = pageSize
|
||||||
this.page.pageNo = pageNo
|
this.page.current = current
|
||||||
this.handleSearch()
|
this.handleSearch()
|
||||||
},
|
},
|
||||||
reset() {
|
reset() {
|
||||||
|
|
@ -225,11 +246,13 @@ export default {
|
||||||
const { data } = await this[`$${method}`](api, {
|
const { data } = await this[`$${method}`](api, {
|
||||||
...values,
|
...values,
|
||||||
pageSize: this.page.pageSize,
|
pageSize: this.page.pageSize,
|
||||||
current: this.page.pageNo,
|
current: this.page.current,
|
||||||
})
|
})
|
||||||
if (noPage) {
|
if (noPage) {
|
||||||
|
this.page = false
|
||||||
this.tableDataSource = data
|
this.tableDataSource = data
|
||||||
} else {
|
} else {
|
||||||
|
this.page.total = data.total || 0
|
||||||
this.tableDataSource = data.items
|
this.tableDataSource = data.items
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="custom-table">
|
||||||
|
<Curd v-bind="$attrs" v-on="$listeners"></Curd>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import Curd from "./Curd.vue";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "CustomTable",
|
||||||
|
components: {Curd}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
.custom-table {
|
||||||
|
/deep/ .ant-table-thead > tr > th {
|
||||||
|
background: linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
|
color: rgba(255, 255, 255, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-table {
|
||||||
|
background: rgba(255, 255, 255, 0.01);
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
/deep/ .ant-table-tbody > tr > td {
|
||||||
|
background-color: transparent;
|
||||||
|
border-bottom: 1px solid rgba(16, 40, 73, 0.3);
|
||||||
|
border-top: 1px solid rgba(16, 40, 73, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-table-thead > tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td,
|
||||||
|
/deep/ .ant-table-tbody > tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td,
|
||||||
|
/deep/ .ant-table-thead > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td,
|
||||||
|
/deep/ .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {
|
||||||
|
background: rgba(255, 255, 255, 0.01);
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
/deep/ .selected {
|
||||||
|
background: linear-gradient(90deg, rgba(16, 40, 73, 0) 0%, rgba(16, 40, 73, 1) 51.3%, rgba(16, 40, 73, 0) 100%);
|
||||||
|
border-bottom: 1px solid rgba(18, 45, 79, 0.8);
|
||||||
|
border-top: 1px solid rgba(18, 45, 79, 0.8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
|
<a-locale-provider :locale="zh_CN">
|
||||||
<a-layout id="components-layout-demo-fixed-sider">
|
<a-layout id="components-layout-demo-fixed-sider">
|
||||||
<a-layout-sider :trigger="null" v-model="collapsed" collapsible>
|
<a-layout-sider :trigger="null" v-model="collapsed" collapsible>
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
|
|
@ -50,13 +51,18 @@
|
||||||
</a-layout-footer>-->
|
</a-layout-footer>-->
|
||||||
</a-layout>
|
</a-layout>
|
||||||
</a-layout>
|
</a-layout>
|
||||||
|
</a-locale-provider>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import zh_CN from 'ant-design-vue/lib/locale-provider/zh_CN';
|
||||||
|
import 'moment/locale/zh-cn';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "manager",
|
name: "manager",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
zh_CN,
|
||||||
collapsed: false,
|
collapsed: false,
|
||||||
headerHeight: 0,
|
headerHeight: 0,
|
||||||
footerHeight: 0,
|
footerHeight: 0,
|
||||||
|
|
@ -85,6 +91,12 @@ export default {
|
||||||
title: '菜单管理',
|
title: '菜单管理',
|
||||||
icon: 'link',
|
icon: 'link',
|
||||||
key: 'manager-menu'
|
key: 'manager-menu'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
link: '/manager/device',
|
||||||
|
title: '设备管理',
|
||||||
|
icon: 'video-camera',
|
||||||
|
key: 'manager-device'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
selectedKeys: []
|
selectedKeys: []
|
||||||
|
|
@ -136,6 +148,7 @@ export default {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#components-layout-demo-fixed-sider {
|
#components-layout-demo-fixed-sider {
|
||||||
.header-con {
|
.header-con {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<a-card :bordered="false" :bodyStyle="{ padding: '0px 16px' }">
|
||||||
|
<nuxt />
|
||||||
|
</a-card>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "user"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,438 @@
|
||||||
|
<!--峰煤监控系统-->
|
||||||
|
<template>
|
||||||
|
<new-bg>
|
||||||
|
<flex-col>
|
||||||
|
<system-title/>
|
||||||
|
<ModuleContent padding="20px">
|
||||||
|
<flex-col>
|
||||||
|
<web2-title>清洁运输</web2-title>
|
||||||
|
<ModuleContent padding="0 20px 20px">
|
||||||
|
<BFC>
|
||||||
|
<div class="sou-suo-kuang" slot="right">
|
||||||
|
<ModuleContent2 bg padding="20px">
|
||||||
|
<flex-col>
|
||||||
|
<div class="search">
|
||||||
|
<BFC>
|
||||||
|
<span slot="left"> 车牌号:</span>
|
||||||
|
<div slot="center" class="input">
|
||||||
|
<a-input v-model="searchCarNum" placeholder="请输入"/>
|
||||||
|
</div>
|
||||||
|
</BFC>
|
||||||
|
</div>
|
||||||
|
<ModuleContent padding="0">
|
||||||
|
<flex-col>
|
||||||
|
<web3-title>门禁详情</web3-title>
|
||||||
|
<ModuleContent padding="0">
|
||||||
|
<flex-col>
|
||||||
|
<img :src="selectedRecord.imgUrl" alt="" class="car-preview">
|
||||||
|
<butgroup2>
|
||||||
|
<cus-button2 flex>进出场抓拍图</cus-button2>
|
||||||
|
<cus-button2>行驶证-正面</cus-button2>
|
||||||
|
<cus-button2>行驶证-反面</cus-button2>
|
||||||
|
<cus-button2>环保清单</cus-button2>
|
||||||
|
</butgroup2>
|
||||||
|
<ModuleContent padding="20px 27px" class="desc">
|
||||||
|
<cus-desc :data="selectedRecord" :columns="descColumns"></cus-desc>
|
||||||
|
</ModuleContent>
|
||||||
|
</flex-col>
|
||||||
|
|
||||||
|
</ModuleContent>
|
||||||
|
</flex-col>
|
||||||
|
|
||||||
|
</ModuleContent>
|
||||||
|
</flex-col>
|
||||||
|
</ModuleContent2>
|
||||||
|
</div>
|
||||||
|
<div class="liebiao" slot="center">
|
||||||
|
<flex-col>
|
||||||
|
<div style="height: 144px;width: 100%;">
|
||||||
|
<ModuleContent2 bg bg-str :border="false">
|
||||||
|
<butgroup2 style="height: 100%;">
|
||||||
|
<ModuleContent2 bg bg-color border>
|
||||||
|
<miaoshu title="进场车辆" :value="count.comeCount" color="rgba(42, 207, 255, 1)"></miaoshu>
|
||||||
|
</ModuleContent2>
|
||||||
|
|
||||||
|
<ModuleContent2 bg bg-color border style="margin-left: 16px;">
|
||||||
|
<miaoshu title="出场车辆" :value="count.outCount" color="rgba(255, 171, 87, 1)"></miaoshu>
|
||||||
|
</ModuleContent2>
|
||||||
|
|
||||||
|
<ModuleContent2 bg bg-color border style="margin-left: 16px;">
|
||||||
|
<miaoshu title="在场车辆" :value="count.inCount" color="rgba(122, 175, 255, 1)"></miaoshu>
|
||||||
|
</ModuleContent2>
|
||||||
|
|
||||||
|
<ModuleContent2 bg bg-color border style="margin-left: 16px;">
|
||||||
|
<miaoshu title="新增车辆" :value="count.addCount" color="rgba(76, 243, 129, 1)"></miaoshu>
|
||||||
|
</ModuleContent2>
|
||||||
|
</butgroup2>
|
||||||
|
</ModuleContent2>
|
||||||
|
</div>
|
||||||
|
<web3-title>门禁监控</web3-title>
|
||||||
|
<ModuleContent padding="20px 0" ref="module">
|
||||||
|
<div class="table-content">
|
||||||
|
<PeakCustomTable
|
||||||
|
hide-action
|
||||||
|
hide-search
|
||||||
|
hide-button
|
||||||
|
:columns="columns"
|
||||||
|
:api-conf="apiConf"
|
||||||
|
:tableProps="tableProps"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</ModuleContent>
|
||||||
|
</flex-col>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</BFC>
|
||||||
|
</ModuleContent>
|
||||||
|
<butgroup>
|
||||||
|
<cus-button>厂区车辆台账</cus-button>
|
||||||
|
<cus-button>清洁运输趋势</cus-button>
|
||||||
|
<cus-button>磅秤台账</cus-button>
|
||||||
|
<cus-button>门禁监控</cus-button>
|
||||||
|
</butgroup>
|
||||||
|
</flex-col>
|
||||||
|
</ModuleContent>
|
||||||
|
</flex-col>
|
||||||
|
</new-bg>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {mapActions, mapState} from "vuex";
|
||||||
|
import SystemTitle from "../../components/smallCommon/SystemTitle.vue";
|
||||||
|
import FlexCol from "../../components/FlexCol.vue";
|
||||||
|
import ModuleContent from "../../components/ModuleContent.vue";
|
||||||
|
import Web2Title from "../../components/smallCommon/Web2Title.vue";
|
||||||
|
import NewBg from "../../components/NewBg.vue";
|
||||||
|
import BFC from "../../components/BFC.vue";
|
||||||
|
import Butgroup from "../../components/smallCommon/butgroup.vue";
|
||||||
|
import CusButton from "../../components/smallCommon/CusButton.vue";
|
||||||
|
import Web3Title from "../../components/smallCommon/Web3Title.vue";
|
||||||
|
import CusButton2 from "../../components/smallCommon/CusButton2.vue";
|
||||||
|
import Butgroup2 from "../../components/smallCommon/butgroup2.vue";
|
||||||
|
import CusDesc from "../../components/smallCommon/CusDesc.vue";
|
||||||
|
import ModuleContent2 from "../../components/smallCommon/ModuleContent2.vue";
|
||||||
|
import Miaoshu from "../../components/smallCommon/miaoshu.vue";
|
||||||
|
import bgStr from '../../assets/images/new/矩形 17.png'
|
||||||
|
import PeakCustomTable from "@/components/smallCommon/CustomTable";
|
||||||
|
import Curd from "../../components/smallCommon/Curd.vue";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "PeakCoalMonitoring",
|
||||||
|
components: {
|
||||||
|
Curd,
|
||||||
|
Miaoshu,
|
||||||
|
ModuleContent2,
|
||||||
|
CusDesc,
|
||||||
|
Butgroup2,
|
||||||
|
CusButton2,
|
||||||
|
Web3Title,
|
||||||
|
CusButton,
|
||||||
|
Butgroup,
|
||||||
|
BFC,
|
||||||
|
Web2Title,
|
||||||
|
NewBg,
|
||||||
|
ModuleContent,
|
||||||
|
FlexCol,
|
||||||
|
SystemTitle,
|
||||||
|
PeakCustomTable
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
const self = this
|
||||||
|
return {
|
||||||
|
tableProps: {
|
||||||
|
customRow (record) {
|
||||||
|
return {
|
||||||
|
on: {
|
||||||
|
click: (event) => {
|
||||||
|
self.selectedRecord = record
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
rowClassName (record, index) {
|
||||||
|
if (record.id === self.selectedRecord.id) return 'selected'
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
apiConf: {
|
||||||
|
listApi: { api: '/api/Transport/list', method: 'get' },
|
||||||
|
},
|
||||||
|
selectedRecord: {},
|
||||||
|
bgStr,
|
||||||
|
searchCarNum: '',
|
||||||
|
tableH: 513,
|
||||||
|
count: {
|
||||||
|
addCount: 0,
|
||||||
|
comeCount: 1,
|
||||||
|
inCount: 1,
|
||||||
|
outCount: 0,
|
||||||
|
},
|
||||||
|
dataSource: [],
|
||||||
|
descColumns: [
|
||||||
|
{
|
||||||
|
title: '设备掉线',
|
||||||
|
dataIndex: 'deviceName',
|
||||||
|
width: '33.333%'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '故障异常',
|
||||||
|
dataIndex: 'errorName',
|
||||||
|
width: '33.333%'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '异常报警',
|
||||||
|
dataIndex: 'errorImg',
|
||||||
|
width: '33.333%'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
dataIndex: 'carNumber',
|
||||||
|
key: 'carNumber',
|
||||||
|
title: '车牌号'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'transportType',
|
||||||
|
key: 'transportType',
|
||||||
|
title: '类型',
|
||||||
|
customRender(transportType) {
|
||||||
|
if (transportType === 1) return '进厂'
|
||||||
|
return '出厂'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'address',
|
||||||
|
key: 'address',
|
||||||
|
title: '进出厂位置'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'registered',
|
||||||
|
key: 'registered',
|
||||||
|
title: '出/入厂位置'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'goods',
|
||||||
|
key: 'goods',
|
||||||
|
title: '物料类型'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'effluent',
|
||||||
|
key: 'effluent',
|
||||||
|
title: '排放标准'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState({
|
||||||
|
title: state => state.system.title,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getCount()
|
||||||
|
this.getDataSource()
|
||||||
|
this.$nextTick(() => {
|
||||||
|
const win = window.top
|
||||||
|
this.$http.get('http://101.43.201.20:5000/api/Home/view').then(({data}) => {
|
||||||
|
win.document.title = data.home.title
|
||||||
|
this.setTitle(data.home.title)
|
||||||
|
this.setInfo(data)
|
||||||
|
})
|
||||||
|
|
||||||
|
if (this.$refs.module) {
|
||||||
|
const offsetHeight = this.$refs.module.$el.offsetHeight - 40
|
||||||
|
this.tableH = offsetHeight
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapActions('system', ['setTitle', 'setInfo']),
|
||||||
|
getCount() {
|
||||||
|
this.$get('/api/Transport/count').then(({data}) => {
|
||||||
|
this.count = data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
getDataSource () {
|
||||||
|
this.$get('/api/Transport/list').then(({data}) => {
|
||||||
|
this.dataSource = data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图层构造器
|
||||||
|
* @param { object } props
|
||||||
|
* @param { 'cems' | 'sdjcy' | 'zkz' | 'gbz' | 'ssc' | 'shisc' | 'wz' | 'jkd' } props.layerType 图层类型 jkd(监控点) wz(微站) sdjcy(深度检测仪) zkz(质控站) gbz(国标站) ssc(洒水车) shisc(湿扫车) cems(CEMS)
|
||||||
|
* @param { object } props.data 图层类型
|
||||||
|
*/
|
||||||
|
pointClick({layerType, data}) {
|
||||||
|
// todo
|
||||||
|
if (layerType == 'wz') {
|
||||||
|
this.$open(WZDialog, {
|
||||||
|
type: 'middle'
|
||||||
|
}, {
|
||||||
|
screenType: 'middle',
|
||||||
|
title: '微站',
|
||||||
|
width: 1100,
|
||||||
|
onClose() {
|
||||||
|
console.log(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (layerType === 'sdjcy') {
|
||||||
|
this.$open(SDJCYDialog, {
|
||||||
|
type: 'middle'
|
||||||
|
}, {
|
||||||
|
screenType: 'custommiddle',
|
||||||
|
title: '深度检测仪',
|
||||||
|
width: 1100,
|
||||||
|
onClose() {
|
||||||
|
console.log(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (layerType === 'zkz') {
|
||||||
|
this.$open(ZKZDialog, {
|
||||||
|
type: 'middle'
|
||||||
|
}, {
|
||||||
|
screenType: 'custommiddle',
|
||||||
|
title: '质控站',
|
||||||
|
width: 1100,
|
||||||
|
onClose() {
|
||||||
|
console.log(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (layerType === 'gbz') {
|
||||||
|
this.$open(GBZDialog, {
|
||||||
|
type: 'middle'
|
||||||
|
}, {
|
||||||
|
screenType: 'custommiddle',
|
||||||
|
title: '国标站',
|
||||||
|
width: 1100,
|
||||||
|
onClose() {
|
||||||
|
console.log(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (layerType === 'cems') {
|
||||||
|
this.$open(CEMSDialog, {
|
||||||
|
type: 'middle'
|
||||||
|
}, {
|
||||||
|
screenType: 'custommiddle',
|
||||||
|
title: 'CEMS',
|
||||||
|
width: 1100,
|
||||||
|
onClose() {
|
||||||
|
console.log(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (layerType === 'jkd') {
|
||||||
|
this.$open(pointDialog, {
|
||||||
|
type: 'middle'
|
||||||
|
}, {
|
||||||
|
screenType: 'custommiddle',
|
||||||
|
title: '监控点',
|
||||||
|
width: 1100,
|
||||||
|
onClose() {
|
||||||
|
console.log(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body, html, #__nuxt, #__layout {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
background: #09151F;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-enter-active, .list-leave-active {
|
||||||
|
transition: all 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-enter, .list-leave-to
|
||||||
|
/* .list-leave-active for below version 2.1.8 */
|
||||||
|
{
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(30px);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
@import "../../assets/styles/mixin";
|
||||||
|
|
||||||
|
.sou-suo-kuang {
|
||||||
|
height: 100%;
|
||||||
|
width: 580px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-left: 20px;
|
||||||
|
pointer-events: auto;
|
||||||
|
|
||||||
|
|
||||||
|
.search {
|
||||||
|
/deep/ .ant-input {
|
||||||
|
color: #fff;
|
||||||
|
background: rgba(5, 38, 93, 1);
|
||||||
|
border: 1.28px solid rgba(35, 209, 232, 1);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #fff;
|
||||||
|
background: rgba(5, 38, 93, 1);
|
||||||
|
border: 1.28px solid rgba(35, 209, 232, 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
height: 90px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 28px 16px;
|
||||||
|
|
||||||
|
background: rgba(24, 131, 201, 0.2);
|
||||||
|
|
||||||
|
|
||||||
|
/** 文本1 */
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 400;
|
||||||
|
letter-spacing: 0px;
|
||||||
|
line-height: 23.17px;
|
||||||
|
color: rgba(255, 255, 255, 1);
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
line-height: 32px;
|
||||||
|
|
||||||
|
.input {
|
||||||
|
margin-left: 10px;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.liebiao {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.car-preview {
|
||||||
|
width: 100%;
|
||||||
|
height: 260px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desc {
|
||||||
|
background: rgba(24, 131, 201, 0.2);
|
||||||
|
border: 1px solid rgba(15, 81, 122, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-content {
|
||||||
|
padding-top: 20px;
|
||||||
|
flex: 1;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-page-header
|
||||||
|
:ghost="false"
|
||||||
|
style="border-bottom: 1px solid rgb(235, 237, 240)"
|
||||||
|
title="厂区车辆台账"
|
||||||
|
@back="() => $router.go(-1)"
|
||||||
|
/>
|
||||||
|
<a-row :gutter="16">
|
||||||
|
<a-col :span="6">
|
||||||
|
<a-card title="运输车辆" size="small">
|
||||||
|
<p>card content</p>
|
||||||
|
</a-card>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="6">
|
||||||
|
<a-card title="国Ⅵ输车辆" size="small">
|
||||||
|
<p>card content</p>
|
||||||
|
</a-card>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="6">
|
||||||
|
<a-card title="非道路工程机械" size="small">
|
||||||
|
<p>card content</p>
|
||||||
|
</a-card>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="6">
|
||||||
|
<a-card title="燃油运输车辆" size="small">
|
||||||
|
<p>card content</p>
|
||||||
|
</a-card>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
|
<a-divider />
|
||||||
|
<Curd
|
||||||
|
hide-action
|
||||||
|
hide-search
|
||||||
|
hide-button
|
||||||
|
:columns="columns"
|
||||||
|
:api-conf="apiConf"
|
||||||
|
:form-items="formItems"
|
||||||
|
@edit="editHandler"
|
||||||
|
>
|
||||||
|
<template slot="search-button" slot-scope="{ search }">
|
||||||
|
<a-button type="primary" @click="exportList(search)">导出历史数据</a-button>
|
||||||
|
</template>
|
||||||
|
</Curd>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import Curd from "../../components/smallCommon/Curd.vue";
|
||||||
|
import moment from 'moment'
|
||||||
|
export default {
|
||||||
|
name: "user",
|
||||||
|
layout: "user",
|
||||||
|
components: {
|
||||||
|
Curd
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
isEdit: false,
|
||||||
|
roles: [],
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
dataIndex: 'outTime',
|
||||||
|
key: 'outTime',
|
||||||
|
title: '日期'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'carNum',
|
||||||
|
key: 'carNum',
|
||||||
|
title: '车牌号'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'carModel',
|
||||||
|
key: 'carModel',
|
||||||
|
title: '车型'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'newCar',
|
||||||
|
key: 'newCar',
|
||||||
|
title: '新能源',
|
||||||
|
customRender (text) {
|
||||||
|
if (text) return '是'
|
||||||
|
return '否'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'emissions',
|
||||||
|
key: 'emissions',
|
||||||
|
title: '燃油车'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'createDateTime',
|
||||||
|
key: 'createDateTime',
|
||||||
|
title: '出厂日期'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
apiConf: {
|
||||||
|
listApi: { api: '/api/Ledger/list', method: 'get' },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
formItems () {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
type: 'dateRange',
|
||||||
|
key: 'time',
|
||||||
|
label: '日期',
|
||||||
|
isSearch: true,
|
||||||
|
placeholder: ['请选择开始日期', '请选择结束日期'],
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: '请选择时间范围' }
|
||||||
|
],
|
||||||
|
fields: ['startTime', 'endTime']
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
editHandler (isEdit) {
|
||||||
|
this.isEdit = isEdit
|
||||||
|
},
|
||||||
|
exportList ({ time }) {
|
||||||
|
const [ start, end ] = time
|
||||||
|
const fmt = 'YYYY-MM-DD'
|
||||||
|
window.open(`http://101.43.201.20:5000/api/Ledger/export?start=${moment(start).format(fmt)}&end=${moment(end).format(fmt)}`, '_blank')
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,126 @@
|
||||||
|
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-page-header
|
||||||
|
:ghost="false"
|
||||||
|
title="清洁运输+趋势"
|
||||||
|
@back="() => $router.go(-1)"
|
||||||
|
/>
|
||||||
|
<a-divider style="margin-top: 0;" />
|
||||||
|
<a-row :gutter="16">
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-card>
|
||||||
|
<div slot="title">
|
||||||
|
运输总量: {{ yunshuzongliang }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Curd
|
||||||
|
hide-action
|
||||||
|
hide-search
|
||||||
|
hide-button
|
||||||
|
:columns="columns"
|
||||||
|
:api-conf="apiConf"
|
||||||
|
:form-items="formItems"
|
||||||
|
>
|
||||||
|
</Curd>
|
||||||
|
</a-card>
|
||||||
|
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-card title="国Ⅵ输车辆" size="small">
|
||||||
|
<p>card content</p>
|
||||||
|
</a-card>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import Curd from "../../components/smallCommon/Curd.vue";
|
||||||
|
import moment from 'moment'
|
||||||
|
export default {
|
||||||
|
name: "user",
|
||||||
|
layout: "user",
|
||||||
|
components: {
|
||||||
|
Curd
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
yunshuzongliang: 0,
|
||||||
|
isEdit: false,
|
||||||
|
roles: [],
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
dataIndex: 'outTime',
|
||||||
|
key: 'outTime',
|
||||||
|
title: '日期'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'carNum',
|
||||||
|
key: 'carNum',
|
||||||
|
title: '车牌号'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'carModel',
|
||||||
|
key: 'carModel',
|
||||||
|
title: '车型'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'newCar',
|
||||||
|
key: 'newCar',
|
||||||
|
title: '新能源',
|
||||||
|
customRender (text) {
|
||||||
|
if (text) return '是'
|
||||||
|
return '否'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'emissions',
|
||||||
|
key: 'emissions',
|
||||||
|
title: '燃油车'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'createDateTime',
|
||||||
|
key: 'createDateTime',
|
||||||
|
title: '出厂日期'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
apiConf: {
|
||||||
|
listApi: { api: '/api/Transport/list', method: 'get' },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
formItems () {
|
||||||
|
return [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getyunshuzongliang()
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
getyunshuzongliang () {
|
||||||
|
/*this.$get('/api/Transport/count').then(({ data }) => {
|
||||||
|
this.yunshuzongliang = data
|
||||||
|
})*/
|
||||||
|
},
|
||||||
|
editHandler (isEdit) {
|
||||||
|
this.isEdit = isEdit
|
||||||
|
},
|
||||||
|
exportList ({ time }) {
|
||||||
|
const [ start, end ] = time
|
||||||
|
const fmt = 'YYYY-MM-DD'
|
||||||
|
window.open(`http://101.43.201.20:5000/api/Ledger/export?start=${moment(start).format(fmt)}&end=${moment(end).format(fmt)}`, '_blank')
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
@ -66,7 +66,7 @@ export default {
|
||||||
{
|
{
|
||||||
type: 'input',
|
type: 'input',
|
||||||
key: 'deviceMN',
|
key: 'deviceMN',
|
||||||
label: '编码',
|
label: 'MN编码',
|
||||||
isSearch: true,
|
isSearch: true,
|
||||||
placeholder: '请输入编码',
|
placeholder: '请输入编码',
|
||||||
rules: [
|
rules: [
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ export default {
|
||||||
Curd
|
Curd
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
|
const self = this
|
||||||
return {
|
return {
|
||||||
isEdit: false,
|
isEdit: false,
|
||||||
roles: [],
|
roles: [],
|
||||||
|
|
@ -43,7 +44,11 @@ export default {
|
||||||
{
|
{
|
||||||
dataIndex: 'roleId',
|
dataIndex: 'roleId',
|
||||||
key: 'roleId',
|
key: 'roleId',
|
||||||
title: '角色'
|
title: '角色',
|
||||||
|
customRender (text) {
|
||||||
|
const item = (self.roles || []).find(item => item.value === text)
|
||||||
|
return item && item.label || ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
apiConf: {
|
apiConf: {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,10 @@ module.exports = {
|
||||||
scale: 0.5,
|
scale: 0.5,
|
||||||
ignore: [
|
ignore: [
|
||||||
'manager',
|
'manager',
|
||||||
|
'video',
|
||||||
|
'youzuzhi',
|
||||||
|
'wuzuzhi',
|
||||||
|
'cleanTravel',
|
||||||
'node_modules',
|
'node_modules',
|
||||||
'peak-coal-monitoring',
|
'peak-coal-monitoring',
|
||||||
'web',
|
'web',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue