Sfoglia il codice sorgente

2022-10-21 update

1. 增加电计量配置菜单
2. 调试电计量接口
3. 增加设备型号菜单 调试设备型号接口
moccus 2 anni fa
parent
commit
395e35cb1b

+ 55 - 4
src/api/station.js

@@ -1,8 +1,8 @@
 import request from '@/utils/request'
 
 const companys=(data)=>{
-  return request({
-      url:`/listByPage?id=${data.id}&name=${data.name}&pagenum=${data.pageNum}&pagesize=${data.pageSize}`,
+  return request({ 
+      url:`/listByPage?id=${data.id}&name=${data.name}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
       method:"get"
   })
 }
@@ -21,7 +21,7 @@ const deleteCompanys =(data)=>{
 }
 const lines=(data)=>{
   return request({
-      url:`/line/listByPage?id=${data.id}&name=${data.name}&pagenum=${data.pageNum}&pagesize=${data.pageSize}`,
+      url:`/line/listByPage?id=${data.id}&name=${encodeURIComponent(data.name)}&pagenum=${data.pageNum}&pagesize=${data.pageSize}`,
       method:"get"
   })
 }
@@ -100,7 +100,7 @@ const deleteLine =(data)=>{
 
 const windturbine =(data)=>{
   return request({
-      url:`/windturbine/companys?windpowerstationid=${data.windpowerstationid}&name=${data.name}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+      url:`/windturbine/companys?pageNum=${data.pageNum}&pageSize=${data.pageSize}&name=${encodeURIComponent(data.name)}`,
       method:"get"
   })
 }
@@ -117,6 +117,50 @@ const deleteWindturbine =(data)=>{
       method:"delete",
   })
 }
+const newtreeTreels=(data)=>{
+  return request({ 
+      url:`/newtree/treels?tag=${data.tag}`,
+      method:"get"
+  })
+}
+const equipmentmodel =(data)=>{
+  return request({
+      url:`/equipmentmodel/listByPage?name=${encodeURIComponent(data.name)}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+      method:"get"
+  })
+}
+const addEquipmentmodel =(pairs)=>{
+  return request({
+      url:`/equipmentmodel/save`,
+      method:"post",
+      data: pairs
+  })
+}
+const deleteEquipmentmodel =(data)=>{
+  return request({
+      url:`/meterpoint/remove-manufacturer/${data.id}`,
+      method:"delete",
+  })
+}
+const meterpoint =(data)=>{
+  return request({
+      url:`/meterpoint/listByPage?name=${encodeURIComponent(data.name)}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+      method:"get"
+  })
+}
+const addMeterpoint =(pairs)=>{
+  return request({
+      url:`/meterpoint/save`,
+      method:"post",
+      data: pairs
+  })
+}
+const deleteMeterpoint =(data)=>{
+  return request({
+      url:`/meterpoint/remove-meterpoint/${data.id}`,
+      method:"delete",
+  })
+}
 export default {
   companys,
   addCompanys,
@@ -136,4 +180,11 @@ export default {
   windturbine,
   addWindturbine,
   deleteWindturbine,
+  newtreeTreels,
+	equipmentmodel,
+	addEquipmentmodel,
+	deleteEquipmentmodel,
+	meterpoint,
+	addMeterpoint,
+	deleteMeterpoint
 };

+ 58 - 0
src/router/index.js

@@ -115,8 +115,66 @@ export const asyncRoutes = [
           import('@/views/stationConfiguration/windterbin/index'),
         meta: { title: '风机管理' },
       },
+			{
+        path: 'equipmentmodel',
+        name: 'equipmentmodel',
+        component: () =>
+          import('@/views/stationConfiguration/equipmentmodel/index'),
+        meta: { title: '设备型号' },
+      },
     ],
   },
+	{
+    path: "/meterpoint",
+    component: Layout,
+    redirect: "noRedirect",
+    children: [
+      {
+        path: "meterpoint",
+        name: "meterpoint",
+        component: () => import("@/views/meterpoint/index"),
+        meta: {
+          title: "电计量配置",
+          icon: "allergies",
+          permissions: ["admin"],
+        },
+      },
+    ],
+  },
+  // {
+  //   path: "/equipmentAllocation",
+  //   component: Layout,
+  //   redirect: "noRedirect",
+  //   children: [
+  //     {
+  //       path: "equipmentAllocation",
+  //       name: "equipmentAllocation",
+  //       component: () => import("@/views/pointConfiguration/equipmentAllocation/index"),
+  //       meta: {
+  //         title: "设备点表配置",
+  //         icon: "marker",
+  //         permissions: ["admin"],
+  //       },
+  //     },
+  //   ],
+  // },
+  // {
+  //   path: "/stationAllocation",
+  //   component: Layout,
+  //   redirect: "noRedirect",
+  //   children: [
+  //     {
+  //       path: "stationAllocation",
+  //       name: "stationAllocation",
+  //       component: () => import("@/views/pointConfiguration/stationAllocation/index"),
+  //       meta: {
+  //         title: "场站点表配置",
+  //         icon: "marker",
+  //         permissions: ["admin"],
+  //       },
+  //     },
+  //   ],
+  // },
   // {
   //   path: '/personnelManagement',
   //   component: Layout,

+ 142 - 0
src/views/meterpoint/components/TableEdit.vue

@@ -0,0 +1,142 @@
+<template>
+	<el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
+		<el-form ref="form" :model="form" :rules="rules">
+			<div class="lists">
+				<el-form-item label="id" prop="id">
+					<el-input class="inputs" v-model="form.id" autocomplete="off" :disabled="!idAdd?true:false"></el-input>
+				</el-form-item>
+				<el-form-item label="编码" prop="code">
+					<el-input class="inputs" v-model.trim="form.code" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="名称" prop="name">
+					<el-input class="inputs" v-model="form.name" autocomplete="off"></el-input>
+				</el-form-item>
+				<el-form-item label="描述" prop="description">
+					<el-input class="inputs" v-model="form.description" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="风场编号" prop="windPowerStationid">
+					<el-select v-model="form.windPowerStationid" placeholder="请选择" clearable>
+						<el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
+						</el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item label="工程编号" prop="projectid">
+					<el-input class="inputs" v-model.trim="form.projectid" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="线路编号" prop="lineid">
+					<el-input class="inputs" v-model.trim="form.lineid" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+		</el-form>
+		<div slot="footer" class="dialog-footer">
+			<el-button @click="close">取 消</el-button>
+			<el-button type="primary" @click="save">确 定</el-button>
+		</div>
+	</el-dialog>
+</template>
+
+<script>
+import api from '@/api/station'
+import dayjs from "dayjs";
+export default {
+	name: 'TableEdit',
+	props: {
+		options: {
+			type: Array,
+			default: []
+		},
+		stationList: {
+			type: Array,
+			default: []
+		},
+	},
+	data() {
+		return {
+			form: {
+				id: '',
+				code: '',
+				name: '',
+				description: '',
+				windPowerStationid: '',
+				projectId: '',
+				lineId: ''
+			},
+			rules: {
+				id: [{ required: true, trigger: 'blur', message: '请输入' }],
+				name: [{ required: true, trigger: 'blur', message: '请输入' }],
+				code: [{ required: true, trigger: 'blur', message: '请输入' }],
+				description: [{ required: true, trigger: 'blur', message: '请输入' }],
+				windPowerStationid: [{ required: true, trigger: 'blur', message: '请输入' }],
+				projectid: [{ required: true, trigger: 'blur', message: '请输入' }],
+				lineid: [{ required: true, trigger: 'blur', message: '请输入' }],
+			},
+			title: '',
+			dialogFormVisible: false,
+			idAdd: true,
+		}
+	},
+	created() { },
+	methods: {
+		showEdit(row) {
+			if (!row) {
+				this.title = '添加'
+				this.idAdd = true
+			} else {
+				this.title = '编辑'
+				this.idAdd = false
+				this.form = Object.assign({}, row)
+			}
+			this.dialogFormVisible = true
+		},
+		close() {
+			this.$refs['form'].resetFields()
+			this.form = this.$options.data().form
+			this.dialogFormVisible = false
+			this.$emit('fetch-data')
+		},
+		save() {
+			this.$refs['form'].validate(async (valid) => {
+				if (valid) {
+					api.addMeterpoint(this.form).then(res => {
+						if (res.data) {
+							this.$message({
+								type: 'success',
+								message: '添加成功!'
+							});
+							this.$emit('save-success');
+							this.dialogFormVisible = false
+						}
+					})
+				} else {
+					return false
+				}
+			})
+		},
+		handleChange() {
+		},
+		onBlur(val, param) {
+			if (typeof (this.form[param]) !== 'number') {
+				this.form[param] = val.replace(/[^0-9]/ig, "")
+			}
+		},
+	},
+}
+</script>
+<style lang="less" scoped>
+.inputs {
+	width: 200px;
+}
+
+.lists {
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+	justify-content: space-between;
+}
+</style>

+ 223 - 0
src/views/meterpoint/index.vue

@@ -0,0 +1,223 @@
+<template>
+	<div class="table-container">
+		<vab-query-form>
+			<div class="title">
+				<div class="left">
+					<div class="left-item">
+						<div style="width: 70px;">名称:</div>
+						<el-input v-model="fuzzyQuery_name" placeholder="请输入" clearable />
+					</div>
+					<el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
+						查询
+					</el-button>
+				</div>
+				<div class="right">
+					<el-button icon="el-icon-plus" type="primary" @click="handleAdd">
+						添加
+					</el-button>
+					<el-button icon="el-icon-delete" type="danger" @click="handleDelete">
+						删除
+					</el-button>
+					<UploadExcel style="margin-left: 10px;" @getResult="getMyExcelData"></UploadExcel>
+					<ExportExcel :exportList="exportExcel" :useType="'export'" partsName="电计量"></ExportExcel>
+					<ExportExcel :exportList="templateExcel" :useType="'template'" partsName="电计量模板"></ExportExcel>
+				</div>
+			</div>
+			<el-table ref="tableSort" v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText"
+				:height="height" @selection-change="setSelectRows">
+				<el-table-column show-overflow-tooltip type="selection" width="40"></el-table-column>
+				<el-table-column show-overflow-tooltip label="id" prop="id" align="center" sortable></el-table-column>
+				<el-table-column show-overflow-tooltip label="编码" prop="code" align="center" sortable></el-table-column>
+				<el-table-column show-overflow-tooltip label="名称" prop="name" align="center" sortable></el-table-column>
+				<el-table-column show-overflow-tooltip label="描述" prop="description" align="center" sortable></el-table-column>
+				<el-table-column show-overflow-tooltip label="风场编号" prop="windPowerStationid" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="工程编号" prop="projectid" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="线路编号" prop="lineid" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="操作" width="100px" fixed="right">
+					<template #default="{ row }">
+						<el-button type="text" @click="handleEdit(row)">编辑</el-button>
+						<el-button type="text" @click="handleDelete(row)">删除</el-button>
+					</template>
+				</el-table-column>
+			</el-table>
+			<el-pagination :background="background" :current-page="queryForm.pageNo" :layout="layout"
+				:page-size="queryForm.pageSize" :total="total" @current-change="handleCurrentChange"
+				@size-change="handleSizeChange"></el-pagination>
+			<table-edit ref="edit" :options="options" :stationList="stationList" @save-success="fetchData"></table-edit>
+		</vab-query-form>
+	</div>
+</template>
+<script>
+import UploadExcel from '@/components/UploadExcel/index'
+import ExportExcel from '@/components/ExportExcel/index'
+import api from '@/api/station'
+import TableEdit from './components/TableEdit'
+export default {
+	components: {
+		UploadExcel,
+		ExportExcel,
+		TableEdit,
+	},
+	data() {
+		return {
+			fuzzyQuery_name: '',
+			listLoading: true,
+			list: [],
+			options: [],
+			exportExcel: [],
+			templateExcel: [],
+			elementLoadingText: '正在加载...',
+			selectRows: '',
+			layout: 'total, sizes, prev, pager, next, jumper',
+			total: 0,
+			background: true,
+			exportList: [],
+			queryForm: {
+				pageNo: 1,
+				pageSize: 20,
+			},
+			stationList: [],
+			selectValue: ''
+		};
+	},
+	computed: {
+		height() {
+			return this.$baseTableHeight() + 50
+		},
+	},
+	created() {
+		this.getStation()
+		this.fetchData()
+	},
+	methods: {
+		getMyExcelData(val) {
+			val.forEach(item => {
+				api.addMeterpoint(item).then(res => {
+					if (res.code == 200) {
+						this.$message({
+							type: 'success',
+							message: '添加成功!'
+						});
+						this.fetchData()
+					}
+				})
+			})
+		},
+		getStation() {
+			api.windpowerstationList({
+				id: '',
+				name: '',
+				companyid: '',
+				pageNum: 1,
+				pageSize: 1000,
+			}).then(res => {
+				if (res.data) {
+					this.listLoading = false
+					this.stationList = res.data.records
+				}
+			})
+		},
+		fetchData() {
+			api.meterpoint({
+				name: this.fuzzyQuery_name,
+				pageNum: this.queryForm.pageNo,
+				pageSize: this.queryForm.pageSize,
+			}).then(res => {
+				if (res.data) {
+					this.listLoading = false
+					this.total = res.data.total
+					this.list = res.data.records
+					this.templateExcel = [
+						{
+							id: '',
+							code: '',
+							name: '',
+							description: '',
+							windPowerStationid: '',
+							projectId: '',
+							lineId: ''
+						}
+					]
+					// 导出
+					let exportExcel = []
+					res.data.records.forEach(item => {
+						exportExcel.push({
+							id: item.id,
+							code: item.code,
+							name: item.name,
+							description: item.description,
+							windPowerStationid: item.windPowerStationid,
+							projectid: item.projectid,
+							lineid: item.lineid,
+						})
+					})
+					this.exportExcel = exportExcel
+				}
+			})
+		},
+		handleSizeChange(val) {
+			this.queryForm.pageSize = val
+			this.fetchData()
+		},
+		handleCurrentChange(val) {
+			this.queryForm.pageNo = val
+			this.fetchData()
+		},
+		handleAdd() {
+			this.$refs['edit'].showEdit()
+		},
+		handleEdit(row) {
+			this.$refs['edit'].showEdit(row)
+		},
+		handleDelete(row) {
+			if (row.id || this.selectRows.length > 0) {
+				this.$baseConfirm('你确定要删除吗', null, async () => {
+					let ids = ''
+					if (this.selectRows.length > 0) {
+						ids = this.selectRows.map((item) => item.id).join()
+					}
+					api.deleteMeterpoint({
+						id: row.id || ids
+					}).then(res => {
+						if (res.data) {
+							this.$baseMessage('删除成功', 'success')
+							this.fetchData()
+						}
+					})
+				})
+			} else {
+				this.$baseMessage('未选中任何行', 'error')
+				return false
+			}
+		},
+		setSelectRows(val) {
+			this.selectRows = val
+		},
+	},
+}
+</script>
+<style lang="less" scoped>
+.title {
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+	justify-content: space-between;
+	margin-bottom: 20px;
+}
+
+.left {
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+
+	.left-item {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		margin-right: 10px;
+	}
+}
+</style>

+ 178 - 0
src/views/stationConfiguration/equipmentmodel/components/TableEdit.vue

@@ -0,0 +1,178 @@
+<template>
+	<el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
+		<el-form ref="form" :model="form" :rules="rules">
+			<div class="lists">
+				<el-form-item label="id" prop="id">
+					<el-input class="inputs" v-model="form.id" autocomplete="off" :disabled="!idAdd?true:false"></el-input>
+				</el-form-item>
+				<el-form-item label="编码" prop="code">
+					<el-input class="inputs" v-model.trim="form.code" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="名称" prop="name">
+					<el-input class="inputs" v-model="form.name" autocomplete="off"></el-input>
+				</el-form-item>
+				<el-form-item label="描述" prop="description">
+					<el-input class="inputs" v-model="form.description" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="容量" prop="powerProduction">
+					<el-input class="inputs" v-model.trim="form.powerProduction" autocomplete="off"></el-input>
+				</el-form-item>
+				<el-form-item label="厂商编号" prop="windTurbineManufactureId">
+					<el-input class="inputs" v-model.trim="form.windTurbineManufactureId" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="图片" prop="photo">
+					<el-input class="inputs" v-model="form.photo" autocomplete="off">
+					</el-input>
+				</el-form-item>
+				<el-form-item label="传输总发电量单位" prop="unit">
+					<el-input class="inputs" v-model.trim="form.unit" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="切入风速" prop="cutinWindSpeed">
+					<el-input class="inputs" v-model="form.cutinWindSpeed" autocomplete="off"></el-input>
+				</el-form-item>
+				<el-form-item label="额定风速" prop="ratedWindSpeed">
+					<el-input class="inputs" v-model.trim="form.ratedWindSpeed" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="切出风速" prop="cutoutWindSpeed">
+					<el-input class="inputs" v-model="form.cutoutWindSpeed" autocomplete="off">
+					</el-input>
+				</el-form-item>
+				<el-form-item label="叶片切入面积" prop="sweptArea">
+					<el-input class="inputs" v-model.trim="form.sweptArea" autocomplete="off"></el-input>
+				</el-form-item>
+			</div>
+			<div class="lists">
+				<el-form-item label="设备类别" prop="equipmentCategory">
+					<el-input class="inputs" v-model="form.equipmentCategory" autocomplete="off">
+					</el-input>
+				</el-form-item>
+			</div>
+		</el-form>
+		<div slot="footer" class="dialog-footer">
+			<el-button @click="close">取 消</el-button>
+			<el-button type="primary" @click="save">确 定</el-button>
+		</div>
+	</el-dialog>
+</template>
+
+<script>
+import api from '@/api/station'
+import dayjs from "dayjs";
+export default {
+	name: 'TableEdit',
+	props: {
+		options: {
+			type: Array,
+			default: []
+		},
+		stationList: {
+			type: Array,
+			default: []
+		},
+	},
+	data() {
+		return {
+			form: {
+				id: '',
+				code: '',
+				name: '',
+				description: '',
+				powerProduction: '',
+				windTurbineManufactureId: '',
+				photo: '',
+				unit: '',
+				cutinWindSpeed: '',
+				ratedWindSpeed: '',
+				cutoutWindSpeed: '',
+				sweptArea: '',
+				equipmentCategory: '',
+			},
+			rules: {
+				id: [{ required: true, trigger: 'blur', message: '请输入' }],
+				code: [{ required: true, trigger: 'blur', message: '请输入' }],
+				name: [{ required: true, trigger: 'blur', message: '请输入' }],
+				description: [{ required: true, trigger: 'blur', message: '请输入' }],
+				powerProduction: [{ required: true, trigger: 'blur', message: '请输入' }],
+				windTurbineManufactureId: [{ required: true, trigger: 'blur', message: '请输入' }],
+				photo: [{ required: true, trigger: 'blur', message: '请输入' }],
+				unit: [{ required: true, trigger: 'blur', message: '请输入' }],
+				cutinWindSpeed: [{ required: true, trigger: 'blur', message: '请输入' }],
+				ratedWindSpeed: [{ required: true, trigger: 'blur', message: '请输入' }],
+				cutoutWindSpeed: [{ required: true, trigger: 'blur', message: '请输入' }],
+				sweptArea: [{ required: true, trigger: 'blur', message: '请输入' }],
+				equipmentCategory: [{ required: true, trigger: 'blur', message: '请输入' }],
+			},
+			title: '',
+			dialogFormVisible: false,
+			idAdd: true,
+		}
+	},
+	created() { },
+	methods: {
+		showEdit(row) {
+			if (!row) {
+				this.title = '添加'
+				this.idAdd = true
+			} else {
+				this.title = '编辑'
+				this.idAdd = false
+				this.form = Object.assign({}, row)
+			}
+			this.dialogFormVisible = true
+		},
+		close() {
+			this.$refs['form'].resetFields()
+			this.form = this.$options.data().form
+			this.dialogFormVisible = false
+			this.$emit('fetch-data')
+		},
+		save() {
+			this.$refs['form'].validate(async (valid) => {
+				if (valid) {
+					api.addEquipmentmodel(this.form).then(res => {
+						if (res.data) {
+							this.$message({
+								type: 'success',
+								message: '添加成功!'
+							});
+							this.$emit('save-success');
+							this.dialogFormVisible = false
+						}
+					})
+				} else {
+					return false
+				}
+			})
+		},
+		handleChange() {
+		},
+		onBlur(val, param) {
+			if (typeof (this.form[param]) !== 'number') {
+				this.form[param] = val.replace(/[^0-9]/ig, "")
+			}
+		},
+	},
+}
+</script>
+<style lang="less" scoped>
+.inputs {
+	width: 200px;
+}
+
+.lists {
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+	justify-content: space-between;
+}
+</style>

+ 247 - 0
src/views/stationConfiguration/equipmentmodel/index.vue

@@ -0,0 +1,247 @@
+<template>
+	<div class="table-container">
+		<vab-query-form>
+			<div class="title">
+				<div class="left">
+					<div class="left-item">
+						<div style="width: 70px;">名称:</div>
+						<el-input v-model="fuzzyQuery_name" placeholder="请输入" clearable />
+					</div>
+					<el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
+						查询
+					</el-button>
+				</div>
+				<div class="right">
+					<el-button icon="el-icon-plus" type="primary" @click="handleAdd">
+						添加
+					</el-button>
+					<el-button icon="el-icon-delete" type="danger" @click="handleDelete">
+						删除
+					</el-button>
+					<UploadExcel style="margin-left: 10px;" @getResult="getMyExcelData"></UploadExcel>
+					<ExportExcel :exportList="exportExcel" :useType="'export'" partsName="设备型号"></ExportExcel>
+					<ExportExcel :exportList="templateExcel" :useType="'template'" partsName="设备型号模板"></ExportExcel>
+				</div>
+			</div>
+			<el-table ref="tableSort" v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText"
+				:height="height" @selection-change="setSelectRows">
+				<el-table-column show-overflow-tooltip type="selection" width="40"></el-table-column>
+				<el-table-column show-overflow-tooltip label="id" prop="id" align="center" sortable></el-table-column>
+				<el-table-column show-overflow-tooltip label="编码" prop="code" align="center" sortable></el-table-column>
+				<el-table-column show-overflow-tooltip label="名称" prop="name" align="center" sortable></el-table-column>
+				<el-table-column show-overflow-tooltip label="描述" prop="description" align="center" sortable></el-table-column>
+
+				<el-table-column show-overflow-tooltip label="容量" prop="powerProduction" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="厂商编号" prop="windTurbineManufactureId" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="图片" prop="photo" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="传输总发电量单位" prop="unit" align="center" sortable></el-table-column>
+				<el-table-column show-overflow-tooltip label="切入风速" prop="cutinWindSpeed" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="额定风速" prop="ratedWindSpeed" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="切出风速" prop="cutoutWindSpeed" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="叶片切入面积" prop="sweptArea" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="设备类别" prop="equipmentCategory" align="center" sortable>
+				</el-table-column>
+				<el-table-column show-overflow-tooltip label="操作" width="100px" fixed="right">
+					<template #default="{ row }">
+						<el-button type="text" @click="handleEdit(row)">编辑</el-button>
+						<el-button type="text" @click="handleDelete(row)">删除</el-button>
+					</template>
+				</el-table-column>
+			</el-table>
+			<el-pagination :background="background" :current-page="queryForm.pageNo" :layout="layout"
+				:page-size="queryForm.pageSize" :total="total" @current-change="handleCurrentChange"
+				@size-change="handleSizeChange"></el-pagination>
+			<table-edit ref="edit" :options="options" :stationList="stationList" @save-success="fetchData"></table-edit>
+		</vab-query-form>
+	</div>
+</template>
+<script>
+import UploadExcel from '@/components/UploadExcel/index'
+import ExportExcel from '@/components/ExportExcel/index'
+import api from '@/api/station'
+import TableEdit from './components/TableEdit'
+export default {
+	components: {
+		UploadExcel,
+		ExportExcel,
+		TableEdit,
+	},
+	data() {
+		return {
+			fuzzyQuery_name: '',
+			listLoading: true,
+			list: [],
+			options: [],
+			exportExcel: [],
+			templateExcel: [],
+			elementLoadingText: '正在加载...',
+			selectRows: '',
+			layout: 'total, sizes, prev, pager, next, jumper',
+			total: 0,
+			background: true,
+			exportList: [],
+			queryForm: {
+				pageNo: 1,
+				pageSize: 20,
+			},
+			stationList: [],
+			selectValue: ''
+		};
+	},
+	computed: {
+		height() {
+			return this.$baseTableHeight() + 50
+		},
+	},
+	created() {
+		// this.getStation()
+		this.fetchData()
+	},
+	methods: {
+		getMyExcelData(val) {
+			val.forEach(item => {
+				api.addEquipmentmodel(item).then(res => {
+					if (res.code == 200) {
+						this.$message({
+							type: 'success',
+							message: '添加成功!'
+						});
+						this.fetchData()
+					}
+				})
+			})
+		},
+		getStation() {
+			api.windpowerstationList({
+				id: '',
+				name: '',
+				companyid: '',
+				pageNum: 1,
+				pageSize: 1000,
+			}).then(res => {
+				if (res.data) {
+					this.listLoading = false
+					this.stationList = res.data.records
+				}
+			})
+		},
+		fetchData() {
+			api.equipmentmodel({
+				name: this.fuzzyQuery_name,
+				pageNum: this.queryForm.pageNo,
+				pageSize: this.queryForm.pageSize,
+			}).then(res => {
+				if (res.data) {
+					this.listLoading = false
+					this.total = res.data.total
+					this.list = res.data.records
+					this.templateExcel = [
+						{
+							id: '',
+							code: '',
+							name: '',
+							description: '',
+							powerProduction: '',
+							windTurbineManufactureId: '',
+							photo: '',
+							unit: '',
+							cutinWindSpeed: '',
+							ratedWindSpeed: '',
+							cutoutWindSpeed: '',
+							sweptArea: '',
+							equipmentCategory: '',
+						}
+					]
+					// 导出
+					let exportExcel = []
+					res.data.records.forEach(item => {
+						exportExcel.push({
+							id: item.id,
+							code: item.code,
+							name: item.name,
+							description: item.description,
+							powerProduction: item.powerProduction,
+							windTurbineManufactureId: item.windTurbineManufactureId,
+							photo: item.photo,
+							unit: item.unit,
+							cutinWindSpeed: item.cutinWindSpeed,
+							ratedWindSpeed: item.ratedWindSpeed,
+							cutoutWindSpeed: item.cutoutWindSpeed,
+							sweptArea: item.sweptArea,
+							equipmentCategory: item.equipmentCategory,
+						})
+					})
+					this.exportExcel = exportExcel
+				}
+			})
+		},
+		handleSizeChange(val) {
+			this.queryForm.pageSize = val
+			this.fetchData()
+		},
+		handleCurrentChange(val) {
+			this.queryForm.pageNo = val
+			this.fetchData()
+		},
+		handleAdd() {
+			this.$refs['edit'].showEdit()
+		},
+		handleEdit(row) {
+			this.$refs['edit'].showEdit(row)
+		},
+		handleDelete(row) {
+			if (row.id || this.selectRows.length > 0) {
+				this.$baseConfirm('你确定要删除吗', null, async () => {
+					let ids = ''
+					if (this.selectRows.length > 0) {
+						ids = this.selectRows.map((item) => item.id).join()
+					}
+					api.deleteEquipmentmodel({
+						id: row.id || ids
+					}).then(res => {
+						if (res.data) {
+							this.$baseMessage('删除成功', 'success')
+							this.fetchData()
+						}
+					})
+				})
+			} else {
+				this.$baseMessage('未选中任何行', 'error')
+				return false
+			}
+		},
+		setSelectRows(val) {
+			this.selectRows = val
+		},
+	},
+}
+</script>
+<style lang="less" scoped>
+.title {
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+	justify-content: space-between;
+	margin-bottom: 20px;
+}
+
+.left {
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+
+	.left-item {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		margin-right: 10px;
+	}
+}
+</style>