tengmingxue 2 years ago
parent
commit
b2cd5a0295

+ 2 - 2
src/api/user.js

@@ -39,7 +39,7 @@ export function userFirstLogin(params) {
 // 获取用户拥有的菜单
 export function getUserMenu_B(id) {
   return request({
-    url: `/base/menu/getTreeMenuByUser/${id}`,
+    url: `/base/menu/getTreeMenuByUserNew/${id}`,
     method: 'get'
   })
 }
@@ -47,7 +47,7 @@ export function getUserMenu_B(id) {
 // 获取用户拥有的菜单
 export function getUserMenu(id) {
   return request({
-    url: `/base/menu/getTreeMenuByUserNew/${id}`,
+    url: `/base/menu/getTreeMenuByUser/${id}`,
     method: 'get'
   })
 }

BIN
src/assets/images/home/QRcode.png


BIN
src/assets/images/home/bigPicture.png


BIN
src/assets/images/home/home.png


BIN
src/assets/images/home/setting.png


+ 9 - 1
src/layout/components/Configure/cfgRoute.js

@@ -1,4 +1,12 @@
 const routes = [
-    {routeName:'CGLC',routeIp:'/purchasemanage/purchaseExamine'}
+    {routeName:'CGLC',routeIp:'/purchasemanage/purchaseExamine'},
+    {routeName:'HYLC',routeIp:'/meetingmanage/meetingapproval'},
+    {routeName:'YCLC',routeIp:'/vehiclemanage/vehicleapproval'},
+    {routeName:'GGLC',routeIp:'/announcement/noticeExamine'},
+    {routeName:'SW',routeIp:'/collectDocument/collectDocExamine'},
+    {routeName:'FWLC',routeIp:'/sendDocument/sendDocExamine'},
+    {routeName:'RKLC',routeIp:'/materialputinManage/putindeal'},
+    {routeName:'WZSQ',routeIp:'/materialApply/materialApplyExamine'},
+    {routeName:'GCLC',routeIp:'/acceptProject/contractapprove'}
 ]
 export default routes

+ 3 - 2
src/layout/components/Header/index.vue

@@ -126,14 +126,14 @@
           <span v-if="systemSettingsBtn" class="interval" />
           <el-button v-if="systemSettingsBtn" type="text" class="theme" />
         </div>
-        <el-divider direction="vertical" />
+        <!-- <el-divider direction="vertical" /> -->
         <el-dropdown class="avatar-container" trigger="click">
           <div class="avatar-wrapper">
             <div style="background: #fff;">
               <img :src="avatar || headPortrait" class="user-avatar" />
             </div>
             <!-- <span class="username_text">{{ realName }}1231312</span> -->
-            <i class="el-icon-arrow-down" />
+            <!-- <i class="el-icon-arrow-down" /> -->
           </div>
           <el-dropdown-menu slot="dropdown" class="user-dropdown">
             <el-dropdown-item
@@ -633,6 +633,7 @@ export default {
     .btn_box {
       float: left;
       display: flex;
+      height: 100%;
       align-items: center;
       i {
         color: #fff;

+ 226 - 0
src/views/currentSystem/dashboard/components/ProductionOperations/components/Second/zdIndexEchart.vue

@@ -0,0 +1,226 @@
+<template>
+  <div class="sup-use-container">
+    <span style="font-weight: bold">{{ name }}</span>
+    <div class="chart-container" ref="chart"></div>
+  </div>
+</template>
+
+<script>
+import Echarts from "echarts";
+import { client, parseTime } from "@/utils/index";
+import { queryMonitorTendency } from "@/api/SCADAInfoApi";
+export default {
+  props: ["name"],
+  data() {
+    return {
+      Echarts,
+      seriesData1: [],
+      seriesData2: [],
+    };
+  },
+  created() {
+    this.getTwoFactoryIndex();
+  },
+  mounted() {
+    // this.drwaChart()
+  },
+  methods: {
+    drwaChart() {
+      const chartReady = this.Echarts.init(this.$refs.chart);
+      const options = {
+        tooltip: {
+          trigger: "axis",
+          axisPointer: {
+            type: "shadow",
+          },
+          formatter: "{b0}<br />{a0}: {c0} m³<br />{a1}: {c1} m³",
+        },
+        grid: {
+          left: "3%",
+          right: "3%",
+          bottom: "5%",
+          containLabel: true,
+        },
+        xAxis: [
+          {
+            type: "category",
+            data: [
+              "1月",
+              "2月",
+              "3月",
+              "4月",
+              "5月",
+              "6月",
+              "7月",
+              "8月",
+              "9月",
+              "10月",
+              "11月",
+              "12月",
+            ],
+            boundaryGap: false,
+            axisLine: {
+              lineStyle: {
+                color: "#eaeaea",
+              },
+            },
+            axisLabel: {
+              color: "#333",
+            },
+          },
+        ],
+        yAxis: [
+          {
+            name: "取水量、供水量(m³)",
+            nameTextStyle: {
+              color: "#333",
+              padding: [0, 0, 0, 80], // 四个数字分别为上右下左与原位置距离
+            },
+            type: "value",
+            axisLine: {
+              lineStyle: {
+                color: "#eaeaea",
+              },
+            },
+            axisLabel: {
+              color: "#333",
+            },
+          },
+        ],
+        color: ["#46b3ff", "#52cf93"],
+        legend: {
+          data: ["供水", "取水"],
+        },
+        series: [
+          {
+            name: "供水",
+            type: "line",
+            data: this.seriesData1,
+            smooth: true,
+          },
+          {
+            name: "取水",
+            type: "line",
+            data: this.seriesData2,
+            smooth: true,
+          },
+        ],
+      };
+      chartReady.setOption(options);
+
+      //自定义缩放
+      window.addEventListener("resize", () => {
+        if (chartReady) {
+          chartReady.resize();
+        }
+      });
+    },
+
+    /**
+     * @description 二厂(取供水曲线图)---浊度
+     */
+    getTwoFactoryIndex() {
+      const curDate = new Date();
+      var preDate = new Date(curDate.getTime() - 24 * 60 * 60 * 1000); //前一天
+      let date = parseTime(preDate, "{y}-{m}-{d}");
+      const data = {
+        codes: "S7.300.CHU_SS,S7.300.JIN_SS", // 指标名称   S7.300.CHU_CL 余氯
+        start: date + " 00:00:00",
+        end: date + " 23:59:59",
+        timeTotal: 24 * 60 * 60,
+        isPage: false, // 不分页
+      };
+      queryMonitorTendency(data).then((res) => {
+        // 渲染折线图
+        if (res.code == 1) {
+          let result = res.result.records
+          console.log("浊度", result)
+          this.dataStatistic(result)
+        } else {
+          this.$message.error(res.message);
+        }
+      });
+    },
+
+    dataStatistic(res) {
+      let displayName = [];
+      
+      res.forEach((type,index) => {
+        displayName.push(type.displayName)
+        const scadaVos = type.scadaVos
+        let scadaValue = []
+        scadaVos.forEach(item=>{
+          scadaValue.push({
+            scadaTime:item.scadaTime,
+            time:(new Date(item.scadaTime)).getTime(),
+            value:item.value
+          })
+        })
+        console.log(index+'-----',scadaValue)
+      });
+    },
+
+    getOption(data) {
+      option = {
+        title: {
+          text: "",
+        },
+        tooltip: {
+          trigger: "axis",
+        },
+        legend: {
+          data: ["Email", "Union Ads"],
+        },
+        grid: {
+          left: "3%",
+          right: "4%",
+          bottom: "3%",
+          containLabel: true,
+        },
+        toolbox: {
+          feature: {
+            saveAsImage: {},
+          },
+        },
+        xAxis: {
+          type: "category",
+          boundaryGap: false,
+          data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
+        },
+        yAxis: {
+          type: "value",
+        },
+        series: [
+          {
+            name: "Email",
+            type: "line",
+            stack: "Total",
+            smooth: true,
+            data: [120, 132, 101, 134, 90, 230, 210],
+          },
+          {
+            name: "Union Ads",
+            type: "line",
+            stack: "Total",
+            smooth: true,
+            data: [220, 182, 191, 234, 290, 330, 310],
+          },
+        ],
+      };
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.sup-use-container {
+  width: 100%;
+  height: 100%;
+  padding: 10px;
+  .chart-container {
+    width: 100%;
+    height: 100%;
+    padding: 20px;
+  }
+}
+</style>

+ 119 - 62
src/views/currentSystem/dashboard/components/ProductionOperations/index.vue

@@ -1,7 +1,7 @@
 <template>
-<!-- 生产运营 -->
+  <!-- 生产运营 -->
   <blocks title="水质情况">
-    <el-row >
+    <el-row>
       <!-- <template v-for="item in controls.line1">
         <el-col :key="item.key" :span="controls.colSpan" style="height: 320px" class="show-divider">
           <difference v-if="validateAuth('difference') && item.key === 'difference'" :name="item.name"></difference>
@@ -22,21 +22,62 @@
           <company-sup-use-water-second v-if="validateAuth('companySupUseWaterSecond') && item.key === 'companySupUseWaterSecond'" :name="item.name"></company-sup-use-water-second>
         </el-col>
       </template> -->
-  
+
       <template v-for="item in controls.line4">
-        <el-col :key="item.key" :span="controls.colSpan" style="height: 320px" class="show-divider top-divider">
-          <water-quality-first v-if="validateAuth('waterQualityFirst') && item.key === 'waterQualityFirst'" :name="item.name"></water-quality-first>
-          <water-quality-second v-if="validateAuth('waterQualitySecond') && item.key === 'waterQualitySecond'" :name="item.name"></water-quality-second>
+        <el-col
+          :key="item.key"
+          :span="controls.colSpan"
+          style="height: 320px"
+          class="show-divider top-divider"
+        >
+          <water-quality-first
+            v-if="
+              validateAuth('waterQualityFirst') &&
+              item.key === 'waterQualityFirst'
+            "
+            :name="item.name"
+          ></water-quality-first>
+          <!-- <water-quality-second
+            v-if="
+              validateAuth('waterQualitySecond') &&
+              item.key === 'waterQualitySecond'
+            "
+            :name="item.name"
+          ></water-quality-second> -->
+          <zd-index-echart
+            v-if="
+              validateAuth('waterQualitySecond') &&
+              item.key === 'waterQualitySecond'
+            "
+            :name="item.name"
+          ></zd-index-echart>
         </el-col>
       </template>
-    
+
       <template v-for="item in controls.line5">
-        <el-col :key="item.key" :span="controls.colSpan" style="height: 320px" class="show-divider top-divider">
-          <water-pressure-first v-if="validateAuth('waterPressureFirst') && item.key === 'waterPressureFirst'" :name="item.name"></water-pressure-first>
-          <water-pressuer-second v-if="validateAuth('waterPressureSecond') && item.key === 'waterPressureSecond'" :name="item.name"></water-pressuer-second>
+        <el-col
+          :key="item.key"
+          :span="controls.colSpan"
+          style="height: 320px"
+          class="show-divider top-divider"
+        >
+          <water-pressure-first
+            v-if="
+              validateAuth('waterPressureFirst') &&
+              item.key === 'waterPressureFirst'
+            "
+            :name="item.name"
+          ></water-pressure-first>
+          <water-pressuer-second
+            v-if="
+              validateAuth('waterPressureSecond') &&
+              item.key === 'waterPressureSecond'
+            "
+            :name="item.name"
+          ></water-pressuer-second>
         </el-col>
       </template>
-  
+
       <!-- <template v-for="item in controls.line6">
         <el-col :key="item.key" :span="controls.colSpan" style="height: 320px" class="show-divider top-divider">
           <indicators-for-first v-if="validateAuth('indicatorsForFirst') && item.key === 'indicatorsForFirst'" :name="item.name"></indicators-for-first>
@@ -48,100 +89,116 @@
 </template>
 
 <script>
-import Blocks from '../Layout/Blocks.vue'
-import Difference from './components/Difference'
-import LeakRate from './components/LeakRate'
-import SupAndSellAmount from './components/SupAndSellAmount'
-import UnitchangeCost from './components/UnitchangeCost'
-import CompanySupUseWaterFirst from './components/CompanySupUseWaterFirst'
-import CompanySupUseWaterSecond from './components/CompanySupUseWaterSecond'
-import WaterQualityFirst from './components/WaterQualityFirst'
-import WaterQualitySecond from './components/WaterQualitySecond'
-import WaterPressureFirst from './components/WaterPressureFirst'
-import WaterPressuerSecond from './components/WaterPressuerSecond'
-import IndicatorsForFirst from './components/IndicatorsForFirst'
-import IndicatorsForSecond from './components/IndicatorsForSecond'
-import auth from '../../mixins/DashboardAuth.js'
+import Blocks from "../Layout/Blocks.vue";
+import Difference from "./components/Difference";
+import LeakRate from "./components/LeakRate";
+import SupAndSellAmount from "./components/SupAndSellAmount";
+import UnitchangeCost from "./components/UnitchangeCost";
+import CompanySupUseWaterFirst from "./components/CompanySupUseWaterFirst";
+import CompanySupUseWaterSecond from "./components/CompanySupUseWaterSecond";
+import WaterQualityFirst from "./components/WaterQualityFirst";
+import WaterQualitySecond from "./components/WaterQualitySecond";
+import WaterPressureFirst from "./components/WaterPressureFirst";
+import WaterPressuerSecond from "./components/WaterPressuerSecond";
+import IndicatorsForFirst from "./components/IndicatorsForFirst";
+import IndicatorsForSecond from "./components/IndicatorsForSecond";
+
+import zdIndexEchart from "./components/Second/zdIndexEchart";
+import auth from "../../mixins/DashboardAuth.js";
 export default {
-  components: { Blocks, Difference, LeakRate, SupAndSellAmount, UnitchangeCost, CompanySupUseWaterFirst, CompanySupUseWaterSecond, WaterQualityFirst, WaterQualitySecond, WaterPressureFirst, WaterPressuerSecond, IndicatorsForFirst, IndicatorsForSecond },
+  components: {
+    Blocks,
+    Difference,
+    LeakRate,
+    SupAndSellAmount,
+    UnitchangeCost,
+    CompanySupUseWaterFirst,
+    CompanySupUseWaterSecond,
+    WaterQualityFirst,
+    WaterQualitySecond,
+    WaterPressureFirst,
+    WaterPressuerSecond,
+    IndicatorsForFirst,
+    IndicatorsForSecond,
+    zdIndexEchart,
+  },
   mixins: [auth],
   data() {
     return {
       controls: {
         line1: [
           {
-            key: 'difference',
-            name: '年产销差'
+            key: "difference",
+            name: "年产销差",
           },
           {
-            key: 'leakRate',
-            name: '年漏损率'
+            key: "leakRate",
+            name: "年漏损率",
           },
-          
         ],
         line2: [
           {
-            key: 'supAndSellAmount',
-            name: '年供水量、售水量'
+            key: "supAndSellAmount",
+            name: "年供水量、售水量",
           },
           {
-            key: 'unitchangeCost',
-            name: '年单位变动成本'
+            key: "unitchangeCost",
+            name: "年单位变动成本",
           },
         ],
         line3: [
           {
-            key: 'companySupUseWaterFirst',
-            name: '一厂(取供水曲线图)'
+            key: "companySupUseWaterFirst",
+            name: "一厂(取供水曲线图)",
           },
           {
-            key: 'companySupUseWaterSecond',
-            name: '二厂(取供水曲线图)'
+            key: "companySupUseWaterSecond",
+            name: "二厂(取供水曲线图)",
           },
         ],
         line4: [
           {
-            key: 'waterQualityFirst',
-            name: '一厂(水质曲线图)'
+            key: "waterQualityFirst",
+            name: "一厂(水质曲线图)",
           },
           {
-            key: 'waterQualitySecond',
-            name: '二厂(水质曲线图)'
+            key: "waterQualitySecond",
+            name: "二厂(水质曲线图)",
           },
         ],
         line5: [
           {
-            key: 'waterPressureFirst',
-            name: '一厂(水压曲线图)'
+            key: "waterPressureFirst",
+            name: "一厂(水压曲线图)",
           },
           {
-            key: 'waterPressureSecond',
-            name: '二厂(水压曲线图)'
+            key: "waterPressureSecond",
+            name: "二厂(水压曲线图)",
           },
         ],
         line6: [
           {
-            key: 'indicatorsForFirst',
-            name: '一厂'
+            key: "indicatorsForFirst",
+            name: "一厂",
           },
           {
-            key: 'indicatorsForSecond',
-            name: '二厂'
+            key: "indicatorsForSecond",
+            name: "二厂",
           },
         ],
-        colSpan:12,   //数量
-      }
-    }
+        colSpan: 12, //数量
+      },
+    };
   },
-  created(){
-    this.controls.line1 = this.setControls(this.controls.line1) 
-    this.controls.line2 = this.setControls(this.controls.line2) 
-    this.controls.line3 = this.setControls(this.controls.line3) 
-    this.controls.line4 = this.setControls(this.controls.line4) 
-    this.controls.line5 = this.setControls(this.controls.line5) 
-    this.controls.line6 = this.setControls(this.controls.line6) 
+  created() {
+    this.controls.line1 = this.setControls(this.controls.line1);
+    this.controls.line2 = this.setControls(this.controls.line2);
+    this.controls.line3 = this.setControls(this.controls.line3);
+    this.controls.line4 = this.setControls(this.controls.line4);
+    this.controls.line5 = this.setControls(this.controls.line5);
+    this.controls.line6 = this.setControls(this.controls.line6);
   },
-}
+};
 </script>
 <style lang="scss" scoped>
 .show-divider {

+ 2 - 1
src/views/currentSystem/dashboard/mbComponents/todolist/index.vue

@@ -283,7 +283,8 @@ export default {
     /**
      * 设置流程处理调整路径工程管理、物资管理、协同办公流程
      */
-    setFlowRout(row) {      
+    setFlowRout(row) {  
+      debugger    
       let routeTypes = row.routeIp.split("|");
       if (routeTypes.length < 0) return null;
       let objRoute = routes.find((item) => item.routeName === routeTypes[0]);

+ 32 - 523
src/views/currentSystem/regionalMetering/DMAHomePage/components/dmadata/dmachart.vue

@@ -3,20 +3,7 @@
     <div class="dmaone">
       <div class="dmatitle"><div class="zdytitle">一级分区</div></div>
       <div class="onecontent">
-        <div ref="one_left_chart" class="dma_left" />
-        <!-- <div class="dma_content">
-          <div class="titlelabel">
-            <div class="jt1" />
-            <div class="title">
-              <div class="usernum"><label class="ledfont">{{ dmaOnePercent || 0 }}</label><label>%</label></div>
-              <div class="usertitle">综合漏损率</div>
-            </div>
-            <div class="jt2" />
-          </div>
-        </div> -->
-        <div ref="one_right_chart" class="dma_right" />
-        <div ref="one_three_chart" class="dma_right" />
-        <div ref="one_four_chart" class="dma_right" />
+        <div v-for="item in dmaOneList" :key="item.id" ref="onechart" class="dma_one_chart" :style="'height:100%;width:'+(100/(dmaOneList.length > 0 ? dmaOneList.length : 1))+'%;'"/>
       </div>
     </div>
     <div class="dmatwo">
@@ -69,6 +56,7 @@ export default {
   data() {
     return {
       dmaTwoList: this.data.twoLeakList,
+      dmaOneList: this.data.oneLeakList,
       dmaOnePercent: 0,
       chart3_legend: [],
       seriesData1: [],
@@ -91,515 +79,33 @@ export default {
     }, 0) / this.data.oneLeakList.length).toFixed(2) || 0
   },
   mounted() {
-    this.drawOneLeftChart()
-    this.drawOneRightChart()
-    this.drawOneThreeChart()
-    this.drawOneFourChart()
+    this.drawOneChart()
 
     this.drawTwoChart()
     this.drawThreeChart()
   },
   methods: {
-    drawOneLeftChart() {
-      const that = this
-      const chartReady = that.$echarts.init(that.$refs.one_left_chart)
-      var data = Number(this.data.oneLeakList[0].leakageRate) // 百分比
-      var width = 90 // 宽度
-      var cant = 20 // 面
-      var cantoffset = 10
-
-      const options = {
-        // backgroundColor: '#0e202d',
-          tooltip: {
-            trigger: 'none'
-          },
-          grid: {
-            top: '15%',
-            bottom: '20%',
-            containLabel: true
-          },
-          xAxis: {
-            data: ['百分比'],
-            axisTick: {
-              show: false
-            },
-            axisLine: {
-              show: false
-            },
-            axisLabel: {
-              show: false,
-              textStyle: {
-                color: '#e54035'
-              }
-            }
-          },
-          yAxis: {
-            splitLine: {
-              show: false
-            },
-            axisTick: {
-              show: false
-            },
-            axisLine: {
-              show: false
-            },
-            axisLabel: {
-              show: false
-            }
-          },
-          series: [{
-            name: '最上层立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, -cantoffset],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#E6EFFF'
-                // opacity: 0.14
-              }
-            },
-            label: {
-              show: true,
-              position: 'top',
-              offset: [0, 20],
-              formatter: this.data.oneLeakList[0].name,
-              color: '#555555',
-              fontSize: 13,
-              fontWeight: 'bold'
-            },
-            data: [{
-              value: 100,
-              symbolPosition: 'end'
-            }]
-          }, {
-            name: '中间立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, -cantoffset],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#4D8DF5',
-                opacity: 0.3
-              }
-            },
-            data: [{
-              value: data,
-              symbolPosition: 'end'
-            }]
-          }, {
-            name: '最底部立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, 10],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#4E87E2'
-              }
-            },
-            label: {
-              show: true,
-              color: '#FFFFFF',
-              fontSize: 20,
-              fontFamily: 'myFont',
-              position: parseFloat(data) > 20 ? 'inside' : 'insideBottom',
-              formatter: data + '%'
-            },
-            data: [100 - data]
-          }, {
-          // 底部立体柱
-            stack: '1',
-            type: 'bar',
-            itemStyle: {
-              'normal': {
-                'color': {
-                  'x': 0,
-                  'y': 0,
-                  'x2': 0,
-                  'y2': 1,
-                  'type': 'linear',
-                  'global': false,
-                  'colorStops': [{// 第一节下面
-                    'offset': 0,
-                    'color': '#8EB9FE'
-                  }, {
-                    'offset': 1,
-                    'color': '#4E87E2'
-                  }]
-                }
-              }
-            },
-            silent: true,
-            barWidth: width,
-            barGap: '-100%', // Make series be overlap
-            data: [data]
-          }, {
-          // 上部立体柱
-            stack: '1',
-            type: 'bar',
-            itemStyle: {
-              normal: {
-                color: '#4D8DF5',
-                opacity: 0.3
-              }
-            },
-            silent: true,
-            barWidth: width,
-            barGap: '-100%', // Make series be overlap
-            data: [100 - data]
-          }]
-        }
-        chartReady.setOption(options)
-
-      // 自定义缩放
-      window.addEventListener('resize', () => {
-        if (chartReady) {
-          chartReady.resize()
-        }
-      })
-    },
-
-    drawOneRightChart() {
-      const that = this
-      const chartReady = that.$echarts.init(that.$refs.one_right_chart)
-      if (!this.data.oneLeakList?.[1]) {
-        return
-      }
-      var data = Number(this.data.oneLeakList[1].leakageRate) // 百分比 // 百分比
-      var width = 90 // 宽度
-      var cant = 20 // 面
-      var cantoffset = 10 
-
-      const options = {
-        // backgroundColor: '#0e202d',
-          tooltip: {
-            trigger: 'none'
-          },
-          grid: {
-            top: '15%',
-            bottom: '20%',
-            containLabel: true
-          },
-          xAxis: {
-            data: ['百分比'],
-            axisTick: {
-              show: false
-            },
-            axisLine: {
-              show: false
-            },
-            axisLabel: {
-              show: false,
-              textStyle: {
-                color: '#e54035'
-              }
-            }
-          },
-          yAxis: {
-            splitLine: {
-              show: false
-            },
-            axisTick: {
-              show: false
-            },
-            axisLine: {
-              show: false
-            },
-            axisLabel: {
-              show: false
-            }
-          },
-          series: [{
-            name: '最上层立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, -cantoffset],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#E6EFFF'
-                // opacity: 0.14
-              }
-            },
-            label: {
-              show: true,
-              position: 'top',
-              offset: [0, 20],
-              formatter: this.data.oneLeakList[2].name,
-              color: '#555555',
-              fontSize: 13,
-              fontWeight: 'bold'
-            },
-            data: [{
-              value: 100,
-              symbolPosition: 'end'
-            }]
-          }, {
-            name: '中间立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, -cantoffset],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#4D8DF5',
-                opacity: 0.3
-              }
-            },
-            data: [{
-              value: data,
-              symbolPosition: 'end'
-            }]
-          }, {
-            name: '最底部立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, 10],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#4E87E2'
-              }
-            },
-            label: {
-              show: true,
-              color: '#FFFFFF',
-              fontSize: 20,
-              fontFamily: 'myFont',
-              position: parseFloat(data) > 20 ? 'inside' : 'insideBottom',
-              formatter: data + '%'
-            },
-            data: [100 - data]
-          }, {
-          // 底部立体柱
-            stack: '1',
-            type: 'bar',
-            itemStyle: {
-              'normal': {
-                'color': {
-                  'x': 0,
-                  'y': 0,
-                  'x2': 0,
-                  'y2': 1,
-                  'type': 'linear',
-                  'global': false,
-                  'colorStops': [{// 第一节下面
-                    'offset': 0,
-                    'color': '#8EB9FE'
-                  }, {
-                    'offset': 1,
-                    'color': '#4E87E2'
-                  }]
-                }
-              }
-            },
-            silent: true,
-            barWidth: width,
-            barGap: '-100%', // Make series be overlap
-            data: [data]
-          }, {
-          // 上部立体柱
-            stack: '1',
-            type: 'bar',
-            itemStyle: {
-              normal: {
-                color: '#4D8DF5',
-                opacity: 0.3
-              }
-            },
-            silent: true,
-            barWidth: width,
-            barGap: '-100%', // Make series be overlap
-            data: [100 - data]
-          }]
-        }
-        chartReady.setOption(options)
-
-      // 自定义缩放
-      window.addEventListener('resize', () => {
-        if (chartReady) {
-          chartReady.resize()
+    drawOneChart(){
+      this.dmaOneList.forEach((item, index) => {
+        let data = {
+          id: item.id,
+          leakage: item.leakageRate || 0,
+          name: item.name
         }
+        //data.leakage = data.leakage >= 100 ? 100 : (data.leakage <= 0 ? 0 : data.leakage)
+        this.drawOnePipeChart(data, index)
       })
     },
 
-    drawOneThreeChart() {
-      const that = this
-      const chartReady = that.$echarts.init(that.$refs.one_three_chart)
-      if (!this.data.oneLeakList?.[2]) {
-        return
-      }
-      var data = Number(this.data.oneLeakList[2].leakageRate) // 百分比 // 百分比
-      var width = 90 // 宽度
-      var cant = 20 // 面
-      var cantoffset = 10 
 
-       const options = {
-        // backgroundColor: '#0e202d',
-          tooltip: {
-            trigger: 'none'
-          },
-          grid: {
-            top: '15%',
-            bottom: '20%',
-            containLabel: true
-          },
-          xAxis: {
-            data: ['百分比'],
-            axisTick: {
-              show: false
-            },
-            axisLine: {
-              show: false
-            },
-            axisLabel: {
-              show: false,
-              textStyle: {
-                color: '#e54035'
-              }
-            }
-          },
-          yAxis: {
-            splitLine: {
-              show: false
-            },
-            axisTick: {
-              show: false
-            },
-            axisLine: {
-              show: false
-            },
-            axisLabel: {
-              show: false
-            }
-          },
-          series: [{
-            name: '最上层立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, -cantoffset],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#E6EFFF'
-                // opacity: 0.14
-              }
-            },
-            label: {
-              show: true,
-              position: 'top',
-              offset: [0, 20],
-              formatter: this.data.oneLeakList[2].name,
-              color: '#555555',
-              fontSize: 13,
-              fontWeight: 'bold'
-            },
-            data: [{
-              value: 100,
-              symbolPosition: 'end'
-            }]
-          }, {
-            name: '中间立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, -cantoffset],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#4D8DF5',
-                opacity: 0.3
-              }
-            },
-            data: [{
-              value: data,
-              symbolPosition: 'end'
-            }]
-          }, {
-            name: '最底部立体圆',
-            type: 'pictorialBar',
-            symbolSize: [width, cant],
-            symbolOffset: [0, 10],
-            z: 12,
-            itemStyle: {
-              normal: {
-                color: '#4E87E2'
-              }
-            },
-            label: {
-              show: true,
-              color: '#FFFFFF',
-              fontSize: 20,
-              fontFamily: 'myFont',
-              position: parseFloat(data) > 20 ? 'inside' : 'insideBottom',
-              formatter: data + '%'
-            },
-            data: [100 - data]
-          }, {
-          // 底部立体柱
-            stack: '1',
-            type: 'bar',
-            itemStyle: {
-              'normal': {
-                'color': {
-                  'x': 0,
-                  'y': 0,
-                  'x2': 0,
-                  'y2': 1,
-                  'type': 'linear',
-                  'global': false,
-                  'colorStops': [{// 第一节下面
-                    'offset': 0,
-                    'color': '#8EB9FE'
-                  }, {
-                    'offset': 1,
-                    'color': '#4E87E2'
-                  }]
-                }
-              }
-            },
-            silent: true,
-            barWidth: width,
-            barGap: '-100%', // Make series be overlap
-            data: [data]
-          }, {
-          // 上部立体柱
-            stack: '1',
-            type: 'bar',
-            itemStyle: {
-              normal: {
-                color: '#4D8DF5',
-                opacity: 0.3
-              }
-            },
-            silent: true,
-            barWidth: width,
-            barGap: '-100%', // Make series be overlap
-            data: [100 - data]
-          }]
-        }
-        chartReady.setOption(options)
-
-      // 自定义缩放
-      window.addEventListener('resize', () => {
-        if (chartReady) {
-          chartReady.resize()
-        }
-      })
-    },
-
-    drawOneFourChart() {
+    drawOnePipeChart(reust, index) {
       const that = this
-      const chartReady = that.$echarts.init(that.$refs.one_four_chart)
-      if (!this.data.oneLeakList?.[3]) {
-        return
-      }
-      var data = Number(this.data.oneLeakList[3].leakageRate) // 百分比 // 百分比
+      const chartReady = that.$echarts.init(that.$refs.onechart[index])
+      var data = reust.leakage // 百分比
       var width = 90 // 宽度
       var cant = 20 // 面
-      var cantoffset = 10 
-       const options = {
+      var cantoffset = 10
+        const options = {
         // backgroundColor: '#0e202d',
           tooltip: {
             trigger: 'none'
@@ -646,15 +152,15 @@ export default {
             z: 12,
             itemStyle: {
               normal: {
-                color: '#E6EFFF'
-                // opacity: 0.14
+                color: '#E1F3FD'
+                // opacity: 0.3
               }
             },
             label: {
               show: true,
               position: 'top',
               offset: [0, 20],
-              formatter: this.data.oneLeakList[2].name,
+              formatter: reust.name,
               color: '#555555',
               fontSize: 13,
               fontWeight: 'bold'
@@ -671,12 +177,12 @@ export default {
             z: 12,
             itemStyle: {
               normal: {
-                color: '#4D8DF5',
+                color: '#2AAAF1',
                 opacity: 0.3
               }
             },
             data: [{
-              value: data,
+              value: data >= 100 ? 100 :(data < 0 ? 0 : data),
               symbolPosition: 'end'
             }]
           }, {
@@ -687,18 +193,19 @@ export default {
             z: 12,
             itemStyle: {
               normal: {
-                color: '#4E87E2'
+                color: '#47CFFA'
               }
             },
             label: {
               show: true,
               color: '#FFFFFF',
-              fontSize: 20,
+              fontSize: 16,
               fontFamily: 'myFont',
+              //position: 'inside',
               position: parseFloat(data) > 20 ? 'inside' : 'insideBottom',
               formatter: data + '%'
             },
-            data: [100 - data]
+            data: data >= 100 ? [100] : (data < 0 ? [100] : [100 - data])
           }, {
           // 底部立体柱
             stack: '1',
@@ -714,10 +221,12 @@ export default {
                   'global': false,
                   'colorStops': [{// 第一节下面
                     'offset': 0,
-                    'color': '#8EB9FE'
+                    'color': '#6BE3FD',
+                    'opacity': 1
                   }, {
                     'offset': 1,
-                    'color': '#4E87E2'
+                    'color': '#47CFFA',
+                    'opacity': 1
                   }]
                 }
               }
@@ -725,21 +234,21 @@ export default {
             silent: true,
             barWidth: width,
             barGap: '-100%', // Make series be overlap
-            data: [data]
+            data: data >= 100 ? [100] : (data < 0 ? 0 : [data])
           }, {
           // 上部立体柱
             stack: '1',
             type: 'bar',
             itemStyle: {
               normal: {
-                color: '#4D8DF5',
+                color: '#2AAAF1',
                 opacity: 0.3
               }
             },
             silent: true,
             barWidth: width,
             barGap: '-100%', // Make series be overlap
-            data: [100 - data]
+            data: data >= 100 ? [0] : (data < 0 ? [100] : [100 - data])
           }]
         }
         chartReady.setOption(options)

+ 13 - 12
src/views/mbsys/materialmanage/materialputinManage/purchaseExamine/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <!-- 采购审核 -->
+  <!-- 入库审核 -->
   <div class="content-container">
     <div class="top">
       <el-form
@@ -320,7 +320,7 @@ export default {
       },
       allDept: [], //所有部门
       curUser: null, //当前登录人
-      orderName: "物料采购单", //工单名称
+      orderName: "物料入库单", //工单名称
       orderCode: "", //工单编号
       suppliers: [], //供应商
       orderStates: config.orderState,
@@ -540,7 +540,7 @@ export default {
       this.curEditRow = type ? row : null;
       qOrderProcessById(row.id).then((res) => {
         if (res.code == 1) {
-          this.title = type ? "采购单-审核" : "采购单-详情";
+          this.title = type ? "入库单-审核" : "入库单-详情";
           this.optionType = type ? 2 : 0; ////操作类型 0:查看,1:新增,2:修改
           this.editData = res.result;
           this.dialogFormVisible = true;
@@ -668,6 +668,15 @@ export default {
           condition = data.form.applyPurchase;
         }
         Object.assign(params, { condition: condition });
+
+        if (
+          state == 1 &&
+          data.headleState == 1 &&
+          (nextStep.deptStaff == "" || nextStep.deptStaff == null)
+        ) {
+          this.$message.warning("提交请选择下一步审核人");
+          return null;
+        }
       }
 
       let formData = new FormData();
@@ -677,14 +686,6 @@ export default {
       if (data.hasOwnProperty("configId")) {
         params = Object.assign(params, { configId: data.configId }); //流程配置ID
       }
-      if (
-        state == 1 &&
-        data.headleState == 1 &&
-        (nextStep.deptStaff == "" || nextStep.deptStaff == null)
-      ) {
-        this.$message.warning("提交请选择下一步审核人");
-        return null;
-      }
 
       const json = JSON.stringify(params);
       // 将 json 字符串转化为 Blob 对象
@@ -712,7 +713,7 @@ export default {
       }
       if (data.hasOwnProperty("form")) {
         Object.assign(params, {
-          relationId: data.form.purchaseOrderId, //关联采购
+          relationId: data.form.purchaseOrderId, //关联入库
           name: data.form.name, //	名称
           registerTime: data.form.registerTime, //登记时间
           supplierId: data.form.supplier, //供应商ID

+ 2 - 0
src/views/zhpt/scada/siteMonitor/widget.vue

@@ -1,4 +1,5 @@
 <template>
+  <!-- 趋势分析 -->
   <div v-way="wayFun('mainDiv')" style="width: 100%; height: 100%; padding: 8px">
     <el-row>
       <el-form ref="ruleForm" :model="ruleForm" :rules="rules" style="display: flex;flex-wrap: wrap;justify-content: flex-start;align-items: flex-start;">
@@ -170,6 +171,7 @@ import Echarts from 'echarts'
 import { queryMonitorTendency } from '@/api/SCADAInfoApi'
 import ExportBtn from '@/views/zhpt/wxreportforms/components/ExportBtn'
 import { queryDevice, queryIndexConfiguration } from '@/api/scadaApi'
+import { parseTime } from '@/utils/index'
 export default {
   name: 'AnalysisResult',
   components: { ExportBtn },