This commit is contained in:
DESKTOP-VMMLSOQ\wangzg 2024-06-27 00:52:06 +08:00
parent ccd5595032
commit fc51e54c32
10 changed files with 868 additions and 57 deletions

View File

@ -2,7 +2,7 @@
<template>
<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-item v-for="menuItem in searchItems" :key="menuItem.key" :label="menuItem.label">
<a-input
@ -21,18 +21,19 @@
:placeholder="menuItem.placeholder || ''" v-decorator="[menuItem.key]" v-else-if="menuItem.type === 'dateRange'" format="YYYY-MM-DD" />
</a-form-item>
<a-form-item>
<a-button type="primary" html-type="submit">查询</a-button>
<a-button :style="{ marginLeft: '8px' }" @click="reset">重置</a-button>
<a-button type="primary" html-type="submit" v-if="!hideSearch">查询</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>
</div>
<a-divider />
<div class="table-operations">
<a-divider v-if="!hideButton && searchItems.length > 0" />
<div class="table-operations" v-if="!hideButton">
<a-button @click="addRow" type="primary">
添加
</a-button>
</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">
<a-button type="danger" size="small" @click="deleteRow(record)">删除</a-button>
<a-divider type="vertical" />
@ -99,12 +100,29 @@ export default {
selectRow: null,
page: {
pageSize: 10,
pageNo: 1
current: 1,
total: 0
},
searchFormModel: {}
}
},
props: {
tableProps: {
type: Object,
default: () => ({})
},
hideSearch: {
type: Boolean,
default: false
},
hideAction: {
type: Boolean,
default: false
},
hideButton: {
type: Boolean,
default: false
},
//
formItems: {
type: Array,
@ -130,6 +148,7 @@ export default {
return this.formItems.filter(item => !!item.isSearch)
},
realColumns () {
if (this.hideAction) return [ ...this.columns ]
return [
...this.columns,
{
@ -188,12 +207,14 @@ export default {
},
deleteRow(row) {
const self = this
if (!self.apiConf.deleteApi) return
this.$confirm({
title: '确认要删除么?',
okText: '确认',
okType: 'danger',
cancelText: '再想想',
onOk() {
const { api,deleteKey, paramsType, method } = self.apiConf.deleteApi
let params = {}
if (paramsType === 'Array') {
@ -210,9 +231,9 @@ export default {
},
handleChange ({ pageSize, pageNo }) {
handleChange ({ pageSize, current }) {
this.page.pageSize = pageSize
this.page.pageNo = pageNo
this.page.current = current
this.handleSearch()
},
reset() {
@ -225,11 +246,13 @@ export default {
const { data } = await this[`$${method}`](api, {
...values,
pageSize: this.page.pageSize,
current: this.page.pageNo,
current: this.page.current,
})
if (noPage) {
this.page = false
this.tableDataSource = data
} else {
this.page.total = data.total || 0
this.tableDataSource = data.items
}
},

View File

@ -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>

View File

@ -1,62 +1,68 @@
<template>
<a-layout id="components-layout-demo-fixed-sider">
<a-layout-sider :trigger="null" v-model="collapsed" collapsible>
<div class="logo">
欢迎
</div>
<a-menu theme="dark" mode="inline" v-model="selectedKeys">
<a-menu-item key="1" v-for="item in menus" :key="item.key">
<a-icon :type="item.icon"/>
<span class="nav-text">{{ item.title }}</span>
</a-menu-item>
</a-menu>
</a-layout-sider>
<a-layout>
<a-layout-header
style="background: #fff; padding: 0"
ref="header"
:title="pageTitle"
:breadcrumb="{ props: { routes } }"
>
<div class="header-con">
<a-locale-provider :locale="zh_CN">
<a-layout id="components-layout-demo-fixed-sider">
<a-layout-sider :trigger="null" v-model="collapsed" collapsible>
<div class="logo">
欢迎
</div>
<a-menu theme="dark" mode="inline" v-model="selectedKeys">
<a-menu-item key="1" v-for="item in menus" :key="item.key">
<a-icon :type="item.icon"/>
<span class="nav-text">{{ item.title }}</span>
</a-menu-item>
</a-menu>
</a-layout-sider>
<a-layout>
<a-layout-header
style="background: #fff; padding: 0"
ref="header"
:title="pageTitle"
:breadcrumb="{ props: { routes } }"
>
<div class="header-con">
<a-icon
class="trigger"
:type="collapsed ? 'menu-unfold' : 'menu-fold'"
@click="() => (collapsed = !collapsed)"
/>
<a-menu class="cus-menu">
<a-sub-menu>
<a-icon
class="trigger"
:type="collapsed ? 'menu-unfold' : 'menu-fold'"
@click="() => (collapsed = !collapsed)"
/>
<a-menu class="cus-menu">
<a-sub-menu>
<span slot="title" class="submenu-title-wrapper">
<a-icon type="setting"/>
操作
</span>
<a-menu-item key="setting:2">修改密码</a-menu-item>
<a-menu-item key="setting:1">退出</a-menu-item>
</a-sub-menu>
</a-menu>
<a-menu-item key="setting:2">修改密码</a-menu-item>
<a-menu-item key="setting:1">退出</a-menu-item>
</a-sub-menu>
</a-menu>
</div>
</div>
</a-layout-header>
<a-layout-content :style="contentStyle">
<div :style="containerStyle">
<nuxt/>
</div>
</a-layout-content>
<!-- <a-layout-footer :style="{ textAlign: 'center' }" ref="footer">
Ant Design ©2018 Created by Ant UED
</a-layout-footer>-->
</a-layout-header>
<a-layout-content :style="contentStyle">
<div :style="containerStyle">
<nuxt/>
</div>
</a-layout-content>
<!-- <a-layout-footer :style="{ textAlign: 'center' }" ref="footer">
Ant Design ©2018 Created by Ant UED
</a-layout-footer>-->
</a-layout>
</a-layout>
</a-layout>
</a-locale-provider>
</template>
<script>
import zh_CN from 'ant-design-vue/lib/locale-provider/zh_CN';
import 'moment/locale/zh-cn';
export default {
name: "manager",
data() {
return {
zh_CN,
collapsed: false,
headerHeight: 0,
footerHeight: 0,
@ -85,6 +91,12 @@ export default {
title: '菜单管理',
icon: 'link',
key: 'manager-menu'
},
{
link: '/manager/device',
title: '设备管理',
icon: 'video-camera',
key: 'manager-device'
}
],
selectedKeys: []
@ -93,12 +105,12 @@ export default {
watch: {
'$route': {
immediate: true,
handler (to) {
handler(to) {
this.selectedKeys = [to.name]
}
},
selectedKeys ([key]) {
this.$router.push({ name: key })
selectedKeys([key]) {
this.$router.push({name: key})
}
},
computed: {
@ -136,6 +148,7 @@ export default {
display: none;
}
}
#components-layout-demo-fixed-sider {
.header-con {
width: 100%;

16
layouts/user.vue Normal file
View File

@ -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>

438
pages/cleanTravel/home.vue Normal file
View File

@ -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(湿扫车) cemsCEMS
* @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>

View File

@ -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>

126
pages/cleanTravel/trend.vue Normal file
View File

@ -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>

View File

@ -66,7 +66,7 @@ export default {
{
type: 'input',
key: 'deviceMN',
label: '编码',
label: 'MN编码',
isSearch: true,
placeholder: '请输入编码',
rules: [

View File

@ -20,6 +20,7 @@ export default {
Curd
},
data () {
const self = this
return {
isEdit: false,
roles: [],
@ -43,7 +44,11 @@ export default {
{
dataIndex: 'roleId',
key: 'roleId',
title: '角色'
title: '角色',
customRender (text) {
const item = (self.roles || []).find(item => item.value === text)
return item && item.label || ''
}
}
],
apiConf: {

View File

@ -5,6 +5,10 @@ module.exports = {
scale: 0.5,
ignore: [
'manager',
'video',
'youzuzhi',
'wuzuzhi',
'cleanTravel',
'node_modules',
'peak-coal-monitoring',
'web',