浏览代码

Merge remote-tracking branch 'origin/master'

hmc 1 年之前
父节点
当前提交
140a82d987

+ 57 - 57
zkqy-ui/src/utils/request.js

@@ -1,16 +1,16 @@
 import axios from 'axios'
-import {Notification, MessageBox, Message, Loading} from 'element-ui'
+import { Notification, MessageBox, Message, Loading } from 'element-ui'
 import store from '@/store'
-import {getToken} from '@/utils/auth'
+import { getToken } from '@/utils/auth'
 import errorCode from '@/utils/errorCode'
-import {tansParams, blobValidate} from "@/utils/zkqy";
+import { tansParams, blobValidate } from "@/utils/zkqy";
 import cache from '@/plugins/cache'
-import {saveAs} from 'file-saver'
-import {throttle} from '@/utils/index'
+import { saveAs } from 'file-saver'
+import { throttle } from '@/utils/index'
 
 let downloadLoadingInstance;
 // 是否显示重新登录
-export let isRelogin = {show: false};
+export let isRelogin = { show: false };
 
 
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
@@ -69,70 +69,70 @@ service.interceptors.request.use(config => {
 
 // 响应拦截器
 service.interceptors.response.use(res => {
-    // 未设置状态码则默认成功状态
-    const code = res.data.code || 200;
-    // 获取错误信息
-    const msg = errorCode[code] || res.data.msg || errorCode['default']
-    // 二进制数据则直接返回
-    if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
-      return res.data
-    }
-    if (code === 401) {
-      if (!isRelogin.show) {
-        isRelogin.show = true;
-        MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
-          confirmButtonText: '重新登录',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          isRelogin.show = false;
-          store.dispatch('LogOut')
-          // .then(() => {
-          //   location.href = '/index';
-          // })
-        }).catch(() => {
-          isRelogin.show = false;
-        });
-      }
-      return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
-    } else if (code === 500) {
-      let resUrl = res.config.url;
-      if (resUrl == '/login') {
-        Message({message: msg, type: 'error'})
-        return Promise.reject(new Error(msg))
-      } else {
-        return Promise.resolve()
-      }
-
-    } else if (code === 601) {
-      Message({message: msg, type: 'warning'})
-      return Promise.reject('error')
-    } else if (code == 602) {
-      if (store.state.user.name == 'admin') return
-      MessageBox.confirm('数据源信息异常!请您联系管理员或尝试重新登录系统。', '系统提示', {
+  // 未设置状态码则默认成功状态
+  const code = res.data.code || 200;
+  // 获取错误信息
+  const msg = errorCode[code] || res.data.msg || errorCode['default']
+  // 二进制数据则直接返回
+  if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
+    return res.data
+  }
+  if (code === 401) {
+    if (!isRelogin.show) {
+      isRelogin.show = true;
+      MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
         confirmButtonText: '重新登录',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
         isRelogin.show = false;
         store.dispatch('LogOut')
-        //   .then(() => {
+        // .then(() => {
         //   location.href = '/index';
         // })
       }).catch(() => {
         isRelogin.show = false;
       });
-      return Promise.reject('数据源信息异常!请您联系管理员或尝试重新登录系统。')
-    } else if (code !== 200) {
-      Notification.error({title: msg})
-      return Promise.reject('error')
+    }
+    return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
+  } else if (code === 500) {
+    let resUrl = res.config.url;
+    if (resUrl == '/login') {
+      Message({ message: msg, type: 'error' })
+      return Promise.reject(new Error(msg))
     } else {
-      return res.data
+      return Promise.reject('code:500')
     }
-  },
+
+  } else if (code === 601) {
+    Message({ message: msg, type: 'warning' })
+    return Promise.reject('error')
+  } else if (code == 602) {
+    if (store.state.user.name == 'admin') return
+    MessageBox.confirm('数据源信息异常!请您联系管理员或尝试重新登录系统。', '系统提示', {
+      confirmButtonText: '重新登录',
+      cancelButtonText: '取消',
+      type: 'warning'
+    }).then(() => {
+      isRelogin.show = false;
+      store.dispatch('LogOut')
+      //   .then(() => {
+      //   location.href = '/index';
+      // })
+    }).catch(() => {
+      isRelogin.show = false;
+    });
+    return Promise.reject('数据源信息异常!请您联系管理员或尝试重新登录系统。')
+  } else if (code !== 200) {
+    Notification.error({ title: msg })
+    return Promise.reject('error')
+  } else {
+    return res.data
+  }
+},
   error => {
     console.log('err' + error)
-    let {message} = error;
+    let { message } = error;
     if (message == "Network Error") {
       message = "后端接口连接异常";
     } else if (message.includes("timeout")) {
@@ -140,7 +140,7 @@ service.interceptors.response.use(res => {
     } else if (message.includes("Request failed with status code")) {
       message = "系统接口" + message.substr(message.length - 3) + "异常";
     }
-    Message({message: message, type: 'error', duration: 5 * 1000})
+    Message({ message: message, type: 'error', duration: 5 * 1000 })
     return Promise.reject(error)
   }
 )
@@ -156,7 +156,7 @@ export function download(url, params, filename, config) {
     transformRequest: [(params) => {
       return tansParams(params)
     }],
-    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
+    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
     responseType: 'blob',
     ...config
   }).then(async (data) => {

+ 31 - 18
zkqy-ui/src/views/bussiness/processMange.vue

@@ -432,8 +432,8 @@ export default {
     // 获取列表数据
     getList() {
       this.loading = true;
-      processList({ ...this.queryParams, taskName: this.queryString }).then(
-        (res) => {
+      processList({ ...this.queryParams, taskName: this.queryString })
+        .then((res) => {
           if (res.code == 200) {
             this.tableData = res.rows.map((item) => item.resultMap);
             this.total = res.total;
@@ -442,8 +442,11 @@ export default {
             this.$message.error("网络异常,请稍后再试");
           }
           this.loading = false;
-        }
-      );
+        })
+        .finally((e) => {
+          console.log(e);
+          this.loading = false;
+        });
     },
     getDoneNumber() {
       let params = {
@@ -452,13 +455,18 @@ export default {
         taskProcessState: "3",
         taskProcessType: 0,
       };
-      processList(params).then((res) => {
-        if (res.code == 200) {
-          this.doneNum = res.total;
-        } else {
-          this.$message.error("网络异常,请稍后再试");
-        }
-      });
+      processList(params)
+        .then((res) => {
+          if (res.code == 200) {
+            this.doneNum = res.total;
+          } else {
+            this.$message.error("网络异常,请稍后再试");
+          }
+        })
+        .finally((e) => {
+          console.log(e);
+          this.loading = false;
+        });
     },
     getDoingNumber() {
       let params = {
@@ -467,13 +475,18 @@ export default {
         taskProcessState: "0",
         taskProcessType: 0,
       };
-      processList(params).then((res) => {
-        if (res.code == 200) {
-          this.doingNum = res.total;
-        } else {
-          this.$message.error("网络异常,请稍后再试");
-        }
-      });
+      processList(params)
+        .then((res) => {
+          if (res.code == 200) {
+            this.doingNum = res.total;
+          } else {
+            this.$message.error("网络异常,请稍后再试");
+          }
+        })
+        .finally((e) => {
+          console.log(e);
+          this.loading = false;
+        });
     },
     // 获取表单数据
     async getFormData() {

+ 23 - 637
zkqy-ui/src/views/index.vue

@@ -49,56 +49,14 @@
       </el-col>
     </el-row> -->
     <div class="info-content">
-      <!-- <div class="header" @click="toPersonalCenter"> -->
-      <!-- <img :src="avatar" class="user-avatar" /> -->
-      <!-- </div> -->
-      <!-- <div class="name">{{ nickName }}</div> -->
-      <!-- <div class="tenant-name">{{ tenantName }}</div> -->
-      <!-- <div class="date">{{ date }}</div> -->
-      <!-- <div class="title">欢迎登录Mec OS 工业应用操作系统</div> -->
-      <!-- <div class="title">欢迎登录Mec OS 化纤行业生产管理系统</div> -->
-      <div class="echarts1">
-        <div class="pieChart" ref="pieChart"></div>
-        <div
-          :class="'describe' + (parseInt(index) + 1)"
-          v-for="(item, index) in processList"
-          :key="index"
-        >
-          <P class="text">{{ item.name }}</P>
-          <P class="num">{{ item.value }}</P>
-        </div>
-      </div>
-      <div class="echarts2">
-        <div class="lineChart" ref="lineChart"></div>
-      </div>
-      <div class="echarts3">
-        <p class="title">操作日志</p>
-        <div class="text">
-          <span class="peo">操作人</span>
-          <span class="add">ip</span>
-        </div>
-        <div class="swiper-container">
-          <div class="swiper-scrollbar"></div>
-          <div class="swiper-wrapper">
-            <div
-              class="swiper-slide"
-              v-for="(item, index) in swiperList"
-              :key="index"
-            >
-              <div>
-                <span class="name">{{ item.operName }}</span>
-                <span class="ip">{{ item.operIp }}</span>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="echarts4">
-        <div class="gaugeChart" ref="gaugeChart"></div>
-      </div>
-      <div class="echarts5">
-        <div class="barChart" ref="barChart"></div>
+      <div class="header" @click="toPersonalCenter">
+        <img :src="avatar" class="user-avatar" />
       </div>
+      <div class="name">{{ nickName }}</div>
+      <div class="tenant-name">{{ tenantName }}</div>
+      <div class="date">{{ date }}</div>
+      <!-- <div class="title">欢迎登录Mec OS 工业应用操作系统</div> -->
+      <div class="title mt20">欢迎登录{{ title }}</div>
     </div>
   </div>
 </template>
@@ -107,53 +65,12 @@
 import { formatDate } from "@/utils";
 import { getToken } from "@/utils/auth";
 import { mapGetters, mapState } from "vuex";
-import "swiper/css/swiper.css";
-import Swiper from "swiper";
-import {
-  getTask,
-  getPipeline,
-  getOperation,
-  getMaterial,
-  getLogin,
-} from "@/api/homePage/index";
 
 export default {
   name: "Index",
   data() {
     return {
-      chartObj: {
-        myChart1: null,
-        myChart2: null,
-        myChart3: null,
-        myChart4: null,
-      },
-      processList: [],
-      swiperList: [
-        /* {
-          name: "111",
-          ip: "192.168.1.1"
-        },
-        {
-          name: "222",
-          ip: "192.168.1.2"
-        },
-        {
-          name: "333",
-          ip: "192.168.1.3"
-        },
-        {
-          name: "444",
-          ip: "192.168.1.4"
-        },
-        {
-          name: "555",
-          ip: "192.168.1.5"
-        },
-        {
-          name: "666",
-          ip: "192.168.1.6"
-        }, */
-      ],
+      title: "",
       // 用户导入参数
       upload: {
         // 是否显示弹出层(用户导入)
@@ -173,406 +90,7 @@ export default {
       version: "3.8.5",
     };
   },
-  mounted() {
-    // 初始化 echarts
-    this.initChart1();
-    this.initChart2();
-    this.initChart3();
-    this.initChart4();
-
-    this.initData();
-  },
   methods: {
-    initData() {
-      //任务统计
-      getTask().then((response) => {
-        if (response.code == 200) {
-          this.processList = response.data;
-          //   console.log(this.processList);
-          this.chartObj.myChart1.setOption({
-            series: [
-              {
-                data: response.data,
-              },
-            ],
-          });
-        } else {
-          console.log(response);
-          this.$message.error("获取数据失败");
-        }
-      });
-
-      //管道统计
-      getPipeline().then((response) => {
-        if (response.code == 200) {
-          //  console.log(response.data);
-          //  console.log(response.data[0].date);
-          let xAxisData = response.data[0].date;
-          // xAxisData = xAxisData.map(function (dateStr) {
-          //   var date = new Date(dateStr);
-          //   return date.getMonth() + 1 + "月";
-          // });
-          let loginList = response.data.map((item) => item.name);
-          this.chartObj.myChart2.setOption({
-            legend: {
-              data: loginList,
-            },
-            xAxis: {
-              data: xAxisData,
-            },
-            series: response.data,
-          });
-        } else {
-          console.log(response);
-          this.$message.error("获取数据失败");
-        }
-      });
-
-      //操作日志
-      getOperation().then((response) => {
-        if (response.code == 200) {
-          this.swiperList = response.data;
-          this.$nextTick(() => {
-            var swiper = new Swiper(".swiper-container", {
-              direction: "vertical",
-              loop: true,
-              autoplay: {
-                delay: 1000,
-                disableOnInteraction: false,
-              },
-              scrollbar: {
-                el: ".swiper-scrollbar",
-              },
-              slidesPerView: 3,
-              freeMode: true,
-              // spaceBetween: 1,
-            });
-          });
-        } else {
-          console.log(response);
-          this.$message.error("获取数据失败");
-        }
-      });
-
-      //原材料统计
-      getMaterial().then((response) => {
-        if (response.code == 200) {
-          //  console.log(response.data);
-          let tabularList = response.data;
-          //  tabularList.push({ name: "多表数量", value: 30 });
-          let labelList = response.data.map((item) => item.name);
-          this.chartObj.myChart3.setOption({
-            yAxis: {
-              data: labelList,
-            },
-            series: [
-              {
-                data: response.data,
-              },
-            ],
-          });
-        } else {
-          console.log(response);
-          this.$message.error("获取数据失败");
-        }
-      });
-
-      //用户登录统计
-      getLogin().then((response) => {
-        if (response.code == 200) {
-          let modelData = response.data;
-          //  console.log(modelData);
-          this.chartObj.myChart4?.setOption({
-            series: [
-              {
-                data: modelData.value,
-              },
-            ],
-            xAxis: {
-              data: modelData.name,
-            },
-          });
-        } else {
-          console.log(response);
-          this.$message.error("获取数据失败");
-        }
-      });
-    },
-
-    initChart1() {
-      this.chartObj.myChart1 = this.$echarts.init(this.$refs.pieChart);
-      let option = {
-        color: ["#9370db", "#ffd700", "#00ccff", "#ff6600", "#ff9900"],
-        title: {
-          text: "任务统计",
-          left: "left",
-          textStyle: {
-            fontSize: 16,
-            fontWeight: "normal",
-            color: "#696969",
-          },
-        },
-        tooltip: {
-          trigger: "item",
-        },
-        legend: {
-          left: "60%",
-          top: "60%",
-        },
-        series: [
-          {
-            // name: 'Access From',
-            type: "pie",
-            radius: ["40%", "100%"],
-            avoidLabelOverlap: false,
-            itemStyle: {
-              // borderRadius: 10,
-              borderColor: "#fff",
-              borderWidth: 2,
-            },
-            right: "40%",
-            top: "50%",
-            data: [
-              { value: 10, name: "工艺流" },
-              { value: 20, name: "审批流" },
-            ],
-            label: {
-              show: false,
-              position: "center",
-            },
-            labelLine: {
-              show: false,
-            },
-            emphasis: {
-              label: {
-                show: true,
-                fontSize: 20,
-                fontWeight: "bold",
-              },
-            },
-          },
-        ],
-      };
-      this.chartObj.myChart1.setOption(option);
-    },
-
-    initChart2() {
-      this.chartObj.myChart2 = this.$echarts.init(this.$refs.lineChart);
-      let option = {
-        color: ["#FF88E0", "#9FE080"],
-        title: {
-          text: "生产统计",
-          textStyle: {
-            fontSize: 16,
-            fontWeight: "normal",
-            color: "#696969",
-          },
-        },
-        tooltip: {
-          trigger: "axis",
-        },
-        legend: {
-          data: ["在产生产任务", "完成数量"],
-        },
-        grid: {
-          left: "3%",
-          right: "4%",
-          top: "20%",
-          bottom: "0%",
-          containLabel: true,
-        },
-        xAxis: {
-          type: "category",
-          boundaryGap: false,
-          data: [
-            "01\nMon",
-            "02\nTue",
-            "03\nWed",
-            "04\nThu",
-            "05\nFri",
-            "06\nSat",
-            "07\nSun",
-            "08\nMon",
-            "09\nTue",
-            "10\nWed",
-            "11\nThu",
-            "12\nFri",
-            "13\nSat",
-            "14\nSun",
-            "15\nMon",
-            "16\nTue",
-            "17\nWed",
-            "18\nThu",
-            "19\nFri",
-            "20\nSat",
-            "21\nSun",
-            "22\nMon",
-            "23\nTue",
-            "24\nWed",
-            "25\nThu",
-            "26\nFri",
-            "27\nSat",
-            "28\nSun",
-            "29\nMon",
-            "30\nTue",
-          ],
-        },
-        yAxis: {
-          type: "value",
-        },
-        series: [
-          {
-            name: "客户端",
-            type: "line",
-            smooth: true,
-            data: [
-              10, 23, 42, 13, 30, 25, 40, 30, 42, 55, 40, 28, 20, 30, 45, 25,
-              20, 30, 40, 33, 35, 40, 46, 31, 13, 34, 20, 10, 36, 43,
-            ],
-          },
-          {
-            name: "工具端",
-            type: "line",
-            smooth: true,
-            data: [
-              20, 30, 29, 40, 55, 33, 30, 26, 36, 45, 50, 34, 38, 25, 28, 43,
-              16, 30, 45, 52, 40, 46, 33, 57, 50, 33, 40, 59, 56, 56,
-            ],
-          },
-        ],
-      };
-      this.chartObj.myChart2.setOption(option);
-    },
-
-    initChart3() {
-      this.chartObj.myChart3 = this.$echarts.init(this.$refs.gaugeChart);
-      let option = {
-        color: ["#00ccff", "#ff6600", "#ff9900", "#9370db", "#ffd700"],
-        title: {
-          text: "原材料统计",
-          left: "left",
-          textStyle: {
-            fontSize: 16,
-            fontWeight: "normal",
-            color: "#696969",
-          },
-        },
-        tooltip: {
-          trigger: "axis",
-          axisPointer: {
-            type: "shadow",
-          },
-        },
-        grid: {
-          left: "0%",
-          right: "3%",
-          top: "20%",
-          bottom: "0%",
-          containLabel: true,
-        },
-        xAxis: {
-          type: "value",
-          nameLocation: "middle",
-          nameTextStyle: {
-            align: "center",
-          },
-          splitLine: {
-            show: false,
-          },
-        },
-
-        yAxis: {
-          type: "category",
-          data: ["总数", "入库数量", "出库数量"],
-          inverse: true, // 使类目从右向左排列
-        },
-
-        series: [
-          {
-            type: "bar",
-            barWidth: "18",
-            orientation: "horizontal",
-            data: [
-              { value: 88, name: "表单" },
-              { value: 66, name: "表格" },
-              { value: 33, name: "三级联动" },
-            ],
-            showBackground: true,
-            backgroundStyle: {
-              color: "#F0F8FF",
-            },
-          },
-        ],
-      };
-      this.chartObj.myChart3.setOption(option);
-    },
-
-    initChart4() {
-      this.chartObj.myChart4 = this.$echarts.init(this.$refs.barChart);
-      let option = {
-        color: ["#5D84FE"],
-        title: {
-          text: "用户登录统计",
-          textStyle: {
-            fontSize: 16,
-            fontWeight: "normal",
-            color: "#696969",
-          },
-        },
-        tooltip: {
-          trigger: "axis",
-          axisPointer: {
-            type: "shadow",
-          },
-        },
-        xAxis: {
-          type: "category",
-          data: [
-            "1月",
-            "2月",
-            "3月",
-            "4月",
-            "5月",
-            "6月",
-            "7月",
-            "8月",
-            "9月",
-            "10月",
-            "11月",
-            "12月",
-          ],
-        },
-        yAxis: {
-          type: "value",
-          min: 0,
-          max: 100,
-          interval: 20,
-          splitLine: {
-            show: false, // 关闭y轴的水平分割线
-          },
-        },
-        grid: {
-          left: "5%",
-          right: "5%",
-          top: "30%",
-          bottom: "0%",
-          containLabel: true,
-        },
-        series: [
-          {
-            data: [0],
-            type: "bar",
-            barWidth: "30", // 设置柱体宽度
-            showBackground: true,
-            backgroundStyle: {
-              color: "#E8EFFF",
-            },
-          },
-        ],
-      };
-      this.chartObj.myChart4.setOption(option);
-    },
-
     /** 导入按钮操作 */
     handleImport() {
       this.upload.title = "用户导入";
@@ -629,6 +147,10 @@ export default {
       return formatDate(new Date());
     },
   },
+  mounted() {
+    // this.title = window.sessionStorage.getItem("title") || "智能制造平台";
+    this.title = window.sessionStorage.getItem("title") || "生产协同管理系统";
+  },
 };
 </script>
 
@@ -636,153 +158,16 @@ export default {
 .home {
   position: relative;
   width: 100%;
-  /* height: 500px; */
-  background-color: #eff2f7;
+  height: 500px;
   .info-content {
-    width: 100%;
-    height: 100%;
+    position: absolute;
+    left: 50%;
+    top: 30%;
+    transform: translateX(-50%);
     display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-    .echarts1 {
-      position: relative;
-      width: 20%;
-      height: 280px;
-      margin: auto;
-      padding: 20px 15px;
-      box-shadow: 10px 10px 5px #e0e0e0;
-      background-color: #fff;
-      border-radius: 10px;
-      .pieChart {
-        width: 100%;
-        height: 100%;
-      }
-      .describe1 {
-        .text {
-          position: absolute;
-          left: 50px;
-          top: 90px;
-        }
-        .num {
-          position: absolute;
-          font-size: 20px;
-          color: black;
-          left: 63px;
-          top: 55px;
-        }
-      }
-      .describe2 {
-        .text {
-          position: absolute;
-          left: 157px;
-          top: 90px;
-        }
-        .num {
-          position: absolute;
-          font-size: 20px;
-          color: black;
-          left: 170px;
-          top: 55px;
-        }
-      }
-    }
-    .echarts2 {
-      width: 76%;
-      height: 280px;
-      margin: auto;
-      padding: 20px 15px;
-      box-shadow: 10px 10px 5px #e0e0e0;
-      background-color: #fff;
-      border-radius: 10px;
-      margin-right: 30px;
-      .lineChart {
-        width: 100%;
-        height: 100%;
-      }
-    }
-    .echarts3 {
-      width: 23%;
-      height: 200px;
-      margin: auto;
-      padding: 20px 15px;
-      box-shadow: 10px 10px 5px #e0e0e0;
-      background-color: #fff;
-      border-radius: 10px;
-      margin-top: 20px;
-      p {
-        margin: 0;
-      }
-      .title {
-        font-size: 16px;
-        color: "#696969";
-      }
-      .text {
-        display: flex;
-        flex-direction: row;
-        margin-top: 10px;
-        .peo {
-          font-size: 14px;
-          color: black;
-          font-weight: bold;
-          margin-left: 20px;
-          margin-right: 120px;
-        }
-        .add {
-          font-size: 14px;
-          color: black;
-          font-weight: bold;
-        }
-      }
-      .swiper-container {
-        display: flex;
-        flex-direction: row;
-        flex-wrap: wrap;
-        width: 90%;
-        height: 80px;
-        /* overflow: auto; */
-        margin-top: 10px;
-        .name {
-          text-align: center;
-          font-size: 16px;
-          margin-left: 2px;
-          margin-right: 59px;
-        }
-        .ip {
-          text-align: center;
-          font-size: 16px;
-        }
-      }
-    }
-    .echarts4 {
-      width: 20%;
-      height: 200px;
-      margin: auto;
-      padding: 20px 15px;
-      box-shadow: 10px 10px 5px #e0e0e0;
-      background-color: #fff;
-      border-radius: 10px;
-      margin-top: 20px;
-      .gaugeChart {
-        width: 100%;
-        height: 100%;
-      }
-    }
-    .echarts5 {
-      width: 53%;
-      height: 200px;
-      margin: auto;
-      padding: 20px 15px;
-      box-shadow: 10px 10px 5px #e0e0e0;
-      background-color: #fff;
-      border-radius: 10px;
-      margin-top: 20px;
-      margin-right: 30px;
-      .barChart {
-        width: 100%;
-        height: 100%;
-      }
-    }
-    /* .header {
+    flex-direction: column;
+    align-items: center;
+    .header {
       white-space: nowrap;
       margin-bottom: 5px;
       cursor: pointer;
@@ -790,7 +175,7 @@ export default {
         width: 160px;
         border-radius: 50%;
       }
-    } */
+    }
     .name {
       font-size: 30px;
       margin-bottom: 5px;
@@ -802,7 +187,8 @@ export default {
       margin-bottom: 10px;
     }
     .title {
-      font-size: 16px;
+      // font-size: 16px;
+      font-size: 20px;
     }
   }
 }

+ 1 - 1
zkqy-ui/src/views/orderMange/approve.vue

@@ -425,7 +425,7 @@
                     <el-option
                       v-for="item in colourNumberOptions"
                       :key="item.materielCode"
-                      :label="item.materieColorNumber"
+                      :label="item.materieEncoding + item.materieColorNumber"
                       :value="item.materielCode"
                     >
                     </el-option>

+ 123 - 59
zkqy-ui/src/views/orderMange/codeListManage/index.vue

@@ -48,10 +48,12 @@
             icon="el-icon-search"
             size="mini"
             @click="handleQuery"
-            >搜索</el-button
+          >搜索
+          </el-button
           >
           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-            >重置</el-button
+          >重置
+          </el-button
           >
         </el-form-item>
       </el-form>
@@ -65,7 +67,8 @@
             size="mini"
             @click="printHandler"
             v-hasPermi="['system:productCodeList:add']"
-            >打印</el-button
+          >打印
+          </el-button
           >
         </el-col>
         <el-col :span="1.5">
@@ -77,7 +80,8 @@
             :disabled="single"
             @click="handleUpdate"
             v-hasPermi="['system:productCodeList:edit']"
-            >修改</el-button
+          >修改
+          </el-button
           >
         </el-col>
         <el-col :span="1.5">
@@ -89,7 +93,8 @@
             :disabled="multiple"
             @click="handleDelete"
             v-hasPermi="['system:productCodeList:remove']"
-            >删除</el-button
+          >删除
+          </el-button
           >
         </el-col>
         <el-col :span="1.5">
@@ -100,7 +105,8 @@
             size="mini"
             @click="handleExport"
             v-hasPermi="['system:productCodeList:export']"
-            >导出</el-button
+          >导出
+          </el-button
           >
         </el-col>
         <right-toolbar
@@ -114,22 +120,22 @@
         :data="productCodeListList"
         @selection-change="handleSelectionChange"
       >
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="码单号" align="center" prop="qrCode" />
-        <el-table-column label="品名" align="center" prop="productName" />
+        <el-table-column type="selection" width="55" align="center"/>
+        <el-table-column label="码单号" align="center" prop="qrCode"/>
+        <el-table-column label="品名" align="center" prop="productName"/>
         <el-table-column
           label="规格"
           align="center"
           prop="productSpecifications"
         />
-        <el-table-column label="批号" align="center" prop="lotNum" />
-        <el-table-column label="色泽" align="center" prop="productColor" />
+        <el-table-column label="批号" align="center" prop="lotNum"/>
+        <el-table-column label="色泽" align="center" prop="productColor"/>
         <!-- <el-table-column label="货品编号" align="center" prop="productId" /> -->
-        <el-table-column label="等级" align="center" prop="levels" />
-        <el-table-column label="筒数" align="center" prop="totalCanisterNum" />
-        <el-table-column label="箱数" align="center" prop="totalBoxNum" />
-        <el-table-column label="净重" align="center" prop="totalSuttle" />
-        <el-table-column label="备注" align="center" prop="remark" />
+        <el-table-column label="等级" align="center" prop="levels"/>
+        <el-table-column label="筒数" align="center" prop="totalCanisterNum"/>
+        <el-table-column label="箱数" align="center" prop="totalBoxNum"/>
+        <el-table-column label="净重" align="center" prop="totalSuttle"/>
+        <el-table-column label="备注" align="center" prop="remark"/>
         <el-table-column
           label="操作"
           align="center"
@@ -148,7 +154,8 @@
                     icon="el-icon-edit"
                     @click="handleUpdate(scope.row)"
                     v-hasPermi="['system:productCodeList:edit']"
-                    >修改</el-button
+                  >修改
+                  </el-button
                   >
                 </el-dropdown-item>
                 <el-dropdown-item>
@@ -157,7 +164,8 @@
                     type="text"
                     icon="el-icon-circle-plus-outline"
                     @click="supplementCode(scope.row)"
-                    >补码</el-button
+                  >补码
+                  </el-button
                   >
                 </el-dropdown-item>
                 <el-dropdown-item>
@@ -167,7 +175,8 @@
                     icon="el-icon-delete"
                     @click="handleDelete(scope.row)"
                     v-hasPermi="['system:productCodeList:remove']"
-                    >删除</el-button
+                  >删除
+                  </el-button
                   >
                 </el-dropdown-item>
               </el-dropdown-menu>
@@ -191,27 +200,28 @@
         width="500px"
         append-to-body
       >
+
         <el-form ref="form" :model="form" :rules="rules" label-width="80px">
           <el-form-item label="码单号" prop="qrCode">
-            <el-input v-model="form.qrCode" placeholder="请输入码单号" />
+            <el-input v-model="form.qrCode" placeholder="请输入码单号"/>
           </el-form-item>
           <el-form-item label="批号" prop="lotNum">
-            <el-input v-model="form.lotNum" placeholder="请输入批号" />
+            <el-input v-model="form.lotNum" placeholder="请输入批号"/>
           </el-form-item>
           <el-form-item label="货品编号" prop="productId">
-            <el-input v-model="form.productId" placeholder="请输入货品编号" />
+            <el-input v-model="form.productId" placeholder="请输入货品编号"/>
           </el-form-item>
           <el-form-item label="等级" prop="levels">
-            <el-input v-model="form.levels" placeholder="请输入等级" />
+            <el-input v-model="form.levels" placeholder="请输入等级"/>
           </el-form-item>
           <el-form-item label="筒数" prop="canisterNum">
-            <el-input v-model="form.canisterNum" placeholder="请输入筒数" />
+            <el-input v-model="form.canisterNum" placeholder="请输入筒数"/>
           </el-form-item>
           <el-form-item label="箱数" prop="boxNum">
-            <el-input v-model="form.boxNum" placeholder="请输入箱数" />
+            <el-input v-model="form.boxNum" placeholder="请输入箱数"/>
           </el-form-item>
           <el-form-item label="净重" prop="suttle">
-            <el-input v-model="form.suttle" placeholder="请输入净重" />
+            <el-input v-model="form.suttle" placeholder="请输入净重"/>
           </el-form-item>
           <el-form-item label="生产日期" prop="productionDate">
             <el-date-picker
@@ -224,16 +234,16 @@
             </el-date-picker>
           </el-form-item>
           <el-form-item label="机台" prop="machineTool">
-            <el-input v-model="form.machineTool" placeholder="请输入机台" />
+            <el-input v-model="form.machineTool" placeholder="请输入机台"/>
           </el-form-item>
           <el-form-item label="毛重" prop="grossWeight">
-            <el-input v-model="form.grossWeight" placeholder="请输入毛重" />
+            <el-input v-model="form.grossWeight" placeholder="请输入毛重"/>
           </el-form-item>
           <el-form-item label="包装" prop="packaging">
-            <el-input v-model="form.packaging" placeholder="请输入包装" />
+            <el-input v-model="form.packaging" placeholder="请输入包装"/>
           </el-form-item>
           <el-form-item label="班次" prop="workShifts">
-            <el-input v-model="form.workShifts" placeholder="请输入班次" />
+            <el-input v-model="form.workShifts" placeholder="请输入班次"/>
           </el-form-item>
           <el-form-item label="外贸号" prop="foreignTradeNumber">
             <el-input
@@ -242,22 +252,22 @@
             />
           </el-form-item>
           <el-form-item label="筒重" prop="canisterWeight">
-            <el-input v-model="form.canisterWeight" placeholder="请输入筒重" />
+            <el-input v-model="form.canisterWeight" placeholder="请输入筒重"/>
           </el-form-item>
           <el-form-item label="箱重/车重" prop="boxWeight">
-            <el-input v-model="form.boxWeight" placeholder="请输入箱重/车重" />
+            <el-input v-model="form.boxWeight" placeholder="请输入箱重/车重"/>
           </el-form-item>
           <el-form-item label="管色" prop="tubeColor">
-            <el-input v-model="form.tubeColor" placeholder="请输入管色" />
+            <el-input v-model="form.tubeColor" placeholder="请输入管色"/>
           </el-form-item>
           <el-form-item label="端口" prop="comPort">
-            <el-input v-model="form.comPort" placeholder="请输入端口" />
+            <el-input v-model="form.comPort" placeholder="请输入端口"/>
           </el-form-item>
           <el-form-item label="打印格式" prop="printFormat">
-            <el-input v-model="form.printFormat" placeholder="请输入打印格式" />
+            <el-input v-model="form.printFormat" placeholder="请输入打印格式"/>
           </el-form-item>
           <el-form-item label="库位" prop="storageLocation">
-            <el-input v-model="form.storageLocation" placeholder="请输入库位" />
+            <el-input v-model="form.storageLocation" placeholder="请输入库位"/>
           </el-form-item>
           <el-form-item label="区域编号" prop="warehouseregionId">
             <el-input
@@ -273,7 +283,7 @@
             />
           </el-form-item>
           <el-form-item label="删除标志" prop="delFlag">
-            <el-input v-model="form.delFlag" placeholder="请输入删除标志" />
+            <el-input v-model="form.delFlag" placeholder="请输入删除标志"/>
           </el-form-item>
           <el-form-item label="创建者编号" prop="createById">
             <el-input
@@ -314,14 +324,16 @@
                   type="primary"
                   size="mini"
                   @click="updateOrderData"
-                  >保存修改</el-button
+                >保存修改
+                </el-button
                 >
                 <el-button
                   :disabled="tableData.length != 1"
                   type="primary"
                   size="mini"
                   @click="getOrderData"
-                  >箱单</el-button
+                >箱单
+                </el-button
                 >
                 <el-button
                   :disabled="tableData.length < 2"
@@ -329,7 +341,8 @@
                   type="primary"
                   size="mini"
                   @click="chooseOneToPrint"
-                  >{{ chooseState ? "退出批箱单" : "批箱单" }}</el-button
+                >{{ chooseState ? "退出批箱单" : "批箱单" }}
+                </el-button
                 >
                 <!-- <el-button
                 :disabled="tableData.length != 1"
@@ -401,7 +414,8 @@
                     size="mini"
                     :disabled="chooseState"
                     @click="handleDeleteOne(scope.$index)"
-                    >删除</el-button
+                  >删除
+                  </el-button
                   >
                 </template>
               </el-table-column>
@@ -666,6 +680,7 @@
               </el-form>
             </el-row>
             <div class="queryForm">
+              <h1>实时重量:{{ nowWright }}</h1>
               <span class="label">批号过滤 :</span>
               <el-input
                 v-model="batchNum"
@@ -682,7 +697,8 @@
                 size="mini"
                 :disabled="!currentRow.lotNum || isDisabled"
                 @click="addProductHandler"
-                >添加</el-button
+              >添加
+              </el-button
               >
             </div>
             <div class="table-wrap">
@@ -738,6 +754,8 @@ export default {
   dicts: ["packaging_type", "port", "coding_list_format", "direction_of_twist"],
   data() {
     return {
+      nowWright: 0,
+      websocket: null,
       // 自定义数据 start
       printTableData: [], //需要打印的数据
       chooseState: false, //批箱单打印状态
@@ -789,33 +807,33 @@ export default {
       },
       rules: {
         packaging: [
-          { required: true, message: "请选择包装", trigger: "change" },
+          {required: true, message: "请选择包装", trigger: "change"},
         ],
         machineTool: [
-          { required: true, message: "请选择机台", trigger: "change" },
+          {required: true, message: "请选择机台", trigger: "change"},
         ],
         workShifts: [
-          { required: true, message: "请选择班次", trigger: "change" },
+          {required: true, message: "请选择班次", trigger: "change"},
         ],
         productionDate: [
-          { required: true, message: "请选择生产日期", trigger: "change" },
+          {required: true, message: "请选择生产日期", trigger: "change"},
         ],
-        levels: [{ required: true, message: "请选择等级", trigger: "change" }],
+        levels: [{required: true, message: "请选择等级", trigger: "change"}],
         // foreignTradeNumber: [
         //   { required: true, message: "请输入外贸号", trigger: "blur" },
         // ],
         canisterWeight: [
-          { required: true, message: "请选择筒重", trigger: "change" },
+          {required: true, message: "请选择筒重", trigger: "change"},
         ],
         boxWeight: [
-          { required: true, message: "请选择箱重/车重", trigger: "change" },
+          {required: true, message: "请选择箱重/车重", trigger: "change"},
         ],
         tubeColor: [
-          { required: true, message: "请选择管色", trigger: "change" },
+          {required: true, message: "请选择管色", trigger: "change"},
         ],
-        comPort: [{ required: true, message: "请选择端口", trigger: "change" }],
+        comPort: [{required: true, message: "请选择端口", trigger: "change"}],
         printFormat: [
-          { required: true, message: "请选择格式", trigger: "change" },
+          {required: true, message: "请选择格式", trigger: "change"},
         ],
       },
       dropDownData: {},
@@ -909,16 +927,50 @@ export default {
       immediate: true,
     },
   },
+  mounted() {
+    this.initWebSocket();
+  },
+  beforeDestroy() {
+    this.closeWebSocket();
+  },
   computed: {
     isDisabled() {
       return this.excuteType != 1;
     },
   },
+
   methods: {
+    initWebSocket() {
+      const wsUrl = 'ws://localhost:8721/ws';
+      this.websocket = new WebSocket(wsUrl);
+      this.websocket.addEventListener('open', (event) => {
+        console.log('建立WebSocket连接');
+      });
+
+      this.websocket.addEventListener('message', (event) => {
+        console.log(event)
+        const weight = JSON.parse(event.data).weight;
+        this.nowWright = weight;
+      });
+
+      this.websocket.addEventListener('error', (event) => {
+        console.error('WebSocket错误:', event);
+      });
+
+      this.websocket.addEventListener('close', (event) => {
+        console.log('关闭WebSocket连接');
+      });
+    },
+
+    closeWebSocket() {
+      if (this.websocket !== null && this.websocket.readyState !== WebSocket.CLOSED) {
+        this.websocket.close();
+      }
+    },
     // 毛重改变回调
     changeGrossWeight(row) {
       console.log(row);
-      let { boxWeight, grossWeight, canisterWeight, canisterNum } = row;
+      let {boxWeight, grossWeight, canisterWeight, canisterNum} = row;
       if (!Number(grossWeight)) return;
       row.suttle = (
         Number(grossWeight) -
@@ -965,7 +1017,7 @@ export default {
       this.$refs.form.validate(async (valid) => {
         if (valid) {
           try {
-            let { sumBoxNum, sumCanisterNum, sumSuttle, sumGrossWeight } =
+            let {sumBoxNum, sumCanisterNum, sumSuttle, sumGrossWeight} =
               this.count;
             let rowData = JSON.parse(JSON.stringify(this.tableData[0]));
             console.log(rowData);
@@ -1018,7 +1070,7 @@ export default {
       this.$refs.form.validate(async (valid) => {
         if (valid) {
           try {
-            let { sumBoxNum, sumCanisterNum, sumSuttle, sumGrossWeight } =
+            let {sumBoxNum, sumCanisterNum, sumSuttle, sumGrossWeight} =
               this.count;
             let rowData = JSON.parse(JSON.stringify(this.tableData[0]));
             this.printTableData = [rowData];
@@ -1162,7 +1214,7 @@ export default {
     },
     // 计算净重
     getSuttle() {
-      let { boxWeight, canisterWeight, canisterNum } = this.form;
+      let {boxWeight, canisterWeight, canisterNum} = this.form;
       return (Number(boxWeight) - canisterWeight * canisterNum).toFixed(2);
     },
     // 表格点击回调
@@ -1182,7 +1234,7 @@ export default {
             this.$refs.form.validate(async (valid) => {
               if (valid) {
                 try {
-                  let { sumBoxNum, sumCanisterNum, sumSuttle, sumGrossWeight } =
+                  let {sumBoxNum, sumCanisterNum, sumSuttle, sumGrossWeight} =
                     this.count;
                   let rowData = JSON.parse(JSON.stringify(row));
                   this.printTableData = [rowData];
@@ -1261,7 +1313,8 @@ export default {
         if (res.code == 200) {
           this.dropDownData = res.data;
         }
-      } catch (error) {}
+      } catch (error) {
+      }
     },
     /** 查询产品码单列表 */
     getList() {
@@ -1456,7 +1509,8 @@ export default {
           this.getList();
           this.$modal.msgSuccess("删除成功");
         })
-        .catch(() => {});
+        .catch(() => {
+        });
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -1477,11 +1531,14 @@ export default {
   width: 100%;
   display: flex;
   justify-content: space-between;
+
   .left {
     width: 58%;
+
     .top-area {
       display: flex;
       justify-content: space-between;
+
       .msg {
         display: flex;
         align-items: center;
@@ -1489,9 +1546,11 @@ export default {
         font-weight: 700;
       }
     }
+
     .count-area {
       display: flex;
       flex-wrap: wrap;
+
       .count-item {
         display: flex;
         margin-bottom: 10px;
@@ -1499,6 +1558,7 @@ export default {
       }
     }
   }
+
   .right {
     width: 40%;
     // flex: 1;
@@ -1506,6 +1566,7 @@ export default {
       width: 100%;
       padding: 0 10px;
       display: flex;
+
       .label {
         text-align: right;
         color: #606266;
@@ -1517,6 +1578,7 @@ export default {
         margin-right: 10px;
       }
     }
+
     .table-wrap {
       margin-top: 5px;
       width: 100%;
@@ -1524,9 +1586,11 @@ export default {
     }
   }
 }
+
 ::v-deep .el-date-editor.el-input {
   width: 100%;
 }
+
 ::v-deep .el-input-number--mini {
   width: 99%;
 }

+ 17 - 3
zkqy-ui/src/views/orderMange/index.vue

@@ -497,9 +497,16 @@
                     <el-option
                       v-for="item in colourNumberOptions"
                       :key="item.materielCode"
-                      :label="item.materieColorNumber"
+                      :label="item.materieEncoding + item.materieColorNumber"
                       :value="item.materielCode"
                     >
+                      <span class="discribe" style="float: left">{{
+                        item.materieEncoding + item.materieColorNumber
+                      }}</span>
+                      <!-- <span
+                        style="float: right; color: #8492a6; font-size: 13px"
+                        >{{ item.materielCode }}</span
+                      > -->
                     </el-option>
                   </el-select>
                 </template>
@@ -2686,9 +2693,16 @@ export default {
     colourNumberChangeHandler(row) {
       let { colourNumber } = row;
       if (colourNumber) {
-        row.colourNumberLabel = this.colourNumberOptions.find(
+        let target = this.colourNumberOptions.find(
           (item) => item.materielCode == colourNumber
-        )?.materieColorNumber;
+        );
+        if (target) {
+          row.colourNumberLabel =
+            target.materieEncoding + target.materieColorNumber;
+        }
+        // row.colourNumberLabel = this.colourNumberOptions.find(
+        //   (item) => item.materielCode == colourNumber
+        // )?.materieColorNumber;
       }
     },
     // 打印回调