tongshanglei 3 yıl önce
ebeveyn
işleme
3018a8dfa7

+ 66 - 77
src/views/wind/fan/formModel.vue

@@ -6,112 +6,86 @@
     :title="title"
     :request-fn="handleFormSubmit"
     :visible.sync="DialogVisible"
-   
+    width="550px"
     custom-class="abow_dialog"
     label-width="100px"
     label-position="left"
     :dialogAttrs="{ 'close-on-click-modal': false,'top':'8vh'}"
-  />
+  >
+    <template v-slot:number_rules="{ }" >
+       <el-input class="form-item1" v-model="rule_data.number_first" placeholder="机位号前缀"></el-input>
+       <el-input class="form-item1" v-model="rule_data.start_number" placeholder="起始编号"></el-input>
+       <el-input class="form-item1" v-model="rule_data.number_last" placeholder="机位号后缀"></el-input>
+       <el-input class="form-item1" v-model="rule_data.number_length" placeholder="生成数量"></el-input>
+       
+       <!-- <el-switch
+          v-model="zero_fill"
+          active-text="补零"
+          inactive-text="不补零">
+        </el-switch> -->
+        <el-checkbox class="form-item1" label="中间是否补零"  v-model="rule_data.zero_fill"></el-checkbox>
+        <el-input class="form-item1" v-if="rule_data.zero_fill" v-model="rule_data.zero_length" placeholder="补零长度"></el-input>
+    </template>
+  </ele-form-dialog>
 </template>
 
 <script>
-import EleForm from 'vue-ele-form';
-import Vue from 'vue';
-import EleFormImageUploader from 'vue-ele-form-image-uploader';
-Vue.use(EleForm, {
-  // 对所有具有上传属性的组件适用
-  upload: {
-    fileSize: 10
-  },
-})
-// 注册 image-uploader 组件
-Vue.component('image-uploader', EleFormImageUploader)
 export default {
   props: ["formModelVisible", "title"],
   data() {
     return {
+      url: "fan",
       formData: {},
+      rule_data:{
+        start_number:'',
+        number_first:'',
+        number_length:'',
+        number_last:'',
+        zero_fill:'',
+        zero_length:'',
+      },
+      deviceTypes:[],
       formFieldsData: {
         wind_id: "",
-        number: "",
-        production_date: "",
-        install_date:"",
-        supplier:"",
+        number_rules: "",
+        fan_model:"",
         info: "",
-        location:'',
-        name:'',
-        img:'',
+        mul_number:'',
       },
-      url: "fan",
       formConfig: {
         formDesc: {
           wind_id: {
-            type: "cascader",
+            type: "select",
             label: "所属风场",
             isOptions: true,
             options: [],
             required: true,
-            attrs: {
-              props: {
-                label: "name",
-                value: "id",
-                emitPath: false,
-                checkStrictly: true
-              }
+            prop: {
+              text: 'name',
+              value: 'id'
             }
           },
-           name: {
-            type: "input",
-            label: "名称",
+          fan_model: {
+            type: "select",
+            label: "型号",
             required:true,
+            options: [],
           },
-          number: {
-            type: "input",
-            label: "编号",
-            required:true,
-          },
-          supplier: {
-            type: "input",
-            label: "供应商"
-          },
-           location: {
-            type: "input",
-            label: "位置",
-            required:true
-          },
-          production_date: {
-            type: "date",
-            label: "生产日期",
-            required:true
-          },
-          install_date: {
-            type: "date",
-            label: "安装日期",
-            required:true
+          number_rules: {
+   
+            label: "机位号规则",
           },
-          img:{
-              label:"上传图片",
-              type:"image-uploader",
-              attrs: {
-                multiple: {
-                  type: true,
-                },
-              limit: 3,
-              fileSize: 3,
-              action: process.env.VUE_APP_BASE_API+'/osspolicy',
-              responseFn (response, file) {
-                return file.url
-              }
-            }
-
-
+          mul_number: {
+            type: "textarea",
+            label: "机位号",
           },
-          info: {
+           info: {
             type: "textarea",
-            label: "备注"
-          }
+            label: "备注",
+          },
+         
         },
-        order: ["wind_id","number","name", "supplier", "production_date","install_date","location","img","info"]
+        order: ["wind_id","fan_model", "number_rules","mul_number","info"]
       }
     };
   },
@@ -119,10 +93,17 @@ export default {
     this.$http.get("wind").then(response => {
       this.formConfig.formDesc.wind_id.options = response.data;
     });
+     // 4-风机
+    this.$http.get("get_device_mold",{ params: {type:4} }).then(resp => {
+        this.formConfig.formDesc.fan_model.options = resp.data
+     });
   },
   methods: {
     handleFormSubmit(data) {
-      this.$parent.handleSubmit();
+      // console.log(this.rule_data)
+      // console.log(this.formFieldsData)
+      this.formFieldsData.rule_data=this.rule_data
+      this.$parent.handleAddSubmit();
     },
     handleRequest(data) {
       return Promise.resolve();
@@ -137,9 +118,17 @@ export default {
         this.$emit("sendVal", val); // 表示将子组件改变的值传递给父组件
       },
       get() {
+        console.log(this.formFieldsData)
         return this.formModelVisible; // 表示获取父组件的值
       }
     }
   }
 };
-</script>
+</script>
+<style lang="scss" scoped>
+.form-item1{
+  width:110px;
+  margin-right: 5px;
+  margin-bottom: 5px;
+}
+</style>

+ 3 - 0
src/views/wind/fan/index.scss

@@ -106,4 +106,7 @@
   }
   .el-tag {
     border: 0px;
+  }
+  .form-search-input{
+    margin-bottom:10px;
   }

+ 57 - 120
src/views/wind/fan/index.vue

@@ -1,26 +1,9 @@
 <template>
   <div class="app-container">
     <div class="filter-container" style="padding-bottom: 0px">
-      <div class="search-box-area" id="searchBox">
-        <div class="search-item">
-            <el-select
-              class="filter-item form-search-input fl"
-                v-model="queryParam.wind_id"
-                filterable
-                remote
-                reserve-keyword
-                placeholder="请输入风场名称"
-                :remote-method="remoteMethod"
-                :loading="loading">
-                <el-option
-                  v-for="item in options"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id">
-                </el-option>
-            </el-select>
-        </div>
-        <div class="search-item">
+  
+      
+   
           <el-input
             v-model="queryParam.number"
             placeholder="编号"
@@ -28,13 +11,8 @@
             class="filter-item form-search-input fl"
             @keyup.enter.native="handleSearch"
           />
-        </div>
        
-        
-      </div>
-      <div class="search-operate-area">
-        <!-- <el-input v-model="queryParam.code" placeholder="唯一编码" clearable class="filter-item form-search-input fl" /> -->
-        <el-button
+         <el-button
           class="filter-item search fl"
           icon="el-icon-search"
           @click="handleSearch"
@@ -46,28 +24,17 @@
           @click="handleRefresh"
           >重置</el-button
         >
-        <el-button
-          class="filter-item search fl"
-          :icon="this.searchDisplay ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
-          @click="searchDis"
-          >{{ word }}</el-button
-        >
-      </div>
-      <div class="list-operate-area">
-        <!-- <el-button size="mini" class="filter-item search fl" icon="el-icon-plus" @click="handleCreate">添加</el-button> -->
-        <el-button
-          class="filter-item search fl"
-          icon="el-icon-setting"
-          @click="showColumnOption"
-          >列设置</el-button
-        >
+        
+     
+
+     
         <el-button
           class="filter-item search fl"
           icon="el-icon-refresh-right"
           @click="refresh"
           >刷新</el-button
         >
-      </div>
+     
     </div>
     <el-table
       :data="data"
@@ -90,60 +57,34 @@
         prop="wind_name"
         label="风场名称"
         align="center"
-        v-if="showColumn.wind_name"
+     
         :show-overflow-tooltip="true"
        
       />
-       <el-table-column
-        prop="name"
-        label="名称"
-        align="center"
-        v-if="showColumn.name"
-        :show-overflow-tooltip="true"
-     
-      />
-
+      
       <el-table-column
         prop="number"
-        label="编号"
-        align="center"
-        v-if="showColumn.number"
-        :show-overflow-tooltip="true"
-     
-      />
-    
-      <el-table-column
-        prop="supplier"
-        label="供应商"
+        label="机位号"
         align="center"
-        v-if="showColumn.supplier"
         :show-overflow-tooltip="true"
-      
       />
-      <el-table-column
-        prop="production_date"
-        label="出厂日期"
+       <el-table-column
+        prop="model_name"
+        label="风机型号"
         align="center"
-        v-if="showColumn.production_date"
+   
         :show-overflow-tooltip="true"
-      
+     
       />
       <el-table-column
-        prop="install_date"
-        label="安装日期"
+        prop="created_at"
+        label="添加时间"
         align="center"
-        v-if="showColumn.production_date"
+
         :show-overflow-tooltip="true"
-       
+     
       />
-      <el-table-column
-        prop="location"
-        label="位置"
-        align="center"
-        v-if="showColumn.location"
-        :show-overflow-tooltip="true"
    
-      />
       
       <el-table-column
         label="操作"
@@ -168,7 +109,7 @@
         </template>
       </el-table-column>
     </el-table>
-    <transition name="fade">
+    <!-- <transition name="fade">
       <div class="columnOption" v-show="isShowColumn">
         <div class="content">
           <div class="head">选择显示字段</div>
@@ -188,13 +129,13 @@
           </div>
         </div>
       </div>
-    </transition>
+    </transition> -->
     <el-button
       type="primary"
       icon="el-icon-plus"
       :loading="downloadLoading"
       style="margin-top: 15px"
-      @click="handleCreate"
+      @click="handleAddFan()"
       >添加</el-button
     >
     <el-button
@@ -216,7 +157,13 @@
       :layout="paginate.layout"
       :total="paginate.total"
     />
-     <form-model
+    <form-model
+      @sendVal="closeAddDialog"
+      :formModelVisible="addFormVisible"
+      :title="title"
+      :ref="AddFormName"
+    />
+    <update-model
       @sendVal="closeDialog"
       :formModelVisible="formVisible"
       :title="title"
@@ -235,12 +182,14 @@ import rlListOperate from "@/layout/rl-list-operate/rlListOperate";
 import { action } from "@/directive/permission/index.js";
 import detail from "./detail.vue";
 import formModel from './formModel.vue';
+import updateModel from './updateModel.vue';
 export default {
   name: "fan",
   directives: { action },
   mixins: [rlListOperate],
   components: {
     formModel,
+    updateModel,
     detail,
   },
   data() {
@@ -250,13 +199,14 @@ export default {
       queryParam: {
         number: "",
         wind_id: '',
-
       },
       current_type: {
         0: "success",
         1: "danger",
       },
+      AddFormName:'addFan',
       formName:'fan',
+      addFormVisible:false,
       formVisible:false, 
       //搜索
       searchDisplay: true,
@@ -286,7 +236,23 @@ export default {
   //   // });
   // },
   methods: {
-   
+    handleAddFan(){
+      this.title = '新增'
+      this.isReadonly=false
+      this.id = null
+      this.resetFormFields();
+      this.addFormVisible = true
+    },
+    closeAddDialog(){
+      this.addFormVisible = false
+    },
+    handleAddSubmit() {
+      this.$http.post(this.$refs[this.AddFormName].url, this.$refs[this.AddFormName].formFieldsData).then(response => {
+          this.addFormVisible = false
+          this.handleRefresh()
+      })
+      
+    },
     handleChange(val) {
       //  console.log(val)
       this.queryParam.department_id = val;
@@ -315,26 +281,8 @@ export default {
           this.options = [];
         }
       },
-    searchDis() {
-      this.searchDisplay = !this.searchDisplay;
-      var searchBoxHeght = document.getElementById("searchBox");
-      if (this.searchDisplay == false) {
-        searchBoxHeght.style.height = 40 + "px";
-      } else {
-        searchBoxHeght.style.height = "auto";
-      }
-    },
-    showColumnOption() {
-      this.isShowColumn = true;
-    },
-    saveColumn() {
-      localStorage.setItem("fan", JSON.stringify(this.checkList));
-      this.isShowColumn = false;
-    },
-    // handleDetail(row){
-    //   this.detailVisible = true,
-    //   this.detail = row
-    // },
+
+   
     closeDrawer(){
       this.detailVisible = false
     }
@@ -354,21 +302,10 @@ export default {
       immediate: true,
     },
   },
-  computed: {
-    word: function () {
-      if (this.searchDisplay == false) {
-        //对文字进行处理
-        return "展开";
-      } else {
-        return "收起";
-      }
-    },
-  },
+
   mounted() {
     // this.getIsUseVoice();
-    this.$nextTick(function () {
-      this.searchDis();
-    });
+
     // 发请求得到checkListInitData的列的名字
     if (localStorage.getItem("fan")) {
       this.checkList = JSON.parse(localStorage.getItem("fan"));
@@ -387,5 +324,5 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
- @import "@/views/device/hydraulic/index.scss";
+ @import "@/views/wind/fan/index.scss";
 </style>

+ 104 - 0
src/views/wind/fan/updateModel.vue

@@ -0,0 +1,104 @@
+<template>
+  <ele-form-dialog
+    v-bind="formConfig"
+    v-model="formFieldsData"
+    v-dialogDrag
+    :title="title"
+    :request-fn="handleFormSubmit"
+    :visible.sync="DialogVisible"
+    width="550px"
+    custom-class="abow_dialog"
+    label-width="100px"
+    label-position="left"
+    :dialogAttrs="{ 'close-on-click-modal': false,'top':'8vh'}"
+  >
+    
+  </ele-form-dialog>
+</template>
+
+<script>
+export default {
+  props: ["formModelVisible", "title"],
+  data() {
+    return {
+      url: "fan",
+      formData: {},
+      
+ 
+      formFieldsData: {
+        wind_id: "",
+        fan_model:"",
+        info: "",
+        number:"",
+      },
+      formConfig: {
+        formDesc: {
+          wind_id: {
+            type: "select",
+            label: "所属风场",
+            options: [],
+            required: true,
+           
+          },
+          fan_model: {
+            type: "select",
+            label: "型号",
+            required:true,
+            options: [],
+          },
+         
+          number: {
+            type: "input",
+            label: "机位号",
+          },
+           info: {
+            type: "textarea",
+            label: "备注",
+          },
+         
+        },
+        order: ["wind_id","fan_model", "number","info"]
+      }
+    };
+  },
+  created() {
+    this.$http.get("wind/getWindOptions").then(response => {
+      this.formConfig.formDesc.wind_id.options = response.data;
+    });
+     // 4-风机
+    this.$http.get("get_device_mold",{ params: {type:4} }).then(resp => {
+        this.formConfig.formDesc.fan_model.options = resp.data
+     });
+  },
+  methods: {
+    handleFormSubmit(data) {
+      this.formFieldsData.rule_data=this.rule_data
+      this.$parent.handleSubmit();
+    },
+    handleRequest(data) {
+      return Promise.resolve();
+    },
+    handleRequestSuccess() {
+      this.$message.success("发送成功");
+    }
+  },
+  computed: {
+    DialogVisible: {
+      set(val) {
+        this.$emit("sendVal", val); // 表示将子组件改变的值传递给父组件
+      },
+      get() {
+        
+        return this.formModelVisible; // 表示获取父组件的值
+      }
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.form-item1{
+  width:110px;
+  margin-right: 5px;
+  margin-bottom: 5px;
+}
+</style>

+ 6 - 7
src/views/wind/wind/components/viewDialog.vue

@@ -19,7 +19,7 @@
             <span class="content-row"> <span class="name-item">环境类型: </span> <span>潮间带</span> </span>
             <span class="content-row"> <span class="name-item">海拔高度: </span> <span>100米</span> </span>
             <span class="content-row"> <span class="name-item">主机制造商: </span> <span>上海电气</span> </span>
-            <span class="content-row"> <span class="name-item">风机台数: </span> <span>40</span> </span>
+           
             <span class="content-row"> <span class="name-item">添加人员: </span> <span>{{info.creator}}</span> </span>
             <span class="content-row"> <span class="name-item">添加时间: </span> <span>{{info.created_at}}</span> </span>
             <span class="content-row"> <span class="name-item" v-html="'备       注: '"> </span> <span>{{info.remark}}</span> </span>
@@ -27,19 +27,18 @@
           </div>
         </el-row>
 
-        <!-- <el-row class="dialog-row">
-          <div class="dialog-row-title">定位信息  
+        <el-row class="dialog-row">
+          <div class="dialog-row-title">风机统计  
           </div>
           <div class="dialog-row-content">
-            <span class="content-row"> <span class="name-item"> 定位类型: </span> <span>{{info.station_name || ''}}</span> </span>
-            <span class="content-row"> <span class="name-item"> 详细地址: </span> <span>{{info.address || ''}}</span> </span>
+            <span class="content-row"> <span class="name-item"> 机型(SWT-2.5-108): </span> <span>40台</span> </span>
+            <span class="content-row"> <span class="name-item"> 机型(SWT-2.5WM-108): </span> <span>40台</span> </span>
           </div>
-        </el-row> -->
+        </el-row>
 
       </div>
     <el-divider class="dialog-divider"></el-divider>
     <span slot="footer" class="dialog-footer">
-      <!-- <el-button @click="dialogVisible = false">取 消</el-button> -->
       <el-button style="margin-left:20px" type="primary" @click="dialogVisible = false">确 定</el-button>
     </span>
     <!-- <device-dialog