lb #19
@@ -6,24 +6,340 @@
 | 
				
			|||||||
-->
 | 
					-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
    	<div class="app-container">
 | 
						<div class="app-container">
 | 
				
			||||||
            设备效率分析
 | 
							<!-- 搜索工作栏 -->
 | 
				
			||||||
        </div>
 | 
							<SearchBar
 | 
				
			||||||
 | 
								:formConfigs="searchBarFormConfig"
 | 
				
			||||||
 | 
								ref="search-bar"
 | 
				
			||||||
 | 
								@headBtnClick="handleSearchBarBtnClick" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<!-- 列表 -->
 | 
				
			||||||
 | 
							<base-table
 | 
				
			||||||
 | 
								:table-props="tableProps"
 | 
				
			||||||
 | 
								:page="queryParams.pageNo"
 | 
				
			||||||
 | 
								:limit="queryParams.pageSize"
 | 
				
			||||||
 | 
								:table-data="list"
 | 
				
			||||||
 | 
								@emitFun="handleEmitFun">
 | 
				
			||||||
 | 
								<method-btn
 | 
				
			||||||
 | 
									v-if="tableBtn.length"
 | 
				
			||||||
 | 
									slot="handleBtn"
 | 
				
			||||||
 | 
									label="操作"
 | 
				
			||||||
 | 
									:method-list="tableBtn"
 | 
				
			||||||
 | 
									@clickBtn="handleTableBtnClick" />
 | 
				
			||||||
 | 
							</base-table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<!-- 分页组件 -->
 | 
				
			||||||
 | 
							<pagination
 | 
				
			||||||
 | 
								v-show="total > 0"
 | 
				
			||||||
 | 
								:total="total"
 | 
				
			||||||
 | 
								:page.sync="queryParams.pageNo"
 | 
				
			||||||
 | 
								:limit.sync="queryParams.pageSize"
 | 
				
			||||||
 | 
								@pagination="getList" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<!-- 对话框(添加 / 修改) -->
 | 
				
			||||||
 | 
							<base-dialog
 | 
				
			||||||
 | 
								:dialogTitle="title"
 | 
				
			||||||
 | 
								:dialogVisible="open"
 | 
				
			||||||
 | 
								width="500px"
 | 
				
			||||||
 | 
								@close="cancel"
 | 
				
			||||||
 | 
								@cancel="cancel"
 | 
				
			||||||
 | 
								@confirm="submitForm">
 | 
				
			||||||
 | 
								<DialogForm v-if="open" ref="form" :dataForm="form" :rows="rows" />
 | 
				
			||||||
 | 
							</base-dialog>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
 | 
					import moment from 'moment';
 | 
				
			||||||
 | 
					import basicPageMixin from '@/mixins/lb/basicPageMixin';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
    name: "EfficiencyAnalysis",
 | 
						name: 'EfficiencyAnalysis',
 | 
				
			||||||
    components: {},
 | 
						mixins: [basicPageMixin],
 | 
				
			||||||
    props: {},
 | 
						components: {},
 | 
				
			||||||
    data() {
 | 
						props: {},
 | 
				
			||||||
        return {}
 | 
						data() {
 | 
				
			||||||
    },
 | 
							return {
 | 
				
			||||||
    computed: {},
 | 
								searchBarKeys: ['name', 'code'],
 | 
				
			||||||
    methods: {},
 | 
								tableBtn: [
 | 
				
			||||||
}
 | 
									this.$auth.hasPermi('base:equipment-group:update')
 | 
				
			||||||
 | 
										? {
 | 
				
			||||||
 | 
												type: 'edit',
 | 
				
			||||||
 | 
												btnName: '修改',
 | 
				
			||||||
 | 
										  }
 | 
				
			||||||
 | 
										: undefined,
 | 
				
			||||||
 | 
									this.$auth.hasPermi('base:equipment-group:delete')
 | 
				
			||||||
 | 
										? {
 | 
				
			||||||
 | 
												type: 'delete',
 | 
				
			||||||
 | 
												btnName: '删除',
 | 
				
			||||||
 | 
										  }
 | 
				
			||||||
 | 
										: undefined,
 | 
				
			||||||
 | 
								].filter((v) => v),
 | 
				
			||||||
 | 
								tableProps: [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										prop: 'createTime',
 | 
				
			||||||
 | 
										label: '添加时间',
 | 
				
			||||||
 | 
										fixed: true,
 | 
				
			||||||
 | 
										width: 180,
 | 
				
			||||||
 | 
										filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{ prop: 'name', label: '设备分组名称', align: 'center' },
 | 
				
			||||||
 | 
									{ prop: 'code', label: '检测分组编码', align: 'center' },
 | 
				
			||||||
 | 
									{ prop: 'remark', label: '备注', align: 'center' },
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										_action: 'equipment-group-show-alert',
 | 
				
			||||||
 | 
										label: '报警',
 | 
				
			||||||
 | 
										align: 'center',
 | 
				
			||||||
 | 
										subcomponent: {
 | 
				
			||||||
 | 
											props: ['injectData'],
 | 
				
			||||||
 | 
											render: function (h) {
 | 
				
			||||||
 | 
												const _this = this;
 | 
				
			||||||
 | 
												return h(
 | 
				
			||||||
 | 
													'el-button',
 | 
				
			||||||
 | 
													{
 | 
				
			||||||
 | 
														props: { type: 'text', size: 'mini' },
 | 
				
			||||||
 | 
														on: {
 | 
				
			||||||
 | 
															click: function () {
 | 
				
			||||||
 | 
																console.log('inejctdata', _this.injectData);
 | 
				
			||||||
 | 
																_this.$emit('emitData', {
 | 
				
			||||||
 | 
																	action: _this.injectData._action,
 | 
				
			||||||
 | 
																	// value: _this.injectData.id,
 | 
				
			||||||
 | 
																	value: _this.injectData,
 | 
				
			||||||
 | 
																});
 | 
				
			||||||
 | 
															},
 | 
				
			||||||
 | 
														},
 | 
				
			||||||
 | 
													},
 | 
				
			||||||
 | 
													'查看报警'
 | 
				
			||||||
 | 
												);
 | 
				
			||||||
 | 
											},
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								searchBarFormConfig: [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										type: 'input',
 | 
				
			||||||
 | 
										label: '分组名称',
 | 
				
			||||||
 | 
										placeholder: '请输入设备分组名称',
 | 
				
			||||||
 | 
										param: 'name',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										type: 'input',
 | 
				
			||||||
 | 
										label: '分组编码',
 | 
				
			||||||
 | 
										placeholder: '请输入设备分组编码',
 | 
				
			||||||
 | 
										param: 'codes',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										type: 'button',
 | 
				
			||||||
 | 
										btnName: '查询',
 | 
				
			||||||
 | 
										name: 'search',
 | 
				
			||||||
 | 
										color: 'primary',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										type: 'separate',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										type: this.$auth.hasPermi('base:equipment-group:create')
 | 
				
			||||||
 | 
											? 'button'
 | 
				
			||||||
 | 
											: '',
 | 
				
			||||||
 | 
										btnName: '新增',
 | 
				
			||||||
 | 
										name: 'add',
 | 
				
			||||||
 | 
										plain: true,
 | 
				
			||||||
 | 
										color: 'success',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									// {
 | 
				
			||||||
 | 
									// 	type: this.$auth.hasPermi('base:equipment-group:export') ? 'button' : '',
 | 
				
			||||||
 | 
									// 	btnName: '导出',
 | 
				
			||||||
 | 
									// 	name: 'export',
 | 
				
			||||||
 | 
									// 	color: 'warning',
 | 
				
			||||||
 | 
									// },
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								rows: [
 | 
				
			||||||
 | 
									[
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											input: true,
 | 
				
			||||||
 | 
											label: '分组名称',
 | 
				
			||||||
 | 
											prop: 'name',
 | 
				
			||||||
 | 
											rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
				
			||||||
 | 
											// bind: {
 | 
				
			||||||
 | 
											// 	disabled: true, // some condition, like detail mode...
 | 
				
			||||||
 | 
											// }
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
									],
 | 
				
			||||||
 | 
									[
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											input: true,
 | 
				
			||||||
 | 
											label: '分组编码',
 | 
				
			||||||
 | 
											prop: 'code',
 | 
				
			||||||
 | 
											url: '/base/equipment-group/getCode',
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
									],
 | 
				
			||||||
 | 
									[
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											input: true,
 | 
				
			||||||
 | 
											label: '备注',
 | 
				
			||||||
 | 
											prop: 'remark',
 | 
				
			||||||
 | 
											// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
				
			||||||
 | 
											bind: {
 | 
				
			||||||
 | 
												placeholder: '请输入备注',
 | 
				
			||||||
 | 
											},
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
									],
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								// 是否显示弹出层
 | 
				
			||||||
 | 
								open: false,
 | 
				
			||||||
 | 
								// 查询参数
 | 
				
			||||||
 | 
								queryParams: {
 | 
				
			||||||
 | 
									pageNo: 1,
 | 
				
			||||||
 | 
									pageSize: 10,
 | 
				
			||||||
 | 
									code: null,
 | 
				
			||||||
 | 
									name: null,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								// 表单参数
 | 
				
			||||||
 | 
								form: {},
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						created() {
 | 
				
			||||||
 | 
							this.getList();
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						methods: {
 | 
				
			||||||
 | 
							/** 覆盖 handleEmitFun 的默认实现 */
 | 
				
			||||||
 | 
							handleEmitFun({ action, value }) {
 | 
				
			||||||
 | 
								const {
 | 
				
			||||||
 | 
									id: equipmentGroupId,
 | 
				
			||||||
 | 
									name: equipmentGroupName,
 | 
				
			||||||
 | 
									code: equipmentGroupCode,
 | 
				
			||||||
 | 
								} = value;
 | 
				
			||||||
 | 
								switch (action) {
 | 
				
			||||||
 | 
									case 'equipment-group-show-alert':
 | 
				
			||||||
 | 
										// this.$router.push({ path: '/equipment/base/equipment-group-alarm' });
 | 
				
			||||||
 | 
										this.$router.push({
 | 
				
			||||||
 | 
											name: 'EquipmentGroupAlarm',
 | 
				
			||||||
 | 
											params: {
 | 
				
			||||||
 | 
												equipmentGroupId,
 | 
				
			||||||
 | 
												equipmentGroupCode,
 | 
				
			||||||
 | 
												equipmentGroupName,
 | 
				
			||||||
 | 
											},
 | 
				
			||||||
 | 
										});
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 查询列表 */
 | 
				
			||||||
 | 
							getList() {
 | 
				
			||||||
 | 
								this.loading = true;
 | 
				
			||||||
 | 
								// 执行查询
 | 
				
			||||||
 | 
								getEquipmentGroupPage(this.queryParams).then((response) => {
 | 
				
			||||||
 | 
									this.list = response.data.list;
 | 
				
			||||||
 | 
									this.total = response.data.total;
 | 
				
			||||||
 | 
									this.loading = false;
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 取消按钮 */
 | 
				
			||||||
 | 
							cancel() {
 | 
				
			||||||
 | 
								this.open = false;
 | 
				
			||||||
 | 
								this.reset();
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 表单重置 */
 | 
				
			||||||
 | 
							reset() {
 | 
				
			||||||
 | 
								this.form = {
 | 
				
			||||||
 | 
									id: undefined,
 | 
				
			||||||
 | 
									code: undefined,
 | 
				
			||||||
 | 
									name: undefined,
 | 
				
			||||||
 | 
									remark: undefined,
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								this.resetForm('form');
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 搜索按钮操作 */
 | 
				
			||||||
 | 
							handleQuery() {
 | 
				
			||||||
 | 
								this.queryParams.pageNo = 1;
 | 
				
			||||||
 | 
								this.getList();
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 重置按钮操作 */
 | 
				
			||||||
 | 
							resetQuery() {
 | 
				
			||||||
 | 
								this.resetForm('queryForm');
 | 
				
			||||||
 | 
								this.handleQuery();
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 新增按钮操作 */
 | 
				
			||||||
 | 
							handleAdd() {
 | 
				
			||||||
 | 
								this.reset();
 | 
				
			||||||
 | 
								this.open = true;
 | 
				
			||||||
 | 
								this.title = '添加设备分组(用于同类型不同厂家的设备区分)';
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 修改按钮操作 */
 | 
				
			||||||
 | 
							handleUpdate(row) {
 | 
				
			||||||
 | 
								this.reset();
 | 
				
			||||||
 | 
								const id = row.id;
 | 
				
			||||||
 | 
								getEquipmentGroup(id).then((response) => {
 | 
				
			||||||
 | 
									this.form = response.data;
 | 
				
			||||||
 | 
									this.open = true;
 | 
				
			||||||
 | 
									this.title = '修改设备分组(用于同类型不同厂家的设备区分)';
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 提交按钮 */
 | 
				
			||||||
 | 
							submitForm() {
 | 
				
			||||||
 | 
								this.$refs['form'].validate((valid) => {
 | 
				
			||||||
 | 
									if (!valid) {
 | 
				
			||||||
 | 
										return;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									// 修改的提交
 | 
				
			||||||
 | 
									if (this.form.id != null) {
 | 
				
			||||||
 | 
										updateEquipmentGroup(this.form).then((response) => {
 | 
				
			||||||
 | 
											this.$modal.msgSuccess('修改成功');
 | 
				
			||||||
 | 
											this.open = false;
 | 
				
			||||||
 | 
											this.getList();
 | 
				
			||||||
 | 
										});
 | 
				
			||||||
 | 
										return;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									// 添加的提交
 | 
				
			||||||
 | 
									createEquipmentGroup(this.form).then((response) => {
 | 
				
			||||||
 | 
										this.$modal.msgSuccess('新增成功');
 | 
				
			||||||
 | 
										this.open = false;
 | 
				
			||||||
 | 
										this.getList();
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 删除按钮操作 */
 | 
				
			||||||
 | 
							handleDelete(row) {
 | 
				
			||||||
 | 
								const id = row.id;
 | 
				
			||||||
 | 
								this.$modal
 | 
				
			||||||
 | 
									.confirm(
 | 
				
			||||||
 | 
										'是否确认删除设备分组(用于同类型不同厂家的设备区分)编号为"' +
 | 
				
			||||||
 | 
											id +
 | 
				
			||||||
 | 
											'"的数据项?'
 | 
				
			||||||
 | 
									)
 | 
				
			||||||
 | 
									.then(function () {
 | 
				
			||||||
 | 
										return deleteEquipmentGroup(id);
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									.then(() => {
 | 
				
			||||||
 | 
										this.getList();
 | 
				
			||||||
 | 
										this.$modal.msgSuccess('删除成功');
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									.catch(() => {});
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 导出按钮操作 */
 | 
				
			||||||
 | 
							handleExport() {
 | 
				
			||||||
 | 
								// 处理查询参数
 | 
				
			||||||
 | 
								let params = { ...this.queryParams };
 | 
				
			||||||
 | 
								params.pageNo = undefined;
 | 
				
			||||||
 | 
								params.pageSize = undefined;
 | 
				
			||||||
 | 
								this.$modal
 | 
				
			||||||
 | 
									.confirm(
 | 
				
			||||||
 | 
										'是否确认导出所有设备分组(用于同类型不同厂家的设备区分)数据项?'
 | 
				
			||||||
 | 
									)
 | 
				
			||||||
 | 
									.then(() => {
 | 
				
			||||||
 | 
										this.exportLoading = true;
 | 
				
			||||||
 | 
										return exportEquipmentGroupExcel(params);
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									.then((response) => {
 | 
				
			||||||
 | 
										this.$download.excel(
 | 
				
			||||||
 | 
											response,
 | 
				
			||||||
 | 
											'设备分组(用于同类型不同厂家的设备区分).xls'
 | 
				
			||||||
 | 
										);
 | 
				
			||||||
 | 
										this.exportLoading = false;
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									.catch(() => {});
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<style scoped lang="scss">
 | 
					<style scoped lang="scss"></style>
 | 
				
			||||||
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user