فهرست منبع

Merge branch 'devChenXinLei' of http://124.70.43.205:3000/lining/jn_manager

ln 2 سال پیش
والد
کامیت
8c9e8f8ec8

+ 23 - 1
src/api/station.js

@@ -123,6 +123,25 @@ const newtreeTreels=(data)=>{
       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:`/equipmentmodel/remove-manufacturer/${data.id}`,
+      method:"delete",
+  })
+}
 export default {
   companys,
   addCompanys,
@@ -142,5 +161,8 @@ export default {
   windturbine,
   addWindturbine,
   deleteWindturbine,
-  newtreeTreels
+  newtreeTreels,
+	equipmentmodel,
+	addEquipmentmodel,
+	deleteEquipmentmodel
 };

+ 1 - 1
src/api/table.js

@@ -2,7 +2,7 @@ import request from '@/utils/request'
 
 const projectplan =(data)=>{
   return request({
-      url:`projectplan/listByPage?pagenum=${data.pagenum}&pagesize=${data.pagesize}`,
+      url:`projectplan/listByPage?projectid=${data.projectid}&pagenum=${data.pagenum}&pagesize=${data.pagesize}`,
       method:"get"
   })
 }

+ 7 - 0
src/router/index.js

@@ -115,6 +115,13 @@ export const asyncRoutes = [
           import('@/views/stationConfiguration/windterbin/index'),
         meta: { title: '风机管理' },
       },
+			{
+        path: 'equipmentmodel',
+        name: 'equipmentmodel',
+        component: () =>
+          import('@/views/stationConfiguration/equipmentmodel/index'),
+        meta: { title: '设备型号' },
+      },
     ],
   },
   {

+ 28 - 0
src/utils/deepTree.js

@@ -0,0 +1,28 @@
+var treeAll = []
+export function recursionTree(data) {
+    for (let i = 0; i < data.length; i++) {
+        treeAll.push(data[i])    
+        if(data[i].children){
+            if (data[i].children.length != 0) {
+                recursionTree(data[i].children)
+            }
+        }
+    }
+    return treeAll
+}
+
+var recursionTreeChildrenData = ""
+export function recursionTreeChildren(id , dataAll) {
+    for (let i = 0; i < dataAll.length; i++) {
+        if(dataAll[i].children){
+            if(dataAll[i].id == id) {
+                recursionTreeChildrenData = dataAll[i].children
+            } else {
+                recursionTreeChildren(id , dataAll[i].children)
+            }
+        }
+    }
+    return recursionTreeChildrenData
+}
+
+

+ 3 - 3
src/views/index/components/TableEdit.vue

@@ -6,13 +6,13 @@
           v-model="form.cascaderSel" 
           :options="options" 
           style="width: 240px" 
-          :props="{ checkStrictly: true, label: 'name', value: 'id', children:'children' }" 
+          :props="{ checkStrictly: true, label: 'name', value: 'id', children:'children'}" 
           clearable />
       </el-form-item>
-      <el-form-item label="场站" prop="generatingcapacity" v-if="!idAdd">
+      <el-form-item label="场站" prop="windpower" v-if="!idAdd">
         <el-input class="inputs" v-model="form.windpower" disabled style="width: 240px"></el-input>
       </el-form-item>
-      <el-form-item label="期次" prop="generatingcapacity" v-if="!idAdd">
+      <el-form-item label="期次" prop="projectid" v-if="!idAdd">
         <el-input class="inputs" v-model="form.projectid" disabled style="width: 240px"></el-input>
       </el-form-item>
       <el-form-item label="计划发电量" prop="generatingcapacity">

+ 11 - 8
src/views/index/index.vue

@@ -3,10 +3,11 @@
     <vab-query-form>
       <vab-query-form-left-panel>
         <el-form ref="form" :model="queryForm" :inline="true" @submit.native.prevent >
-          <el-form-item label="场站">
-            <el-cascader class="cascaders" v-model="cascaderSel" :options="options" style="width: 200px"
-              :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children'}" clearable>
-            </el-cascader>
+          <el-form-item label="工程编号">
+            <!-- <el-cascader class="cascaders" v-model="cascaderSel" :options="options" style="width: 200px"
+              :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children', expandTrigger: 'hover' }" clearable>
+            </el-cascader> -->
+            <el-input v-model="fuzzyQuery" placeholder="请输入" clearable />
           </el-form-item>
           <el-form-item>
             <el-button icon="el-icon-search" type="primary" native-type="submit" @click="handleQuery">
@@ -29,7 +30,7 @@
       :height="height" @selection-change="setSelectRows" @sort-change="tableSortChange" show-summary
       :summary-method="getSummaries">
       <el-table-column show-overflow-tooltip type="selection" width="65"></el-table-column>
-      <el-table-column show-overflow-tooltip label="风场编号" prop="windpower" width="200" align="center" sortable>
+      <el-table-column show-overflow-tooltip label="风场编号" prop="windpower" 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="generatingcapacity" align="center" sortable>
@@ -38,7 +39,7 @@
       </el-table-column>
       <el-table-column show-overflow-tooltip label="年份" prop="year" align="center" sortable></el-table-column>
       <el-table-column show-overflow-tooltip label="月份" prop="month" align="center" sortable></el-table-column>
-      <el-table-column show-overflow-tooltip label="操作" width="180px">
+      <el-table-column show-overflow-tooltip label="操作" width="180px" fixed="right">
         <template #default="{ row }">
           <el-button type="text" @click="handleEdit(row)">编辑</el-button>
           <el-button type="text" @click="handleDelete(row)">删除</el-button>
@@ -72,9 +73,10 @@ export default {
   },
   data() {
     return {
+      fuzzyQuery: "",
       imgShow: true,
       list: [],
-      cascaderSel: [],
+      cascaderSel: "",
       imageList: [],
       listLoading: true,
       layout: 'total, sizes, prev, pager, next, jumper',
@@ -103,7 +105,7 @@ export default {
   mounted() { },
   methods: {
     getStation() {
-      api.newtreeTreels({tag: 3}).then(res => {
+      api.newtreeTreels({tag: 2}).then(res => {
         if (res.data) {
           this.options = res.data
         }
@@ -175,6 +177,7 @@ export default {
     async fetchData() {
       this.listLoading = true
       api.projectplan({
+        projectid: this.fuzzyQuery,
         pagenum: this.queryForm.pageNo,
         pagesize: this.queryForm.pageSize,
       }).then(res => {

+ 30 - 10
src/views/indicators/components/TableEdit.vue

@@ -1,23 +1,31 @@
 <template>
   <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
-    <el-form ref="form" :model="form" :rules="rules">
-      <el-form-item label="场站" prop="stationid">
-        <el-select v-model="form.stationid" placeholder="请选择" clearable :disabled="!idAdd?true:false">
+    <el-form ref="form" :model="form" :rules="rules" label-width="120">
+      <el-form-item label="场站  " prop="stationid">
+        <!-- <el-select style="width: 240px" v-model="form.stationid" placeholder="请选择" clearable :disabled="!idAdd?true:false">
           <el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
           </el-option>
-        </el-select>
+        </el-select> -->
+        <el-cascader 
+          ref="cascaderRef"
+          @change="cascaderChange"
+          v-model="form.stationid" 
+          :options="options" 
+          style="width: 200px" 
+          :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children'}" 
+          clearable />
       </el-form-item>
-      <el-form-item label="指标" prop="kay">
-        <el-select v-model="form.kay" placeholder="请选择" clearable :disabled="!idAdd?true:false">
+      <el-form-item label="指标  " prop="kay">
+        <el-select style="width: 200px" v-model="form.kay" placeholder="请选择" clearable :disabled="!idAdd?true:false">
           <el-option v-for="item in keyList" :key="item.name" :label="item.name" :value="item.name">
           </el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="值" prop="value">
-        <el-input class="inputs" v-model="form.value"></el-input>
+      <el-form-item label="值   " prop="value">
+        <el-input style="width: 200px" class="inputs" v-model="form.value"></el-input>
       </el-form-item>
       <el-form-item label="录入时间" prop="createtime">
-        <el-date-picker v-model="form.createtime" type="datetime" placeholder="选择日期时间">
+        <el-date-picker style="width: 200px" v-model="form.createtime" type="datetime" placeholder="选择日期时间">
         </el-date-picker>
       </el-form-item>
     </el-form>
@@ -38,6 +46,10 @@ export default {
       type: Array,
       default: []
     },
+    options: {
+      type: Array,
+      default: []
+    },
   },
   data() {
     return {
@@ -47,6 +59,8 @@ export default {
         createtime: '',
         stationid: '',
         stationname: '',
+        stationidArr: '',
+        stationnameArr: '',
         value: '',
       },
       rules: {
@@ -62,6 +76,10 @@ export default {
   },
   created() { },
   methods: {
+    cascaderChange(data){
+      this.form.stationidArr = data
+      this.form.stationnameArr = this.$refs["cascaderRef"].getCheckedNodes()[0].pathLabels
+    },
     showEdit(row) {
       if (!row) {
         this.title = '添加'
@@ -70,6 +88,7 @@ export default {
         this.title = '编辑'
         this.idAdd = false
         this.form = Object.assign({}, row)
+        this.form.stationid = row.stationid.split(",")
       }
       this.dialogFormVisible = true
     },
@@ -82,7 +101,8 @@ export default {
     handleSave() {
       this.$refs['form'].validate(async (valid) => {
         if (valid) {
-          this.form.stationname = this.stationList.find(val => val.id === this.form.stationid).name
+          this.form.stationid = this.form.stationid.join(",")
+          this.form.stationname = this.form.stationnameArr[this.form.stationnameArr.length-1]
           this.form.createtime = dayjs(this.form.createtime).format("YYYY-MM-DD HH:mm:ss")
           api.addIndicators(this.form).then(res => {
             if (res.code == 200) {

+ 23 - 13
src/views/indicators/index.vue

@@ -2,15 +2,17 @@
   <div class="table-container">
     <div class="title">
       <div class="left">
+        <!-- <div class="left-item">
+          <div style="width: 70px;">场站:</div>
+          <el-cascader 
+            v-model="selectValue" 
+            :options="options" 
+            style="width: 200px" 
+            :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children', expandTrigger: 'hover' }" 
+            clearable />
+        </div> -->
         <div class="left-item">
-          <div>场站:</div>
-          <el-select v-model="selectValue" placeholder="请选择" clearable>
-            <el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
-            </el-option>
-          </el-select>
-        </div>
-        <div class="left-item">
-          <div style="width: 70px;">名称:</div>
+          <div style="width: 100px;">风场名称:</div>
           <el-input v-model="fuzzyQuery" placeholder="请输入" clearable />
         </div>
         <el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
@@ -26,12 +28,11 @@
         </el-button>
       </div>
     </div>
-
     <el-table ref="tableSort" v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText"
       :height="height" @selection-change="setSelectRows">
       <!-- show-summary :summary-method="getSummaries" -->
-      <el-table-column show-overflow-tooltip type="selection" width="65"></el-table-column>
-      <el-table-column show-overflow-tooltip label="风场编号" prop="stationid" width="200" align="center" sortable>
+      <el-table-column width="65" show-overflow-tooltip type="selection"></el-table-column>
+      <el-table-column width="100" show-overflow-tooltip label="风场编号" prop="stationid" align="center" sortable>
       </el-table-column>
       <el-table-column show-overflow-tooltip label="风场名称" prop="stationname" align="center" sortable></el-table-column>
       <el-table-column show-overflow-tooltip label="指标" prop="kay" align="center" sortable>
@@ -40,7 +41,7 @@
       </el-table-column>
       <el-table-column show-overflow-tooltip label="录入时间" prop="createtime" align="center" sortable>
       </el-table-column>
-      <el-table-column show-overflow-tooltip label="操作" width="180px">
+      <el-table-column show-overflow-tooltip label="操作" width="180px" fixed="right">
         <template #default="{ row }">
           <el-button type="text" @click="handleEdit(row)">编辑</el-button>
           <el-button type="text" @click="handleDelete(row)">删除</el-button>
@@ -50,7 +51,7 @@
     <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" :stationList="stationList" @handleSuccess="fetchData"></table-edit>
+    <table-edit ref="edit" :options="options" :stationList="stationList" @handleSuccess="fetchData"></table-edit>
   </div>
 </template>
 
@@ -75,6 +76,7 @@ export default {
   },
   data() {
     return {
+      options: [],
       imgShow: true,
       list: [],
       fuzzyQuery: '',
@@ -102,10 +104,18 @@ export default {
   created() {
     this.getStation()
     this.fetchData()
+    this.getTree()
   },
   beforeDestroy() { },
   mounted() { },
   methods: {
+    getTree() {
+      api.newtreeTreels({tag:2}).then(res => {
+        if (res.data) {
+          this.options = res.data
+        }
+      })
+    },
     getStation() {
       apis.windpowerstationList({
         id: '',

+ 1 - 1
src/views/stationConfiguration/area/components/TableEdit.vue

@@ -1,6 +1,6 @@
 <template>
   <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
-    <el-form ref="form" :model="form" :rules="rules">
+    <el-form ref="form" :model="form" :rules="rules" label-width="170px">
       <el-row>
         <el-col :span="12">
           <el-form-item :disabled="!idAdd?true:false" label="id" prop="id"><el-input class="inputs" v-model.trim="form.id" autocomplete="off"></el-input></el-form-item>

+ 1 - 1
src/views/stationConfiguration/area/index.vue

@@ -4,7 +4,7 @@
       <div class="title">
         <div class="left">
           <div class="left-item">
-            <div>公司:</div>
+            <div style="width: 70px;">公司:</div>
             <el-select v-model="selectValue" placeholder="请选择" clearable>
               <el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id"></el-option>
             </el-select>

+ 1 - 1
src/views/stationConfiguration/company/components/TableEdit.vue

@@ -1,6 +1,6 @@
 <template>
   <el-dialog :title="title" :visible.sync="dialogFormVisible" width="900px" @close="close">
-    <el-form ref="form" :model="form" :rules="rules">
+    <el-form ref="form" :model="form" :rules="rules" label-width="170px">
     <el-row>
       <el-col :span="12">
         <el-form-item :disabled="!idAdd?true:false" label="id" prop="id"><el-input class="inputs" v-model.trim="form.id" autocomplete="off"></el-input></el-form-item>

+ 15 - 1
src/views/stationConfiguration/company/index.vue

@@ -3,8 +3,14 @@
     <vab-query-form>
       <vab-query-form-left-panel>
         <el-form ref="form" :model="queryForm" :inline="true" @submit.native.prevent>
-          <el-form-item>
+          <el-form-item label="公司名称">
             <el-input v-model="fuzzyQuery" placeholder="请输入" clearable />
+            <!-- <el-cascader 
+              v-model="fuzzyQuery" 
+              :options="options" 
+              style="width: 240px" 
+              :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children1' }" 
+              clearable /> -->
           </el-form-item>
           <el-form-item>
             <el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
@@ -95,6 +101,7 @@ export default {
   },
   created() {
     this.fetchData()
+    // this.getTree()
   },
   computed: {
     height() {
@@ -102,6 +109,13 @@ export default {
     },
   },
   methods: {
+    getTree() {
+      api.newtreeTreels({tag: 0}).then(res => {
+        if (res.data) {
+          this.options = res.data
+        }
+      })
+    },
     getMyExcelData(val) {
       val.forEach(item => {
         api.addCompanys(item).then(res => {

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

+ 10 - 2
src/views/stationConfiguration/line/components/TableEdit.vue

@@ -1,6 +1,6 @@
 <template>
   <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
-    <el-form ref="form" :model="form" :rules="rules">
+    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <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>
@@ -19,7 +19,13 @@
       </div>
       <div class="lists">
         <el-form-item label="期次" prop="projectid">
-          <el-input class="inputs" v-model.trim="form.projectid" autocomplete="off"></el-input>
+          <!-- <el-input class="inputs" v-model.trim="form.projectid" autocomplete="off"></el-input> -->
+          <el-cascader 
+            v-model="form.projectid" 
+            :options="options" 
+            style="width: 200px" 
+            :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children',}" 
+            clearable />
         </el-form-item>
         <el-form-item label="装机容量" prop="capacity">
           <el-input class="inputs" v-model.trim="form.capacity" autocomplete="off"
@@ -85,6 +91,7 @@ export default {
         model: [{ required: true, trigger: 'blur', message: '请输入' }],
         ordernum: [{ required: true, trigger: 'blur', message: '请输入' }],
         quantity: [{ required: true, trigger: 'blur', message: '请输入' }],
+        // projectid: [{ required: true, trigger: 'blur', message: '请输入' }],
       },
       title: '',
       dialogFormVisible: false,
@@ -113,6 +120,7 @@ export default {
     save() {
       this.$refs['form'].validate(async (valid) => {
         if (valid) {
+          this.form.projectid = this.form.projectid[this.form.projectid.length - 1]
           api.addLine(this.form).then(res => {
             if (res.data) {
               this.$message({

+ 27 - 5
src/views/stationConfiguration/line/index.vue

@@ -4,7 +4,7 @@
       <div class="title">
         <div class="left">
           <div class="left-item">
-            <div style="width: 70px;">名称:</div>
+            <div style="width: 100px;">线路名称:</div>
             <el-input v-model="fuzzyQuery" placeholder="请输入" clearable />
           </div>
           <el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
@@ -31,14 +31,13 @@
         <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="aname" align="center" sortable></el-table-column>
-        <el-table-column show-overflow-tooltip label="期次" prop="projectid" align="center" sortable></el-table-column>
+        <el-table-column :formatter="nameEcho" show-overflow-tooltip label="期次" prop="projectid" align="center" sortable></el-table-column>
         <el-table-column show-overflow-tooltip label="装机容量" prop="capacity" align="center" sortable></el-table-column>
-        <el-table-column show-overflow-tooltip label="装机单位" prop="capacityunit" align="center" sortable>
-        </el-table-column>
+        <el-table-column show-overflow-tooltip label="装机单位" prop="capacityunit" align="center" sortable></el-table-column>
         <el-table-column show-overflow-tooltip label="装机数量" prop="quantity" align="center" sortable></el-table-column>
         <el-table-column show-overflow-tooltip label="顺序" prop="ordernum" align="center" sortable></el-table-column>
         <el-table-column show-overflow-tooltip label="操作" width="100px" fixed="right">
-          <template #default="{ row }">
+          <template #default="{ row }" fixed="right">
             <el-button type="text" @click="handleEdit(row)">编辑</el-button>
             <el-button type="text" @click="handleDelete(row)">删除</el-button>
           </template>
@@ -56,6 +55,7 @@ import UploadExcel from '@/components/UploadExcel/index'
 import ExportExcel from '@/components/ExportExcel/index'
 import api from '@/api/station'
 import TableEdit from './components/TableEdit'
+import { recursionTree } from '@/utils/deepTree'
 export default {
   components: {
     UploadExcel,
@@ -69,6 +69,7 @@ export default {
   },
   data() {
     return {
+      deepTreeData: '',
       fuzzyQuery: '',
       listLoading: true,
       list: [],
@@ -91,8 +92,29 @@ export default {
   },
   created() {
     this.fetchData()
+    this.getTree()
   },
   methods: {
+    nameEcho(row){
+      let arr = row.projectid.split(",")
+      let str = ""
+      if(this.deepTreeData) {
+        this.deepTreeData.forEach(element => {
+          if(arr[arr.length -1] == element.id){
+            str = element.name
+          }
+        });
+      }
+      return str
+    },
+    getTree() {
+      api.newtreeTreels({tag:3}).then(res => {
+        if (res.data) {
+          this.options = res.data
+          this.deepTreeData = recursionTree(res.data)
+        }
+      })
+    },
     getMyExcelData(val) {
       val.forEach(item => {
         api.addLine(item).then(res => {

+ 13 - 4
src/views/stationConfiguration/period/components/TableEdit.vue

@@ -1,6 +1,6 @@
 <template>
   <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
-    <el-form ref="form" :model="form" :rules="rules">
+    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <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>
@@ -28,7 +28,7 @@
       </div>
       <div class="lists">
         <el-form-item label="投产日期" prop="commissiondate">
-          <el-date-picker v-model="form.commissiondate" type="date" placeholder="选择日期">
+          <el-date-picker style="width:200px" v-model="form.commissiondate" type="date" placeholder="选择日期">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="主控电话" prop="masterphone">
@@ -59,10 +59,17 @@
           </el-input>
         </el-form-item>
         <el-form-item label="风场编号" prop="windpowerstationid">
-          <el-select v-model="form.windpowerstationid" placeholder="请选择" clearable>
+          <!-- <el-select style="width:200px" 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-select> -->
+          <el-cascader 
+            placeholder="请选择"
+            v-model="form.windpowerstationid" 
+            :options="options" 
+            style="width: 200px" 
+            :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children'}"
+            clearable />
         </el-form-item>
       </div>
     </el-form>
@@ -126,6 +133,7 @@ export default {
         this.title = '编辑'
         this.idAdd = false
         this.form = Object.assign({}, row)
+        // this.form.windpowerstationid = this.form.windpowerstationid.split(",")
       }
       this.dialogFormVisible = true
     },
@@ -138,6 +146,7 @@ export default {
     save() {
       this.$refs['form'].validate(async (valid) => {
         if (valid) {
+          this.form.windpowerstationid = this.form.windpowerstationid[this.form.windpowerstationid.length - 1]
           this.form.commissiondate = dayjs(this.form.commissiondate).format("YYYY-MM-DD")
           api.addProject(this.form).then(res => {
             if (res.data) {

+ 36 - 5
src/views/stationConfiguration/period/index.vue

@@ -4,14 +4,20 @@
       <div class="title">
         <div class="left">
           <div class="left-item">
-            <div>场站:</div>
-            <el-select v-model="selectValue" placeholder="请选择" clearable>
+            <div style="width: 70px;">场站:</div>
+            <!-- <el-select v-model="selectValue" placeholder="请选择" clearable>
               <el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
               </el-option>
-            </el-select>
+            </el-select> -->
+            <el-cascader 
+              v-model="selectValue" 
+              :options="options" 
+              style="width: 200px" 
+              :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children'}" 
+              clearable />
           </div>
           <div class="left-item">
-            <div style="width: 70px;">名称:</div>
+            <div style="width: 120px;">工程名称:</div>
             <el-input v-model="fuzzyQuery" placeholder="请输入" clearable />
           </div>
           <el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
@@ -50,6 +56,7 @@
         <el-table-column show-overflow-tooltip label="值长" prop="shiftforeman" align="center" sortable></el-table-column>
         <el-table-column width="120" show-overflow-tooltip label="值长电话" prop="shiftforemanphone" align="center" sortable>
         </el-table-column>
+        <!--  :formatter="nameEcho" -->
         <el-table-column width="120" show-overflow-tooltip label="风场编号" prop="windpowerstationid" align="center" sortable>
         </el-table-column>
         <el-table-column show-overflow-tooltip label="操作" width="100px" fixed="right">
@@ -71,6 +78,7 @@ import UploadExcel from '@/components/UploadExcel/index'
 import ExportExcel from '@/components/ExportExcel/index'
 import api from '@/api/station'
 import TableEdit from './components/TableEdit'
+import { recursionTree } from '@/utils/deepTree'
 export default {
   components: {
     UploadExcel,
@@ -96,7 +104,8 @@ export default {
         pageSize: 20,
       },
       stationList: [],
-      selectValue: ''
+      selectValue: '',
+      deepTreeData: ""
     };
   },
   computed: {
@@ -107,8 +116,30 @@ export default {
   created() {
     this.getStation()
     this.fetchData()
+    this.getTree()
   },
+  mounted() {},
   methods: {
+    nameEcho(row){
+      let arr = row.windpowerstationid.split(",")
+      let str = ""
+      if(this.deepTreeData) {
+        this.deepTreeData.forEach(element => {
+          if(arr[arr.length -1] == element.id){
+            str = element.name
+          }
+        });
+      }
+      return str
+    },
+    getTree() {
+      api.newtreeTreels({tag:2}).then(res => {
+        if (res.data) {
+          this.options = res.data
+          this.deepTreeData = recursionTree(res.data)
+        }
+      })
+    },
     getMyExcelData(val) {
       val.forEach(item => {
         api.addProject(item).then(res => {

+ 29 - 23
src/views/stationConfiguration/station/components/TableEdit.vue

@@ -1,94 +1,100 @@
 <template>
   <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
-    <el-form ref="form" :model="form" :rules="rules">
+    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <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-input placeholder="请输入" class="inputs" v-model="form.id" autocomplete="off" :disabled="!idAdd?true:false"></el-input>
         </el-form-item>
         <el-form-item label="名称" prop="name">
-          <el-input class="inputs" v-model.trim="form.name" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model.trim="form.name" autocomplete="off"></el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="别称" prop="aname">
-          <el-input class="inputs" v-model.trim="form.aname" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model.trim="form.aname" autocomplete="off"></el-input>
         </el-form-item>
 
         <el-form-item label="编码" prop="code">
-          <el-input class="inputs" v-model="form.code" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model="form.code" autocomplete="off"></el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="地址" prop="address">
-          <el-input class="inputs" v-model="form.address" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model="form.address" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="电话" prop="telephone">
-          <el-input class="inputs" v-model.number="form.telephone" autocomplete="off"
+          <el-input placeholder="请输入" class="inputs" v-model.number="form.telephone" autocomplete="off"
             @blur="onBlur(form.telephone,'telephone')"></el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="装机容量" prop="capacity">
-          <el-input class="inputs" v-model="form.capacity" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model="form.capacity" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="容量单位" prop="capacityunit">
-          <el-input class="inputs" v-model.trim="form.capacityunit" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model.trim="form.capacityunit" autocomplete="off"></el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="装机数量" prop="quantity">
-          <el-input class="inputs" v-model.number="form.quantity" autocomplete="off"
+          <el-input  placeholder="请输入"class="inputs" v-model.number="form.quantity" autocomplete="off"
             @blur="onBlur(form.quantity,'quantity')">
           </el-input>
         </el-form-item>
         <el-form-item label="地球经度" prop="longitude">
-          <el-input class="inputs" v-model.trim="form.longitude" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model.trim="form.longitude" autocomplete="off"></el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="地球纬度" prop="latitude">
-          <el-input class="inputs" v-model="form.latitude" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model="form.latitude" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="图片" prop="photo">
-          <el-input class="inputs" v-model.trim="form.photo" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model.trim="form.photo" autocomplete="off"></el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="公司编号" prop="companyid">
-          <el-select v-model="form.companyid" placeholder="请选择" clearable>
+          <el-select style="width: 200px;" v-model="form.companyid" 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="systemmanufact">
-          <el-input class="inputs" v-model.trim="form.systemmanufact" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model.trim="form.systemmanufact" autocomplete="off"></el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="场长" prop="headfarm">
-          <el-input class="inputs" v-model="form.headfarm" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model="form.headfarm" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="场长电话" prop="headfarmphone">
-          <el-input class="inputs" v-model.number="form.headfarmphone" autocomplete="off"
+          <el-input placeholder="请输入" class="inputs" v-model.number="form.headfarmphone" autocomplete="off"
             @blur="onBlur(form.headfarmphone,'headfarmphone')"></el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="机型" prop="model">
-          <el-input class="inputs" v-model="form.model" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model="form.model" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="顺序" prop="ordernum">
-          <el-input class="inputs" v-model.number="form.ordernum" autocomplete="off"
+          <el-input placeholder="请输入" class="inputs" v-model.number="form.ordernum" autocomplete="off"
             @blur="onBlur(form.ordernum,'ordernum')">
           </el-input>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="海拔高度" prop="height">
-          <el-input class="inputs" v-model.trim="form.height" autocomplete="off"></el-input>
+          <el-input placeholder="请输入" class="inputs" v-model.trim="form.height" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="区域编号" prop="regionid">
-          <el-input class="inputs" v-model="form.regionid" autocomplete="off"></el-input>
+          <!-- <el-input  placeholder="请输入"class="inputs" v-model.trim="form.regionid" autocomplete="off"></el-input> -->
+          <el-cascader 
+            v-model="form.regionid" 
+            :options="options" 
+            style="width: 200px" 
+            :props="{ checkStrictly: true, emitPath: true, label: 'name', value: 'id' , children:'children'}" 
+          />
         </el-form-item>
       </div>
     </el-form>
@@ -158,7 +164,6 @@ export default {
         model: [{ required: true, trigger: 'blur', message: '请输入' }],
         ordernum: [{ required: true, trigger: 'blur', message: '请输入' }],
         height: [{ required: true, trigger: 'blur', message: '请输入' }],
-
       },
       title: '',
       dialogFormVisible: false,
@@ -175,6 +180,7 @@ export default {
         this.title = '编辑'
         this.idAdd = false
         this.form = Object.assign({}, row)
+        this.form.regionid = row.regionid.split(",")
       }
       this.dialogFormVisible = true
     },
@@ -188,7 +194,7 @@ export default {
       console.log(this.form);
       this.$refs['form'].validate(async (valid) => {
         if (valid) {
-          console.log(this.form);
+          this.form.regionid = this.form.regionid.join(",")
           api.addWindpowerstation(this.form).then(res => {
             if (res.data) {
               this.$message({

+ 10 - 2
src/views/stationConfiguration/station/index.vue

@@ -4,14 +4,14 @@
       <div class="title">
         <div class="left">
           <div class="left-item">
-            <div>公司:</div>
+            <div style="width: 70px;">公司:</div>
             <el-select v-model="selectValue" placeholder="请选择" clearable>
               <el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
               </el-option>
             </el-select>
           </div>
           <div class="left-item">
-            <div style="width: 70px;">名称:</div>
+            <div style="width: 100px;">风场名称:</div>
             <el-input v-model="fuzzyQuery" placeholder="请输入" clearable />
           </div>
           <el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
@@ -125,8 +125,16 @@ export default {
   created() {
     this.getStation()
     this.fetchData()
+    this.getTree()
   },
   methods: {
+    getTree() {
+      api.newtreeTreels({tag:1}).then(res => {
+        if (res.data) {
+          this.options = res.data
+        }
+      })
+    },
     getMyExcelData(val) {
       val.forEach(item => {
         api.addWindpowerstation(item).then(res => {

+ 52 - 10
src/views/stationConfiguration/windterbin/components/TableEdit.vue

@@ -1,6 +1,6 @@
 <template>
   <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
-    <el-form ref="form" :model="form" :rules="rules">
+    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <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>
@@ -14,16 +14,24 @@
           <el-input class="inputs" v-model="form.name" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="首次并网时间" prop="firstintegratedtime">
-          <el-date-picker v-model="form.firstintegratedtime" type="date" placeholder="选择日期">
+          <el-date-picker style="width: 200px" v-model="form.firstintegratedtime" type="date" placeholder="选择日期">
           </el-date-picker>
         </el-form-item>
       </div>
       <div class="lists">
         <el-form-item label="风场编号" prop="windpowerstationid">
-          <el-select v-model="form.windpowerstationid" placeholder="请选择" clearable>
+          <!-- <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-select> -->
+          <el-cascader 
+            @change="windpowerstationidChange"
+            placeholder="请选择"
+            v-model="form.windpowerstationid" 
+            :options="windpowerstationid_options" 
+            style="width: 200px" 
+            :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children'}"
+            clearable />
         </el-form-item>
         <el-form-item label="工程编号" prop="projectid">
           <el-input class="inputs" v-model.trim="form.projectid" autocomplete="off"></el-input>
@@ -31,7 +39,14 @@
       </div>
       <div class="lists">
         <el-form-item label="线路编号" prop="lineid">
-          <el-input class="inputs" v-model.trim="form.lineid" autocomplete="off"></el-input>
+          <!-- <el-input class="inputs" v-model.trim="form.lineid" autocomplete="off"></el-input> -->
+          <el-cascader 
+            placeholder="请选择"
+            v-model="form.lineid" 
+            :options="lineid_options" 
+            style="width: 200px" 
+            :props="{ checkStrictly: true, label: 'name', value: 'id' , children:'children'}"
+            clearable />
         </el-form-item>
         <el-form-item label="地球纬度" prop="latitude">
           <el-input class="inputs" v-model.trim="form.latitude" autocomplete="off"></el-input>
@@ -65,13 +80,15 @@
 <script>
 import api from '@/api/station'
 import dayjs from "dayjs";
+import { recursionTree, recursionTreeChildren } from '@/utils/deepTree'
+
 export default {
   name: 'TableEdit',
   props: {
-    options: {
-      type: Array,
-      default: []
-    },
+    // options: {
+    //   type: Array,
+    //   default: []
+    // },
     stationList: {
       type: Array,
       default: []
@@ -79,6 +96,9 @@ export default {
   },
   data() {
     return {
+      optionsAll: [],
+      windpowerstationid_options: [],
+      lineid_options: [],
       form: {
         id: '',
         name: '',
@@ -103,8 +123,27 @@ export default {
       idAdd: true,
     }
   },
-  created() { },
+  created() {
+    this.getTree()
+  },
   methods: {
+    windpowerstationidChange(data){
+      if(data){
+        this.lineid_options = recursionTreeChildren(data[data.length - 1], this.optionsAll)
+      }
+    },
+    getTree() {
+      api.newtreeTreels({tag:2}).then(res => {
+        if (res.data) {
+          this.windpowerstationid_options = res.data
+        }
+      })
+      api.newtreeTreels({tag:4}).then(res => {
+        if (res.data) {
+          this.optionsAll = res.data
+        }
+      })
+    },
     showEdit(row) {
       if (!row) {
         this.title = '添加'
@@ -113,6 +152,7 @@ export default {
         this.title = '编辑'
         this.idAdd = false
         this.form = Object.assign({}, row)
+        // this.lineid_options = recursionTreeChildren(this.form.windpowerstationid, this.optionsAll)
       }
       this.dialogFormVisible = true
     },
@@ -125,6 +165,8 @@ export default {
     save() {
       this.$refs['form'].validate(async (valid) => {
         if (valid) {
+          this.form.windpowerstationid = this.form.windpowerstationid[this.form.windpowerstationid.length - 1]
+          this.form.lineid = this.form.lineid[this.form.lineid.length - 1]
           this.form.firstintegratedtime = dayjs(this.form.firstintegratedtime).format("YYYY-MM-DD")
           api.addWindturbine(this.form).then(res => {
             if (res.data) {

+ 29 - 12
src/views/stationConfiguration/windterbin/index.vue

@@ -4,7 +4,7 @@
       <div class="title">
         <div class="left">
           <div class="left-item">
-            <div style="width: 70px;">名称:</div>
+            <div style="width: 100px;">风机名称:</div>
             <el-input v-model="fuzzyQuery_name" placeholder="请输入" clearable />
           </div>
           <el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
@@ -25,25 +25,20 @@
       </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 type="selection"></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="status" 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="firstintegratedtime" align="center" sortable
-          width="130px">
-        </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 width="150" show-overflow-tooltip label="首次并网时间" prop="firstintegratedtime" 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="地球纬度" prop="latitude" align="center" sortable></el-table-column>
         <el-table-column show-overflow-tooltip label="地球经度" prop="longitude" align="center" sortable></el-table-column>
         <el-table-column show-overflow-tooltip label="机型" prop="modelid" 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="standardid" align="center" sortable></el-table-column>
-        <el-table-column show-overflow-tooltip label="操作" width="100px" fixed="right">
+        <el-table-column show-overflow-tooltip label="操作" fixed="right">
           <template #default="{ row }">
             <el-button type="text" @click="handleEdit(row)">编辑</el-button>
             <el-button type="text" @click="handleDelete(row)">删除</el-button>
@@ -62,6 +57,7 @@ import UploadExcel from '@/components/UploadExcel/index'
 import ExportExcel from '@/components/ExportExcel/index'
 import api from '@/api/station'
 import TableEdit from './components/TableEdit'
+import { recursionTree } from '@/utils/deepTree'
 export default {
   components: {
     UploadExcel,
@@ -98,8 +94,29 @@ export default {
   created() {
     this.getStation()
     this.fetchData()
+    this.getTree()
   },
   methods: {
+    nameEcho(row){
+      let arr = row.windpowerstationid.split(",")
+      let str = ""
+      if(this.deepTreeData) {
+        this.deepTreeData.forEach(element => {
+          if(arr[arr.length -1] == element.id){
+            str = element.name
+          }
+        });
+      }
+      return str
+    },
+    getTree() {
+      api.newtreeTreels({tag:4}).then(res => {
+        if (res.data) {
+          this.options = res.data
+          this.deepTreeData = recursionTree(res.data)
+        }
+      })
+    },
     getMyExcelData(val) {
       val.forEach(item => {
         api.addWindturbine(item).then(res => {