Browse Source

Merge branch 'yx' of http://61.161.152.110:10101/r/electronic-map into sl

# Conflicts:
#	src/router/index.js
shilin 3 years ago
parent
commit
50745e8c1e

+ 4 - 4
src/router/index.js

@@ -815,10 +815,10 @@ const router = createRouter({
 	history: createWebHashHistory(),
 	base: '/zhfx/',
 	routes
-})
+});
 
 router.beforeEach((to, from, next) => {
-	next()
-})
+	next();
+});
 
-export default router
+export default router;

+ 276 - 0
src/views/NewPages/components/group-table.vue

@@ -0,0 +1,276 @@
+<template>
+  <el-table class="custom-table" :class="customClass" stripe :data="data.data" :height="height" style="width: 100%;cursor: pointer;" @cell-click="onClick" @header-click="onHeaderClick">
+    <template v-for="col in data.column" :key="col">
+      <el-table-column v-if="col.child && col.child.length > 0" :label="col.name" :key="col">
+        <el-table-column
+          v-for="sub in col.child"
+          :key="sub"
+          :label="sub.name"
+          :prop="sub.field"
+          :width="sub.width"
+          :sortable="sub.sortable"
+          :show-overflow-tooltip="!sub.slot"
+          :fixed="sub.fixed"
+          :align="sub.align ? sub.align : 'center'"
+          :resizable="sub.resizable"
+          :header-align="'center'"
+        >
+          <template v-if="sub.slot == true" #default="item">
+            <slot :name="sub.field" :column="sub" :row="item.row" :all="item" :data="item.row[item.field]"></slot>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column
+        v-if="!col.child"
+        :label="col.name"
+        :prop="col.field"
+        :width="col.width"
+        :sortable="col.sortable"
+        :show-overflow-tooltip="!col.slot"
+        :fixed="col.fixed"
+        :align="col.align ? col.align : 'center'"
+        :resizable="col.resizable"
+        :header-align="'center'"
+      >
+        <template v-if="col.slot == true" #default="item">
+          <slot :name="col.field" :column="col" :row="item.row" :all="item" :data="item.row[col.field]"></slot>
+        </template>
+      </el-table-column>
+    </template>
+  </el-table>
+  <el-pagination class="mg-t-8" v-if="pageable" @current-change="handleCurrentChange" :current-page="currentPage" :page-size="pageSize" :total="data.total" v-bind="elPaggingProps"> </el-pagination>
+</template>
+
+<script>
+export default {
+  // 名称
+  name: "ComTable",
+  // 使用组件
+  components: {},
+  // 传入参数
+  props: {
+    /**
+             * {
+                    column: [{
+                        name: "风机名称",
+                        child:[{
+                            field: "name",
+                            width:'', // 宽度
+                            click:function(){} // 点击事件
+                            sortable:fasle,
+                            slot:false,
+                            fixed:false,
+                            align:'center',
+                            resizable :false,
+                        }]
+                    }],
+                    total:200
+                }
+             */
+    data: Object,
+    height: {
+      type: String,
+      default: "",
+    },
+    pageSize: {
+      type: Number,
+      default: 0,
+    },
+    customClass: {
+      type: String,
+      default: "",
+    },
+    elPaggingProps: {
+      type: Object,
+      default: () => {
+        return {
+          layout: "total, sizes, prev, pager, next, jumper",
+          // "page-sizes": [100, 200, 300, 400],
+        };
+      },
+    },
+  },
+  emits: {
+    onPagging: null,
+    headerClick: null,
+  },
+  // 数据
+  data() {
+    return {
+      currentPage: 1,
+    };
+  },
+  computed: {
+    tableData() {
+      let that = this;
+      if (this.sortCol == "") {
+        return this.data.data;
+      } else {
+        let data = this.data.data;
+
+        data.sort((a, b) => {
+          let rev = 1;
+          if (that.sortType == "ASC") rev = 1;
+          else if (that.sortType == "DESC") rev = -1;
+
+          if (a[that.sortCol] > b[that.sortCol]) return rev * 1;
+          if (a[that.sortCol] < b[that.sortCol]) return rev * -1;
+          return 0;
+        });
+        return data;
+      }
+    },
+    pageable() {
+      return this.pageSize != 0;
+    },
+    pages() {
+      if (this.pageable) return parseInt(this.data.total / this.pageSize) + 1;
+      else return 0;
+    },
+    startRow() {
+      if (this.pageable) return (this.currentPage - 1) * this.pageSize;
+      else return 0;
+    },
+    endRow() {
+      if (this.pageable) return this.currentPage * this.pageSize;
+      else return this.data.data.length;
+    },
+  },
+  // 函数
+  methods: {
+    onClick(row, column, cell, event) {
+      if (column.rawColumnKey.click) column.rawColumnKey.click(event, row);
+    },
+    onHeaderClick(column, event) {
+      this.$emit("headerClick", { event: event, col: column.rawColumnKey, data: this.data.data });
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.$emit("onPagging", {
+        pageIndex: this.currentPage,
+        pageSize: this.pageSize,
+        start: this.startRow,
+        end: this.endRow,
+      });
+    },
+  },
+  // 生命周期钩子
+  beforeCreate() {
+    // 创建前
+  },
+  created() {
+    // 创建后
+  },
+  beforeMount() {
+    // 渲染前
+  },
+  mounted() {
+    // 渲染后
+  },
+  beforeUpdate() {},
+  updated() {},
+};
+</script>
+
+<style lang="less">
+@titleGray: #9ca5a8;
+@rowGray: #606769;
+@darkBack: #536268;
+.com-table {
+  width: 100%;
+  border-collapse: collapse;
+
+  thead {
+    tr { 
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+
+      th {
+        background-color: fade(@darkBack, 20%);
+        height: 30px;
+        line-height: 30px;
+        color: @titleGray;
+        font-weight: 400;
+        font-size: @fontsize-s;
+        position: sticky;
+        top: 0;
+        cursor: pointer;
+
+        &.light,
+        &.always-light {
+          color: @green;
+        }
+      }
+    }
+  }
+
+  tbody {
+    display: block;
+
+    tr {
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+
+      &:nth-child(2n) {
+        background-color: fade(@rowGray, 20%);
+      }
+
+      td {
+        padding: 0.556vh 0;
+        color: @rowGray;
+        text-align: center;
+        font-size: @fontsize-s;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+
+        &.light,
+        &.always-light {
+          color: @green !important;
+        }
+
+        &.num {
+          font-family: "Bicubik";
+          font-weight: 400;
+        }
+      }
+    }
+  }
+
+  .el-pagination {
+    color: @gray;
+    .el-pagination__total {
+      color: @gray;
+    }
+
+    button {
+      &.btn-next,
+      &.btn-prev {
+        background: center center no-repeat fade(@gray, 20);
+        color: @gray-l;
+      }
+      &:disabled {
+        color: @gray-l;
+        background-color: fade(@gray, 20);
+        cursor: not-allowed;
+      }
+    }
+
+    .el-pager li {
+      color: @gray-l;
+      background: fade(@gray, 20);
+      &.active {
+        color: @green;
+      }
+    }
+
+    .el-input__inner {
+      color: @gray-l;
+      background: fade(@gray, 20);
+      border: 1px solid fade(@gray, 20);
+    }
+  }
+}
+</style>

File diff suppressed because it is too large
+ 418 - 385
src/views/NewPages/power-benchmarking.vue


+ 105 - 60
src/views/allLifeManage/tab1.vue

@@ -5,36 +5,66 @@
         <div class="query-item">
           <div class="lable">供应商:</div>
           <div class="search-input">
-            <el-select v-model="vendor" clearable placeholder="请选择" popper-class="select">
-              <el-option v-for="item in vendorArray" :key="item.company" :value="item.company" :label="item.company" />
+            <el-select
+              v-model="vendor"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in vendorArray"
+                :key="item.company"
+                :value="item.company"
+                :label="item.company"
+              />
             </el-select>
           </div>
         </div>
         <div class="query-item">
           <div class="lable">采购单号:</div>
           <div class="search-input">
-            <el-input placeholder="请输入描述" size="middle" v-model="ponum" clearable></el-input>
+            <el-input
+              placeholder="请输入描述"
+              size="middle"
+              v-model="ponum"
+              clearable
+            ></el-input>
           </div>
         </div>
         <div class="query-item">
           <div class="lable">仓库:</div>
           <div class="search-input">
-            <el-select v-model="warehouse" clearable placeholder="请选择" popper-class="select">
-              <el-option v-for="item in warehouseArray" :key="item.warehouse" :value="item.warehouse" :label="item.warehouse" />
+            <el-select
+              v-model="warehouse"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in warehouseArray"
+                :key="item.warehouse"
+                :value="item.warehouse"
+                :label="item.warehouse"
+              />
             </el-select>
           </div>
         </div>
         <div class="query-item">
           <div class="lable">日期:</div>
           <div class="search-input">
-            <el-date-picker size="medium" v-model="dateArea" type="datetimerange"
-              :picker-options="pickerOptions" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right"
-              >
+            <el-date-picker
+              size="medium"
+              v-model="dateArea"
+              type="datetimerange"
+              :picker-options="pickerOptions"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              align="right"
+            >
             </el-date-picker>
           </div>
         </div>
-        
-        
       </div>
       <div class="query-actions" style="margin-right: 1500px">
         <button class="btn green" @click="onClickSearch">查询</button>
@@ -54,9 +84,13 @@ export default {
   data() {
     return {
       dateArea: [
-          this.fmtDate(new Date(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 30))),
-          this.fmtDate(new Date())
-        ],
+        this.fmtDate(
+          new Date(
+            new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 30)
+          )
+        ),
+        this.fmtDate(new Date()),
+      ],
       pageSize: 100,
       pageNum: 1,
       ponum: "",
@@ -176,57 +210,56 @@ export default {
   created() {
     // this.requestSafeList();
     this.value1 = this.getTime(1);
-		this.value2 = this.getTime(2);
+    this.value2 = this.getTime(2);
     this.getVendor();
-    this.getWarehouse();
-    this.requestSafeList();
   },
   methods: {
-    getTime(val) { //时间戳处理,val=1是默认开始时间(当前月第一天),val=2是默认结束时间(今天)
-				var date = new Date();
-				var year = date.getFullYear(),
-					month = date.getMonth() + 1,
-					day = date.getDate();
-				month >= 1 && month <= 9 ? (month = '0' + month) : '';
-				day >= 0 && day <= 9 ? (day = '0' + day) : '';
-				var begin = year + '-' + month + '-01';
-				var end = year + '-' + month + '-' + day;
-				if (val == 1) {
-					return begin;
-				} else if (val == 2) {
-					return end;
-				}
-			},
-    
-// 获取厂家
-    getVendor () {
+    getTime(val) {
+      //时间戳处理,val=1是默认开始时间(当前月第一天),val=2是默认结束时间(今天)
+      var date = new Date();
+      var year = date.getFullYear(),
+        month = date.getMonth() + 1,
+        day = date.getDate();
+      month >= 1 && month <= 9 ? (month = "0" + month) : "";
+      day >= 0 && day <= 9 ? (day = "0" + day) : "";
+      var begin = year + "-" + month + "-01";
+      var end = year + "-" + month + "-" + day;
+      if (val == 1) {
+        return begin;
+      } else if (val == 2) {
+        return end;
+      }
+    },
+
+    // 获取厂家
+    getVendor() {
       let that = this;
       that.API.requestData({
         baseURL: "http://192.168.1.18:9988",
-          subUrl: "companies/list",
-        success (res) {
-          console.log(res.data)
+        subUrl: "companies/list",
+        success(res) {
           that.vendorArray = res.data;
           that.vendor = res.data[0].company;
-        }
+          that.getWarehouse();
+        },
       });
     },
     // 获取仓库
-    getWarehouse () {
+    getWarehouse() {
       let that = this;
       that.API.requestData({
         baseURL: "http://192.168.1.18:9988",
-          subUrl: "warehouse/list",
-        success (res) {
-          console.log(res.data)
+        subUrl: "warehouse/list",
+        success(res) {
           that.warehouseArray = res.data;
           that.warehouse = res.data[0].warehouse;
-        }
+          that.requestSafeList();
+        },
       });
     },
 
     // 格式化日期
-    fmtDate (date) {
+    fmtDate(date) {
       let curDate = date || new Date();
       let year = curDate.getFullYear();
       let mouth = curDate.getUTCMonth() + 1;
@@ -234,7 +267,19 @@ export default {
       let hour = curDate.getHours();
       let minutes = curDate.getMinutes();
       let seconds = curDate.getSeconds();
-      return year + '-' + (mouth < 10 ? '0' + mouth : mouth) + '-' + (day < 10 ? '0' + day : day) + ' ' + (hour < 10 ? '0' + hour : hour) + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds);
+      return (
+        year +
+        "-" +
+        (mouth < 10 ? "0" + mouth : mouth) +
+        "-" +
+        (day < 10 ? "0" + day : day) +
+        " " +
+        (hour < 10 ? "0" + hour : hour) +
+        ":" +
+        (minutes < 10 ? "0" + minutes : minutes) +
+        ":" +
+        (seconds < 10 ? "0" + seconds : seconds)
+      );
     },
     BeginChange(vl) {
       this.value1 = vl;
@@ -254,11 +299,15 @@ export default {
       let that = this;
       if (!that.dateArea || !that.dateArea.length) {
         that.BASE.showMsg({
-          msg:"请先选择要查询的日期区间后再试"
+          msg: "请先选择要查询的日期区间后再试",
         });
       } else {
-        let starttime = (this.dateArea.length ? new Date(this.dateArea[0]).formatDate("yyyy-MM-dd hh:mm:ss") : '');
-        let endtime = (this.dateArea.length ? new Date(this.dateArea[1]).formatDate("yyyy-MM-dd hh:mm:ss") : '');
+        let starttime = this.dateArea.length
+          ? new Date(this.dateArea[0]).formatDate("yyyy-MM-dd hh:mm:ss")
+          : "";
+        let endtime = this.dateArea.length
+          ? new Date(this.dateArea[1]).formatDate("yyyy-MM-dd hh:mm:ss")
+          : "";
 
         // let data = {
         //   category1:'SYZ',
@@ -273,8 +322,8 @@ export default {
         that.API.requestData({
           // baseURL:"http://192.168.1.14:8075/",
           baseURL: "http://192.168.1.18:9988",
-          subUrl:"poline/list",
-          method:"GET",
+          subUrl: "poline/list",
+          method: "GET",
           data: {
             vendor: that.vendor,
             ponum: that.ponum,
@@ -284,11 +333,10 @@ export default {
             pagenum: that.pageNum,
             pagesize: that.pageSize,
           },
-          success(res){
-            console.log(res.data.records);
+          success(res) {
             if (res.data.records.length) {
-              res.data.records.forEach((ele,index) => {
-                ele.index = (index+1);
+              res.data.records.forEach((ele, index) => {
+                ele.index = index + 1;
                 ele.timeDate = that.fmtDate(new Date(ele.time));
                 if (ele.value > 0) {
                   ele.value = parseFloat(ele.value).toFixed(4);
@@ -297,17 +345,14 @@ export default {
               that.tableData.data = res.data.records || [];
             } else {
               that.BASE.showMsg({
-                type:"warning",
-                msg:"所选日期区间之内暂无数据,请重试"
+                type: "warning",
+                msg: "所选日期区间之内暂无数据,请重试",
               });
             }
             that.showDialog = true;
-          }
+          },
         });
       }
-      
-      
-
     },
   },
 };

+ 1 - 38
src/views/layout/Menu.vue

@@ -518,44 +518,7 @@ export default {
           id: 'personnel',
           text: '安全管控',
           data: [
-            // ,
-            // {
-            //   text: "五项损失率",
-            //   icon: "svg-matrix",
-            //   path: "/decision/decision2",
-            // },
-            // {
-            //   text: "场内对标",
-            //   icon: "svg-matrix",
-            //   path: "/decision/decision2Cndb",
-            // },
-            // {
-            //   text: "场际对标",
-            //   icon: "svg-matrix",
-            //   path: "/decision/decision2Cjdb",
-            // },
-            // {
-            //   text: "项目对标",
-            //   icon: "svg-matrix",
-            //   path: "/decision/decision2Xmdb",
-            // },
-            // {
-            //   text: "线路对标",
-            //   icon: "svg-matrix",
-            //   path: "/decision/decision2Xldb",
-            // },
-            // {
-            //   text: "性能对标",
-            //   icon: "svg-matrix",
-            //   path: "/decision/decision3",
-            // },
-            // {
-            //   text: "值际对标",
-            //   icon: "svg-matrix",
-            //   path: "/decision/decision4",
-            // }
-
-            {
+              {
               text: '安全管控',
               icon: 'svg-matrix',
               path: '/new/personnel',