projects/mes-test #133
@@ -33,6 +33,7 @@ export default {
 | 
			
		||||
			addUrl: '',
 | 
			
		||||
			pageUrl: '',
 | 
			
		||||
			infoUrl: '',
 | 
			
		||||
			deleteUrl: '',
 | 
			
		||||
			basePath: '',
 | 
			
		||||
			form: {}
 | 
			
		||||
		};
 | 
			
		||||
@@ -60,7 +61,7 @@ export default {
 | 
			
		||||
			return this.$axios({
 | 
			
		||||
				url,
 | 
			
		||||
				method,
 | 
			
		||||
				params: method === 'get' ? payload : null,
 | 
			
		||||
				params: (method === 'get' || method === 'delete') ? payload : null,
 | 
			
		||||
				data: method !== 'get' ? payload : null,
 | 
			
		||||
			})
 | 
			
		||||
		},
 | 
			
		||||
@@ -77,6 +78,7 @@ export default {
 | 
			
		||||
			return this.http(this.infoUrl == '' ? this.infoPath : this.infoUrl, 'get', payload);
 | 
			
		||||
		},
 | 
			
		||||
		del(payload) {
 | 
			
		||||
			debugger;
 | 
			
		||||
			return this.http(this.deleteUrl == '' ? this.deletePath : this.deleteUrl, 'delete', payload);
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,131 +6,150 @@
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <div style="margin: 20px">
 | 
			
		||||
      <el-button v-for="(item, index) in buttonList" :key="index" :class="[item.actived ? 'activeButton': 'normalButton']" @click="changeChart(index)">{{ item.name }}</el-button>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div id="chart" ref="chartDiv" :class="className" :style="{height:height,width:width}" />
 | 
			
		||||
  </div>
 | 
			
		||||
	<div class="balace-chart">
 | 
			
		||||
		<div style="margin: 20px">
 | 
			
		||||
			<el-button
 | 
			
		||||
				v-for="(item, index) in buttonList"
 | 
			
		||||
				:key="index"
 | 
			
		||||
				:class="[item.actived ? 'activeButton' : '']"
 | 
			
		||||
				@click="changeChart(index)">
 | 
			
		||||
				{{ item.name }}
 | 
			
		||||
			</el-button>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div
 | 
			
		||||
			id="chart"
 | 
			
		||||
			ref="chartDiv"
 | 
			
		||||
			:class="className"
 | 
			
		||||
			:style="{ height: height, width: width }" />
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import * as echarts from 'echarts'
 | 
			
		||||
require('echarts/theme/macarons') // echarts theme
 | 
			
		||||
import * as echarts from 'echarts';
 | 
			
		||||
require('echarts/theme/macarons'); // echarts theme
 | 
			
		||||
// import resize from './mixins/resize'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  // mixins: [resize],
 | 
			
		||||
  props: {
 | 
			
		||||
    className: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: 'chart'
 | 
			
		||||
    },
 | 
			
		||||
    width: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: '100%'
 | 
			
		||||
    },
 | 
			
		||||
    height: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: '350px'
 | 
			
		||||
    },
 | 
			
		||||
    // autoResize: {
 | 
			
		||||
    //   type: Boolean,
 | 
			
		||||
    //   default: true
 | 
			
		||||
    // }
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      chart: null,
 | 
			
		||||
      dataArray: [],
 | 
			
		||||
      xDatas: [],
 | 
			
		||||
      buttonList: []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    // this.initChart()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    changeChart(index) {
 | 
			
		||||
      this.setOptions(this.xDatas, this.dataArray[index])
 | 
			
		||||
      this.buttonList.forEach((item, s) => {
 | 
			
		||||
        if (index === s) {
 | 
			
		||||
          // item.actived = true
 | 
			
		||||
          this.$nextTick(() =>{
 | 
			
		||||
            // item.actived = true
 | 
			
		||||
            this.$set(item, 'actived', true)
 | 
			
		||||
          })
 | 
			
		||||
        } else {
 | 
			
		||||
          // item.actived = false
 | 
			
		||||
          this.$nextTick(() =>{
 | 
			
		||||
            // item.actived = false
 | 
			
		||||
            this.$set(item, 'actived', false)
 | 
			
		||||
          })
 | 
			
		||||
          // this.$set(item, 'actived', false)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      console.log('看一下数22222据', this.dataArray)
 | 
			
		||||
    },
 | 
			
		||||
    initChart(xData, yData, lineName) {
 | 
			
		||||
      this.dataArray = yData
 | 
			
		||||
      this.buttonList = this.dataArray.map((item, index) => {
 | 
			
		||||
        return {
 | 
			
		||||
          'name': item.name,
 | 
			
		||||
          'actived': index === 0 ? true : false
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      console.log('看一下数据', this.dataArray)
 | 
			
		||||
      this.xDatas = xData
 | 
			
		||||
      this.chart = echarts.init(this.$refs.chartDiv, 'macarons')
 | 
			
		||||
      // this.chart = echarts.init(document.getElementById('chart'), 'macarons')
 | 
			
		||||
      // this.setOptions(xData, yData[0], lineName)
 | 
			
		||||
    },
 | 
			
		||||
    setOptions(xData, dataList, lineName) {
 | 
			
		||||
      // let seriesData = []
 | 
			
		||||
        // lineName.forEach((item,index) => {
 | 
			
		||||
        //   seriesData.push({
 | 
			
		||||
        //     name: item,
 | 
			
		||||
        //     data: yData[index],
 | 
			
		||||
        //     type: 'line',
 | 
			
		||||
        //   })
 | 
			
		||||
        // })
 | 
			
		||||
      this.chart.setOption({
 | 
			
		||||
        xAxis: {
 | 
			
		||||
          type: 'category',
 | 
			
		||||
          data: xData
 | 
			
		||||
        },
 | 
			
		||||
        tooltip: {
 | 
			
		||||
          trigger: 'axis'
 | 
			
		||||
        },
 | 
			
		||||
        legend: {
 | 
			
		||||
          data:lineName
 | 
			
		||||
        },
 | 
			
		||||
        yAxis: {
 | 
			
		||||
          type: 'value'
 | 
			
		||||
        },
 | 
			
		||||
        series: [
 | 
			
		||||
          {
 | 
			
		||||
            name: '设备CT',
 | 
			
		||||
            data: dataList.eqData,
 | 
			
		||||
            type: 'line',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            name: '产线CT',
 | 
			
		||||
            data: dataList.plData,
 | 
			
		||||
            type: 'line',
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
	// mixins: [resize],
 | 
			
		||||
	props: {
 | 
			
		||||
		className: {
 | 
			
		||||
			type: String,
 | 
			
		||||
			default: 'chart',
 | 
			
		||||
		},
 | 
			
		||||
		width: {
 | 
			
		||||
			type: String,
 | 
			
		||||
			default: '100%',
 | 
			
		||||
		},
 | 
			
		||||
		height: {
 | 
			
		||||
			type: String,
 | 
			
		||||
			default: '350px',
 | 
			
		||||
		},
 | 
			
		||||
		// autoResize: {
 | 
			
		||||
		//   type: Boolean,
 | 
			
		||||
		//   default: true
 | 
			
		||||
		// }
 | 
			
		||||
	},
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			chart: null,
 | 
			
		||||
			dataArray: [],
 | 
			
		||||
			xDatas: [],
 | 
			
		||||
			buttonList: [],
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		// this.initChart()
 | 
			
		||||
		this.$nextTick(() => {
 | 
			
		||||
			this.changeChart(0);
 | 
			
		||||
		});
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		changeChart(index) {
 | 
			
		||||
			this.setOptions(this.xDatas, this.dataArray[index]);
 | 
			
		||||
			this.buttonList.forEach((item, s) => {
 | 
			
		||||
				if (index === s) {
 | 
			
		||||
					// item.actived = true
 | 
			
		||||
					this.$nextTick(() => {
 | 
			
		||||
						// item.actived = true
 | 
			
		||||
						this.$set(item, 'actived', true);
 | 
			
		||||
					});
 | 
			
		||||
				} else {
 | 
			
		||||
					// item.actived = false
 | 
			
		||||
					this.$nextTick(() => {
 | 
			
		||||
						// item.actived = false
 | 
			
		||||
						this.$set(item, 'actived', false);
 | 
			
		||||
					});
 | 
			
		||||
					// this.$set(item, 'actived', false)
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
			console.log('看一下数22222据', this.dataArray);
 | 
			
		||||
		},
 | 
			
		||||
		initChart(xData, yData, lineName) {
 | 
			
		||||
			this.dataArray = yData;
 | 
			
		||||
			this.buttonList = this.dataArray.map((item, index) => {
 | 
			
		||||
				return {
 | 
			
		||||
					name: item.name,
 | 
			
		||||
					actived: index === 0 ? true : false,
 | 
			
		||||
				};
 | 
			
		||||
			});
 | 
			
		||||
			console.log('看一下数据', this.dataArray);
 | 
			
		||||
			this.xDatas = xData;
 | 
			
		||||
			this.chart = echarts.init(this.$refs.chartDiv, 'macarons');
 | 
			
		||||
			// this.chart = echarts.init(document.getElementById('chart'), 'macarons')
 | 
			
		||||
			// this.setOptions(xData, yData[0], lineName)
 | 
			
		||||
		},
 | 
			
		||||
		setOptions(xData, dataList, lineName) {
 | 
			
		||||
			// let seriesData = []
 | 
			
		||||
			// lineName.forEach((item,index) => {
 | 
			
		||||
			//   seriesData.push({
 | 
			
		||||
			//     name: item,
 | 
			
		||||
			//     data: yData[index],
 | 
			
		||||
			//     type: 'line',
 | 
			
		||||
			//   })
 | 
			
		||||
			// })
 | 
			
		||||
			this.chart.setOption({
 | 
			
		||||
				xAxis: {
 | 
			
		||||
					type: 'category',
 | 
			
		||||
					data: xData,
 | 
			
		||||
				},
 | 
			
		||||
				tooltip: {
 | 
			
		||||
					trigger: 'axis',
 | 
			
		||||
				},
 | 
			
		||||
				legend: {
 | 
			
		||||
					data: lineName,
 | 
			
		||||
				},
 | 
			
		||||
				yAxis: {
 | 
			
		||||
					type: 'value',
 | 
			
		||||
				},
 | 
			
		||||
				series: [
 | 
			
		||||
					{
 | 
			
		||||
						name: '设备CT',
 | 
			
		||||
						data: dataList.eqData,
 | 
			
		||||
						type: 'line',
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						name: '产线CT',
 | 
			
		||||
						data: dataList.plData,
 | 
			
		||||
						type: 'line',
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
.activeButton {
 | 
			
		||||
  background-color: rgb(93,159,255);
 | 
			
		||||
}
 | 
			
		||||
.normalButton {
 | 
			
		||||
  background-color: none;
 | 
			
		||||
.balace-chart >>> .el-button {
 | 
			
		||||
	background: #e3e3e3;
 | 
			
		||||
	color: #333;
 | 
			
		||||
	transition: all 0.3s;
 | 
			
		||||
	border: none;
 | 
			
		||||
 | 
			
		||||
	&.activeButton,
 | 
			
		||||
	&:hover {
 | 
			
		||||
		background: #0b58ff;
 | 
			
		||||
		color: #fff;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -28,59 +28,96 @@
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicPage from '../../../core/mixins/basic-page';
 | 
			
		||||
import { parseTime } from '../../../core/mixins/code-filter';
 | 
			
		||||
import moment from 'moment';
 | 
			
		||||
import {
 | 
			
		||||
	getEqAnalysis,
 | 
			
		||||
	exportEqAnalysisExcel
 | 
			
		||||
	exportEqAnalysisExcel,
 | 
			
		||||
} from '@/api/equipment/analysis/statistics';
 | 
			
		||||
 | 
			
		||||
const tableProps = [
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'recordTime',
 | 
			
		||||
		label: '时间段',
 | 
			
		||||
		filter: parseTime
 | 
			
		||||
		filter: (val) => {
 | 
			
		||||
			if (val && val.length > 0) {
 | 
			
		||||
				return (
 | 
			
		||||
					moment(val[0]).format('YYYY-MM-DD HH:mm:ss') +
 | 
			
		||||
					' ~ ' +
 | 
			
		||||
					moment(val[1]).format('YYYY-MM-DD HH:mm:ss')
 | 
			
		||||
				);
 | 
			
		||||
			}
 | 
			
		||||
			return '-';
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'lineName',
 | 
			
		||||
		label: '产线'
 | 
			
		||||
		label: '产线',
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'sectionName',
 | 
			
		||||
		label: '工段'
 | 
			
		||||
		label: '工段',
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'equipmentName',
 | 
			
		||||
		label: '设备名称'
 | 
			
		||||
		label: '设备名称',
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'equipmentType',
 | 
			
		||||
		label: '设备类型'
 | 
			
		||||
		label: '设备类型',
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'workTime',
 | 
			
		||||
		label: '工作时间累积(h)'
 | 
			
		||||
		label: '工作时间累积(h)',
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'repairCount',
 | 
			
		||||
		label: '维修次数'
 | 
			
		||||
		label: '维修次数',
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'maintainCount',
 | 
			
		||||
		label: '保养次数'
 | 
			
		||||
	}
 | 
			
		||||
		label: '保养次数',
 | 
			
		||||
	},
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	mixins: [basicPage],
 | 
			
		||||
	data() {
 | 
			
		||||
		const today = new Date();
 | 
			
		||||
 | 
			
		||||
		const todayStart = new Date(
 | 
			
		||||
			today.getFullYear(),
 | 
			
		||||
			today.getMonth(),
 | 
			
		||||
			today.getDate(),
 | 
			
		||||
			0,
 | 
			
		||||
			0,
 | 
			
		||||
			0
 | 
			
		||||
		);
 | 
			
		||||
		const todayEnd = new Date(
 | 
			
		||||
			today.getFullYear(),
 | 
			
		||||
			today.getMonth(),
 | 
			
		||||
			today.getDate(),
 | 
			
		||||
			23,
 | 
			
		||||
			59,
 | 
			
		||||
			59
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		return {
 | 
			
		||||
			urlOptions: {
 | 
			
		||||
				getDataListURL: getEqAnalysis,
 | 
			
		||||
				exportURL: exportEqAnalysisExcel,
 | 
			
		||||
			},
 | 
			
		||||
			tableProps,
 | 
			
		||||
			tableBtn: [].filter((v)=>v),
 | 
			
		||||
			tableBtn: [].filter((v) => v),
 | 
			
		||||
			tableData: [],
 | 
			
		||||
			listQuery: {
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				total: 1,
 | 
			
		||||
				recordTime: [
 | 
			
		||||
					moment(todayStart).format('YYYY-MM-DD HH:mm:ss'),
 | 
			
		||||
					moment(todayEnd).format('YYYY-MM-DD HH:mm:ss'),
 | 
			
		||||
				],
 | 
			
		||||
			},
 | 
			
		||||
			formConfig: [
 | 
			
		||||
				{
 | 
			
		||||
					type: 'input',
 | 
			
		||||
@@ -101,7 +138,10 @@ export default {
 | 
			
		||||
					endPlaceholder: '结束日期',
 | 
			
		||||
					defaultTime: ['00:00:00', '23:59:59'],
 | 
			
		||||
					param: 'recordTime',
 | 
			
		||||
					defaultSelect: [],
 | 
			
		||||
					defaultSelect: [
 | 
			
		||||
						moment(todayStart).format('YYYY-MM-DD HH:mm:ss'),
 | 
			
		||||
						moment(todayEnd).format('YYYY-MM-DD HH:mm:ss'),
 | 
			
		||||
					],
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'button',
 | 
			
		||||
@@ -113,33 +153,38 @@ export default {
 | 
			
		||||
					type: 'separate',
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: this.$auth.hasPermi('equipment:analysis-statistics:export') ? 'button' : '',
 | 
			
		||||
					type: this.$auth.hasPermi('equipment:analysis-statistics:export')
 | 
			
		||||
						? 'button'
 | 
			
		||||
						: '',
 | 
			
		||||
					btnName: '导出',
 | 
			
		||||
					name: 'export',
 | 
			
		||||
					color: 'warning',
 | 
			
		||||
					plain: true
 | 
			
		||||
					plain: true,
 | 
			
		||||
				},
 | 
			
		||||
			],
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	created() {},
 | 
			
		||||
	mounted() {},
 | 
			
		||||
	methods: {
 | 
			
		||||
		// 获取数据列表
 | 
			
		||||
    getDataList() {
 | 
			
		||||
      this.dataListLoading = true;
 | 
			
		||||
      this.urlOptions.getDataListURL(this.listQuery).then(response => {
 | 
			
		||||
        this.tableData = response.data.list;
 | 
			
		||||
        this.listQuery.total = response.data.total;
 | 
			
		||||
        this.dataListLoading = false;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
		getDataList() {
 | 
			
		||||
			this.dataListLoading = true;
 | 
			
		||||
			this.urlOptions.getDataListURL(this.listQuery).then((response) => {
 | 
			
		||||
				this.tableData = response.data.list;
 | 
			
		||||
				this.listQuery.total = response.data.total;
 | 
			
		||||
				this.dataListLoading = false;
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		buttonClick(val) {
 | 
			
		||||
			switch (val.btnName) {
 | 
			
		||||
				case 'search':
 | 
			
		||||
					this.listQuery.pageNo = 1;
 | 
			
		||||
					this.listQuery.pageSize = 10;
 | 
			
		||||
					this.listQuery.equipmentName = val.name ? val.name : undefined;
 | 
			
		||||
					this.listQuery.recordTime = val.recordTime ? val.recordTime : undefined;
 | 
			
		||||
					this.listQuery.recordTime = val.recordTime
 | 
			
		||||
						? val.recordTime
 | 
			
		||||
						: undefined;
 | 
			
		||||
					this.getDataList();
 | 
			
		||||
					break;
 | 
			
		||||
				case 'reset':
 | 
			
		||||
@@ -158,20 +203,24 @@ export default {
 | 
			
		||||
					console.log(val);
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		 /** 导出按钮操作 */
 | 
			
		||||
    handleExport() {
 | 
			
		||||
      // 处理查询参数
 | 
			
		||||
      let params = { ...this.listQuery };
 | 
			
		||||
      params.pageNo = undefined;
 | 
			
		||||
      params.pageSize = undefined;
 | 
			
		||||
      this.$modal.confirm('是否确认导出所有数据项?').then(() => {
 | 
			
		||||
        this.exportLoading = true;
 | 
			
		||||
        return this.urlOptions.exportURL(params);
 | 
			
		||||
      }).then(response => {
 | 
			
		||||
        this.$download.excel(response, '设备统计分析.xls');
 | 
			
		||||
        this.exportLoading = false;
 | 
			
		||||
      }).catch(() => { });
 | 
			
		||||
    }
 | 
			
		||||
		/** 导出按钮操作 */
 | 
			
		||||
		handleExport() {
 | 
			
		||||
			// 处理查询参数
 | 
			
		||||
			let params = { ...this.listQuery };
 | 
			
		||||
			params.pageNo = undefined;
 | 
			
		||||
			params.pageSize = undefined;
 | 
			
		||||
			this.$modal
 | 
			
		||||
				.confirm('是否确认导出所有数据项?')
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					this.exportLoading = true;
 | 
			
		||||
					return this.urlOptions.exportURL(params);
 | 
			
		||||
				})
 | 
			
		||||
				.then((response) => {
 | 
			
		||||
					this.$download.excel(response, '设备统计分析.xls');
 | 
			
		||||
					this.exportLoading = false;
 | 
			
		||||
				})
 | 
			
		||||
				.catch(() => {});
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -237,6 +237,7 @@ export default {
 | 
			
		||||
					label: '工厂',
 | 
			
		||||
					placeholder: '请选择工厂',
 | 
			
		||||
					param: 'factoryId',
 | 
			
		||||
					filterable: true,
 | 
			
		||||
					selectOptions: [],
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
@@ -244,6 +245,7 @@ export default {
 | 
			
		||||
					label: '产线',
 | 
			
		||||
					placeholder: '请选择产线',
 | 
			
		||||
					param: 'lineId',
 | 
			
		||||
					filterable: true,
 | 
			
		||||
					selectOptions: [],
 | 
			
		||||
				},
 | 
			
		||||
				// 选项切换
 | 
			
		||||
 
 | 
			
		||||
@@ -310,7 +310,7 @@ export default {
 | 
			
		||||
			this.$modal
 | 
			
		||||
				.confirm('是否确认删除记录"' + row.name + '"?')
 | 
			
		||||
				.then(function () {
 | 
			
		||||
					return this.delete({ id });
 | 
			
		||||
					return this.del({ id });
 | 
			
		||||
				})
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					this.getList();
 | 
			
		||||
 
 | 
			
		||||
@@ -198,26 +198,23 @@ export default {
 | 
			
		||||
					prop: 'createTime',
 | 
			
		||||
					label: '添加时间',
 | 
			
		||||
					fixed: true,
 | 
			
		||||
					width: 180,
 | 
			
		||||
					filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
 | 
			
		||||
				},
 | 
			
		||||
				{ width: 240, prop: 'code', label: '报警编码' },
 | 
			
		||||
				{ prop: 'code', label: '报警编码' },
 | 
			
		||||
				{
 | 
			
		||||
					width: 100,
 | 
			
		||||
					prop: 'type',
 | 
			
		||||
					label: '报警类型',
 | 
			
		||||
					filter: (val) =>
 | 
			
		||||
						val != null ? ['-', '字符型', '布尔型', '-'][val] : '-',
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					width: 90,
 | 
			
		||||
					prop: 'grade',
 | 
			
		||||
					label: '报警级别',
 | 
			
		||||
					filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL),
 | 
			
		||||
				},
 | 
			
		||||
				{ width: 180, prop: 'alarmCode', label: '设备报警编码' },
 | 
			
		||||
				{ width: 128, prop: 'plcParamName', label: '参数列名' },
 | 
			
		||||
				{ width: 128, prop: 'alarmContent', label: '报警内容' },
 | 
			
		||||
				{ prop: 'alarmCode', label: '设备报警编码' },
 | 
			
		||||
				{ prop: 'plcParamName', label: '参数列名' },
 | 
			
		||||
				{ prop: 'alarmContent', label: '报警内容' },
 | 
			
		||||
			],
 | 
			
		||||
			alarmForm: {
 | 
			
		||||
				id: undefined,
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@
 | 
			
		||||
import moment from 'moment';
 | 
			
		||||
import basicPageMixin from '@/mixins/lb/basicPageMixin';
 | 
			
		||||
import { publicFormatter } from '@/utils/dict';
 | 
			
		||||
import { deleteCheck } from "@/api/equipment/base/inspection/settings";
 | 
			
		||||
import { deleteCheck } from '@/api/equipment/base/inspection/settings';
 | 
			
		||||
 | 
			
		||||
const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
 | 
			
		||||
 | 
			
		||||
@@ -128,15 +128,21 @@ export default {
 | 
			
		||||
						label: '巡检内容编号',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-check/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '巡检内容编号不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{
 | 
			
		||||
								required: true,
 | 
			
		||||
								message: '巡检内容编号不能为空',
 | 
			
		||||
								trigger: 'blur',
 | 
			
		||||
							},
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '巡检项目',
 | 
			
		||||
						prop: 'program',
 | 
			
		||||
						rules: [{ required: true, message: '巡检项目不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '巡检项目不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -144,10 +150,10 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '巡检内容',
 | 
			
		||||
						prop: 'content',
 | 
			
		||||
						rules: [{ required: true, message: '巡检内容不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '巡检内容不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备注',
 | 
			
		||||
@@ -168,7 +174,7 @@ export default {
 | 
			
		||||
				code: '',
 | 
			
		||||
				program: '',
 | 
			
		||||
				id: undefined,
 | 
			
		||||
				content: ''
 | 
			
		||||
				content: '',
 | 
			
		||||
			},
 | 
			
		||||
			basePath: '/base/equipment-check',
 | 
			
		||||
			mode: null,
 | 
			
		||||
@@ -271,10 +277,10 @@ export default {
 | 
			
		||||
		handleDelete(row) {
 | 
			
		||||
			const id = row.id;
 | 
			
		||||
			this.$modal
 | 
			
		||||
				.confirm('是否确认删除巡检项目名称为"' + row.program + '"的数据项?')
 | 
			
		||||
				.confirm('是否确认删除该巡检项目?')
 | 
			
		||||
				.then(function () {
 | 
			
		||||
					// return this.delete({ id });
 | 
			
		||||
					return deleteCheck(id)
 | 
			
		||||
					// return this.del({ id });
 | 
			
		||||
					return deleteCheck(id);
 | 
			
		||||
				})
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					this.getList();
 | 
			
		||||
 
 | 
			
		||||
@@ -105,6 +105,7 @@ export default {
 | 
			
		||||
					label: '设备',
 | 
			
		||||
					placeholder: '请选择设备',
 | 
			
		||||
					param: 'equipmentId',
 | 
			
		||||
					filterable: true
 | 
			
		||||
				},
 | 
			
		||||
				// 开始结束时间 
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,6 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import moment from 'moment';
 | 
			
		||||
import basicPageMixin from '@/mixins/lb/basicPageMixin';
 | 
			
		||||
import addOrUpdata from './add-or-updata.vue';
 | 
			
		||||
// import { publicFormatter } from '@/utils/dict';
 | 
			
		||||
@@ -101,9 +100,9 @@ export default {
 | 
			
		||||
				{ prop: 'lineName', label: '产线' },
 | 
			
		||||
				{ prop: 'sectionName', label: '工段' },
 | 
			
		||||
				{ prop: 'equipmentName', label: '设备' },
 | 
			
		||||
				{ prop: 'equipmentCode', label: '设备编码' },
 | 
			
		||||
				{ prop: 'responsible', label: '负责人' },
 | 
			
		||||
				{ prop: 'equipmentCode', label: '描述' },
 | 
			
		||||
				{ prop: 'checkNumber', label: '巡检条数' } // TODO: 操作 选项,四个,群里询问
 | 
			
		||||
				{ prop: 'checkNumber', label: '巡检条数' }, // TODO: 操作 选项,四个,群里询问
 | 
			
		||||
			],
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
				{
 | 
			
		||||
@@ -151,14 +150,18 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '配置名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '配置名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '配置名称不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '配置编码',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-check-config/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '配置编码不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '配置编码不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -167,7 +170,9 @@ export default {
 | 
			
		||||
						label: '设备名称',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						url: '/base/core-equipment/listAll',
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '设备名称不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
@@ -288,9 +293,9 @@ export default {
 | 
			
		||||
		handleDelete(row) {
 | 
			
		||||
			const id = row.id;
 | 
			
		||||
			this.$modal
 | 
			
		||||
				.confirm('是否确认删除记录"' + row.name + '"?')
 | 
			
		||||
				.then(function () {
 | 
			
		||||
					return this.delete({ id });
 | 
			
		||||
				.confirm('是否确认删除该巡检记录?')
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					return this.del({ id });
 | 
			
		||||
				})
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					this.getList();
 | 
			
		||||
@@ -317,14 +322,14 @@ export default {
 | 
			
		||||
		},
 | 
			
		||||
		handleDetail({ id }) {
 | 
			
		||||
			this.addOrUpdateVisible = true;
 | 
			
		||||
			this.addOrEditTitle = "详情";
 | 
			
		||||
			this.addOrEditTitle = '详情';
 | 
			
		||||
			this.$nextTick(() => {
 | 
			
		||||
				this.$refs.addOrUpdate.init(id, true);
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		handleAddDetail({ id }) {
 | 
			
		||||
			this.addOrUpdateVisible = true;
 | 
			
		||||
			this.addOrEditTitle = "添加巡检";
 | 
			
		||||
			this.addOrEditTitle = '添加巡检';
 | 
			
		||||
			this.$nextTick(() => {
 | 
			
		||||
				this.$refs.addOrUpdate.init(id);
 | 
			
		||||
			});
 | 
			
		||||
 
 | 
			
		||||
@@ -106,37 +106,37 @@ export default {
 | 
			
		||||
					param: 'equipmentName',
 | 
			
		||||
				},
 | 
			
		||||
				// 时间段
 | 
			
		||||
				{
 | 
			
		||||
					type: 'datePicker',
 | 
			
		||||
					label: '时间段',
 | 
			
		||||
					dateType: 'daterange', // datetimerange
 | 
			
		||||
					format: 'yyyy-MM-dd',
 | 
			
		||||
					valueFormat: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
					// valueFormat: 'timestamp',
 | 
			
		||||
					rangeSeparator: '-',
 | 
			
		||||
					startPlaceholder: '开始日期',
 | 
			
		||||
					endPlaceholder: '结束日期',
 | 
			
		||||
					defaultTime: ['00:00:00', '23:59:59'],
 | 
			
		||||
					param: 'createTime',
 | 
			
		||||
					// defaultSelect: [
 | 
			
		||||
					// 	new Date(y, m, d)
 | 
			
		||||
					// 		.toLocaleString()
 | 
			
		||||
					// 		.split('/')
 | 
			
		||||
					// 		.map((item, index) => {
 | 
			
		||||
					// 			if (index == 1 || index == 2) return item.padStart(2, '0');
 | 
			
		||||
					// 			return item;
 | 
			
		||||
					// 		})
 | 
			
		||||
					// 		.join('-'),
 | 
			
		||||
					// 	new Date(y, m, d, 23, 59, 59)
 | 
			
		||||
					// 		.toLocaleString()
 | 
			
		||||
					// 		.split('/')
 | 
			
		||||
					// 		.map((item, index) => {
 | 
			
		||||
					// 			if (index == 1 || index == 2) return item.padStart(2, '0');
 | 
			
		||||
					// 			return item;
 | 
			
		||||
					// 		})
 | 
			
		||||
					// 		.join('-'),
 | 
			
		||||
					// ],
 | 
			
		||||
				},
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: 'datePicker',
 | 
			
		||||
				// 	label: '时间段',
 | 
			
		||||
				// 	dateType: 'daterange', // datetimerange
 | 
			
		||||
				// 	format: 'yyyy-MM-dd',
 | 
			
		||||
				// 	valueFormat: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
				// 	// valueFormat: 'timestamp',
 | 
			
		||||
				// 	rangeSeparator: '-',
 | 
			
		||||
				// 	startPlaceholder: '开始日期',
 | 
			
		||||
				// 	endPlaceholder: '结束日期',
 | 
			
		||||
				// 	defaultTime: ['00:00:00', '23:59:59'],
 | 
			
		||||
				// 	param: 'createTime',
 | 
			
		||||
				// 	// defaultSelect: [
 | 
			
		||||
				// 	// 	new Date(y, m, d)
 | 
			
		||||
				// 	// 		.toLocaleString()
 | 
			
		||||
				// 	// 		.split('/')
 | 
			
		||||
				// 	// 		.map((item, index) => {
 | 
			
		||||
				// 	// 			if (index == 1 || index == 2) return item.padStart(2, '0');
 | 
			
		||||
				// 	// 			return item;
 | 
			
		||||
				// 	// 		})
 | 
			
		||||
				// 	// 		.join('-'),
 | 
			
		||||
				// 	// 	new Date(y, m, d, 23, 59, 59)
 | 
			
		||||
				// 	// 		.toLocaleString()
 | 
			
		||||
				// 	// 		.split('/')
 | 
			
		||||
				// 	// 		.map((item, index) => {
 | 
			
		||||
				// 	// 			if (index == 1 || index == 2) return item.padStart(2, '0');
 | 
			
		||||
				// 	// 			return item;
 | 
			
		||||
				// 	// 		})
 | 
			
		||||
				// 	// 		.join('-'),
 | 
			
		||||
				// 	// ],
 | 
			
		||||
				// },
 | 
			
		||||
				{
 | 
			
		||||
					type: 'button',
 | 
			
		||||
					btnName: '查询',
 | 
			
		||||
 
 | 
			
		||||
@@ -121,14 +121,14 @@ export default {
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'select',
 | 
			
		||||
					label: '保养计划',
 | 
			
		||||
					placeholder: '请选择保养计划',
 | 
			
		||||
					label: '计划名称',
 | 
			
		||||
					placeholder: '请选择计划名称',
 | 
			
		||||
					param: 'maintainPlanId',
 | 
			
		||||
				},
 | 
			
		||||
				// 开始结束时间
 | 
			
		||||
				{
 | 
			
		||||
					type: 'datePicker',
 | 
			
		||||
					label: '时间段',
 | 
			
		||||
					label: '保养开始时间',
 | 
			
		||||
					dateType: 'daterange', // datetimerange
 | 
			
		||||
					format: 'yyyy-MM-dd',
 | 
			
		||||
					valueFormat: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
 
 | 
			
		||||
@@ -129,6 +129,7 @@ export default {
 | 
			
		||||
					label: '设备',
 | 
			
		||||
					placeholder: '请选择设备',
 | 
			
		||||
					param: 'equipmentId',
 | 
			
		||||
					filterable: true,
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'select',
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@
 | 
			
		||||
import moment from 'moment';
 | 
			
		||||
import basicPageMixin from '@/mixins/lb/basicPageMixin';
 | 
			
		||||
import { publicFormatter } from '@/utils/dict';
 | 
			
		||||
import { deleteSparePart } from '@/api/equipment/base/spare-parts/list'
 | 
			
		||||
import { deleteSparePart } from '@/api/equipment/base/spare-parts/list';
 | 
			
		||||
 | 
			
		||||
const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
 | 
			
		||||
 | 
			
		||||
@@ -95,7 +95,7 @@ export default {
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
				{
 | 
			
		||||
					type: 'input',
 | 
			
		||||
					label: '关键字',
 | 
			
		||||
					label: '备件名称',
 | 
			
		||||
					placeholder: '请输入备件名称',
 | 
			
		||||
					param: 'name',
 | 
			
		||||
				},
 | 
			
		||||
@@ -132,20 +132,33 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备件名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '备件名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '备件名称不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备件型号',
 | 
			
		||||
						prop: 'model',
 | 
			
		||||
						label: '备件编码',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-spare-part/getCode',
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '备件编码不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备件型号',
 | 
			
		||||
						prop: 'model',
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '规格',
 | 
			
		||||
						prop: 'specifications',
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '供应商',
 | 
			
		||||
@@ -155,10 +168,10 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '供应商不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '供应商不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '物料类型',
 | 
			
		||||
@@ -169,8 +182,12 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '物料类型不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '物料类型不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '使用寿命',
 | 
			
		||||
@@ -184,14 +201,14 @@ export default {
 | 
			
		||||
							},
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '单位',
 | 
			
		||||
						prop: 'unit', // 数据字典
 | 
			
		||||
						options: this.getDictDatas(this.DICT_TYPE.UNIT_DICT),
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备注',
 | 
			
		||||
 
 | 
			
		||||
@@ -72,10 +72,10 @@ const remainBox = {
 | 
			
		||||
	},
 | 
			
		||||
	computed: {
 | 
			
		||||
		value() {
 | 
			
		||||
			const temp = this.injectData[this.injectData.prop] || null
 | 
			
		||||
			const temp = this.injectData[this.injectData.prop] || null;
 | 
			
		||||
			if (temp) {
 | 
			
		||||
				console.log('12', temp)
 | 
			
		||||
				return temp === 'Green' ? 'green' : 'red'
 | 
			
		||||
				console.log('12', temp);
 | 
			
		||||
				return temp === 'Green' ? 'green' : 'red';
 | 
			
		||||
			}
 | 
			
		||||
			return this.injectData[this.injectData.prop] || null;
 | 
			
		||||
		},
 | 
			
		||||
@@ -83,7 +83,7 @@ const remainBox = {
 | 
			
		||||
			if (this.value) {
 | 
			
		||||
				// const v = +this.value;
 | 
			
		||||
				// return v < 0 ? 'red' : v >= 0 && v < 2 ? 'yellow' : 'green';
 | 
			
		||||
				return this.value
 | 
			
		||||
				return this.value;
 | 
			
		||||
			}
 | 
			
		||||
			return 'unset';
 | 
			
		||||
		},
 | 
			
		||||
@@ -95,8 +95,7 @@ const remainBox = {
 | 
			
		||||
					this.color
 | 
			
		||||
					// this.color == 'Green' ? 'green' : this.color == 'Red' ? 'red' : 'yellow'
 | 
			
		||||
				}; position:absolute; inset: 0; padding: 0 10px; display: flex; align-items: center; color: ${
 | 
			
		||||
					'unset'
 | 
			
		||||
					// this.color == 'red' ? '#fff' : 'unset'
 | 
			
		||||
					this.color == 'red' || this.color == 'green' ? '#fff' : 'unset'
 | 
			
		||||
				}`}>
 | 
			
		||||
				{this.injectData[this.injectData.prop] || ''}
 | 
			
		||||
			</div>
 | 
			
		||||
@@ -112,7 +111,10 @@ const btn = {
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		handleClick() {
 | 
			
		||||
			this.$emit('emitData', { action: this.injectData.name, value: this.injectData });
 | 
			
		||||
			this.$emit('emitData', {
 | 
			
		||||
				action: this.injectData.name,
 | 
			
		||||
				value: this.injectData,
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	render: function (h) {
 | 
			
		||||
@@ -124,8 +126,6 @@ const btn = {
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	name: 'EquipmentSparePartsMonitor',
 | 
			
		||||
	components: { addSparts },
 | 
			
		||||
@@ -162,7 +162,12 @@ export default {
 | 
			
		||||
				{ prop: 'responsible', label: '负责人' },
 | 
			
		||||
				{ prop: 'color', label: '是否超期', subcomponent: remainBox },
 | 
			
		||||
				{ prop: 'opt1', label: '备件更换', name: '操作', subcomponent: btn },
 | 
			
		||||
				{ prop: 'opt2', label: '更换记录', name: '更新记录', subcomponent: btn },  // TODO: 是否换成按钮, 群里问
 | 
			
		||||
				{
 | 
			
		||||
					prop: 'opt2',
 | 
			
		||||
					label: '更换记录',
 | 
			
		||||
					name: '更新记录',
 | 
			
		||||
					subcomponent: btn,
 | 
			
		||||
				}, // TODO: 是否换成按钮, 群里问
 | 
			
		||||
				// { prop: 'remark', label: '备注' },
 | 
			
		||||
			],
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
@@ -171,12 +176,14 @@ export default {
 | 
			
		||||
					label: '产线',
 | 
			
		||||
					placeholder: '请选择产线',
 | 
			
		||||
					param: 'lineId',
 | 
			
		||||
					filterable: true,
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'select',
 | 
			
		||||
					label: '设备',
 | 
			
		||||
					placeholder: '请选择设备',
 | 
			
		||||
					param: 'equipmentId',
 | 
			
		||||
					filterable: true,
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'button',
 | 
			
		||||
@@ -211,7 +218,9 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '配置名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '配置名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '配置名称不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -224,7 +233,9 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '设备名称不能为空', trigger: 'blur' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -281,29 +292,29 @@ export default {
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		eqOperation({ id }) {
 | 
			
		||||
			this.addOrUpdateVisible = true
 | 
			
		||||
			this.addOrUpdateVisible = true;
 | 
			
		||||
			this.$nextTick(() => {
 | 
			
		||||
				this.$refs.addOrUpdate.init(id);
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		updateLog({ id }) {
 | 
			
		||||
			this.addOrUpdateVisible = true
 | 
			
		||||
			this.addOrUpdateVisible = true;
 | 
			
		||||
			this.$nextTick(() => {
 | 
			
		||||
				this.$refs.addOrUpdate.init(id, true);
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		initSearchBar() {
 | 
			
		||||
			// 产线列表
 | 
			
		||||
			getCorePLList().then(res => {
 | 
			
		||||
			getCorePLList().then((res) => {
 | 
			
		||||
				this.$set(
 | 
			
		||||
					this.searchBarFormConfig[0],
 | 
			
		||||
					'selectOptions',
 | 
			
		||||
					res.data.map((item) => ({
 | 
			
		||||
						name: item.name,
 | 
			
		||||
						id: item.id
 | 
			
		||||
						id: item.id,
 | 
			
		||||
					}))
 | 
			
		||||
				);
 | 
			
		||||
			})
 | 
			
		||||
			});
 | 
			
		||||
			this.http('/base/core-equipment/listAll', 'get').then(({ data }) => {
 | 
			
		||||
				this.$set(
 | 
			
		||||
					this.searchBarFormConfig[1],
 | 
			
		||||
@@ -319,7 +330,11 @@ export default {
 | 
			
		||||
		getList() {
 | 
			
		||||
			this.loading = true;
 | 
			
		||||
			// 执行查询
 | 
			
		||||
			this.http('/base/equipment-spare-part-config/monitor', 'get', this.queryParams).then((response) => {
 | 
			
		||||
			this.http(
 | 
			
		||||
				'/base/equipment-spare-part-config/monitor',
 | 
			
		||||
				'get',
 | 
			
		||||
				this.queryParams
 | 
			
		||||
			).then((response) => {
 | 
			
		||||
				this.list = response.data.list;
 | 
			
		||||
				this.total = response.data.total;
 | 
			
		||||
				this.loading = false;
 | 
			
		||||
@@ -338,7 +353,7 @@ export default {
 | 
			
		||||
				name: null,
 | 
			
		||||
				equipmentId: null,
 | 
			
		||||
				description: null,
 | 
			
		||||
				responsible: null
 | 
			
		||||
				responsible: null,
 | 
			
		||||
			};
 | 
			
		||||
			this.resetForm('form');
 | 
			
		||||
		},
 | 
			
		||||
@@ -397,7 +412,7 @@ export default {
 | 
			
		||||
			this.$modal
 | 
			
		||||
				.confirm('是否确认删除记录"' + row.name + '"?')
 | 
			
		||||
				.then(function () {
 | 
			
		||||
					return this.delete({ id });
 | 
			
		||||
					return this.del({ id });
 | 
			
		||||
				})
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					this.getList();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										138
									
								
								src/views/equipment/monitor/SearchBar.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								src/views/equipment/monitor/SearchBar.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,138 @@
 | 
			
		||||
<!-- 
 | 
			
		||||
    filename: SearchBar.vue
 | 
			
		||||
    author: liubin
 | 
			
		||||
    date: 2023-11-23 14:01:17
 | 
			
		||||
    description: 
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
	<div class="search-bar">
 | 
			
		||||
		<div class="vertical-blue-line"></div>
 | 
			
		||||
		<el-form
 | 
			
		||||
			:inline="true"
 | 
			
		||||
			ref="search-bar__form"
 | 
			
		||||
			:model="form"
 | 
			
		||||
			class="search-bar__form">
 | 
			
		||||
			<el-form-item :label="'产线'" prop="productionLineId">
 | 
			
		||||
				<el-select
 | 
			
		||||
					size="small"
 | 
			
		||||
					placeholder="请选择产线"
 | 
			
		||||
					@change="getEquipmentByLineId"
 | 
			
		||||
					v-model="form.productionLineId">
 | 
			
		||||
					<el-option
 | 
			
		||||
						v-for="item in listLine"
 | 
			
		||||
						:key="item.id"
 | 
			
		||||
						:label="item.name"
 | 
			
		||||
						:value="item.id"></el-option>
 | 
			
		||||
				</el-select>
 | 
			
		||||
			</el-form-item>
 | 
			
		||||
			<el-form-item :label="'设备'" prop="equipmentId">
 | 
			
		||||
				<el-select
 | 
			
		||||
					size="small"
 | 
			
		||||
					placeholder="请选择设备"
 | 
			
		||||
					v-model="form.equipmentId">
 | 
			
		||||
					<el-option
 | 
			
		||||
						v-for="item in listEq"
 | 
			
		||||
						:key="item.id"
 | 
			
		||||
						:label="item.name"
 | 
			
		||||
						:value="item.id"></el-option>
 | 
			
		||||
				</el-select>
 | 
			
		||||
			</el-form-item>
 | 
			
		||||
		</el-form>
 | 
			
		||||
		<el-button type="primary" @click="handleSearch" size="small">
 | 
			
		||||
			查询
 | 
			
		||||
		</el-button>
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
	name: 'SearchBar',
 | 
			
		||||
	model: {
 | 
			
		||||
		prop: 'value',
 | 
			
		||||
		event: 'change',
 | 
			
		||||
	},
 | 
			
		||||
	props: {
 | 
			
		||||
		value: {
 | 
			
		||||
			type: Object,
 | 
			
		||||
			default: () => {},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			listLine: [],
 | 
			
		||||
			listEq: [],
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	computed: {
 | 
			
		||||
		form: {
 | 
			
		||||
			set(val) {
 | 
			
		||||
				this.emit(val);
 | 
			
		||||
			},
 | 
			
		||||
			get() {
 | 
			
		||||
				return this.value;
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		this.getLine();
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		emit(newValue) {
 | 
			
		||||
			debugger;
 | 
			
		||||
			this.$emit('update', { ...this.form, ...newValue });
 | 
			
		||||
		},
 | 
			
		||||
		async getLine() {
 | 
			
		||||
			const { data, code } = await this.$axios({
 | 
			
		||||
				url: '/base/core-production-line/listAll',
 | 
			
		||||
			});
 | 
			
		||||
			if (code == 0) {
 | 
			
		||||
				this.listLine = data;
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
			this.listLine.splice(0);
 | 
			
		||||
		},
 | 
			
		||||
		async getEquipmentByLineId(id) {
 | 
			
		||||
			const { data, code } = await this.$axios({
 | 
			
		||||
				url: '/base/core-equipment/listByLine',
 | 
			
		||||
				params: {
 | 
			
		||||
					id,
 | 
			
		||||
				},
 | 
			
		||||
			});
 | 
			
		||||
			if (code == 0) {
 | 
			
		||||
				this.listEq = data;
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
			this.listEq.splice(0);
 | 
			
		||||
		},
 | 
			
		||||
		handleSearch() {},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
.search-bar {
 | 
			
		||||
	padding: 12px 0;
 | 
			
		||||
	font-size: 16px;
 | 
			
		||||
	position: relative;
 | 
			
		||||
	display: flex;
 | 
			
		||||
	align-items: center;
 | 
			
		||||
	gap: 12px;
 | 
			
		||||
 | 
			
		||||
	:deep(.el-form-item) {
 | 
			
		||||
		margin-bottom: 0 !important;
 | 
			
		||||
		margin-right: 0;
 | 
			
		||||
 | 
			
		||||
		&:not(:last-child) {
 | 
			
		||||
			margin-right: 18px;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.vertical-blue-line {
 | 
			
		||||
	width: 4px;
 | 
			
		||||
	height: 18px;
 | 
			
		||||
	background: #0b58ff;
 | 
			
		||||
	border-radius: 2px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,10 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<div class="app-container">
 | 
			
		||||
		<!-- 搜索工作栏 -->
 | 
			
		||||
		<SearchBar
 | 
			
		||||
			:formConfigs="searchBarFormConfig"
 | 
			
		||||
			ref="search-bar"
 | 
			
		||||
			@headBtnClick="handleSearchBarBtnClick" />
 | 
			
		||||
		<SearchBarNew v-model="searchBarForm" />
 | 
			
		||||
 | 
			
		||||
		<!-- 列表 -->
 | 
			
		||||
		<base-table
 | 
			
		||||
@@ -13,13 +10,13 @@
 | 
			
		||||
			:limit="queryParams.pageSize"
 | 
			
		||||
			:table-data="list"
 | 
			
		||||
			@emitFun="handleEmitFun">
 | 
			
		||||
			<method-btn
 | 
			
		||||
			<!-- <method-btn
 | 
			
		||||
				v-if="tableBtn.length"
 | 
			
		||||
				slot="handleBtn"
 | 
			
		||||
				label="操作"
 | 
			
		||||
				:width="120"
 | 
			
		||||
				:method-list="tableBtn"
 | 
			
		||||
				@clickBtn="handleTableBtnClick" />
 | 
			
		||||
				@clickBtn="handleTableBtnClick" /> -->
 | 
			
		||||
		</base-table>
 | 
			
		||||
 | 
			
		||||
		<!-- 分页组件 -->
 | 
			
		||||
@@ -50,22 +47,23 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import moment from 'moment';
 | 
			
		||||
import basicPageMixin from '@/mixins/lb/basicPageMixin';
 | 
			
		||||
import { publicFormatter } from '@/utils/dict';
 | 
			
		||||
import { parseTime } from '@/utils/ruoyi'
 | 
			
		||||
// const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
 | 
			
		||||
 | 
			
		||||
import { parseTime } from '@/utils/ruoyi';
 | 
			
		||||
import SearchBarNew from '../SearchBar.vue';
 | 
			
		||||
 | 
			
		||||
const btn = {
 | 
			
		||||
	name: 'tableBtn',
 | 
			
		||||
	props: ['injectData'],
 | 
			
		||||
	components: {},
 | 
			
		||||
	data() {
 | 
			
		||||
		return {};
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		handleClick() {
 | 
			
		||||
			this.$emit('emitData', { action: this.injectData.label, value: this.injectData });
 | 
			
		||||
			this.$emit('emitData', {
 | 
			
		||||
				action: this.injectData.label,
 | 
			
		||||
				value: this.injectData,
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	render: function (h) {
 | 
			
		||||
@@ -77,134 +75,62 @@ const btn = {
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// monitoring/equipment-monitor/realtime-page
 | 
			
		||||
export default {
 | 
			
		||||
	name: 'StatusAndParams',
 | 
			
		||||
	mixins: [basicPageMixin],
 | 
			
		||||
	components: { SearchBarNew },
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			searchBarKeys: ['equipmentName', 'recordTime'],
 | 
			
		||||
			tableBtn: [
 | 
			
		||||
				// this.$auth.hasPermi('equipment:spare-parts-config:update')
 | 
			
		||||
				// 	? {
 | 
			
		||||
				// 			type: 'detail',
 | 
			
		||||
				// 			btnName: '详情',
 | 
			
		||||
				// 	  }
 | 
			
		||||
				// 	: undefined,
 | 
			
		||||
				// this.$auth.hasPermi('equipment:spare-parts-config:update')
 | 
			
		||||
				// 	? {
 | 
			
		||||
				// 			type: 'edit',
 | 
			
		||||
				// 			btnName: '修改',
 | 
			
		||||
				// 	  }
 | 
			
		||||
				// 	: undefined,
 | 
			
		||||
				// this.$auth.hasPermi('equipment:spare-parts-config:delete')
 | 
			
		||||
				// 	? {
 | 
			
		||||
				// 			type: 'delete',
 | 
			
		||||
				// 			btnName: '删除',
 | 
			
		||||
				// 	  }
 | 
			
		||||
				// 	: undefined,
 | 
			
		||||
			].filter((v) => v),
 | 
			
		||||
			tableProps: [
 | 
			
		||||
				{ prop: 'productionLine', label: '设备名称' },
 | 
			
		||||
				{ prop: 'workshopSection', label: '设备编码' },
 | 
			
		||||
				{ prop: 'equipment', label: '投入数' },
 | 
			
		||||
				{ prop: 'productionLine', label: '产出数' },
 | 
			
		||||
				{ prop: 'workshopSection', label: '是否运行' },
 | 
			
		||||
				{ prop: 'equipment22', label: '状态' },
 | 
			
		||||
				// { prop: 'alarmGrade', label: '报警级别', filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL) },
 | 
			
		||||
				{ prop: 'productionLine', label: '是否故障' },
 | 
			
		||||
				{ prop: 'workshopSection', label: '生产量记录时间', filter: parseTime },
 | 
			
		||||
				{ prop: 'equipment1', label: '状态记录时间', filter: parseTime },
 | 
			
		||||
				{ prop: 'equipmentName', label: '设备名称' },
 | 
			
		||||
				{ prop: 'equipmentCode', label: '设备编码' },
 | 
			
		||||
				{ prop: 'inQuantity', label: '投入数' },
 | 
			
		||||
				{ prop: 'outQuantity', label: '产出数' },
 | 
			
		||||
				{
 | 
			
		||||
					prop: 'run',
 | 
			
		||||
					label: '是否运行',
 | 
			
		||||
					filter: (val) => (val != null ? (val ? '是' : '否') : ''),
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					prop: 'status',
 | 
			
		||||
					label: '状态',
 | 
			
		||||
					filter: (val) =>
 | 
			
		||||
						val != null ? ['正常', '计划停机', '故障'][val] : '',
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					prop: 'error',
 | 
			
		||||
					label: '是否故障',
 | 
			
		||||
					filter: (val) => (val != null ? (val ? '是' : '否') : ''),
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					prop: 'quantityRecordTime',
 | 
			
		||||
					label: '生产量记录时间',
 | 
			
		||||
					filter: parseTime,
 | 
			
		||||
				},
 | 
			
		||||
				{ prop: 'statusRecordTime', label: '状态记录时间', filter: parseTime },
 | 
			
		||||
				{ prop: 'opt1', label: '状态可视化', name: '查看', subcomponent: btn },
 | 
			
		||||
				{ prop: 'opt2', label: '参数监控', name: '查看', subcomponent: btn }  // TODO: 是否换成按钮, 群里问
 | 
			
		||||
				// { prop: 'remark', label: '备注' },
 | 
			
		||||
			],
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
				{
 | 
			
		||||
					type: 'input',
 | 
			
		||||
					label: '设备名',
 | 
			
		||||
					placeholder: '请输入设备名称',
 | 
			
		||||
					param: 'equipmentName',
 | 
			
		||||
				},
 | 
			
		||||
				// 时间段
 | 
			
		||||
				{
 | 
			
		||||
					type: 'datePicker',
 | 
			
		||||
					label: '时间段',
 | 
			
		||||
					dateType: 'daterange', // datetimerange
 | 
			
		||||
					// format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
					format: 'yyyy-MM-dd',
 | 
			
		||||
					// valueFormat: 'timestamp',
 | 
			
		||||
					valueFormat: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
					rangeSeparator: '-',
 | 
			
		||||
					startPlaceholder: '开始日期',
 | 
			
		||||
					endPlaceholder: '结束日期',
 | 
			
		||||
					defaultTime: ['00:00:00', '23:59:59'],
 | 
			
		||||
					param: 'recordTime',
 | 
			
		||||
					// defaultSelect: [
 | 
			
		||||
					// 	new Date(y, m, d)
 | 
			
		||||
					// 		.toLocaleString()
 | 
			
		||||
					// 		.split('/')
 | 
			
		||||
					// 		.map((item, index) => {
 | 
			
		||||
					// 			if (index == 1 || index == 2) return item.padStart(2, '0');
 | 
			
		||||
					// 			return item;
 | 
			
		||||
					// 		})
 | 
			
		||||
					// 		.join('-'),
 | 
			
		||||
					// 	new Date(y, m, d, 23, 59, 59)
 | 
			
		||||
					// 		.toLocaleString()
 | 
			
		||||
					// 		.split('/')
 | 
			
		||||
					// 		.map((item, index) => {
 | 
			
		||||
					// 			if (index == 1 || index == 2) return item.padStart(2, '0');
 | 
			
		||||
					// 			return item;
 | 
			
		||||
					// 		})
 | 
			
		||||
					// 		.join('-'),
 | 
			
		||||
					// ],
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'button',
 | 
			
		||||
					btnName: '查询',
 | 
			
		||||
					name: 'search',
 | 
			
		||||
					color: 'primary',
 | 
			
		||||
				},
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: 'separate',
 | 
			
		||||
				// },
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: this.$auth.hasPermi('equipment:spare-parts-config:create')
 | 
			
		||||
				// 		? 'button'
 | 
			
		||||
				// 		: '',
 | 
			
		||||
				// 	btnName: '新增',
 | 
			
		||||
				// 	name: 'add',
 | 
			
		||||
				// 	plain: true,
 | 
			
		||||
				// 	color: 'success',
 | 
			
		||||
				// },
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: this.$auth.hasPermi('equipment:spare-parts-config:export')
 | 
			
		||||
				// 		? 'button'
 | 
			
		||||
				// 		: '',
 | 
			
		||||
				// 	btnName: '导出',
 | 
			
		||||
				// 	name: 'export',
 | 
			
		||||
				// 	color: 'warning',
 | 
			
		||||
				// },
 | 
			
		||||
				{ prop: 'opt2', label: '参数监控', name: '查看', subcomponent: btn },
 | 
			
		||||
			],
 | 
			
		||||
			searchBarForm: {
 | 
			
		||||
				productionLineId: null,
 | 
			
		||||
				equipmentId: null,
 | 
			
		||||
			},
 | 
			
		||||
			// 是否显示弹出层
 | 
			
		||||
			open: false,
 | 
			
		||||
			// 查询参数
 | 
			
		||||
			queryParams: {
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				lineId: null,
 | 
			
		||||
				equipmentId: null,
 | 
			
		||||
				productionLineId: null,
 | 
			
		||||
			},
 | 
			
		||||
			basePath: '/base/equipment-alarm-log',
 | 
			
		||||
			list: []
 | 
			
		||||
			list: [],
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	created() {
 | 
			
		||||
		// this.getList();
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		handleEmitFun(val) {
 | 
			
		||||
			console.log('你好', val)
 | 
			
		||||
			console.log('你好', val);
 | 
			
		||||
			if (val.action === '状态可视化') {
 | 
			
		||||
				// 状态可视化
 | 
			
		||||
			} else {
 | 
			
		||||
@@ -215,16 +141,20 @@ export default {
 | 
			
		||||
		getList() {
 | 
			
		||||
			this.loading = true;
 | 
			
		||||
			// 执行查询
 | 
			
		||||
			this.recv(this.queryParams).then((response) => {
 | 
			
		||||
			this.http(
 | 
			
		||||
				'/monitoring/equipment-monitor/realtime-page',
 | 
			
		||||
				'get',
 | 
			
		||||
				this.queryParams
 | 
			
		||||
			).then((response) => {
 | 
			
		||||
				this.list = response.data.list;
 | 
			
		||||
				this.total = response.data.total;
 | 
			
		||||
				this.loading = false;
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		successSubmit() {
 | 
			
		||||
      this.cancel()
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
			this.cancel();
 | 
			
		||||
			this.getList();
 | 
			
		||||
		},
 | 
			
		||||
		/** 取消按钮 */
 | 
			
		||||
		cancel() {
 | 
			
		||||
			this.open = false;
 | 
			
		||||
@@ -270,7 +200,7 @@ export default {
 | 
			
		||||
		},
 | 
			
		||||
		/** 提交按钮 */
 | 
			
		||||
		submitForm() {
 | 
			
		||||
			this.$refs.addOrUpdate.dataFormSubmit()
 | 
			
		||||
			this.$refs.addOrUpdate.dataFormSubmit();
 | 
			
		||||
			// this.$refs['form'].validate((valid) => {
 | 
			
		||||
			// 	if (!valid) {
 | 
			
		||||
			// 		return;
 | 
			
		||||
@@ -297,8 +227,8 @@ export default {
 | 
			
		||||
			const id = row.id;
 | 
			
		||||
			this.$modal
 | 
			
		||||
				.confirm('是否确认删除记录"' + row.name + '"?')
 | 
			
		||||
				.then(function () {
 | 
			
		||||
					return this.delete({ id });
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					return this.del({ id });
 | 
			
		||||
				})
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					this.getList();
 | 
			
		||||
 
 | 
			
		||||
@@ -61,6 +61,8 @@
 | 
			
		||||
				v-if="open"
 | 
			
		||||
				style="width: 100%"
 | 
			
		||||
				v-model="queryParams.equipmentId"
 | 
			
		||||
				filterable
 | 
			
		||||
				clearable
 | 
			
		||||
				placeholder="请选择一个设备">
 | 
			
		||||
				<el-option
 | 
			
		||||
					v-for="eq in eqList"
 | 
			
		||||
 
 | 
			
		||||
@@ -94,12 +94,19 @@
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import Gantt from './chart';
 | 
			
		||||
import moment from 'moment';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	name: 'SGStatus',
 | 
			
		||||
	components: {},
 | 
			
		||||
	props: {},
 | 
			
		||||
	data() {
 | 
			
		||||
		const today = new Date();
 | 
			
		||||
		const todayStart = new Date(
 | 
			
		||||
			today.getFullYear(),
 | 
			
		||||
			today.getMonth(),
 | 
			
		||||
			today.getDate()
 | 
			
		||||
		);
 | 
			
		||||
		return {
 | 
			
		||||
			chart: null,
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
@@ -129,6 +136,7 @@ export default {
 | 
			
		||||
					placeholder: '选择日期',
 | 
			
		||||
					param: 'recordTime',
 | 
			
		||||
					required: true,
 | 
			
		||||
					defaultSelect: moment(todayStart).format('YYYY-MM-DD HH:mm:ss'),
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'button',
 | 
			
		||||
@@ -369,7 +377,10 @@ export default {
 | 
			
		||||
			const { code, data } = await this.$axios({
 | 
			
		||||
				url: '/monitoring/equipment-monitor/status-series',
 | 
			
		||||
				method: 'get',
 | 
			
		||||
				params: this.queryParams,
 | 
			
		||||
				params: {
 | 
			
		||||
					recordTime: this.queryParams.recordTime,
 | 
			
		||||
					equipmentId: this.queryParams.equipmentId,
 | 
			
		||||
				},
 | 
			
		||||
			});
 | 
			
		||||
			if (code == 0) {
 | 
			
		||||
				const newEqlist = this.objectToArray(data);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user