瀏覽代碼

Merge branch 'master' of http://gogs.renlianiot.com:4000/zmcoding/smart-tool-ui

tongshanglei 3 年之前
父節點
當前提交
9b0bab58b4

+ 108 - 55
src/config/componentsMap.js

@@ -5,105 +5,158 @@ export default {
     layout: () =>
         import ('@/layout'),
     // 权限管理
-    users: () => import ('@/views/permission/users'),
-    roles: () => import ('@/views/permission/roles'),
-    rules: () => import ('@/views/permission/rules'),
-    departments: () => import ('@/views/permission/departments'),
-    jobs: () => import ('@/views/permission/jobs'),
+    users: () =>
+        import ('@/views/permission/users'),
+    roles: () =>
+        import ('@/views/permission/roles'),
+    rules: () =>
+        import ('@/views/permission/rules'),
+    departments: () =>
+        import ('@/views/permission/departments'),
+    jobs: () =>
+        import ('@/views/permission/jobs'),
     // 系统设置
-    database: () => import ('@/views/system/database'),
-    attachment: () => import ('@/views/system/attachments'),
-    loginLog: () => import ('@/views/system/log/login'),
-    operateLog: () => import ('@/views/system/log/operate'),
-    sensitiveWord: () => import ('@/views/system/sensitiveWord'),
-    develop: () => import ('@/views/system/develop'),
-    generate: () => import ('@/views/system/generate'),
+    database: () =>
+        import ('@/views/system/database'),
+    attachment: () =>
+        import ('@/views/system/attachments'),
+    loginLog: () =>
+        import ('@/views/system/log/login'),
+    operateLog: () =>
+        import ('@/views/system/log/operate'),
+    sensitiveWord: () =>
+        import ('@/views/system/sensitiveWord'),
+    develop: () =>
+        import ('@/views/system/develop'),
+    generate: () =>
+        import ('@/views/system/generate'),
     // 配置管理
-    config: () => import ('@/views/system/config'),
+    config: () =>
+        import ('@/views/system/config'),
     // 模块管理
-    module: () => import ('@/views/system/module'),
+    module: () =>
+        import ('@/views/system/module'),
     // 表单构建
-    form: () => import ('@/views/system/form'),
+    form: () =>
+        import ('@/views/system/form'),
 
     // 微信管理
-    wechatMenus: () => import ('@/views/wechat/menus'),
+    wechatMenus: () =>
+        import ('@/views/wechat/menus'),
     //
     // 微信用户
-    wechatUsers: () => import ('@/views/wechat/users'),
+    wechatUsers: () =>
+        import ('@/views/wechat/users'),
     // 微信用户标签
-    wechatTags: () => import ('@/views/wechat/tags'),
+    wechatTags: () =>
+        import ('@/views/wechat/tags'),
     // wechatGraphic:() => import('@/views/catchAdmin/wechat/graphic'),
-    wechatReply: () => import ('@/views/wechat/reply'),
+    wechatReply: () =>
+        import ('@/views/wechat/reply'),
     //微信公众号轮播图管理
-    wechatBanner: () => import ('@/views/wechat/banner'),
+    wechatBanner: () =>
+        import ('@/views/wechat/banner'),
     //微信公众号公告管理
-    wechatNotice: () => import ('@/views/wechat/notice'),
+    wechatNotice: () =>
+        import ('@/views/wechat/notice'),
     //微信公众号补卡管理
-    wechatUpdateCard: () => import ('@/views/wechat/updatecard'),
+    wechatUpdateCard: () =>
+        import ('@/views/wechat/updatecard'),
     //设备管理
-    hydraulic: () => import ('@/views/device/hydraulic'),
-    wrench: () => import ('@/views/device/wrench'),
-    flange: () => import ('@/views/device/flange'),
-    maintenance: () => import ('@/views/device/maintenance'),
-    wind: () => import ('@/views/wind/wind'),
-    fan: () => import ('@/views/wind/fan'),
+    hydraulic: () =>
+        import ('@/views/device/hydraulic'),
+    wrench: () =>
+        import ('@/views/device/wrench'),
+    flange: () =>
+        import ('@/views/device/flange'),
+    maintenance: () =>
+        import ('@/views/device/maintenance'),
+    wind: () =>
+        import ('@/views/wind/wind'),
+    fan: () =>
+        import ('@/views/wind/fan'),
+    worklocation: () =>
+        import ('@/views/device/worklocation'),
     //同步方案
-    synscheme: () => import ('@/views/device/synscheme'),
-    device_mold: () => import ('@/views/device/mold'),
+    synscheme: () =>
+        import ('@/views/device/synscheme'),
+    device_mold: () =>
+        import ('@/views/device/mold'),
     // stolenVehicles: () => import('@/views/yunying/vehicle/stolen'),
     // 短信平台
-    sms: () => import ('@/views/sms'),
+    sms: () =>
+        import ('@/views/sms'),
 
     //推送记录
-    smsSendLog: () => import ('@/views/sms/smsSendLog'),
+    smsSendLog: () =>
+        import ('@/views/sms/smsSendLog'),
     // 域名管理
-    domain: () => import ('@/views/domain'),
+    domain: () =>
+        import ('@/views/domain'),
     // 域名记录
-    domainRecord: () => import ('@/views/domain/record'),
+    domainRecord: () =>
+        import ('@/views/domain/record'),
 
     //基础配置
-    basicConfig: () => import ('@/views/permission/config'),
+    basicConfig: () =>
+        import ('@/views/permission/config'),
 
     //类型字典
-    sysDictType: () => import ('@/views/system/sysDictType'),
+    sysDictType: () =>
+        import ('@/views/system/sysDictType'),
 
 
     // 报表分析 => 设备汇总
-     // 液压泵统计
-    hydraulicCount: () => import('@/views/report/hydraulicCount'),
- 
+    // 液压泵统计
+    hydraulicCount: () =>
+        import ('@/views/report/hydraulicCount'),
+
     //风场设备统计
-    windCount: () => import('@/views/report/windCount'),
+    windCount: () =>
+        import ('@/views/report/windCount'),
     // 告警设备统计
-    alarmDeviceCount: () => import('@/views/report/alarmDeviceCount'),
+    alarmDeviceCount: () =>
+        import ('@/views/report/alarmDeviceCount'),
     // 单位设备状态统计
-    companyCount: () => import('@/views/report/companyCount'),
-    maintainCount: () => import('@/views/report/maintainCount'),
+    companyCount: () =>
+        import ('@/views/report/companyCount'),
+    maintainCount: () =>
+        import ('@/views/report/maintainCount'),
+
+
 
 
 
-    
-   
 
     // 报表分析 => 概览 => 数据统计
-    dataCount: () => import('@/views/report/dataCount'),
+    dataCount: () =>
+        import ('@/views/report/dataCount'),
     // 热力图
-    heatmap: () => import('@/views/report/heatmap'),
+    heatmap: () =>
+        import ('@/views/report/heatmap'),
 
     //大屏
-    screen: () => import ('@/views/screen'),
+    screen: () =>
+        import ('@/views/screen'),
 
 
     //告警记录
-    alarmRecords: () =>  import ('@/views/alarm/alarmRecords/index'),
-    alarmReport: () => import ('@/views/alarm/alarmReport/index'),
-    alarmDevice: () => import ('@/views/alarm/device/index'),
-    pushResult: () => import ('@/views/alarm/pushResult/index'),
+    alarmRecords: () =>
+        import ('@/views/alarm/alarmRecords/index'),
+    alarmReport: () =>
+        import ('@/views/alarm/alarmReport/index'),
+    alarmDevice: () =>
+        import ('@/views/alarm/device/index'),
+    pushResult: () =>
+        import ('@/views/alarm/pushResult/index'),
     //轨迹地图
-    routeMap: () => import ('@/views/map/routeMap'),
-    alarmMap: () => import ('@/views/map/alarmMap'),
+    routeMap: () =>
+        import ('@/views/map/routeMap'),
+    alarmMap: () =>
+        import ('@/views/map/alarmMap'),
 
     // 围栏列表
-    fence: () => import ('@/views/fence/index'),
+    fence: () =>
+        import ('@/views/fence/index'),
 
 }

+ 294 - 0
src/views/wind/worklocation/detail.vue

@@ -0,0 +1,294 @@
+<template>
+  <el-drawer
+    title="设备信息"
+    :visible.sync="drawerVisible"
+    :direction="direction"
+    size="60%"
+  >
+    <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+      <el-tab-pane label="法兰信息" name="first">
+        <el-divider content-position="left">基础信息</el-divider>
+        <el-row>
+          <div style="margin-bottom: 30px; margin-left: 50px">
+            <el-col
+              :span="6"
+              style="margin-top: 10px; font-size: 14px; color: #a0a0a0"
+            >
+              <div class="detail-item">
+                <span>法兰编号:</span>
+                <span class="item">{{ data.number }}</span>
+              </div>
+              <div class="detail-item">
+                <pre style="display: inline">型    号:</pre>
+                <span class="item">{{ data.model_type}}</span>
+              </div>
+              <div class="detail-item">
+                <span>所属部门:</span>
+                <span class="item">{{ data.depart_name }}</span>
+              </div>
+               <div class="detail-item">
+                <span>所属风场:</span>
+                <span class="item">{{ data.wind_name }}</span>
+              </div>
+            </el-col>
+            <el-col
+              :span="6"
+              style="margin-top: 10px; font-size: 14px; color: #a0a0a0"
+            >
+              <div class="detail-item">
+                <pre style="display: inline">名    称:</pre>
+                <span class="item">{{ data.name }}</span>
+              </div>
+              <div class="detail-item">
+                <span>使用状态:</span>
+                <span class="item">在用</span>
+              </div>
+              <div class="detail-item">
+                <pre style="display: inline">品    牌:</pre>
+                <span class="item">{{ data.brand }}</span>
+              </div>
+               <div class="detail-item">
+                <span>所属风机编号:</span>
+                <span class="item">{{ data.fan_number }}</span>
+              </div>
+            </el-col>
+            <el-col
+              :span="6"
+              style="margin-top: 10px; font-size: 14px; color: #a0a0a0"
+            >
+              <div class="detail-item">
+                <pre style="display: inline">供 应 商:</pre>
+                <span class="item">{{ data.supplier }}</span>
+              </div>
+              <div class="detail-item">
+                <span>出厂日期:</span>
+                <span class="item">{{ data.out_date }}</span>
+              </div>
+               <div class="detail-item">
+                <span>位置:</span>
+                <span class="item">{{ data.install_position }}</span>
+              </div>
+              <div class="detail-item">
+                <pre style="display: inline">备    注:</pre>
+                <span class="item">{{ data.remark }}</span>
+              </div>
+            </el-col>
+            <el-col :span="6"></el-col>
+          </div>
+        </el-row>
+        <el-divider content-position="left">规格信息</el-divider>
+        <el-row>
+          <div style="margin-bottom: 30px; margin-left: 50px">
+            <el-col
+              :span="6"
+              style="margin-top: 10px; font-size: 14px; color: #a0a0a0"
+            >
+              <div class="detail-item">
+                <pre style="display: inline">外    径:</pre>
+                <span class="item">{{ data.outside }}</span>
+              </div>
+             
+            </el-col>
+            <el-col
+              :span="6"
+              style="margin-top: 10px; font-size: 14px; color: #a0a0a0"
+            >
+              <div class="detail-item">
+                <pre style="display: inline">螺栓尺寸:</pre>
+                <span class="item">{{ data.bolt_size }}</span>
+              </div>
+            </el-col>
+            <el-col
+              :span="6"
+              style="margin-top: 10px; font-size: 14px; color: #a0a0a0"
+            >
+              <div class="detail-item">
+                <pre style="display: inline">螺栓数量:</pre>
+                <span class="item">{{ data.bolt_size }}</span>
+              </div>
+            </el-col>
+            <el-col :span="6"></el-col>
+          </div>
+        </el-row>
+      </el-tab-pane>
+      <el-tab-pane label="液压扳手" name="second">
+        <el-table
+          :data="AssemblyData"
+          style="width: 100%; margin-left: 20px"
+        >
+          <el-table-column prop="number" label="编号"> </el-table-column>
+          <el-table-column prop="text" label="名称"> </el-table-column>
+          <el-table-column prop="name" label="型号"> </el-table-column>
+        </el-table>
+      </el-tab-pane>
+      <el-tab-pane label="螺栓紧固方案" name="third">
+        <el-tabs tab-position="left" style="width: 100%; margin-left: 20px">
+          <el-tab-pane :label="item.name" v-for="item in synschemeData" :key="item.id">
+            <el-table :data="item.data" style="width: 100%">
+              <el-table-column prop="step" label="步骤"> </el-table-column>
+              <el-table-column prop="number" label="螺栓编号">
+              </el-table-column>
+              <el-table-column prop="preload" label="标准预紧力(N*m)">  
+              </el-table-column>
+               <el-table-column prop="real_preload" label="标准扭矩力(N*m)">
+              </el-table-column>
+              
+            </el-table>
+          </el-tab-pane>
+        </el-tabs>
+      </el-tab-pane>
+   
+      <el-tab-pane label="维保记录" name="five">
+          <div class="search-box-area" id="searchBox" style="margin-left:20px">
+           <div class="search-item">
+          <el-input
+            placeholder="法兰编号"
+            clearable
+            class="filter-item form-search-input fl"
+            @keyup.enter.native="handleSearch"
+          />
+        </div>
+        <div class="search-item" style="margin-left:20px">
+          <el-input
+            placeholder="泵编号"
+            clearable
+            class="filter-item form-search-input fl"
+            @keyup.enter.native="handleSearch"
+          />
+        </div>
+         <el-button
+         style="margin-left:20px"
+          class="filter-item search fl"
+          icon="el-icon-search"
+          @click="handleSearch"
+          >搜索</el-button
+        >
+        <el-button
+        style="margin-left:20px"
+          class="filter-item fl"
+          icon="el-icon-refresh"
+          @click="handleRefresh"
+          >重置</el-button
+        >
+          </div>
+        <el-table :data="historyData" style="width: 100%; margin-left: 20px">
+           <el-table-column prop="flange_number" label="法兰编号"> </el-table-column>
+          <el-table-column prop="number" label="螺栓编号"> </el-table-column>
+          <el-table-column prop="real_preload" label="拧紧扭矩(N*m)">
+          </el-table-column>
+          <el-table-column prop="stand_preload" label="预紧压力(N*m)">
+          </el-table-column>
+           <el-table-column prop="wrench_number" label="拧紧角度"> </el-table-column>
+           <el-table-column prop="status" label="紧固状态"></el-table-column>
+          <el-table-column prop="beng_no" label="泵编号"> </el-table-column>
+          <el-table-column prop="banshou_no" label="扳手编号">
+          </el-table-column>
+          <el-table-column prop="ways" label="紧固方式"> </el-table-column>
+          <el-table-column prop="operator" label="操作员"> </el-table-column>
+           <el-table-column prop="end_time" label="操作时间">
+          </el-table-column>
+        </el-table>
+        <el-pagination
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange8"
+              :current-page="currentPage1"
+              :page-size="pageSize"
+              layout="total,  prev, pager, next, jumper"
+              style="float:right"
+              :total="45"
+            />
+      </el-tab-pane>
+    </el-tabs>
+  </el-drawer>
+</template>
+<script>
+import toolData from './toolData'
+import oneData from './oneData'
+import twoData from './twoData'
+import fourData from './fourData'
+import sixData from './sixData'
+import nowData from './nowData'
+import historyData from './historyData'
+export default {
+  props: ["detailVisible", "data"],
+  data() {
+    return {
+      drawer: false,
+      direction: "rtl",
+      activeName: "first",
+      AssemblyData: toolData,
+      //螺栓紧固方案
+      synschemeData:[],
+      nowData: nowData[0],
+      historyData: historyData[0],
+      pageSize: 10,
+      currentPage1: 1,
+      currentPage2: 5,
+      currentPage3: 5,
+      currentPage4: 1,
+    };
+  },
+  methods: {
+    handleClick(tab, event) {
+    
+       //获取液压扳手
+       if(tab.name=='second')
+       {
+          this.$http.get("wrenchtype",{ params: {id:this.data.wrench} }).then(response => {
+            this.AssemblyData = response.data;
+          });
+       }
+       if(tab.name=='third')
+       {
+         this.$http.get("synlist",{ params: {id:this.data.fastening_scheme} }).then(response => {
+            this.synschemeData = response.data;
+          });
+
+       }
+  
+    },
+   
+
+    handleRefresh()
+    {
+
+    },
+    handleSearch(){
+
+    },
+
+    handleSizeChange(val) {
+     this.pageSize = val
+    },
+    handleCurrentChange7(val) {
+      this.nowData = nowData[val-1];
+    },
+    handleCurrentChange8(val) {
+      this.historyData = historyData[val-1];
+    },
+  },
+  computed: {
+    drawerVisible: {
+      set(val) {
+        this.$emit("sendVal", val); // 表示将子组件改变的值传递给父组件
+      },
+      get() {
+        return this.detailVisible; // 表示获取父组件的值
+      },
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+ @import "@/views/device/hydraulic/index.scss";
+.detail-item {
+  width: 100%;
+  padding: 15px 0px;
+  list-style-type: none;
+}
+.item {
+  font-size: 14px;
+  color: black;
+  margin-top: 5px;
+}
+</style>

+ 303 - 0
src/views/wind/worklocation/formModel.vue

@@ -0,0 +1,303 @@
+<template>
+  <ele-form-dialog
+    v-bind="formConfig"
+    v-model="formFieldsData"
+    v-dialogDrag
+    :title="title"
+    :request-fn="handleFormSubmit"
+    :visible.sync="DialogVisible"
+    custom-class="abow_dialog"
+    label-position="left"
+    :dialogAttrs="{ 'close-on-click-modal': false,'top':'8vh'}"
+  />
+
+</template>
+
+<script>
+export default {
+  props: ["formModelVisible", "title"],
+  data() {
+    return {
+      formData: {},
+      formFieldsData: {
+        id:"",
+        is_used:"",
+        department_id: "",
+        number: "",
+        name: "",
+        model: "",
+        fan_id:"",
+        outside:"",
+        torque:"",
+        wrench:"",
+        stress:"",
+        bolt_size:"",
+        bolt_number:"",
+        install_position:"",
+        brand:"",
+        supplier:"",
+        out_date:"",
+        fastening_scheme:"",
+        remark: "",
+
+      }, 
+      url: "flange",
+      formConfig: {
+        formDesc: {
+           is_used: {
+            break:true,
+            layout:12,
+            type: "select",
+            label: "使用状态",
+            required: true,
+            isOptions: true,
+            options: [
+              {
+                text: "使用",
+                value: 1
+              },
+              {
+                text: "未使用",
+                value: -1
+              },
+              {
+                text: "已废弃",
+                value: -2
+              }
+            ]
+          },
+          
+           department_id: {
+            layout:12,
+            type: "cascader",
+            label: "所属部门",
+            isOptions: true,
+            options: [],
+            required: true,
+            attrs: {
+              props: {
+                label: "department_name",
+                value: "id",
+                emitPath: false,
+                checkStrictly: true
+
+              }
+            }
+          },
+          //风场id
+          fan_id:{
+             layout:12,
+              type: "cascader",
+              label: "风机编号",
+              isOptions: true,
+              options: [],
+              required: true,
+              vif:true,
+              attrs: {
+                //查询 
+                filterable:true,
+                props: {
+                  label: "text",
+                  value: "value",
+                  emitPath: false,
+                  multiple:false
+                }
+            }
+
+          },
+          number: {
+            layout:12,
+            required:true,
+            type: "input",
+            label: "编号",
+           
+          },
+           name: {
+            layout:12,
+            type: "input",
+            label: "名称",
+            required:true
+          },
+          model: {
+            layout:12,
+            required:true,
+            type: "select",
+            label: "型号",
+            required:true,
+            options:[]
+          },
+           outside:{
+            layout:12,
+            type: "input",
+            label: "外径",
+             required:true
+          },
+           torque:{
+             layout:12,
+             type: "input",
+             label: "扭矩",
+             required:true,
+             rules: [
+             {pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*)|0)$/,message: '请輸入正数,最多保存两位小数'}
+            ]
+          },
+          wrench:{
+             layout:12,
+             type: "select",
+              label: "液压扳手",
+              isOptions: true,
+              options: [],
+              required: true,
+              attrs: {
+                //查询
+                filterable:true,
+                multiple:true,
+                props: {
+                  label: "text",
+                  value: "value",
+                  emitPath: false,
+                  checkStrictly: false,
+                  multiple:false
+                }
+            }
+
+          },
+          fastening_scheme:{
+             layout:12,
+             type: "select",
+              label: "紧固方案",
+              isOptions: true,
+              options: [],
+              required: true,
+              attrs: {
+                //查询
+                filterable:true,
+                multiple:true,
+                props: {
+                  label: "text",
+                  value: "value",
+                  emitPath: false,
+                  checkStrictly: false,
+                  multiple:false
+                }
+            }
+
+          },
+          stress:{
+             layout:12,
+             required: true,
+             type: "input",
+             label: "压力",
+             rules: [
+               {pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*)|0)$/,message: '请輸入正数,最多保存两位小数'}
+            ]
+          },
+          bolt_size: {
+             layout:12,
+             type: "input",
+             label: "螺栓尺寸",
+             rules: [
+             {pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*)|0)$/,message: '请輸入正数,最多保存两位小数'}
+            ]
+          },
+           bolt_number: {
+            required: true,
+            layout:12,
+             type: "input",
+             label: "螺栓数量",
+             rules: [
+              
+               {pattern: /^[1-9]\d*$/,message: '请輸入正整数'}
+              
+            ]
+          },
+          install_position:{
+             layout:12,
+            type: "input",
+            label: "安装位置",
+            vif:true
+          },
+           brand: {
+             layout:12,
+            type: "input",
+            label: "品牌"
+          },
+           supplier: {
+            layout:12,
+            type: "input",
+            label: "供应商"
+          },
+            out_date: {
+            layout:12,
+            type: "date",
+            label: "出厂日期"
+          },
+          remark: {
+            type: "textarea",
+            label: "备注"
+          }
+        },
+        order: ["is_used","model","department_id","fan_id","number", "name","outside","wrench","torque","fastening_scheme","stress","bolt_size","bolt_number","install_position","brand","supplier","out_date","remark"]
+      }
+    };
+  },
+  created() {
+    this.$http.get("departments").then(response => {
+      this.formConfig.formDesc.department_id.options = response.data;
+    });
+  
+     this.$http.get("getwindfan").then(response => {
+      this.formConfig.formDesc.fan_id.options = response.data;
+    });
+    this.$http.get("get_device_mold",{ params: {type:2} }).then(resp => {
+        this.formConfig.formDesc.model.options = resp.data
+     });
+    this.$http.get("wrenchtype").then(response => {
+      this.formConfig.formDesc.wrench.options = response.data;
+    });
+    this.$http.get("synschemetype").then(response => {
+      this.formConfig.formDesc.fastening_scheme.options = response.data;
+    });
+
+
+
+  },
+  methods: {
+    handleFormSubmit(data) {
+
+      this.$parent.handleSubmit();
+    },
+    handleRequest(data) {
+      return Promise.resolve();
+    },
+    handleRequestSuccess() {
+      this.$message.success("发送成功");
+    }
+  },
+
+  computed: {
+    DialogVisible: {
+      set(val) {
+        this.$emit("sendVal", val); // 表示将子组件改变的值传递给父组件
+      },
+      get() {
+        if(this.formModelVisible)
+        {
+      
+            if(!this.formFieldsData.id)
+            {
+                this.formConfig.formDesc.fan_id.vif=false;
+                this.formConfig.formDesc.install_position.vif=false;
+            }
+            else
+            {
+              this.formConfig.formDesc.fan_id.vif=true;
+              this.formConfig.formDesc.install_position.vif=false;
+            }
+        }
+        return this.formModelVisible; // 表示获取父组件的值
+      }
+    }
+  }
+};
+</script>

+ 77 - 0
src/views/wind/worklocation/fourData.js

@@ -0,0 +1,77 @@
+module.exports = [
+  [{
+    step: 1,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 2,
+    preload: "2100",
+    number: "06,08,12,14",
+  },
+  {
+    step: 3,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 4,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 5,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 6,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 7,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 8,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 9,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 10,
+    preload: "2128",
+    number: "05,06,07,09",
+  }],
+  [{
+    step: 11,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 12,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 13,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 14,
+    preload: "2128",
+    number: "05,06,07,09",
+  },
+  {
+    step: 15,
+    preload: "2128",
+    number: "05,06,07,09",
+  }]
+]

+ 593 - 0
src/views/wind/worklocation/historyData.js

@@ -0,0 +1,593 @@
+module.exports  =   [
+    [{
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        }
+    ],
+    [{
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        }
+    ],
+    [{
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        }
+    ],
+    [{
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        }
+    ],
+    [{
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "14,15",
+            real_preload: "2129",
+            stand_preload: "3006",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "15,16,17,18,19",
+            real_preload: "2139",
+            stand_preload: "3007",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: "10,11,12,13,14,15",
+            real_preload: "2129",
+            stand_preload: "3008",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        },
+        {
+            flange_number: '222',
+            wrench_number: '343',
+            status: '合格',
+            number: 13,
+            real_preload: "2128",
+            stand_preload: "3005",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        }
+    ]
+]

+ 109 - 0
src/views/wind/worklocation/index.scss

@@ -0,0 +1,109 @@
+.col-setting-popover {
+    min-width: 100px;
+    padding: 9px 16px;
+    .col-setting-title {
+      color: #7f8b93;
+      font-size: 12px;
+    }
+    .col-setting-group {
+      .el-checkbox {
+        display: block;
+        margin-top: 5px;
+      }
+    }
+  }
+  .icyuandianda {
+    font-size: 12px;
+  }
+  .search-box-area {
+    width: 70%;
+    height: 44px;
+    float: left;
+  }
+  .search-operate-area {
+    width: 20%;
+    height: 44px;
+    float: left;
+  }
+  .search-item {
+    width: 25%;
+    height: 44px;
+    float: left;
+  }
+  #searchBox {
+    overflow: hidden;
+  }
+  .upload-dialog .el-dialog__body {
+    padding: 0px, 20px !important;
+  }
+  .columnOption {
+    position: fixed;
+    z-index: 20;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background-color: rgba(0, 0, 0, 0.3);
+    display: flex;
+    flex-direction: row-reverse;
+    .content {
+      width: 140px;
+      height: 100%;
+      background-color: rgb(255, 255, 255);
+      .head {
+        width: 100%;
+        height: 44px;
+        border-bottom: 1px solid #000;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        font-size: 12px;
+      }
+      .body {
+        width: 100%;
+        height: calc(100% - 88px);
+        box-sizing: border-box;
+        padding-top: 10px;
+        padding-left: 10px;
+        overflow-y: auto;
+        .items {
+          width: 100%;
+          height: 100%;
+          overflow-y: auto;
+          display: flex;
+          flex-direction: column;
+          .el-checkbox {
+            width: 100%;
+            height: 28px;
+            line-height: 28px;
+            margin-bottom: 14px;
+            display: inline-block;
+            font-family: PingFang SC;
+            font-style: normal;
+            font-weight: normal;
+            font-size: 14px;
+            color: #000;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            box-sizing: border-box;
+            padding-left: 14px;
+          }
+          .el-checkbox:hover {
+            background-color: #f5f7fa;
+          }
+        }
+      }
+      .footer {
+        width: 100%;
+        height: 44px;
+        border-top: 1px solid #000;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+      }
+    }
+  }
+  .el-tag {
+    border: 0px;
+  }

+ 490 - 0
src/views/wind/worklocation/index.vue

@@ -0,0 +1,490 @@
+<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-cascader
+            class="filter-item form-search-input fl"
+            v-model="queryParam.department_id"
+            :options="departments"
+            clearable
+            :props="{
+              emitPath:false,
+              label: 'department_name',
+              value: 'id',
+            }"
+            @change="handleChange"
+          ></el-cascader>
+        </div>
+        <div class="search-item">
+          <el-input
+            v-model="queryParam.number"
+            placeholder="编号"
+            clearable
+            class="filter-item form-search-input fl"
+            @keyup.enter.native="handleSearch"
+          />
+        </div>
+        <div class="search-item">
+          <el-input
+            v-model="queryParam.name"
+            placeholder="名称"
+            clearable
+            class="filter-item form-search-input fl"
+            @keyup.enter.native="handleSearch"
+          />
+        </div>
+        <div class="search-item">
+          <!-- <el-input
+            v-model="queryParam.model_typer"
+            placeholder="型号"
+            clearable
+            class="filter-item form-search-input fl"
+            @keyup.enter.native="handleSearch"
+          /> -->
+               <el-select
+                  v-model="queryParam.model"
+                  placeholder="模型"
+                  class="filter-item form-search-input fl"
+                  clearable
+                >
+             <el-option v-for="item in deviceModels" 
+             :key="item.value" 
+             :label="item.text" 
+             :value="item.value"></el-option>
+          </el-select>
+        </div>
+        <div class="search-item">
+          <el-select
+            v-model="queryParam.is_used"
+            placeholder="使用状态"
+            class="filter-item form-search-input fl"
+            clearable
+          >
+             <el-option value="-2" label="未使用">已报废</el-option>
+            <el-option value="-1" label="未使用">未使用</el-option>
+            <el-option value="1" label="已使用">已使用</el-option>
+          </el-select>
+        </div>
+      </div>
+      <div class="search-operate-area">
+        <!-- <el-input v-model="queryParam.code" placeholder="唯一编码" clearable class="filter-item form-search-input fl" /> -->
+        <el-button
+          class="filter-item search fl"
+          icon="el-icon-search"
+          @click="handleSearch"
+          >搜索</el-button
+        >
+        <el-button
+          class="filter-item fl"
+          icon="el-icon-refresh"
+          @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"
+      v-loading="loading"
+      ref="multipleTable"
+      @selection-change="hydraulicSelectMulti"
+      @sort-change="sortChange"
+      :dynamicColumnSetting="true"
+      tooltip-effect="dark"
+      style="width: 100%"
+      border
+      fit
+    >
+      <el-table-column
+        type="selection"
+        fixed="left"
+        width="55"
+      ></el-table-column>
+      <el-table-column
+        prop="depart_name"
+        label="所属部门"
+        align="center"
+        v-if="showColumn.depart_name"
+        :show-overflow-tooltip="true"
+        width="150"
+      />
+       <el-table-column
+        prop="wind_name"
+        label="风场名称"
+        align="center"
+        v-if="showColumn.number"
+        :show-overflow-tooltip="true"
+        width="150"
+      />
+      <el-table-column
+        prop="fan_number"
+        label="风机编号"
+        align="center"
+        v-if="showColumn.number"
+        :show-overflow-tooltip="true"
+        width="150"
+      />
+      <el-table-column
+        prop="number"
+        label="编号"
+        align="center"
+        v-if="showColumn.number"
+        :show-overflow-tooltip="true"
+        width="150"
+      />
+      <el-table-column
+        prop="name"
+        label="名称"
+        align="center"
+        v-if="showColumn.name"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column
+        prop="brand"
+        label="品牌"
+        align="center"
+        v-if="showColumn.brand"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column
+        prop="supplier"
+        label="供应商"
+        align="center"
+        v-if="showColumn.supplier"
+        :show-overflow-tooltip="true"
+        width="120"
+      />
+      <el-table-column
+        prop="model_type"
+        label="型号"
+        align="center"
+        v-if="showColumn.model"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column
+        prop="out_date"
+        label="出厂日期"
+        align="center"
+        v-if="showColumn.out_date"
+        :show-overflow-tooltip="true"
+        width="150"
+      />
+      <el-table-column
+        prop="is_used"
+        label="使用状态"
+        align="center"
+        v-if="showColumn.is_used"
+        :show-overflow-tooltip="true"
+        width="120"
+      >
+        <template slot-scope="record">
+          <el-tag type="danger" v-if="record.row.is_used == -1"
+            >未使用</el-tag>
+           <el-tag type="info" v-if="record.row.is_used == -2"
+            >报废</el-tag>
+          <el-tag type="success" v-if="record.row.is_used == 1"
+            >使用中</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="creator_user"
+        label="导入用户"
+        align="center"
+        v-if="showColumn.creator_user"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column
+        prop="created_at"
+        label="添加时间"
+        align="center"
+        v-if="showColumn.created_at"
+        :show-overflow-tooltip="true"
+        width="200"
+        sortable
+      />
+       <el-table-column
+        prop="remark"
+        label="备注"
+        align="center"
+        v-if="showColumn.remark"
+        width="100"
+      />
+      <el-table-column
+        label="操作"
+        width="150"
+        align="center"
+        fixed="right"
+      >
+        <template slot-scope="record">
+          <el-tooltip
+            content="修改"
+            placement="top"
+            :enterable="false"
+          >
+            <el-button
+              type="primary"
+              size="mini"
+              icon="el-icon-edit"
+              @click="handleUpdate(record.row)"
+            ></el-button>
+          </el-tooltip>
+          <el-tooltip
+            content="查看"
+            placement="top"
+            :enterable="false"
+          >
+            <el-button
+              type="primary"
+              size="mini"
+              icon="el-icon-view"
+              @click="handleDetail(record.row)"
+            ></el-button>
+          </el-tooltip>
+        </template>
+      </el-table-column>
+    </el-table>
+    <transition name="fade">
+      <div class="columnOption" v-show="isShowColumn">
+        <div class="content">
+          <div class="head">选择显示字段</div>
+          <div class="body">
+            <el-checkbox v-model="checkList.depart_name" disabled>所属部门</el-checkbox>
+            <el-checkbox v-model="checkList.wind_name" disabled>所属风场</el-checkbox>
+            <el-checkbox v-model="checkList.fan_number" disabled>所属风机编号</el-checkbox>
+            <el-checkbox v-model="checkList.number">编号</el-checkbox>
+            <el-checkbox v-model="checkList.name">名称</el-checkbox>
+            <el-checkbox v-model="checkList.brand">品牌</el-checkbox>
+            <el-checkbox v-model="checkList.supplier">供应商</el-checkbox>
+            <el-checkbox v-model="checkList.model_type">型号</el-checkbox>
+            <el-checkbox v-model="checkList.out_date">出厂日期</el-checkbox>
+            <el-checkbox v-model="checkList.is_used">使用状态</el-checkbox>
+          </div>
+          <div class="footer">
+            <el-button size="small" type="primary" plain @click="saveColumn"
+              >保存列配置</el-button
+            >
+          </div>
+        </div>
+      </div>
+    </transition>
+    <el-button
+      type="primary"
+      icon="el-icon-plus"
+      :loading="downloadLoading"
+      style="margin-top: 15px"
+      @click="handleCreate"
+      >添加</el-button
+    >
+    <el-button
+      type="danger"
+      icon="el-icon-delete"
+      v-if="selectedIds.length > 0"
+      style="margin-top: 15px"
+      @click="handleMultiDelete()"
+      >删除</el-button
+    >
+    <el-pagination
+      background
+      class="pagination-container"
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page="paginate.current"
+      :page-sizes="paginate.sizes"
+      :page-size="paginate.limit"
+      :layout="paginate.layout"
+      :total="paginate.total"
+    />
+     <form-model
+      @sendVal="closeDialog"
+      :formModelVisible="formVisible"
+      :title="title"
+      :ref="formName"
+    />
+    <detail
+      :detailVisible="detailVisible"
+       @sendVal="closeDrawer"
+       :data="detail"
+    />
+  </div>
+</template>
+
+<script>
+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'
+export default {
+  name: "flange",
+  directives: { action },
+  mixins: [rlListOperate],
+  components: {
+    formModel,
+    detail,
+  },
+  data() {
+    return {
+      url: "flange",
+      queryParam: {
+        number: "",
+        department_id: [],
+        name: "",
+        model: "",
+        is_used: "",
+      },
+      defaultQueryParam:['type'],
+      current_type: {
+        0: "success",
+        1: "danger",
+      },
+      formName:'hydraulic',
+      formVisible:false,
+      //搜索
+      searchDisplay: true,
+      departments: [],
+      deviceModels:[],
+
+      //详情
+      detailVisible:false,
+      detail:{},
+
+      isShowColumn: false,
+      // 列的配置化对象,存储配置信息
+      checkList: {},
+      showColumn: {
+        depart_name: true,
+        wind_name:true,
+        fan_number:true,
+        alarm_state_text: true,
+        net_state:true,
+        number: true,
+        name: true,
+        brand: true,
+        supplier: true,
+        model_type: true,
+      }
+    };
+  },
+  created() {
+    this.$http.get("departments").then((response) => {
+      this.departments = response.data;
+    });
+     this.$http.get("get_device_mold",{ params: {type:2} }).then(resp => {
+        this.deviceModels = resp.data
+     });
+
+  },
+  methods: {
+    //重置
+    handleChange(val) {
+      this.queryParam.department_id = val;
+      this.handleSearch();
+    },
+    hydraulicSelectMulti(data) {
+      this.selectedIds = [];
+      data.forEach((item) => {
+        this.selectedIds.push(item.id);
+      });
+    },
+    refresh() {
+      this.queryParam.page = this.paginate.current;
+      this.getList();
+    },
+    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("flangeSet", JSON.stringify(this.checkList));
+      this.isShowColumn = false;
+    },
+    handleDetail(row){
+      this.detailVisible = true,
+      this.detail = row
+    },
+    closeDrawer(){
+      this.detailVisible = false
+    }
+  },
+  watch: {
+    // 监听复选框配置列所有的变化
+    checkList: {
+      handler: function (newnew, oldold) {
+        // console.log(newnew);
+        this.showColumn = newnew;
+        // 这里需要让表格重新绘制一下,否则会产生固定列错位的情况
+        this.$nextTick(() => {
+          this.$refs.multipleTable.doLayout();
+        });
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  computed: {
+    word: function () {
+      if (this.searchDisplay == false) {
+        //对文字进行处理
+        return "展开";
+      } else {
+        return "收起";
+      }
+    },
+  },
+  mounted() {
+    // this.getIsUseVoice();
+    this.$nextTick(function () {
+      this.searchDis();
+    });
+    // 发请求得到checkListInitData的列的名字
+    if (localStorage.getItem("flangeSet")) {
+      this.checkList = JSON.parse(localStorage.getItem("flangeSet"));
+    } else {
+      this.checkList = {
+        depart_name: true,
+        wind_name:true,
+        fan_number:true,
+        alarm_state_text: true,
+        net_state:true,
+        number: true,
+        name: true,
+        brand: true,
+        supplier: true,
+        model_type: true,
+      };
+    }
+  },
+};
+</script>
+<style lang="scss" scoped>
+ @import "@/views/device/hydraulic/index.scss";
+</style>

+ 43 - 0
src/views/wind/worklocation/nowData.js

@@ -0,0 +1,43 @@
+module.exports  =   [
+    [{
+            number: "09",
+            real_preload: "2128",
+            stand_preload: "3000",
+            end_time: "2022-03-02 15:31:54",
+            beng_no: "200001",
+            banshou_no: "300001",
+            ways: "单同步",
+            operator: "张速",
+        },
+        {
+            number: '10,11',
+            real_preload: "2129",
+            stand_preload: "3001",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "两同步",
+            operator: "张速",
+        },
+        {
+            number: '12,15,16,17',
+            real_preload: "2139",
+            stand_preload: "3002",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "四同步",
+            operator: "张速",
+        },
+        {
+            number: '12,13,14,15,16,17',
+            real_preload: "2129",
+            stand_preload: "3003",
+            end_time: "2022-03-02 16:31:44",
+            beng_no: "200002",
+            banshou_no: "300002",
+            ways: "六同步",
+            operator: "张速",
+        }
+    ]
+]

+ 105 - 0
src/views/wind/worklocation/oneData.js

@@ -0,0 +1,105 @@
+module.exports = [
+  [{
+    step: 1,
+    preload: "2120",
+    number: "01",
+  },
+  {
+    step: 2,
+    preload: "2126",
+    number: "02",
+  },
+  {
+    step: 3,
+    preload: "2120",
+    number: "03",
+  },
+  {
+    step: 4,
+    preload: "2126",
+    number: "04",
+  },
+  {
+    step: 5,
+    preload: "2120",
+    number: "05",
+  },
+  {
+    step: 6,
+    preload: "2126",
+    number: "06",
+  },
+  {
+    step: 7,
+    preload: "2126",
+    number: "07",
+  },
+  {
+    step: 8,
+    preload: "2120",
+    number: "08",
+  },
+  {
+    step: 9,
+    preload: "2126",
+    number: "09",
+  },
+  {
+    step: 10,
+    preload: "2120",
+    number: "10",
+  }],
+  [
+    {
+      step: 11,
+      preload: "2126",
+      number: "11",
+    },
+    {
+      step: 12,
+      preload: "2120",
+      number: "12",
+    },
+    {
+      step: 13,
+      preload: "2126",
+      number: "13",
+    },
+    {
+      step: 14,
+      preload: "2120",
+      number: "14",
+    },
+    {
+      step: 15,
+      preload: "2126",
+      number: "15",
+    },
+    {
+      step: 16,
+      preload: "2120",
+      number: "16",
+    },
+    {
+      step: 17,
+      preload: "2126",
+      number: "17",
+    },
+    {
+      step: 18,
+      preload: "2120",
+      number: "18",
+    },
+    {
+      step: 19,
+      preload: "2126",
+      number: "19",
+    },
+    {
+      step: 20,
+      preload: "2120",
+      number: "20",
+    }
+  ]
+  
+]

+ 92 - 0
src/views/wind/worklocation/sixData.js

@@ -0,0 +1,92 @@
+module.exports = [
+  [{
+    step: 1,
+    preload: "2128",
+    number: "07,08,09,20,21,22",
+  },
+  {
+    step: 2,
+    preload: "2100",
+    number: "23,24,25,26,27,28",
+  },
+  {
+    step: 3,
+    preload: "2228",
+    number: "29,30,31,32,33,34",
+  },
+  {
+    step: 4,
+    preload: "3000",
+    number: "23,24,25,26,27,28",
+  },
+  {
+    step: 5,
+    preload: "3001",
+    number: "07,08,09,20,21,22",
+  },
+  {
+    step: 6,
+    preload: "3002",
+    number: "23,24,25,26,27,28",
+  },
+  {
+    step: 7,
+    preload: "3003",
+    number: "07,08,09,20,21,22",
+  },
+  {
+    step: 8,
+    preload: "3004",
+    number: "23,24,25,26,27,28",
+  },
+  {
+    step: 9,
+    preload: "3005",
+    number: "07,08,09,20,21,22",
+  },
+  {
+    step: 10,
+    preload: "3006",
+    number: "23,24,25,26,27,28",
+  }],
+  [{
+    step: 11,
+    preload: "3007",
+    number: "07,08,09,20,21,22",
+  },
+  {
+    step: 12,
+    preload: "2100",
+    number: "23,24,25,26,27,28",
+  },
+  {
+    step: 13,
+    preload: "2128",
+    number: "07,08,09,20,21,22",
+  },
+  {
+    step: 14,
+    preload: "2100",
+    number: "23,24,25,26,27,28",
+  },
+  {
+    step: 15,
+    preload: "2128",
+    number: "07,08,09,20,21,22",
+  },
+  {
+    step: 16,
+    preload: "2100",
+    number: "23,24,25,26,27,28",
+  },
+  {
+    step: 17,
+    preload: "2128",
+    number: "07,08,09,20,21,22",
+  },
+  {
+    step: 18,
+    preload: "2100",
+    number: "23,24,25,26,27,28",
+  }]
+]

+ 22 - 0
src/views/wind/worklocation/toolData.js

@@ -0,0 +1,22 @@
+module.exports = [
+  {
+   "model": "v23300",
+   "name": "测试工具1",
+   "number": "2022030301"
+ },
+ {
+   "model": "v23301",
+   "name": "测试工具2",
+   "number": "2022030302"
+ },
+ {
+   "model": "v23302",
+   "name": "测试工具3",
+   "number": "2022030303"
+ },
+ {
+   "model": "v23303",
+   "name": "测试工具4",
+   "number": "2022030304"
+ }
+]

+ 62 - 0
src/views/wind/worklocation/twoData.js

@@ -0,0 +1,62 @@
+module.exports = [
+  [{
+    step: 1,
+    preload: "2128",
+    number: "03,04",
+  },
+  {
+    step: 2,
+    preload: "2100",
+    number: "04,05",
+  },
+  {
+    step: 3,
+    preload: "2128",
+    number: "03,04",
+  },
+  {
+    step: 4,
+    preload: "2100",
+    number: "04,05",
+  },
+  {
+    step: 5,
+    preload: "2128",
+    number: "03,04",
+  },
+  {
+    step: 6,
+    preload: "2100",
+    number: "04,05",
+  },
+  {
+    step: 7,
+    preload: "2128",
+    number: "03,04",
+  },
+  {
+    step: 8,
+    preload: "2100",
+    number: "04,05",
+  },
+  {
+    step: 9,
+    preload: "2128",
+    number: "03,04",
+  },
+  {
+    step: 10,
+    preload: "2100",
+    number: "04,05",
+  }],
+  [{
+    step: 11,
+    preload: "2128",
+    number: "03,04",
+  },
+  {
+    step: 12,
+    preload: "2100",
+    number: "04,05",
+  }]
+]