|
@@ -0,0 +1,856 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="content-main-manage">
|
|
|
|
+ <div class="search-list">
|
|
|
|
+ <div class="search-left">
|
|
|
|
+ <Form class="common-form common-form-list" ref="tableParams" :model="tableParams" inline>
|
|
|
|
+ <!-- <FormItem label="" prop="lineId">
|
|
|
|
+ <Select v-model="tableParams.lineId" placeholder="能耗类型" @on-select="changeLine" label-in-value>
|
|
|
|
+ <Option v-for="item in instrumentTypeData" :value="item.id" :key="item.id">{{ item.lineName }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem> -->
|
|
|
|
+ <FormItem label="" prop="type">
|
|
|
|
+ <Select v-model="tableParams.type" placeholder="仪表类型">
|
|
|
|
+ <Option v-for="item in instrumentTypeData" :value="item.id" :key="item.id">{{ item.name }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="" prop="equipmentStatus">
|
|
|
|
+ <Select v-model="tableParams.equipmentStatus" placeholder="关联用途类项">
|
|
|
|
+ <Option v-for="item in associatedUseData" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="" prop="equipmentStatus">
|
|
|
|
+ <Select v-model="tableParams.equipmentStatus" placeholder="关联能耗分户">
|
|
|
|
+ <Option v-for="item in associatedEnergyData" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="" prop="equipmentStatus">
|
|
|
|
+ <Select v-model="tableParams.equipmentStatus" placeholder="关联设备">
|
|
|
|
+ <Option v-for="item in associatedEquipData" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="" prop="equipmentName">
|
|
|
|
+ <Input placeholder="输入关键字查询" clearable search v-model="tableParams.equipmentName" />
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="" >
|
|
|
|
+ <Button type="primary" class="common-btn-search" @click="searchClick">
|
|
|
|
+ <Icon type="ios-search" style="margin-right:4px;font-size: 16px"/> 筛选
|
|
|
|
+ </Button>
|
|
|
|
+ <Button type="primary" class="common-btn-search" style="margin-left:10px" @click="resetClick('tableParams')">
|
|
|
|
+ <Icon type="ios-search" style="margin-right:4px;font-size: 16px"/> 重置
|
|
|
|
+ </Button>
|
|
|
|
+ </FormItem>
|
|
|
|
+ </Form>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="btn-container">
|
|
|
|
+ <Button icon="ios-add" class="common-add-btn" @click="addClick">新增仪表</Button>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="manage-main-center">
|
|
|
|
+ <Table :columns="columns" :data="tableData" class="common-table app-table" no-data-text="" :row-class-name="rowClassName" :loading="loading">
|
|
|
|
+ <template slot="loading">
|
|
|
|
+ <Loading-animation></Loading-animation>
|
|
|
|
+ </template>
|
|
|
|
+ <template slot-scope="{ row }" slot="action">
|
|
|
|
+ <Tooltip content="详情" placement="top">
|
|
|
|
+ <i class="iconfont icon-xiangqingmingxi" style="cursor:pointer;color:#B8B532;fontSize:20px;marginRight:6px" @click="detailClick(row)"></i>
|
|
|
|
+ </Tooltip>
|
|
|
|
+ <Tooltip content="编辑" placement="top">
|
|
|
|
+ <i class="iconfont icon-bianji" style="cursor:pointer;color:#64ACFE;fontSize:20px;marginRight:6px" @click="editClick(row)"></i>
|
|
|
|
+ </Tooltip>
|
|
|
|
+ <Tooltip content="删除" placement="top">
|
|
|
|
+ <i class="iconfont icon-shanchu" style="cursor:pointer;color:#E92E2E;fontSize:20px;marginRight:6px" @click="delClick(row)"></i>
|
|
|
|
+ </Tooltip>
|
|
|
|
+ </template>
|
|
|
|
+ </Table>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="common-page">
|
|
|
|
+ <div class="common-page-total">
|
|
|
|
+ 共<span>{{tablePage}}</span>页 / <span>{{tableTotal}}</span>条数据
|
|
|
|
+ </div>
|
|
|
|
+ <Page :total="tableTotal" :current="tableParams.pageNum" :page-size="tableParams.pageSize" @on-change="changePage" @on-page-size-change="sizeChange" show-elevator />
|
|
|
|
+ </div>
|
|
|
|
+ <Modal
|
|
|
|
+ v-model="showModal"
|
|
|
|
+ :title="title"
|
|
|
|
+ width="36"
|
|
|
|
+ ref="modalGrag"
|
|
|
|
+ draggable
|
|
|
|
+ reset-drag-position
|
|
|
|
+ @on-visible-change="modalChange"
|
|
|
|
+ :mask-closable="false"
|
|
|
|
+ class-name="common-modal">
|
|
|
|
+ <Form class="common-form" ref="formOption" :model="formOption" :rules="ruleValidate" :label-width="120" inline>
|
|
|
|
+ <FormItem label="仪表号:" prop="code" style="width:100%">
|
|
|
|
+ <Input v-show="title=='新增仪表'" v-model.trim="formOption.code" />
|
|
|
|
+ <span v-show="title=='编辑仪表'">{{formOption.code}}</span>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="仪表名称:" prop="name" style="width:100%">
|
|
|
|
+ <Input v-model.trim="formOption.name" type="textarea" :rows="3" maxlength="100" show-word-limit />
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="归属应用:" prop="applicationId" style="width:100%">
|
|
|
|
+ <Select v-model="formOption.applicationId" placeholder="归属应用" @on-change="selectModalApp">
|
|
|
|
+ <Option v-for="item in equipAppModalData" :value="item.id" :key="item.id">{{ item.appName }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="仪表类型:" prop="type" style="width:48%">
|
|
|
|
+ <Select v-model="formOption.type" placeholder="仪表类型" @on-change="selectInstruType">
|
|
|
|
+ <Option v-for="item in instrumentTypeModalData" :value="item.id" :key="item.id">{{ item.name }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="能耗类型:" prop="energyConsumptionName" style="width:48%">
|
|
|
|
+ <span>{{formOption.energyConsumptionName}}</span>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="品牌名称:" prop="brandName" style="width:100%">
|
|
|
|
+ <Input v-model.trim="formOption.brandName" maxlength="20" show-word-limit />
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="属性:" prop="attribute" style="width:100%">
|
|
|
|
+ <Input v-model="formOption.attribute" maxlength="20" show-word-limit />
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="说明:" prop="remark" style="width:100%">
|
|
|
|
+ <Input v-model="formOption.remark" type="textarea" :rows="6" maxlength="200" show-word-limit />
|
|
|
|
+ </FormItem>
|
|
|
|
+ </Form>
|
|
|
|
+ <div slot="footer">
|
|
|
|
+ <Button @click="modalCancel">取消</Button>
|
|
|
|
+ <Button type="primary" @click="modalOk('formOption')">确定</Button>
|
|
|
|
+ </div>
|
|
|
|
+ </Modal>
|
|
|
|
+ <Modal
|
|
|
|
+ v-model="modalStatus"
|
|
|
|
+ :title="commonTitle"
|
|
|
|
+ width="30"
|
|
|
|
+ ref="modalGrag"
|
|
|
|
+ draggable
|
|
|
|
+ reset-drag-position
|
|
|
|
+ :mask-closable="false"
|
|
|
|
+ class-name="common-modal">
|
|
|
|
+ <Icon type="ios-information-circle" :style="{ color: activeColor}" class="modal-icon"></Icon>
|
|
|
|
+ <span class="modal-text">{{modalTitle}}</span>
|
|
|
|
+ <div slot="footer">
|
|
|
|
+ <Button @click="commonCancel">取消</Button>
|
|
|
|
+ <Button type="primary" @click="commonOk">确定</Button>
|
|
|
|
+ </div>
|
|
|
|
+ </Modal>
|
|
|
|
+ <Modal
|
|
|
|
+ v-model="detailStatus"
|
|
|
|
+ title="仪表详情"
|
|
|
|
+ width="45"
|
|
|
|
+ ref="modalGrag"
|
|
|
|
+ draggable
|
|
|
|
+ reset-drag-position
|
|
|
|
+ footer-hide
|
|
|
|
+ :mask-closable="false"
|
|
|
|
+ class-name="common-modal">
|
|
|
|
+ <div v-for="(item,index) in detailLabel" :key="index">
|
|
|
|
+ <div class="common-modal-top">
|
|
|
|
+ <span class="common-modal-top-text">{{item.name}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="common-modal-content">
|
|
|
|
+ <div class="modal-content-item" v-for="(val,i) in item.value" :key="i" :class="{'item-especial': val.name == '说明'|| val.name == '最后通讯时间' && item.value.length%2!=0,'item-especial-bot':(i==item.value.length-1 || i==item.value.length-2) && item.value.length%2==0}">
|
|
|
|
+ <div class="modal-content-item-name">
|
|
|
|
+ {{val.name}}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="modal-content-item-value">
|
|
|
|
+ <Tooltip placement="top-start" transfer max-width="350" v-if="val.name == '归属线路' || val.name == '归属站点' || val.value || val.value===0">
|
|
|
|
+ <span v-if="val.name == '归属线路' || val.name == '归属站点'">{{!val.value ? '/' : val.value}}</span>
|
|
|
|
+ <span v-else>{{val.value}}</span>
|
|
|
|
+ <div slot="content">
|
|
|
|
+ <span v-if="val.name == '归属线路' || val.name == '归属站点'">{{!val.value ? '/' : val.value}}</span>
|
|
|
|
+ <span v-else>{{val.value}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </Tooltip>
|
|
|
|
+ <span v-else>{{val.value}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </Modal>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+<script>
|
|
|
|
+const defaultFrom = {code: '',name: '',applicationId:'',type: '',energyConsumptionId:'',energyConsumptionName:'',brandName: '',attribute: '',remark: ''}
|
|
|
|
+export default {
|
|
|
|
+ name: "InstruManageIndex",
|
|
|
|
+ components:{
|
|
|
|
+ },
|
|
|
|
+ // props: {
|
|
|
|
+ // currentAppId: [String,Number],
|
|
|
|
+ // currentEquTypeId: [String,Number],
|
|
|
|
+ // level: [String,Number],
|
|
|
|
+ // },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ applicationParams: {
|
|
|
|
+ level: '',
|
|
|
|
+ lineId: '',
|
|
|
|
+ stationId: '',
|
|
|
|
+ equipmentCheck: '',
|
|
|
|
+ instrumentCheck: '',
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 9999
|
|
|
|
+ },
|
|
|
|
+ appParams: {
|
|
|
|
+ applicationId: '',
|
|
|
|
+ equipmentTypeId: '',
|
|
|
|
+ keywords: '',
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 9999
|
|
|
|
+ },
|
|
|
|
+ loading: true,
|
|
|
|
+ // dateRange: [],
|
|
|
|
+ tableParams: {
|
|
|
|
+ // lineId: '',
|
|
|
|
+ // stationId: '',
|
|
|
|
+ // equipmentStatus: '',
|
|
|
|
+ // keywords: '',
|
|
|
|
+ // applicationId:'',
|
|
|
|
+ // equipmentType: '',
|
|
|
|
+ // useDateBegin: '',
|
|
|
|
+ // useDateEnd: '',
|
|
|
|
+ // equipmentName: '',
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10
|
|
|
|
+ },
|
|
|
|
+ tableData: [],
|
|
|
|
+ tableTotal: 0,
|
|
|
|
+ tablePage: 0,
|
|
|
|
+ rowObj: {},
|
|
|
|
+ instrumentTypeData: [],
|
|
|
|
+ instrumentTypeModalData: [],
|
|
|
|
+ stationTypeData: [],
|
|
|
|
+ associatedUseData: [
|
|
|
|
+ {
|
|
|
|
+ value: '-1',
|
|
|
|
+ label: '关联用途类项'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '已关联',
|
|
|
|
+ value: '1'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '未关联',
|
|
|
|
+ value: '0'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ associatedEnergyData: [
|
|
|
|
+ {
|
|
|
|
+ value: '-1',
|
|
|
|
+ label: '关联能耗分户'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '已关联',
|
|
|
|
+ value: '1'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '未关联',
|
|
|
|
+ value: '0'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ associatedEquipData:[
|
|
|
|
+ {
|
|
|
|
+ value: '-1',
|
|
|
|
+ label: '关联设备'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '已关联',
|
|
|
|
+ value: '1'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '未关联',
|
|
|
|
+ value: '0'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ equipStateModalData: [],
|
|
|
|
+ equipTypeData: [],
|
|
|
|
+ equipTypeModalData: [],
|
|
|
|
+ equipAppModalData: [],
|
|
|
|
+ columns: [
|
|
|
|
+ // {
|
|
|
|
+ // type: 'selection',
|
|
|
|
+ // width: 60,
|
|
|
|
+ // align: 'center'
|
|
|
|
+ // },
|
|
|
|
+ {
|
|
|
|
+ title: '仪表号',
|
|
|
|
+ key: 'code',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true,
|
|
|
|
+ tooltip: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '仪表名称',
|
|
|
|
+ key: 'name',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true,
|
|
|
|
+ tooltip: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '能耗类型',
|
|
|
|
+ key: 'energyConsumptionName',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true,
|
|
|
|
+ tooltip: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '仪表类型',
|
|
|
|
+ key: 'appName',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true,
|
|
|
|
+ tooltip: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '归属应用',
|
|
|
|
+ key: 'lineName',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true,
|
|
|
|
+ tooltip: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '关联用途类项',
|
|
|
|
+ align: 'center',
|
|
|
|
+ key: 'stationName',
|
|
|
|
+ ellipsis: true,
|
|
|
|
+ tooltip: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '关联能耗分户',
|
|
|
|
+ key: 'equipmentStatusValue',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true,
|
|
|
|
+ tooltip: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '关联设备名称',
|
|
|
|
+ key: 'useDate',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true,
|
|
|
|
+ tooltip: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '操作',
|
|
|
|
+ align: 'center',
|
|
|
|
+ slot: 'action',
|
|
|
|
+ width: 120,
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ showModal: false,
|
|
|
|
+ detailStatus: false,
|
|
|
|
+ modalStatus: false,
|
|
|
|
+ title: '新增仪表',
|
|
|
|
+ commonTitle: "确认删除",
|
|
|
|
+ activeColor: '#E92E2E',
|
|
|
|
+ activeClass: '',
|
|
|
|
+ modalTitle: '',
|
|
|
|
+ formOption: {code: '',name: '',applicationId:'',type: '',energyConsumptionId:'',energyConsumptionName:'',brandName: '',attribute: '',remark: ''},
|
|
|
|
+ ruleValidate: {
|
|
|
|
+ code: [{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '请输入仪表号',
|
|
|
|
+ trigger: 'blur'
|
|
|
|
+ }],
|
|
|
|
+ name: [{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '请输入仪表名称',
|
|
|
|
+ trigger: 'change'
|
|
|
|
+ }],
|
|
|
|
+ applicationId: [{
|
|
|
|
+ required: true,
|
|
|
|
+ type: 'number',
|
|
|
|
+ message: '请选择归属应用',
|
|
|
|
+ trigger: 'change'
|
|
|
|
+ }],
|
|
|
|
+ type: [{
|
|
|
|
+ required: true,
|
|
|
|
+ type: 'number',
|
|
|
|
+ message: '请选择仪表类型',
|
|
|
|
+ trigger: 'change'
|
|
|
|
+ }],
|
|
|
|
+ },
|
|
|
|
+ detailLabel: [],
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ // watch: {
|
|
|
|
+ // currentAppId: {
|
|
|
|
+ // handler(newValue) {
|
|
|
|
+ // console.log(newValue)
|
|
|
|
+ // this.tableParams.applicationId = newValue
|
|
|
|
+ // this.getTableData()
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // currentEquTypeId: {
|
|
|
|
+ // handler(newValue) {
|
|
|
|
+ // this.tableParams.equipmentType = newValue
|
|
|
|
+ // this.getTableData()
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // },
|
|
|
|
+ mounted() {
|
|
|
|
+ this.getType()
|
|
|
|
+ this.getAppApplicate()
|
|
|
|
+ this.getTableData()
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ go (){
|
|
|
|
+ // this.$router.push({path:'//ApplicationManage'})
|
|
|
|
+ // this.$router.push({path:'/MainPage/ApplicationManage/2'})
|
|
|
|
+ this.$router.push({ name: 'ApplicationManage', params: { type:2 }}) // -> /home/123
|
|
|
|
+ },
|
|
|
|
+ // changePicker (date) {
|
|
|
|
+ // this.tableParams.useDateBegin = date[0]
|
|
|
|
+ // this.tableParams.useDateEnd = date[1]
|
|
|
|
+ // },
|
|
|
|
+ rowClassName(row, index) {
|
|
|
|
+ if (index % 2 == 0) {
|
|
|
|
+ return "ivu-table-stripe-even";
|
|
|
|
+ } else {
|
|
|
|
+ return "ivu-table-stripe-odd";
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 分页
|
|
|
|
+ changePage (val) {
|
|
|
|
+ this.tableParams.pageNum = val
|
|
|
|
+ this.getTableData()
|
|
|
|
+ },
|
|
|
|
+ //跳转
|
|
|
|
+ sizeChange (val) {
|
|
|
|
+ this.tableParams.pageSize = val
|
|
|
|
+ this.getTableData()
|
|
|
|
+ },
|
|
|
|
+ getType () {
|
|
|
|
+ //获取所属线路
|
|
|
|
+ this.$get('metroapi/instrumentType/queryInstrumentType').then(res=>{
|
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
|
+ this.instrumentTypeModalData = JSON.parse(JSON.stringify(res.data))
|
|
|
|
+ this.instrumentTypeData = res.data
|
|
|
|
+ this.instrumentTypeData.unshift({ id: '-1', name: '仪表类型' })
|
|
|
|
+ // this.getStationData ('-1')
|
|
|
|
+ } else {
|
|
|
|
+ this.instrumentTypeData = []
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ // 获取仪表状态
|
|
|
|
+ // this.$get('metroapi/dic/queryDictionary', {name:'仪表状态'}).then(res=>{
|
|
|
|
+ // if (res.httpCode == 1 ){
|
|
|
|
+ // this.equipStateModalData = JSON.parse(JSON.stringify(res.data))
|
|
|
|
+ // this.associatedUseData = res.data
|
|
|
|
+ // this.associatedUseData.unshift({ id: '-1', value: '仪表状态' })
|
|
|
|
+ // } else {
|
|
|
|
+ // this.associatedUseData = []
|
|
|
|
+ // this.equipStateModalData = []
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ // 获取归属应用
|
|
|
|
+ // this.$get('metroapi/application/info/list', this.applicationParams).then(res=>{
|
|
|
|
+ // if (res.httpCode == 1 ){
|
|
|
|
+ // this.equipAppModalData = res.data.data
|
|
|
|
+ // } else {
|
|
|
|
+ // this.equipAppModalData = []
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ },
|
|
|
|
+ // 获取归属应用
|
|
|
|
+ getAppApplicate () {
|
|
|
|
+ this.$get('metroapi/application/info/list', this.applicationParams).then(res=>{
|
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
|
+ this.equipAppModalData = res.data.data
|
|
|
|
+ } else {
|
|
|
|
+ this.equipAppModalData = []
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ selectInstruType (val) {
|
|
|
|
+ if (val) {
|
|
|
|
+ let results = this.instrumentTypeModalData.find(item => item.id == val) //find 方法搜索的是使函数返回 true 的第一个(单个)元素
|
|
|
|
+ this.formOption.energyConsumptionName = results.energyConsumptionName
|
|
|
|
+ this.formOption.energyConsumptionId = results.energyConsumptionId
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // changeLine (val) {
|
|
|
|
+ // // 获取站点类型
|
|
|
|
+ // this.tableParams.stationId = ''
|
|
|
|
+ // this.tableParams.lineId = val.value
|
|
|
|
+ // if (this.tableParams.lineId) {
|
|
|
|
+ // this.getStationData(val.value)
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // // 获取所属站点
|
|
|
|
+ // getStationData (lineId) {
|
|
|
|
+ // if(lineId == '-1') {
|
|
|
|
+ // this.stationTypeData = [{ id: '-1', stationName: '站点' }]
|
|
|
|
+ // } else {
|
|
|
|
+ // this.$get('metroapi/lineStation/queryStationByLineId', {lineId:lineId}).then(res=>{
|
|
|
|
+ // if (res.httpCode == 1 ){
|
|
|
|
+ // this.stationTypeData = res.data
|
|
|
|
+ // this.stationTypeData.unshift({ id: '-1', stationName: '站点' })
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // 获取表格数据
|
|
|
|
+ getTableData () {
|
|
|
|
+ let params = JSON.parse(JSON.stringify(this.tableParams))
|
|
|
|
+ // params.lineId = params.lineId == '-1' ? '':params.lineId
|
|
|
|
+ // params.stationId = params.stationId == '-1'?'':params.stationId
|
|
|
|
+ // params.equipmentStatus = params.equipmentStatus == '-1' ?'':params.equipmentStatus
|
|
|
|
+ this.loading = true
|
|
|
|
+ this.$get('metroapi/queryInstrumentPage', params).then(res=>{
|
|
|
|
+ this.loading = false
|
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
|
+ this.tableData = res.data.data
|
|
|
|
+ this.tableTotal = res.data.count
|
|
|
|
+ if (res.data.data.length==0) {
|
|
|
|
+ this.tablePage = 0
|
|
|
|
+ } else {
|
|
|
|
+ this.tablePage = res.data.count<= 10 ? 1: Math.ceil(res.data.count/this.tableParams.pageSize)
|
|
|
|
+ }
|
|
|
|
+ if (res.data.data.length==0 && this.tableParams.pageNum>1) {
|
|
|
|
+ this.tableParams.pageNum--
|
|
|
|
+ return this.getTableData()
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ this.tableData = []
|
|
|
|
+ this.tableTotal = 0
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ selectModalLine (val) {
|
|
|
|
+ this.formOption.stationId = ''
|
|
|
|
+ if (val) {
|
|
|
|
+ this.getStationData(val.value)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ selectModalStation (val) {
|
|
|
|
+ if (val) {
|
|
|
|
+ this.formOption.stationId =val.value
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ selectModalApp (val) {
|
|
|
|
+ this.appParams.applicationId = val
|
|
|
|
+ this.formOption.equipmentType = ''
|
|
|
|
+ if (val) {
|
|
|
|
+ this.getAddEquipType(this.appParams)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 获取新增仪表类型
|
|
|
|
+ getAddEquipType (params) {
|
|
|
|
+ this.$get('metroapi/application/equipmentTypeInfo', params).then(res=>{
|
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
|
+ this.equipTypeModalData = res.data.data
|
|
|
|
+ } else {
|
|
|
|
+ this.equipTypeModalData = []
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ searchClick () {
|
|
|
|
+ this.tableParams.pageNum = 1
|
|
|
|
+ this.getTableData()
|
|
|
|
+ // this.$router.push({ path: '/MainPage/ApplicationManage', query: {deptName: "2"}})
|
|
|
|
+ },
|
|
|
|
+ resetClick (name) {
|
|
|
|
+ // this.dateRange = []
|
|
|
|
+ // this.tableParams.useDateBegin = ''
|
|
|
|
+ // this.tableParams.useDateEnd = ''
|
|
|
|
+ this.stationTypeData = [{ id: '-1', stationName: '站点' }]
|
|
|
|
+ this.$refs[name].resetFields()
|
|
|
|
+ this.tableParams.pageNum = 1
|
|
|
|
+ this.getTableData()
|
|
|
|
+ },
|
|
|
|
+ changeMoldaPicker (val) {
|
|
|
|
+ this.formOption.useDate = val
|
|
|
|
+ },
|
|
|
|
+ addClick () {
|
|
|
|
+ this.formOption = JSON.parse(JSON.stringify(defaultFrom))
|
|
|
|
+ this.title = '新增仪表'
|
|
|
|
+ this.showModal = true
|
|
|
|
+ },
|
|
|
|
+ detailClick (row) {
|
|
|
|
+ this.rowObj = row
|
|
|
|
+ this.detailStatus = true
|
|
|
|
+ this.$get('metroapi/equipment/equipmentDetail', {equipmentId:row.id}).then(res=>{
|
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
|
+ this.detailLabel = res.data
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.info(res.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ editClick (row) {
|
|
|
|
+ this.rowObj = row
|
|
|
|
+ this.formOption = JSON.parse(JSON.stringify(row));
|
|
|
|
+ this.formOption.lineId = this.formOption.lineId ? String(this.formOption.lineId) : '-1'
|
|
|
|
+ this.formOption.stationId = this.formOption.stationId ? String(this.formOption.stationId) : '-1'
|
|
|
|
+ this.getStationData(this.formOption.lineId)
|
|
|
|
+ this.appParams.applicationId = this.formOption.appId
|
|
|
|
+ this.getAddEquipType(this.appParams)
|
|
|
|
+ this.title = '编辑仪表'
|
|
|
|
+ this.showModal = true
|
|
|
|
+ },
|
|
|
|
+ delClick (row) {
|
|
|
|
+ this.rowObj = row
|
|
|
|
+ this.commonTitle = '确认删除'
|
|
|
|
+ this.activeColor = '#E92E2E'
|
|
|
|
+ this.activeClass = ''
|
|
|
|
+ this.modalTitle = '删除不影响已产生的操作和记录。'
|
|
|
|
+ this.modalStatus = true
|
|
|
|
+ },
|
|
|
|
+ modalChange (modalStatus) {
|
|
|
|
+ if (!modalStatus) {
|
|
|
|
+ this.$refs.formOption.resetFields();
|
|
|
|
+ this.stationTypeData = [{ id: '-1', stationName: '站点' }]
|
|
|
|
+ this.equipTypeModalData = []
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ modalOk (formName) {
|
|
|
|
+ let params = JSON.parse(JSON.stringify(this.formOption)) //把对象中的数据给了某个变量,改变一个对象的值,另一个对象也变化的解决方法
|
|
|
|
+ if (this.title == '新增仪表') {
|
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ this.$post('metroapi/instrument/addInstrument', params).then(res=>{
|
|
|
|
+ if ( res.httpCode == 1 ){
|
|
|
|
+ this.showModal = false
|
|
|
|
+ this.$Message.info(res.msg)
|
|
|
|
+ this.getTableData()
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.info(res.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ this.showModal = true
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ this.$post('metroapi/equipment/editEquipment', params).then(res=>{
|
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
|
+ this.showModal = false
|
|
|
|
+ this.$Message.info(res.msg)
|
|
|
|
+ this.getTableData()
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.info(res.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ this.showModal = true
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ modalCancel () {
|
|
|
|
+ this.showModal = false
|
|
|
|
+ },
|
|
|
|
+ commonOk () {
|
|
|
|
+ let params = {
|
|
|
|
+ instrumentId: this.rowObj.id
|
|
|
|
+ }
|
|
|
|
+ this.delData(params)
|
|
|
|
+ },
|
|
|
|
+ commonCancel () {
|
|
|
|
+ this.modalStatus = false
|
|
|
|
+ },
|
|
|
|
+ // 删除接口
|
|
|
|
+ delData (params) {
|
|
|
|
+ this.$get('metroapi/instrument/delInstrument',params).then(res=>{
|
|
|
|
+ if (res.httpCode == 1 ){
|
|
|
|
+ this.modalStatus = false
|
|
|
|
+ this.$Message.info(res.msg)
|
|
|
|
+ this.getTableData()
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.info(res.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+</script>
|
|
|
|
+<style scoped lang="stylus">
|
|
|
|
+.content-main-manage {
|
|
|
|
+ position: relative;
|
|
|
|
+ height: calc(100% - 50px);
|
|
|
|
+}
|
|
|
|
+.search-list {
|
|
|
|
+ display: flex;
|
|
|
|
+ padding: 10px 0 0;
|
|
|
|
+}
|
|
|
|
+.search-left {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ .ivu-select {
|
|
|
|
+ width: 150px;
|
|
|
|
+ height: 32px;
|
|
|
|
+ }
|
|
|
|
+ .ivu-select-single .ivu-select-selection {
|
|
|
|
+ height: 100%;
|
|
|
|
+ }
|
|
|
|
+ >>> .ivu-input {
|
|
|
|
+ width: 165px;
|
|
|
|
+ height: 32px;
|
|
|
|
+ }
|
|
|
|
+ >>> .ivu-date-picker-editor .ivu-input {
|
|
|
|
+ width: 210px;
|
|
|
|
+ }
|
|
|
|
+ >>> .ivu-input-prefix, >>> .ivu-input-suffix {
|
|
|
|
+ height: 32px;
|
|
|
|
+ line-height: 32px;
|
|
|
|
+ }
|
|
|
|
+ >>> .ivu-input-icon {
|
|
|
|
+ height: 32px;
|
|
|
|
+ line-height: 32px;
|
|
|
|
+ }
|
|
|
|
+ >>> .date-picker-main .ivu-date-picker-header {
|
|
|
|
+ border-bottom: 0.0052083333rem solid #204384;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.btn-container {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
+ padding-bottom: 10px;
|
|
|
|
+}
|
|
|
|
+.common-form {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
+}
|
|
|
|
+>>> .common-form-list .ivu-form-item {
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+}
|
|
|
|
+.manage-main-center {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: calc(100% - 150px);
|
|
|
|
+}
|
|
|
|
+.common-table {
|
|
|
|
+ max-height: 100%;
|
|
|
|
+}
|
|
|
|
+>>> .common-table .ivu-table th {
|
|
|
|
+ height: 51px;
|
|
|
|
+ }
|
|
|
|
+ >>> .common-table .ivu-table td {
|
|
|
|
+ height: 51px;
|
|
|
|
+ }
|
|
|
|
+ >>> .common-table .ivu-spin-fix {
|
|
|
|
+ top: 51px;
|
|
|
|
+ }
|
|
|
|
+ >>> .app-table .ivu-spin-fix {
|
|
|
|
+ height: calc(100vh - 375px);
|
|
|
|
+ }
|
|
|
|
+ >>> .ivu-table-tip {
|
|
|
|
+ background: url('../../../assets/images/noData.png') no-repeat center;
|
|
|
|
+}
|
|
|
|
+>>> .app-table .ivu-table-tip {
|
|
|
|
+ height: calc(100vh - 375px);
|
|
|
|
+ }
|
|
|
|
+ >>> .common-table .ivu-table-tip table {
|
|
|
|
+ display: none;
|
|
|
|
+}
|
|
|
|
+ >>> .modal-table {
|
|
|
|
+ overflow: auto !important;
|
|
|
|
+ }
|
|
|
|
+ >>> .modal-table .ivu-spin-fix {
|
|
|
|
+ height: 200px;
|
|
|
|
+ }
|
|
|
|
+ >>> .modal-table .ivu-table-tip {
|
|
|
|
+ height: 200px;
|
|
|
|
+ }
|
|
|
|
+.common-page {
|
|
|
|
+ margin-top: 15px;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
+ position: absolute;
|
|
|
|
+ bottom: 0;
|
|
|
|
+ right: 0;
|
|
|
|
+}
|
|
|
|
+.common-page-total {
|
|
|
|
+ color: #fff;
|
|
|
|
+ padding-right: 10px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ span {
|
|
|
|
+ color #409EFF;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+>>> .modal-tabs-item {
|
|
|
|
+ margin-top: 10px;
|
|
|
|
+}
|
|
|
|
+>>> .common-modal-top-text {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ color: #29A0FF;
|
|
|
|
+ line-height: 42px;
|
|
|
|
+ border-left: 3px solid #1590F1;
|
|
|
|
+ padding-left: 12px;
|
|
|
|
+}
|
|
|
|
+>>> .common-modal-content {
|
|
|
|
+ display: flex;
|
|
|
|
+ width: 100%;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
+ border-right: 1px solid #21437B;
|
|
|
|
+}
|
|
|
|
+>>> .modal-content-item {
|
|
|
|
+ width: 50%;
|
|
|
|
+ display: flex;
|
|
|
|
+}
|
|
|
|
+>>> .item-especial {
|
|
|
|
+ width: 100%;
|
|
|
|
+}
|
|
|
|
+>>> .modal-content-item-name {
|
|
|
|
+ width: 50%;
|
|
|
|
+ height: 45px;
|
|
|
|
+ line-height: 45px;
|
|
|
|
+ background: #13305F;
|
|
|
|
+ border-top: 1px solid #21437B;
|
|
|
|
+ border-left: 1px solid #21437B;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #F5F5F5;
|
|
|
|
+ padding-left: 20px;
|
|
|
|
+}
|
|
|
|
+>>> .modal-content-item-value {
|
|
|
|
+ width: 50%;
|
|
|
|
+ height: 45px;
|
|
|
|
+ line-height: 45px;
|
|
|
|
+ background: #06214D;
|
|
|
|
+ border-top: 1px solid #21437B;
|
|
|
|
+ border-left: 1px solid #21437B;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #F5F5F5;
|
|
|
|
+ padding-left: 20px;
|
|
|
|
+}
|
|
|
|
+>>> .item-especial .modal-content-item-name{
|
|
|
|
+ width: 25%;
|
|
|
|
+ height: 45px;
|
|
|
|
+ line-height: 45px;
|
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
|
+}
|
|
|
|
+>>> .item-especial .modal-content-item-value{
|
|
|
|
+ width: 75%;
|
|
|
|
+ height: 45px;
|
|
|
|
+ line-height: 45px;
|
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
|
+}
|
|
|
|
+>>> .item-especial-bot .modal-content-item-name {
|
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
|
+}
|
|
|
|
+>>> .item-especial-bot .modal-content-item-value {
|
|
|
|
+ border-bottom: 1px solid #21437B;
|
|
|
|
+}
|
|
|
|
+/deep/ .ivu-input::-webkit-input-placeholder{
|
|
|
|
+ color: #718EBD;
|
|
|
|
+}
|
|
|
|
+/deep/ .ivu-input::-moz-placeholder{ /* Mozilla Firefox 19+ */
|
|
|
|
+ color: #718EBD;
|
|
|
|
+}
|
|
|
|
+/deep/ .ivu-input::-moz-placeholder{ /* Mozilla Firefox 4 to 18 */
|
|
|
|
+ color: #718EBD;
|
|
|
|
+}
|
|
|
|
+/deep/ .ivu-input::-ms-input-placeholder{ /* Internet Explorer 10-11 */
|
|
|
|
+ color: #718EBD;
|
|
|
|
+}
|
|
|
|
+>>> .modal-content-item-value .ivu-tooltip {
|
|
|
|
+ width: 100%;
|
|
|
|
+}
|
|
|
|
+>>> .modal-content-item-value .ivu-tooltip-rel {
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow:ellipsis;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+}
|
|
|
|
+</style>
|