From e0a7b6146f74f1680231ff9c508990220a166d97 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期一, 01 四月 2024 09:49:03 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml                               |   65 
 UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java                                                    |    9 
 UI-Project/src/views/Returns/ReturnsReport.vue                                                                  |    0 
 TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java                                      |    3 
 TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java                             |    2 
 UI-Project/src/views/PurchaseReturn/purchase.vue                                                                |   49 
 UI-Project/src/views/UnLoadGlass.rar                                                                            |    0 
 UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java                                       |  276 
 UI-Project/src/views/UnLoadGlass.zip                                                                            |    0 
 UI-Project/src/views/LoginView.vue                                                                              |   69 
 UI-Project/src/assets/bigcar01.png                                                                              |    0 
 UI-Project/src/views/Returns/CreateReturns.vue                                                                  |    0 
 CacheGlassModule/src/main/java/com/mes/entity/device/InitUtil.java                                              |  124 
 UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx                                                         |    0 
 UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json                                                      |  378 +
 UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json                                                     |   51 
 UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java                                                    |    5 
 UnLoadGlassModule/target/classes/JsonFile/PlcTest.json                                                          |  378 +
 UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json                                                 |  610 ++
 CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java                              |   41 
 UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java                                                    |   44 
 UI-Project/src/views/StockBasicData/Return.vue                                                                  |  593 ++
 CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java                              |   71 
 UI-Project/src/assets/s.png                                                                                     |    0 
 CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java                                            |   77 
 TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst         |   54 
 UI-Project/src/assets/xmjclzh.png                                                                               |    0 
 UI-Project/src/utils/unloadrequest.js                                                                           |   49 
 UI-Project/src/views/StockBasicData/Details.vue                                                                 |  453 +
 UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java                                               |   61 
 UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java                                                  |   86 
 UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java                                       |   45 
 UnLoadGlassModule/target/classes/JsonFile/sign.xlsx                                                             |    0 
 CacheGlassModule/src/main/java/com/mes/entity/TaskCache.java                                                    |   15 
 UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json                                                     |  285 
 UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java                                          |   96 
 UI-Project/src/views/StockBasicData/Select.vue                                                                  |  486 +
 UI-Project/src/views/StockBasicData/Storage.vue                                                                 |  603 ++
 UI-Project/src/views/mm/purchaseOrder/Select.vue                                                                | 1393 +++-
 UnLoadGlassModule/target/classes/JsonFile/Plcframe.json                                                         |   51 
 CacheGlassModule/src/main/resources/banner.txt                                                                  |   32 
 UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue                                                         |  116 
 UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java                                |    2 
 UI-Project/src/views/Identify/identify.vue                                                                      |  174 
 UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java                                  |    3 
 UI-Project/index.html                                                                                           |    2 
 TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst |    1 
 UI-Project/src/assets/aaa.png                                                                                   |    0 
 UI-Project/src/assets/main.css                                                                                  |    7 
 UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json                                                       |   50 
 UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java                                   |    3 
 CacheGlassModule/src/main/resources/application.yml                                                             |   16 
 UI-Project/src/assets/emi.png                                                                                   |    0 
 pom.xml                                                                                                         |   12 
 UI-Project/src/assets/user.png                                                                                  |    0 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                            |  193 
 UI-Project/src/assets/shangpianji .png                                                                          |    0 
 UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java                                             |    3 
 UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java                                         |   17 
 UI-Project/src/assets/dipan.png                                                                                 |    0 
 UI-Project/config.js                                                                                            |    3 
 TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java                                |    2 
 UI-Project/src/assets/9.png                                                                                     |    0 
 UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx                                                            |    0 
 CacheGlassModule/target/classes/application.yml                                                                 |   16 
 TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt                                    |    4 
 UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json                                                     |  610 ++
 UI-Project/src/views/Slicecage/slicecage.vue                                                                    |  568 +
 UI-Project/src/assets/sz.png                                                                                    |    0 
 CacheGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java                                    |    2 
 CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java                                      |  128 
 TemperingGlassModule/src/main/resources/application.yml                                                         |   24 
 UnLoadGlassModule/src/main/resources/application.yml                                                            |   10 
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                          |  174 
 UI-Project/src/assets/2.png                                                                                     |    0 
 UI-Project/src/assets/xmjc.png                                                                                  |    0 
 UI-Project/src/views/Returns/returns.vue                                                                        |  426 +
 CacheGlassModule/src/main/java/com/mes/service/userInfo/UserService.java                                        |    2 
 UI-Project/src/views/Returns/SelectDeliveryList.vue                                                             |    0 
 TemperingGlassModule/MES-Module (1).iml                                                                         |  139 
 UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx                                                         |    0 
 UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json                                                      |  460 +
 UI-Project/src/views/Caching/caching.vue                                                                        |  766 ++
 CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java                                                   |   83 
 TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original                                              |    0 
 TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst           |   53 
 UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue                                                       |    9 
 UnLoadGlassModule/target/classes/JsonFile/PlcRead.json                                                          |  195 
 UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue                                                       |  114 
 UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx                                                        |    0 
 UI-Project/package.json                                                                                         |    3 
 UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json                                                      |  195 
 UnLoadGlassModule/target/classes/JsonFile/PlcMes.json                                                           |   50 
 CacheGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java                                   |    5 
 UI-Project/src/views/RegisterView.vue                                                                           |  188 
 UnLoadGlassModule/target/classes/JsonFile/PlcSign.json                                                          |  460 +
 UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue                                                         |  193 
 UnLoadGlassModule/mockPLCData.properties                                                                        |   13 
 UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java                                                 |   91 
 UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java                                                 |  139 
 UnLoadGlassModule/target/classes/JsonFile/test.xlsx                                                             |    0 
 UI-Project/src/assets/taimian.png                                                                               |    0 
 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue                                                         |   90 
 UI-Project/src/views/StockBasicData/Payment.vue                                                                 |  354 +
 UI-Project/src/router/index.js                                                                                  |  893 --
 UI-Project/src/utils/webSocket.js                                                                               |    2 
 UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java                                 |   25 
 UI-Project/src/assets/88.png                                                                                    |    0 
 TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java                               |    2 
 UI-Project/src/layout/MainErpView.vue                                                                           |  126 
 UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java                                       |    9 
 UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java                                                     |   15 
 TemperingGlassModule/target/maven-archiver/pom.properties                                                       |    3 
 UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java                                   |    2 
 UI-Project/src/views/StockBasicData/Create.vue                                                                  |  724 ++
 CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java                                           |   89 
 UI-Project/src/assets/shangpianji.png                                                                           |    0 
 UI-Project/src/assets/1.png                                                                                     |    0 
 UI-Project/src/assets/11.png                                                                                    |    0 
 UI-Project/src/assets/background.jpg                                                                            |    0 
 UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java                                       |    3 
 CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java                                     |    2 
 UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java                                 |   40 
 UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java                                               |    2 
 CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java                                          |  142 
 CacheGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java                                          |    1 
 TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java                                 |    2 
 UI-Project/src/assets/woshihuancun.png                                                                          |    0 
 UnLoadGlassModule/target/classes/JsonFile/PlcState.json                                                         |  285 
 UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json                                                     |  371 +
 TemperingGlassModule/MES-Module.iml                                                                             |   15 
 UI-Project/src/views/StockBasicData/stockBasicData.vue                                                          |  169 
 UI-Project/src/views/UnLoadGlass/Landingindication.vue                                                          |  118 
 UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java                                             |   56 
 UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java                                    |    2 
 CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java                                    |  202 
 UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json                                                         |  371 +
 CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java                                         |   20 
 UI-Project/src/assets/3.png                                                                                     |    0 
 /dev/null                                                                                                       |   65 
 CacheGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java                                            |   95 
 UI-Project/src/views/UnLoadGlass/UnLoadGlass.vue                                                                |   14 
 CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java                                 |    2 
 UI-Project/src/views/Returns/SelectReturns.vue                                                                  |  273 
 CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java                                     |  117 
 TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java                                    |    9 
 UI-Project/src/views/HomeView.vue                                                                               |   28 
 UI-Project/package-lock.json                                                                                    |   15 
 CacheGlassModule/MES-Module.iml                                                                                 |  144 
 UnLoadGlassModule/target/classes/application.yml                                                                |   10 
 TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst   |    1 
 UI-Project/vite.config.js                                                                                       |    2 
 152 files changed, 15,182 insertions(+), 2,006 deletions(-)

diff --git a/CacheGlassModule/MES-Module.iml b/CacheGlassModule/MES-Module.iml
index 1069076..74c9d74 100644
--- a/CacheGlassModule/MES-Module.iml
+++ b/CacheGlassModule/MES-Module.iml
@@ -1,133 +1,13 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="web" name="Web">
-      <configuration>
-        <webroots />
-        <sourceRoots>
-          <root url="file://$MODULE_DIR$/src/main/java" />
-          <root url="file://$MODULE_DIR$/src/main/resources" />
-        </sourceRoots>
-      </configuration>
-    </facet>
-    <facet type="Spring" name="Spring">
-      <configuration />
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.10" level="project" />
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.10" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.1" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.33" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
-    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.28" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.6" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.6" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.12.6" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.56" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.56" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.56" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.70" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.33" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.20" level="project" />
-    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.22" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.5.9" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.5.9" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.5.9" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.5.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.7" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:2.4.7" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:9.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.7.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.7.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.7.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.9.0" level="project" />
-    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.22" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.22" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.9.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.15" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.8.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-test-autoconfigure:2.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.10.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.6" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.6" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.6" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: commons-codec:commons-codec:1.15" level="project" />
-    <orderEntry type="library" name="Maven: org.assertj:assertj-core:3.19.0" level="project" />
-    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.4.0" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.1" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.1" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.1" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.1" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.3" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.5.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.7" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
-    <orderEntry type="library" name="Maven: com.github.xingshuangs:iot-communication:1.4.2" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.5.9" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.3.15" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.36.Final" level="project" />
-  </component>
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="MavenCustomPomFilePath">
+    <option name="mavenPomFileUrl" value="file://$MODULE_DIR$/effective-pom.xml" />
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/../../Code/HangZhouMes/CacheGlassModule/target/classes" />
+    <output-test url="file://$MODULE_DIR$/../../Code/HangZhouMes/CacheGlassModule/target/test-classes" />
+    <exclude-output />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
 </module>
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java b/CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
index 9cc9e37..8ffee41 100644
--- a/CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
+++ b/CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
@@ -1,7 +1,9 @@
 package com.mes.common.PlcTools;
 
-
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.nio.charset.StandardCharsets;
+import java.sql.Time;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -9,15 +11,37 @@
 import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
 import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
 import com.google.common.primitives.Bytes;
+import org.apache.ibatis.jdbc.Null;
 
 public class S7control {
 
     S7PLC s7PLC; // PLC閫氳绫诲疄渚�
-    
-    public S7control(EPlcType plcType, String ip, int port, int rack, int slot) {
+    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.1"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+    private static volatile S7control instance = null;
+
+    private S7control() {
         if (s7PLC == null)
             s7PLC = new S7PLC(plcType, ip, port,0,0);
-    } 
+    }
+    public S7control(EPlcType plcType,String ip,int port,int a,int b) {
+        if (s7PLC == null)
+            s7PLC = new S7PLC(plcType, ip, port,a,b);
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7control getinstance() {
+        if (instance == null) {
+            synchronized (S7control.class) {
+                if (instance == null)
+                    instance = new S7control();
+            }
+        }
+        return instance;
+    }
+    
     /**
      * 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
      */
@@ -33,7 +57,7 @@
     public boolean CheckConnected() {
         return s7PLC.checkConnected();
     }
-     
+
     /**
      * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
      * 
@@ -156,7 +180,7 @@
         }
     }
 
-
+    
 
 
     private int getIndexFromAddress(String address) {
@@ -181,7 +205,6 @@
     public List<Short> ReadWord(String address, int count) {
         if (s7PLC == null)
             return null;
-
         List<String> addresslist = GetAddressList(address, count, 16);
         try {
             return s7PLC.readInt16(addresslist);
@@ -191,7 +214,13 @@
             return null;
         }
     }
-
+    public byte[] Readbyte(String address, int count) {
+        byte[] byt=new byte[count];
+        int wordcount=((count%2==0)?count/2:count+1);
+        List<Short> word=ReadWord(address,wordcount);
+        
+        return byt;
+    }
     /**
      * 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
      * 
@@ -269,6 +298,41 @@
 }
 
 
+
+
+
+    public List<String> readStringsandword(List<String> addressList) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<String> result = new ArrayList<>();
+        for (String address : addressList) {
+            try {
+                if (address.contains("-")) {
+                    address = address.substring(0, address.indexOf("-"));
+
+                    byte[] bytes = s7PLC.readByte(address, 14);
+                    if (bytes != null) {
+                        String str = new String(bytes, StandardCharsets.UTF_8);
+                        result.add(str);
+                    }
+
+                } else {
+                    Short value = s7PLC.readInt16(address);
+                    result.add(value.toString());
+
+                }
+            } catch (Exception e) {
+                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+                result.add(null);
+            }
+        }
+
+        return result;
+    }
+
+
+
 //涓嶈繛缁湴鍧�鍐欏叆Word
     public void WriteWord(List<String> address, List<Short> datas) {
         if (s7PLC == null)
@@ -300,7 +364,7 @@
             glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
         }
         byte[] bytes = Bytes.toArray(glassidlist);
-        WriteByte(addr, bytes);
+        S7control.getinstance().WriteByte(addr, bytes);
     }
 
 //璇诲彇涓嶈繛缁瓀ord
@@ -410,4 +474,11 @@
         }
         return addresslist;
     }
+    public void writeString(String addr,String data) {
+        s7PLC.writeString(addr,data);
+    }
+    
+    public String readStrings(String addr) {
+        return s7PLC.readString(addr);
+    }
 }
diff --git a/CacheGlassModule/src/main/java/com/mes/controller/OrderTestController.java b/CacheGlassModule/src/main/java/com/mes/controller/OrderTestController.java
deleted file mode 100644
index 2d24de4..0000000
--- a/CacheGlassModule/src/main/java/com/mes/controller/OrderTestController.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.mes.controller;
-
-import com.mes.mapper.SelectInfo;
-
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import com.mes.common.Result;
-import com.mes.entity.Tempered;
-import com.mes.service.pp.SelectdppService;
-
-//@CrossOrigin  //瑙e喅鍗曚釜controller 璺ㄥ煙闂
-@RestController
-@RequestMapping("/Temper")
-
-public class OrderTestController {
-    @Autowired
-    private SelectInfo SelectInfo;
-
-    @Autowired
-    private SelectdppService SelectppService;
-
-   @GetMapping("/Tindex") //鏌ヨorder琛ㄧ粨鏋滈泦
-   @ResponseBody
-   public Result index(){
-       System.out.println(1);
-       List<Tempered> h=SelectppService.getSelectTempered("P24030707");
-       System.out.println(h.size());
-       return Result.seccess(h);
-    
-   }
-//
-//    @PostMapping  //鎻掑叆
-//    public Integer save(@RequestBody Order order) {
-//        return orderMapper.insert(order);
-//    }
-//
-//    @PostMapping("/update")
-//    public Integer updateOrder(@RequestBody Order order) {
-//        return orderMapper.update(order.getId(),order.getOrderid());
-//    }
-//
-//    @DeleteMapping("/{id}") //鍒犻櫎鏁版嵁
-//    public Integer delete(@PathVariable Integer id) {
-//        return orderMapper.deleteById(id);
-//    }
-
-    
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
new file mode 100644
index 0000000..99d6d28
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
@@ -0,0 +1,71 @@
+package com.mes.controller;
+
+import com.mes.mapper.SelectInfo;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.mes.common.Result;
+import com.mes.entity.Tempered;
+import com.mes.service.pp.SelectdppService;
+import com.mes.service.hangzhoumes.*;
+
+@RestController
+@RequestMapping("/TidyUpGlassModule")
+
+// TidyUpGlassModule 鐞嗙墖妯″潡
+public class TidyUpGlassModuleController {
+    @Autowired
+    private SelectInfo SelectInfo;
+
+    @Autowired
+    private SelectdppService SelectppService;
+
+    @Autowired
+    private hangzhoumesService hangzhoumesService;
+
+    @GetMapping("/SelectTerritoryInfo") // 鏌ヨ閽㈠寲鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�
+    @ResponseBody
+    public Result SelectTerritoryInfo(@RequestParam(name = "ProcessId", required = false) String ProcessId) {
+        List<Tempered> h = SelectppService.SelectTemperedTerritory(ProcessId);
+        System.out.println(h.size()+":"+ProcessId);
+        return Result.seccess(h);
+    }
+
+    @GetMapping("/CutTerritory") // 鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�
+    @ResponseBody
+    public Result CutTerritory(String ProcessId) {
+        List<Map> h = SelectppService.SelectCutTerritory(ProcessId);
+        System.out.println(h.size());
+        return Result.seccess(h);
+    }
+
+    @GetMapping("/SelectCutTerritory") // 璇嗗埆鏄剧ず  褰撳墠鐗堝浘 
+    @ResponseBody
+    public Result SelectCutTerritory(String ProcessId) {
+        List<Map> h = SelectppService.SelectCutTerritory("P24032508");
+        System.out.println(h.size());
+        return Result.seccess(h);
+    }
+
+
+    @GetMapping("/SelectCageInfo") // 鏌ヨ绗煎唴淇℃伅 
+    @ResponseBody
+    public Result SelectCageInfo(String ProcessId) {
+        List<Map> h = SelectppService.SelectCutTerritory("P24032508");
+        System.out.println(h.size());
+        return Result.seccess(h);
+    }
+
+    
+    @GetMapping("/SelectEdgTask") //纾ㄨ竟浠诲姟
+    @ResponseBody
+    public Result SelectEdgTask(String ProcessId) {
+        List<Map> EdgTasks = hangzhoumesService.SelectEdgInfo("1");
+        System.out.println(EdgTasks.size());
+        return Result.seccess(EdgTasks);
+    }
+
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/TaskCache.java b/CacheGlassModule/src/main/java/com/mes/entity/TaskCache.java
new file mode 100644
index 0000000..f69f315
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/TaskCache.java
@@ -0,0 +1,15 @@
+package com.mes.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
+@TableName("task_cache")
+public class TaskCache {
+    private  String ID;//浠诲姟缂栧彿
+    private  String startcell;//璧峰
+    private  String endcell;//缁撴潫
+    private  String tasktype;//浠诲姟绫诲瀷
+    private  String taskstauts;//浠诲姟鐘舵��
+   
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/InitUtil.java b/CacheGlassModule/src/main/java/com/mes/entity/device/InitUtil.java
new file mode 100644
index 0000000..6d59bd3
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/InitUtil.java
@@ -0,0 +1,124 @@
+package com.mes.entity.device;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import com.mes.common.PlcTools.S7control;
+
+public class InitUtil {
+    //鍒濆鍖杦ord
+    public static PlcParameterObject initword(String jsonFilePath) {
+        try {
+            FileReader fileReader = new FileReader(jsonFilePath);
+            BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+            StringBuilder content = new StringBuilder();
+            String line;
+
+            while ((line = bufferedReader.readLine()) != null) {
+                content.append(line);
+            }
+
+            bufferedReader.close();
+            fileReader.close();
+
+            JSONObject jsonfileobj = new JSONObject(content.toString());
+            JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+            PlcParameterObject plcParameterObject = new PlcParameterObject();
+            plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+            plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+            for (int i = 0; i < jsonArray.size(); i++) {
+                JSONObject parameterObj = jsonArray.getJSONObject(i);
+                PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+                String codeid = parameterObj.getStr("codeId");
+                plcParameterInfo.setCodeId(codeid);
+                plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+                //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
+                plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
+                plcParameterInfo.setUnit(parameterObj.getStr("unit"));
+                plcParameterObject.addPlcParameter(plcParameterInfo);
+            }
+           // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+           // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+           // plcParameterObject.setPlcParameterList(getplcvlues);
+
+            return plcParameterObject;
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    //鍒濆鍖朾it
+    public static PlcBitObject initbit(String jsonFilePath) {
+        PlcBitObject plcBitObject = new PlcBitObject();
+
+        try {
+            FileReader fileReader = new FileReader(jsonFilePath);
+            BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+            StringBuilder content = new StringBuilder();
+            String line;
+
+            while ((line = bufferedReader.readLine()) != null) {
+                content.append(line);
+            }
+
+            bufferedReader.close();
+            fileReader.close();
+
+            JSONObject jsonfileobj = new JSONObject(content.toString());
+            JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+            plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+            plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+            for (int i = 0; i < jsonArray.size(); i++) {
+                JSONObject parameterObj = jsonArray.getJSONObject(i);
+
+                PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+                String codeid = parameterObj.getStr("codeId");
+                plcBitInfo.setCodeId(codeid);
+                plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+
+                plcBitObject.addPlcBit(plcBitInfo);
+            }
+            System.out.println("");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+           //Boolean[] values1 = { false, true, true, true, false, false, true, false,
+          //  false, true ,true };
+   // List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+
+//        List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+//        plcBitObject.setPlcBitList(getplcvlues);
+        return plcBitObject;
+    }
+
+//
+    public static void readAndUpdateBitValues(PlcBitObject plcBitObject) {
+
+//        Boolean[] values1 = { false, true, true, true, false, false, true, false,
+//          false, true ,true };
+//         List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+        List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+        plcBitObject.setPlcBitList(getplcvlues);
+    }
+
+
+    public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) {
+
+        // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+        byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+        plcParameterObject.setPlcParameterList(getplcvlues);
+    }
+
+
+
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java
new file mode 100644
index 0000000..dcb707e
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java
@@ -0,0 +1,95 @@
+package com.mes.entity.device;
+
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import static com.mes.entity.device.InitUtil.readAndUpdateWordValues;
+public class PLCAutoMes extends Thread {
+
+    // // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+    // private Configuration config;
+    private static InitUtil initUtil;
+    // public static PlcParameterObject PlcMesObject;
+    // public static PlcParameterObject PlcReadObject;
+    // public static PlcParameterObject PlcframeObject;
+
+    // // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+    // MessageHandler customS7Control = new MessageHandler();
+
+    // 鍗曚緥瀹炰緥
+    private static PLCAutoMes instance;
+    // private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
+    private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
+    // private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
+    // private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
+    // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
+            
+    // private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
+            
+    // private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
+            
+    // private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
+    // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
+
+    // 璋冪敤initword鏂规硶
+
+    // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
+    // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
+    // public static PlcBitObject  plcBitObject = initUtil.initbit(PlcSign);
+    // public static PlcParameterObject  plcStateObject= initUtil.initword(PlcState);
+    // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+    public static PlcParameterObject PlcMesObject = InitUtil.initword(PlcAlbania);
+    // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+    // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
+  
+    // 绉佹湁鏋勯�犲嚱鏁�
+    public PLCAutoMes() throws IOException {
+        //config = new Configuration("config.properties");
+        initUtil = new InitUtil();
+    }
+
+    // 鑾峰彇鍗曚緥瀹炰緥
+    public static synchronized PLCAutoMes getInstance() throws IOException {
+        if (instance == null) {
+            instance = new PLCAutoMes();
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            // System.out.println(jsonFilePath);
+
+            //readAndUpdateWordValues(PlcReadObject);
+            readAndUpdateWordValues(PlcMesObject);
+            //readAndUpdateWordValues(PlcframeObject);
+            // readAndUpdateWordValues(PlcframeObject);
+
+            // readAndUpdateWordValues(plcStateObject);
+            // int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
+            // // System.out.println(index);
+            // PlcMesObject.getPlcParameter("AddStart").getAddress(index);
+            // // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
+            // List<String> addresses = new ArrayList<>();
+            // addresses.add("FeedID");
+            // addresses.add("AddStart");
+            // // System.out.println(addresses);
+            // // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
+            // List<String> addresses2 = new ArrayList<>();
+            // addresses2.add("FeedID");
+            // addresses2.add("FeedCarStatus");
+
+            //System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
+
+        }
+    }
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
new file mode 100644
index 0000000..78846f9
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
@@ -0,0 +1,77 @@
+package com.mes.entity.device;
+
+
+
+public  class PlcBitInfo {
+
+        public PlcBitInfo(String startAddress) {
+            this.startAddress = startAddress;
+        }
+        private String startAddress;
+        // 鍙傛暟鏍囪瘑
+        private String codeId;
+
+        // 鍙傛暟鍚嶇О
+        private String name;
+
+        // 璇诲彇 鍙傛暟鍊�
+        private Boolean value;
+        // 鍙傛暟鍦板潃
+        private int addressIndex;
+
+        public String getCodeId() {
+            return this.codeId;
+        }
+
+        public void setCodeId(String codeId) {
+            this.codeId = codeId;
+        }
+
+        public String getName() {
+            return this.name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public Boolean getValue() {
+            return this.value;
+        }
+
+        public void setValue(Boolean value) {
+            this.value = value;
+        } 
+         
+
+        public int getAddressIndex() {
+            return this.addressIndex;
+        } 
+         /**
+     * 鑾峰彇鍦板潃
+     * 
+     * @param index 绱㈠紩鍦板潃
+     */
+        public String getAddress(int index) {
+            String[] stringdatas = this.startAddress.trim().split("\\.");
+            if (stringdatas.length < 2 )
+                return null;
+            int dbwindex = 0;
+            int bitindex = 0;
+             if (stringdatas.length == 3) {
+                dbwindex = Integer.parseInt(stringdatas[1]);
+                bitindex = Integer.parseInt(stringdatas[2]);
+            } else
+                return null; 
+              dbwindex+=index/8;
+              bitindex+=index%8;
+            return stringdatas[0]+"."+dbwindex+"."+bitindex;
+        }
+
+
+
+
+    public void setAddressIndex(int addressindex) {
+            this.addressIndex = addressindex;
+        } 
+    }
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
new file mode 100644
index 0000000..977a13c
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
@@ -0,0 +1,142 @@
+package com.mes.entity.device;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcBitObject {
+
+    // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+    private String plcAddressBegin;
+    // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+    private int plcAddressLength;
+    private ArrayList<PlcBitInfo> plcBitList;
+
+    /**
+     * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
+     */
+    public String getPlcAddressBegin() {
+        return plcAddressBegin;
+    }
+
+    /**
+     * @param plcAddressBegin 璁剧疆鏁版嵁鍖哄紑濮嬪湴鍧�
+     */
+    public void setPlcAddressBegin(String plcAddressBegin) {
+        this.plcAddressBegin = plcAddressBegin;
+    }
+
+    /**
+     * @return 鏁版嵁鍖� 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+     */
+    public int getPlcAddressLength() {
+        return plcAddressLength;
+    }
+
+    /**
+     * @return 璁剧疆锛氭暟鎹尯 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+     */
+    public void setPlcAddressLength(int plcAddressLength) {
+        this.plcAddressLength = plcAddressLength;
+    }
+
+    /**
+     * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
+     */
+    public ArrayList<PlcBitInfo> getBitList() {
+        return plcBitList;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public PlcBitInfo getPlcBit(String codeid) {
+        if (plcBitList != null) {
+            for (PlcBitInfo plcbitInfo : plcBitList) {
+                if (plcbitInfo.getCodeId().equals(codeid))
+                    return plcbitInfo;
+            }
+            return null;
+        } else
+            return null;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public List<Boolean> getPlcBitValues(List<String> codeids) {
+        List<Boolean> arrayList = new ArrayList<>();
+        if (plcBitList != null) {
+            Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+            for (PlcBitInfo plcBitInfo : plcBitList) {
+                if (codeids.contains(plcBitInfo.getCodeId().toString())) {
+                    resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue());
+                }
+            }
+            for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+                Boolean value = resultMap.get(codeId);
+                if (value != null) {
+                    arrayList.add(value);
+                } else {
+                    arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+                }
+            }
+        }
+        return arrayList;
+    }
+
+
+    public List<String> getAddressListByCodeId(List<String> codeIdList) {
+        List<String> addressList = new ArrayList<>();
+        for (String codeId : codeIdList) {
+            for (PlcBitInfo plcBitInfo : plcBitList) {
+                if (plcBitInfo.getCodeId().equals(codeId)) {
+                    int index = plcBitInfo.getAddressIndex();
+                    String address = plcBitInfo.getAddress(index);
+                    if (address != null) {
+                        addressList.add(address);
+                    }
+                }
+            }
+        }
+        return addressList;
+    }
+
+
+    /**
+     * 娣诲姞鍙傛暟瀹炰緥
+     * 
+     * @param param 鍙傛暟瀹炰緥
+     */
+    public void addPlcBit(PlcBitInfo param) {
+        if (plcBitList != null)
+            plcBitList.add(param);
+        else {
+            plcBitList = new ArrayList<PlcBitInfo>();
+            plcBitList.add(param);
+        }
+    }
+
+    /**
+     * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+     * 
+     * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+     */
+    public void setPlcBitList(List<Boolean> plcValueArray) {
+        if (plcBitList != null) {
+            for (PlcBitInfo plcbitInfo : plcBitList) {
+                plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex()));
+            }
+        }
+    }
+   
+
+   
+}
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
new file mode 100644
index 0000000..b4a2051
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
@@ -0,0 +1,128 @@
+package com.mes.entity.device;
+public  class PlcParameterInfo {
+      public PlcParameterInfo(String startAddress) {
+        this.startAddress = startAddress;
+      } 
+        private String startAddress;
+        // 鍙傛暟鏍囪瘑
+        private String codeId;
+
+        // 鍙傛暟鍚嶇О
+        private String name;
+
+        // 璇诲彇 鍙傛暟鍊�
+        private String value;
+
+        // // 鍐欏叆 鍙傛暟鍊�
+        // private String writeValue;
+
+        // 鍙傛暟鍗曚綅
+        private String unit;
+
+        // 鍙傛暟鍊艰浆鎹㈢郴鏁�
+        private int ratio;
+
+        // 鍙傛暟鍦板潃
+        private int addressIndex;
+
+        // 鍙傛暟鍦板潃浣嶉暱搴�
+        private int addressLength;
+
+        public String getCodeId() {
+            return this.codeId;
+        }
+
+        public void setCodeId(String codeId) {
+            this.codeId = codeId;
+        }
+
+        public String getName() {
+            return this.name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getValue() {
+            return this.value;
+        }
+
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        // public String getWriteValue() {
+        //     return this.writeValue;
+        // }
+
+        // public void setWriteValue(String writeValue) {
+        //     this.writeValue = writeValue;
+        // }
+
+        public String getUnit() {
+            return this.unit;
+        }
+
+        public void setUnit(String unit) {
+            this.unit = unit;
+        }
+
+        public int getAddressIndex() {
+            return this.addressIndex;
+        }
+
+        public void setAddressIndex(int addressindex) {
+            this.addressIndex = addressindex;
+        }
+
+        public int getAddressLength() {
+            return this.addressLength;
+        }
+
+        public void setAddressLength(int addresslength) {
+            this.addressLength = addresslength;
+        }
+
+        public int getRatio() {
+            return this.ratio;
+        }
+
+        public void setRatio(int ratio) {
+            this.ratio = ratio;
+        }
+       
+
+           /**
+     * 鑾峰彇鍦板潃
+     * 
+     * @param index 绱㈠紩鍦板潃
+     */
+    public String getAddress(int index) {
+        String[] stringdatas = this.startAddress.trim().split("\\.");
+        int addressLength=this.addressLength;
+        if (addressLength < 2 ){
+            return null;
+        }
+
+        if (addressLength == 2 ) {
+            int wordindex = index;
+
+            return stringdatas[0] + "." + wordindex;
+        }
+        if (addressLength == 14 ) {
+            int wordindex = index;
+            //int newIndex = wordindex + 13;
+            return stringdatas[0] + "." + wordindex ;
+        }
+        return null;
+    }
+
+    public int getPlcAddress() {
+
+        return addressIndex;
+    }
+    public String getAddress() {
+       return getAddress(this.addressIndex);
+    }
+}
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
new file mode 100644
index 0000000..5355db5
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
@@ -0,0 +1,202 @@
+package com.mes.entity.device;
+
+import java.lang.reflect.Array;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcParameterObject {
+
+    // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+    private String plcAddressBegin;
+    // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+    private int plcAddressLength;
+    private ArrayList<PlcParameterInfo> plcParameterList;
+
+    /**
+     * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
+     */
+    public String getPlcAddressBegin() {
+        return plcAddressBegin;
+    }
+
+    /**
+     * @param plcAddressBegin 璁剧疆鏁版嵁鍖哄紑濮嬪湴鍧�
+     */
+    public void setPlcAddressBegin(String plcAddressBegin) {
+        this.plcAddressBegin = plcAddressBegin;
+    }
+
+    /**
+     * @return 鏁版嵁鍖� 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+     */
+    public int getPlcAddressLength() {
+        return plcAddressLength;
+    }
+
+    /**
+     * @return 璁剧疆锛氭暟鎹尯 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+     */
+    public void setPlcAddressLength(int plcAddressLength) {
+        this.plcAddressLength = plcAddressLength;
+    }
+
+    /**
+     * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
+     */
+    public ArrayList<PlcParameterInfo> getPlcParameterList() {
+        return plcParameterList;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public PlcParameterInfo getPlcParameter(String codeid) {
+        if (plcParameterList != null) {
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+                if (plcParameterInfo.getCodeId().equals(codeid))
+                    return plcParameterInfo;
+            }
+            return null;
+        } else
+            return null;
+    }
+
+
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeids 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public List<String> getPlcParameterValues(List<String> codeids) {
+        List<String> arrayList = new ArrayList<>();
+        if (plcParameterList != null) {
+            Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+                if (codeids.contains(plcParameterInfo.getCodeId())) {
+                    resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo);
+                }
+            }
+            for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+                PlcParameterInfo plcParameterInfo = resultMap.get(codeId);
+                if (plcParameterInfo != null) {
+                    arrayList.add(plcParameterInfo.getValue());
+                } else {
+                    arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+                }
+            }
+        }
+        return arrayList;
+    }
+
+
+    public List<String> getAddressListByCodeId(List<String> codeIdList) {
+        List<String> addressList = new ArrayList<>();
+        for (String codeId : codeIdList) {
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+                if (plcParameterInfo.getCodeId().equals(codeId)) {
+                    int index = plcParameterInfo.getAddressIndex();
+                    String address = plcParameterInfo.getAddress(index);
+                    if (address != null) {
+                        addressList.add(address);
+                    }
+                }
+            }
+        }
+        return addressList;
+    }
+
+
+
+
+
+
+    /**
+     * 娣诲姞鍙傛暟瀹炰緥
+     * 
+     * @param param 鍙傛暟瀹炰緥
+     */
+    public void addPlcParameter(PlcParameterInfo param) {
+        if (plcParameterList != null)
+            plcParameterList.add(param);
+        else {
+            plcParameterList = new ArrayList<PlcParameterInfo>();
+            plcParameterList.add(param);
+        }
+    }
+
+    /**
+     * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+     * 
+     * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+     */
+    public void setPlcParameterList(byte[] plcValueArray) {
+        if (plcParameterList != null) {
+          
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+               
+                byte[] valueList = new byte[plcParameterInfo.getAddressLength()];
+
+//                System.out.println(plcParameterInfo.getAddressLength());
+
+                for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) {
+                    Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]);
+
+                }
+                if (plcParameterInfo.getAddressLength()==2) { 
+                      plcParameterInfo.setValue(String.valueOf(byte2short(valueList)));
+                }
+                else if (plcParameterInfo.getAddressLength()==14) {
+                    plcParameterInfo.setValue((byteToHexString(valueList)));
+                }
+
+                else
+                {
+                    String valuestr = new String(valueList);
+                    plcParameterInfo.setValue(valuestr);
+                }
+            }
+        }
+    }
+     /**
+     * short绫诲瀷杞琤yte[]
+     * 
+     * @param s short绫诲瀷鍊�
+     */
+    public static byte[] short2byte(short s){
+        byte[] b = new byte[2]; 
+        for(int i = 0; i < 2; i++){
+            int offset = 16 - (i+1)*8; //鍥犱负byte鍗�4涓瓧鑺傦紝鎵�浠ヨ璁$畻鍋忕Щ閲�
+            b[i] = (byte)((s >> offset)&0xff); //鎶�16浣嶅垎涓�2涓�8浣嶈繘琛屽垎鍒瓨鍌�
+        }
+        return b;
+   }
+     /**
+     * byte[]绫诲瀷杞瑂hort
+     * 
+     * @param b byte[]绫诲瀷鍊�
+     */
+   public static short byte2short(byte[] b){
+       short l = 0;
+       for (int i = 0; i < 2; i++) {
+           l<<=8; //<<=鍜屾垜浠殑 +=鏄竴鏍风殑锛屾剰鎬濆氨鏄� l = l << 8 
+           l |= (b[i] & 0xff); //鍜屼笂闈篃鏄竴鏍风殑  l = l | (b[i]&0xff)
+       }
+       return l;
+   }
+
+    public static String byteToHexString(byte[] bytes) {
+
+        String str = new String(bytes, StandardCharsets.UTF_8);
+        return str;
+    }
+
+
+}
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java b/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
index 2b65272..e8bcfe2 100644
--- a/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
+++ b/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
@@ -1,30 +1,85 @@
 package com.mes.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.entity.EdgStorageCageDetails;
 import com.mes.entity.GlassInfo;
-import com.mes.entity.OrderTest;
+import com.mes.entity.TaskCache;
 import com.mes.entity.Tempered;
 
 import java.util.List;
+import java.util.Map;
 
 import org.apache.ibatis.annotations.*;
 
 @Mapper
 public interface SelectInfo {
-    //鐜荤拑淇℃伅  鎸塈D鏌ヨ
+    // 鐜荤拑淇℃伅 鎸塈D鏌ヨ
     @Select("select * from `glass_info` where id=#{id}")
     GlassInfo SelectGlassId(String id);
 
-    //閽㈠寲鎸夊伐绋嬫煡璇�
+    // 閽㈠寲鎸夊伐绋嬫煡璇�
     @Select("select * from `v_optimize_heat_layout` where project_no=#{projeceid} ")
-    List<Tempered> SelectTempered(String projeceid);
-//
-//    @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
-//    Integer insert(Order order);
-//
-//    @Delete("delete from `order` where id=#{id}")
-//    Integer deleteById(@Param("id") Integer id);
-//
-//    @Update("update `order` set order_id=#{order_id} where id=#{id}")
-//    Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
+    List<Tempered> SelectTemperedTerritory(String projeceid);
+
+    // 鍒囧壊鐗堝浘鎸夊伐绋嬫煡璇�
+    @Select("select * from optimize_detail where project_no=#{projeceid} ")
+    List<Map> SelectCutTerritory(String projeceid);
+
+    // 鏌ヨ纾ㄨ竟淇℃伅
+    @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell}")
+    List<Map> SelectEdgInfo(String EndCell);
+
+    // 鏌ヨ绗煎瓙鍐呯┖闂�
+    @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is null order by escd.slot")
+    List<EdgStorageCageDetails> SelectCacheLeisure();
+
+    // 鏌ヨ绗煎瓙鍐呭嚭鐗囦换鍔�
+    @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot WHERE escd.slot IS NOT NULL order by escd.tempering_layout_id,escd.tempering_feed_sequence")
+    List<EdgStorageCageDetails> SelectCacheOut();
+
+    // 鏌ヨ绗煎瓙鍐呬俊鎭�
+    @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot order by esc.slot")
+    List<EdgStorageCageDetails> SelectCachInfo();
+
+    // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
+    @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is not null escd.tempering_layout_id=#{tempering_layout_id} and escd.tempering_feed_sequence<#{tempering_feed_sequence} and esc.remain_width-#{width}>0 order by escd.tempering_feed_sequence")
+    List<EdgStorageCageDetails> SelectIsExistIntoCache(Integer tempering_layout_id, Integer tempering_feed_sequence,
+            double width);
+
+    // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
+    @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is not null escd.tempering_layout_id<#{tempering_layout_id} and esc.remain_width-#{width}>0 order by escd.tempering_layout_id desc,escd.tempering_feed_sequence")
+    List<EdgStorageCageDetails> SelectIsExistIntoCache(Integer tempering_layout_id, double width);
+
+    // 鏌ヨ鍏ㄩ儴浠诲姟
+    @Select("select * from task_cache")
+    List<TaskCache> SelectCacheInfoAll();
+
+    // 鏌ヨ杩涚墖浠诲姟
+    @Select("select * from task_cache where task_type='1' and task_stauts='0'")
+    List<TaskCache> SelectInputCacheInfo();
+
+    // 鏌ヨ鍑虹墖浠诲姟
+    @Select("select * from task_cache where task_type='2' and task_stauts='0'")
+    List<TaskCache> SelectOutCacheInfo();
+
+    // 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+    @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell} limit 1")
+    GlassInfo SelectLastOutCacheInfo(String EndCell);
+
+    // 淇敼绗煎瓙鍐呬俊鎭�
+    @Update("update")
+    Integer UpdateCache(@Param("id") Integer id, @Param("order_id") String order_id);
+
+    // 娣诲姞鐞嗙墖浠诲姟
+    @Insert("INSERT into task_cache VALUES(#{id},#{start},#{end},#{type},0)")
+    Integer insertCacheTask(String id, String start, String end, String type);
+
+    //
+    // @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
+    // Integer insert(Order order);
+    //
+    // @Delete("delete from `order` where id=#{id}")
+    // Integer deleteById(@Param("id") Integer id);
+    //
+    // @Update("update `order` set order_id=#{order_id} where id=#{id}")
+    // Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
 }
diff --git a/CacheGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java b/CacheGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
index 206d159..4b42b5f 100644
--- a/CacheGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
+++ b/CacheGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
@@ -8,6 +8,9 @@
 
 @Mapper
 public interface SysMenuItemMapper {
-     @Select("select  * from sys_menu_item")
+
+     @Select("select * from `sys_menu_item` as a where a.state=1 order by a.menuId,a.listSort;")
+
+
      List<SysMenuItem> findAll() ;
 }
diff --git a/CacheGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java b/CacheGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
index a2bf58d..0453572 100644
--- a/CacheGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
+++ b/CacheGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
@@ -17,6 +17,7 @@
     User findOne(Integer id);
 
     @Select("select user_name FROM `user` where login_name=#{LoginName}  ")
+
     User findOneLoginName(String LoginName);
 
     @Select("select count(id) FROM `user` where login_name=#{userName} and password=#{password}  ")
diff --git a/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java b/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java
index eb7da04..f239f84 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java
@@ -1,10 +1,16 @@
 package com.mes.service.CacheGlassService;
 
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.mes.common.PlcTools.S7control;
+import com.mes.entity.EdgStorageCageDetails;
 import com.mes.entity.GlassInfo;
+import com.mes.entity.TaskCache;
+import com.mes.entity.device.PLCAutoMes;
+import com.mes.entity.device.PlcParameterObject;
 import com.mes.mapper.SelectInfo;
 
 
@@ -12,11 +18,12 @@
 public class Logic {
     @Autowired
     private SelectInfo selectInfo;
-    //璇嗗埆閫昏緫
+    //璇嗗埆閫昏緫    涓嶄氦浜�
     public void identify(String Number){
         //鏌ヨ浠诲姟
-        // PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-        // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+        String s=S7control.getinstance().ReadWord("DB14.26", 1).get(0)+"";
         boolean isexist=isExist(Number);
         if (isexist) {
             //瀛樺湪閫昏緫    1.娣诲姞淇℃伅 2.鍥炲PLC瀛樺湪
@@ -26,22 +33,111 @@
             //S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 2);
         }
     }
+    //鐞嗙墖
+    public void Process(){
+        String Result=S7control.getinstance().ReadWord("DB14.0", 1).get(0)+"";
+        String Number=S7control.getinstance().ReadWord("DB14.2", 1).get(0)+"";
+        if(Result=="1"){//杩涚墖璇锋眰
+            processInto(Number);
+        }else if(Result=="2"){//鍑虹墖璇锋眰
+            processOut();
+        }else if(Result=="3"){//杩涘嚭鐗囪姹�
+            if (!processOut()) {   //鍏堝嚭鍚庤繘
+                processInto(Number);
+            }    
+        }
+    }
     //鐞嗙墖 杩�
-    public void process(String imagePath){
+    public boolean processInto(String Number){
         //鏌ヨ娑堟伅闃熷垪閲岀殑鐜荤拑
-
+        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+        if(GlassInfo!=null){//瀛樺湪姝ょ幓鐠冪紪鍙�  
+            //鍚岄挗鍖栫増鍥惧唴鐨勬爡鏍煎彿
+            List<EdgStorageCageDetails> list=selectInfo.SelectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getTemperingfeedsequence(),GlassInfo.getWidth());
+            //绌烘爡鏍煎彿
+            if (list.size()==0) {
+                list=selectInfo.SelectCacheLeisure();
+            }
+            //灏忎簬姝ょ幓鐠冮挗鍖栫増鍥惧簭鍙风殑鏍呮牸鍙�
+            if(list.size()==0){
+                list=selectInfo.SelectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getWidth());
+            }
+            if(list.size()>0){
+                //瀛樺湪绌烘牸  
+                //1.鐢熸垚浠诲姟锛�  璧峰浣嶇疆0   缁撴潫浣嶇疆this.slot  浠诲姟绫诲瀷 1   锛堣繘鐗囦换鍔★級
+                //2.鍥炲 1杩涚墖
+                EdgStorageCageDetails item=list.get(0);
+                selectInfo.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1");
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+                return true;
+            }
+            
+        }else{
+            // ID缂栧彿涓嶅瓨鍦�   涓嶅鐞�/鍥炲PLC  杩涜鎶ヨ鎻愮ず
+        }
         //杩斿洖缁撴灉
+        return false;
     }
     //鐞嗙墖 鍑�
-    public void processOut(String imagePath){
+    public boolean processOut(){
         //鏌ヨ浠诲姟
-
+        String A09=S7control.getinstance().ReadWord("DB14.56", 1).get(0)+"";
+        String A10=S7control.getinstance().ReadWord("DB14.58", 1).get(0)+"";
+        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+        List<EdgStorageCageDetails> list=selectInfo.SelectCacheOut();
+        boolean isOut=true;//鍏朵粬鎯呭喌鏉′欢 濡傦細鍚庣画璁惧鏁呴殰绂佹鐞嗙墖鍑虹墖 绛�
+        if (list.size()>0&&isOut) {
+            EdgStorageCageDetails item=list.get(0);
+            if(A09=="0"&&A10=="1"){
+                //鍑哄埌  A09
+                selectInfo.insertCacheTask(item.getGlassid()+"","0","09","2");
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+                return true;
+            }else if(A09=="1"&&A10=="0"){
+                //鍑哄埌  A10
+                selectInfo.insertCacheTask(item.getGlassid()+"","0","10","2");
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+                return true;
+            }else if(A09=="0"&&A10=="0"){
+                //閮藉厑璁�    A09/A10  涓婁竴鐗囨槸鍚﹀拰姝ょ墖鐜荤拑灏哄灏哄鐩稿悓   
+                String endcell="09";
+                String SendEndcell="1";
+                boolean If_=false;
+                GlassInfo glassInfo09= selectInfo.SelectLastOutCacheInfo("09");
+                GlassInfo glassInfo10= selectInfo.SelectLastOutCacheInfo("10");
+                if(glassInfo10!=null&&glassInfo10.getWidth()==item.getWidth()&&glassInfo10.getHeight()==item.getHeight()){
+                    endcell="10";
+                    SendEndcell="2";
+                }else if(glassInfo10!=null&&If_){
+                    //鍏朵粬鏉′欢
+                }
+                selectInfo.insertCacheTask(item.getGlassid()+"","0",endcell,"2");
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+                return true;
+            }
+        }
         //杩斿洖缁撴灉
+        return false;
     }
-    //纾ㄨ竟
-    public void processMb(String imagePath){
-        //鏌ヨ浠诲姟
 
+    //纾ㄨ竟   涓嶄氦浜�  鐞嗙墖鍜岀(杈规満鑷繁浜や簰
+    public void processMb(String Number){
+        //鏌ヨ浠诲姟
+        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+        if(GlassInfo!=null){
+            //鍙戦�佷换鍔�   ID   闀� 瀹� 鍘� 鍊掕 宸ヨ壓鍔熻兘绛�
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.22").getAddress(),"N10000");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.24").getAddress(), "1000");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.26").getAddress(),"800");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(),"60");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.30").getAddress(), "2");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");   
+        }
         //杩斿洖缁撴灉
     }
 
@@ -63,6 +159,7 @@
         }
         return true;//杩斿洖 瀛樺湪
     }
+
     //鏄惁瀛樺湪姝ょ紪鍙风幓鐠� 
     public boolean isExist(String Number){
         //鏌ヨ鏄惁瀛樺湪
diff --git a/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java b/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java
new file mode 100644
index 0000000..6ff9ab2
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java
@@ -0,0 +1,41 @@
+package com.mes.service.hangzhoumes;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.mes.entity.EdgStorageCageDetails;
+import com.mes.entity.GlassInfo;
+import com.mes.entity.Tempered;
+import com.mes.mapper.SelectInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+@DS("hangzhoumes")
+public class hangzhoumesService {
+
+    @Autowired
+    private SelectInfo SelectInfo;
+
+    public GlassInfo getUserInfo(String process_id){
+        return SelectInfo.SelectGlassId(process_id);
+    }
+    // //璇嗗埆淇℃伅
+    // public List<Map> SelectCutTerritory(String process_id){
+    //     return SelectInfo.SelectCutTerritory(process_id);
+    // }
+
+    //鐞嗙墖缂撳瓨 绗煎唴淇℃伅
+    public List<EdgStorageCageDetails> SelectCageInfo(){
+        return SelectInfo.SelectCachInfo();
+    }
+
+    //纾ㄨ竟灏忕墖淇℃伅
+    public List<Map> SelectEdgInfo(String line){
+
+        return SelectInfo.SelectEdgInfo(line);
+    }
+    
+}
+
diff --git a/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java b/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java
index c139c0d..2eecb75 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java
@@ -1,24 +1,14 @@
 package com.mes.service.pp;
 
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.mes.common.CacheUtil;
-import com.mes.common.Result;
 import com.mes.entity.GlassInfo;
 import com.mes.entity.Tempered;
-import com.mes.entity.userInfo.User;
 import com.mes.mapper.SelectInfo;
-import com.mes.mapper.userInfo.UserMapper;
-import com.mes.controller.dto.UserDTO;
-import com.mes.tools.TokenTools;
-import org.apache.ibatis.jdbc.Null;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Map;
 
 @Service
 @DS("pp")
@@ -31,8 +21,12 @@
         return SelectInfo.SelectGlassId(process_id);
     }
 
-    public List<Tempered> getSelectTempered(String process_id){
-        return SelectInfo.SelectTempered(process_id);
+    public List<Tempered> SelectTemperedTerritory(String process_id){
+        return SelectInfo.SelectTemperedTerritory(process_id);
+    }
+    //鍒囧壊鐗堝浘
+    public List<Map> SelectCutTerritory(String process_id){
+        return SelectInfo.SelectCutTerritory(process_id);
     }
 
     
diff --git a/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java b/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
index 004399b..9940470 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
@@ -7,7 +7,7 @@
 import org.springframework.stereotype.Service;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysErrorService {
     private final SysErrorMapper sysErrorMapper;
 
diff --git a/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java b/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
index 6efd838..ee38452 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysMenuItemService {
     @Autowired
     SysMenuItemMapper sysMenuItemMapper;
diff --git a/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java b/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
index 278b057..55f8fc6 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysMenuService {
     @Autowired
     private SysMenuMapper sysMenuMapper;
diff --git a/CacheGlassModule/src/main/java/com/mes/service/userInfo/UserService.java b/CacheGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
index 08fb8dd..0652226 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
@@ -18,7 +18,7 @@
 import java.util.List;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class UserService {
 
     @Autowired
diff --git a/CacheGlassModule/src/main/resources/application.yml b/CacheGlassModule/src/main/resources/application.yml
index d74069d..079ce3c 100644
--- a/CacheGlassModule/src/main/resources/application.yml
+++ b/CacheGlassModule/src/main/resources/application.yml
@@ -7,21 +7,11 @@
 spring:
   datasource:
     dynamic:
-      primary: user_info #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
-        user_info:
-          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
-        sd:
-          url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
-        mm:
-          url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
diff --git a/CacheGlassModule/src/main/resources/banner.txt b/CacheGlassModule/src/main/resources/banner.txt
new file mode 100644
index 0000000..b4027f0
--- /dev/null
+++ b/CacheGlassModule/src/main/resources/banner.txt
@@ -0,0 +1,32 @@
+________                ________                 ___       _____________   ____
+`MMMMMMMb.          68b `MMMMMMMb.               `MMb     dMM'`MMMMMMMMM  6MMMMb\
+ MM    `Mb          Y89  MM    `Mb                MMM.   ,PMM  MM      \ 6M'    `
+ MM     MM   ____   ___  MM     MM   _____        M`Mb   d'MM  MM        MM
+ MM    .M9  6MMMMb  `MM  MM    .M9  6MMMMMb       M YM. ,P MM  MM    ,   YM.
+ MMMMMMM(  6M'  `Mb  MM  MMMMMMM(  6M'   `Mb      M `Mb d' MM  MMMMMMM    YMMMMb
+ MM    `Mb MM    MM  MM  MM    `Mb MM     MM      M  YM.P  MM  MM    `        `Mb
+ MM     MM MMMMMMMM  MM  MM     MM MM     MM      M  `Mb'  MM  MM              MM
+ MM     MM MM        MM  MM     MM MM     MM      M   YP   MM  MM              MM
+ MM    .M9 YM    d9  MM  MM    .M9 YM.   ,M9 68b  M   `'   MM  MM      / L    ,M9
+_MMMMMMM9'  YMMMM9  _MM__MMMMMMM9'  YMMMMM9  Y89 _M_      _MM__MMMMMMMMM MYMMMM9
+
+//                          _ooOoo_                               //
+//                         o8888888o                              //
+//                         88" . "88                              //
+//                         (| ^_^ |)                              //
+//                         O\  =  /O                              //
+//                      ____/`---'\____                           //
+//                    .'  \\|     |//  `.                         //
+//                   /  \\|||  :  |||//  \                        //
+//                  /  _||||| -:- |||||-  \                       //
+//                  |   | \\\  -  /// |   |                       //
+//                  | \_|  ''\---/''  |   |                       //
+//                  \  .-\__  `-`  ___/-. /                       //
+//                ___`. .'  /--.--\  `. . ___                     //
+//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
+//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
+//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
+//      ========`-.____`-.___\_____/___.-`____.-'========         //
+//                           `=---='                              //
+//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
+//            浣涚淇濅綉       姘镐笉瀹曟満      姘告棤BUG                銆�銆�//
\ No newline at end of file
diff --git a/CacheGlassModule/target/classes/application.yml b/CacheGlassModule/target/classes/application.yml
index d74069d..079ce3c 100644
--- a/CacheGlassModule/target/classes/application.yml
+++ b/CacheGlassModule/target/classes/application.yml
@@ -7,21 +7,11 @@
 spring:
   datasource:
     dynamic:
-      primary: user_info #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
-        user_info:
-          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
-        sd:
-          url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
-        mm:
-          url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
diff --git "a/TemperingGlassModule/MES-Module \0501\051.iml" "b/TemperingGlassModule/MES-Module \0501\051.iml"
new file mode 100644
index 0000000..100b632
--- /dev/null
+++ "b/TemperingGlassModule/MES-Module \0501\051.iml"
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots />
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/src/main/java" />
+          <root url="file://$MODULE_DIR$/src/main/resources" />
+        </sourceRoots>
+      </configuration>
+    </facet>
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+  </component>
+  <component name="MavenCustomPomFilePath">
+    <option name="mavenPomFileUrl" value="file://$MODULE_DIR$/effective-pom.xml" />
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$/src/main/java">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+    </content>
+    <content url="file://$MODULE_DIR$/src/main/resources">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+    </content>
+    <content url="file://$MODULE_DIR$/src/test/java">
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.10" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.10" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.33" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.28" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.6" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.6" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.12.6" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.56" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.56" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.56" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.70" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.33" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.20" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.22" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.5.9" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.5.9" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.5.9" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.5.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.7" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:2.4.7" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:9.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.7.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.7.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.7.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.9.0" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.22" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.22" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.9.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.15" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.8.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-test-autoconfigure:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.10.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.6" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.6" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.6" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: commons-codec:commons-codec:1.15" level="project" />
+    <orderEntry type="library" name="Maven: org.assertj:assertj-core:3.19.0" level="project" />
+    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.4.0" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.7" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
+    <orderEntry type="library" name="Maven: com.github.xingshuangs:iot-communication:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.5.9" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.3.15" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.36.Final" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/TemperingGlassModule/MES-Module.iml b/TemperingGlassModule/MES-Module.iml
new file mode 100644
index 0000000..ddaeab8
--- /dev/null
+++ b/TemperingGlassModule/MES-Module.iml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java b/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
index 0bf0923..08baad9 100644
--- a/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
+++ b/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
@@ -2,11 +2,13 @@
 
 import com.mes.entity.userInfo.SysMenuItem;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
 @Mapper
 public interface SysMenuItemMapper {
 
+     @Select("select  * from sys_menu_item as a where a.state=1 order by a.listSort")
      List<SysMenuItem> findAll() ;
 }
diff --git a/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java b/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
index 53e9856..dc3b242 100644
--- a/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
+++ b/TemperingGlassModule/src/main/java/com/mes/mapper/userInfo/UserMapper.java
@@ -16,9 +16,8 @@
 
     User findOne(Integer id);
 
-    @Select("select user_name FROM `user` where login_name=#{LoginName} 聽")
+    @Select("select user_name FROM `user` where login_name=#{LoginName}")
     User findOneLoginName(String LoginName);
-
     @Select("select count(id) FROM `user` where login_name=#{userName} and password=#{password}  ")
     int  checkUser(@Param("userName") String userName,@Param("password") String password);
 
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
index 004399b..9940470 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
+++ b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
@@ -7,7 +7,7 @@
 import org.springframework.stereotype.Service;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysErrorService {
     private final SysErrorMapper sysErrorMapper;
 
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
index 6efd838..ee38452 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
+++ b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysMenuItemService {
     @Autowired
     SysMenuItemMapper sysMenuItemMapper;
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
index 278b057..55f8fc6 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
+++ b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysMenuService {
     @Autowired
     private SysMenuMapper sysMenuMapper;
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
index 08fb8dd..e172f10 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
+++ b/TemperingGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
@@ -2,23 +2,18 @@
 
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.mes.common.CacheUtil;
-import com.mes.common.Result;
+import com.mes.controller.dto.UserDTO;
 import com.mes.entity.userInfo.User;
 import com.mes.mapper.userInfo.UserMapper;
-import com.mes.controller.dto.UserDTO;
 import com.mes.tools.TokenTools;
-import org.apache.ibatis.jdbc.Null;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
-
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class UserService {
 
     @Autowired
diff --git a/TemperingGlassModule/src/main/resources/application.yml b/TemperingGlassModule/src/main/resources/application.yml
index d74069d..a85e82a 100644
--- a/TemperingGlassModule/src/main/resources/application.yml
+++ b/TemperingGlassModule/src/main/resources/application.yml
@@ -2,31 +2,17 @@
 server:
   port: 8080
   servlet:
-   context-path: /mesModuleTools
+    context-path: /mesModuleTools
 
 spring:
   datasource:
     dynamic:
-      primary: user_info #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
-        user_info:
-          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
-        sd:
-          url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
-        mm:
-          url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
-        pp:
-          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original b/TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original
new file mode 100644
index 0000000..5562d4d
--- /dev/null
+++ b/TemperingGlassModule/target/MES-Module-0.0.1-SNAPSHOT.jar.original
Binary files differ
diff --git a/TemperingGlassModule/target/maven-archiver/pom.properties b/TemperingGlassModule/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..f4d443d
--- /dev/null
+++ b/TemperingGlassModule/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=MES-Module
+groupId=com.MES-Module
+version=0.0.1-SNAPSHOT
diff --git a/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..8c9427b
--- /dev/null
+++ b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,54 @@
+com\mes\controller\OrderTestController.class
+com\mes\common\PlcTools\S7object2.class
+com\mes\MesApplication.class
+com\mes\controller\userInfo\SysMenuItemController.class
+com\mes\exception\ServiceException.class
+com\mes\entity\UpPattenUsage.class
+com\mes\service\userInfo\SysErrorService.class
+com\mes\config\MyCorsConfig$1.class
+com\mes\common\Result.class
+com\mes\entity\Engineering.class
+com\mes\common\PlcTools\S7control.class
+com\mes\entity\BigStorageCage.class
+com\mes\service\IOrderService.class
+com\mes\mapper\userInfo\UserMapper.class
+com\mes\common\Constants.class
+com\mes\entity\GlassFilms.class
+com\mes\entity\BigStorageCageDetails.class
+com\mes\entity\DownStorageCagedetails.class
+com\mes\mapper\userInfo\SysMenuItemMapper.class
+com\mes\controller\dto\UserDTO.class
+com\mes\common\CacheUtil.class
+com\mes\common\PlcTools\S7object.class
+com\mes\config\InterceptorConfig.class
+com\mes\service\userInfo\SysMenuItemService.class
+com\mes\entity\OrderTest.class
+com\mes\entity\UpWorkstation.class
+com\mes\entity\userInfo\SysMenuItem.class
+com\mes\entity\userInfo\User.class
+com\mes\config\MyCorsConfig.class
+com\mes\entity\GlassInfo.class
+com\mes\tools\TokenTools.class
+com\mes\service\impl\OrderServiceImpl.class
+com\mes\exception\GlobalExceptionHandle.class
+com\mes\service\userInfo\SysMenuService.class
+com\mes\tools\WebSocketServer.class
+com\mes\controller\userInfo\SysMenuController.class
+com\mes\entity\DownWorkstation.class
+com\mes\entity\userInfo\SysMenu.class
+com\mes\config\AppRunnerConfig.class
+com\mes\entity\DownStorageCage.class
+com\mes\config\MybatisPlusConfig.class
+com\mes\service\userInfo\UserService.class
+com\mes\entity\DownGlassInfo.class
+com\mes\entity\userInfo\SysError.class
+com\mes\entity\EdgStorageCage.class
+com\mes\config\WebSocketConfig.class
+com\mes\config\SwaggerConfig.class
+com\mes\controller\userInfo\UserController.class
+com\mes\mapper\userInfo\SysMenuMapper.class
+com\mes\entity\Tempering.class
+com\mes\mapper\OrderTestMapper.class
+com\mes\mapper\userInfo\SysErrorMapper.class
+com\mes\entity\EdgStorageCageDetails.class
+com\mes\common\interceptor\JwtInterceptor.class
diff --git a/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..9a930c2
--- /dev/null
+++ b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,53 @@
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\Constants.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\UpPattenUsage.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\DownGlassInfo.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\interceptor\JwtInterceptor.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\Result.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\WebSocketConfig.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\userInfo\SysErrorMapper.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\userInfo\UserMapper.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\userInfo\UserService.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\userInfo\SysMenuMapper.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\PlcTools\S7object.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\PlcTools\S7object2.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\AppRunnerConfig.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\Tempering.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\InterceptorConfig.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\SwaggerConfig.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\UpWorkstation.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\userInfo\User.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\EdgStorageCageDetails.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\OrderTest.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\BigStorageCageDetails.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\dto\UserDTO.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\userInfo\UserController.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\userInfo\SysMenuItemService.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\impl\OrderServiceImpl.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\OrderTestMapper.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\tools\TokenTools.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\BigStorageCage.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\userInfo\SysError.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\PlcTools\S7control.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\EdgStorageCage.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\userInfo\SysMenuController.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\Engineering.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\OrderTestController.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\DownWorkstation.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\userInfo\SysMenuService.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\GlassInfo.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\userInfo\SysErrorService.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\MesApplication.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\DownStorageCage.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\exception\GlobalExceptionHandle.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\GlassFilms.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\MybatisPlusConfig.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\config\MyCorsConfig.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\controller\userInfo\SysMenuItemController.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\common\CacheUtil.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\tools\WebSocketServer.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\DownStorageCagedetails.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\userInfo\SysMenu.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\exception\ServiceException.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\entity\userInfo\SysMenuItem.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\mapper\userInfo\SysMenuItemMapper.java
+D:\xm4\HangZhouMes\TemperingGlassModule\src\main\java\com\mes\service\IOrderService.java
diff --git a/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..9c25a83
--- /dev/null
+++ b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1 @@
+com\mes\MesApplicationTests.class
diff --git a/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..5b92fc7
--- /dev/null
+++ b/TemperingGlassModule/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+D:\xm4\HangZhouMes\TemperingGlassModule\src\test\java\com\mes\MesApplicationTests.java
diff --git a/TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml b/TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml
new file mode 100644
index 0000000..4a1f5d8
--- /dev/null
+++ b/TemperingGlassModule/target/surefire-reports/TEST-com.mes.MesApplicationTests.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="com.mes.MesApplicationTests" time="7.389" tests="1" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="sun.desktop" value="windows"/>
+    <property name="awt.toolkit" value="sun.awt.windows.WToolkit"/>
+    <property name="file.encoding.pkg" value="sun.io"/>
+    <property name="java.specification.version" value="1.8"/>
+    <property name="sun.cpu.isalist" value="amd64"/>
+    <property name="sun.jnu.encoding" value="GBK"/>
+    <property name="java.class.path" value="D:\xm4\HangZhouMes\TemperingGlassModule\target\test-classes;D:\xm4\HangZhouMes\TemperingGlassModule\target\classes;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.5.9\spring-boot-starter-web-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter\2.5.9\spring-boot-starter-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot\2.5.9\spring-boot-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.5.9\spring-boot-starter-logging-2.5.9.jar;C:\Users\SNG-012\.m2\repository\ch\qos\logback\logback-classic\1.2.10\logback-classic-1.2.10.jar;C:\Users\SNG-012\.m2\repository\ch\qos\logback\logback-core\1.2.10\logback-core-1.2.10.jar;C:\Users\SNG-012\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.1\log4j-to-slf4j-2.17.1.jar;C:\Users\SNG-012\.m2\repository\org\apache\logging\log4j\log4j-api\2.17.1\log4j-api-2.17.1.jar;C:\Users\SNG-012\.m2\repository\org\slf4j\jul-to-slf4j\1.7.33\jul-to-slf4j-1.7.33.jar;C:\Users\SNG-012\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\SNG-012\.m2\repository\org\yaml\snakeyaml\1.28\snakeyaml-1.28.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.5.9\spring-boot-starter-json-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.12.6\jackson-datatype-jdk8-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.12.6\jackson-datatype-jsr310-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.12.6\jackson-module-parameter-names-2.12.6.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.5.9\spring-boot-starter-tomcat-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.56\tomcat-embed-core-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.56\tomcat-embed-el-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.56\tomcat-embed-websocket-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-web\5.3.15\spring-web-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-webmvc\5.3.15\spring-webmvc-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-aop\5.3.15\spring-aop-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-context\5.3.15\spring-context-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-expression\5.3.15\spring-expression-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.3.1\mybatis-spring-boot-starter-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.5.9\spring-boot-starter-jdbc-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-jdbc\5.3.15\spring-jdbc-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.3.1\mybatis-spring-boot-autoconfigure-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\mybatis\3.5.13\mybatis-3.5.13.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\mybatis-spring\2.1.1\mybatis-spring-2.1.1.jar;C:\Users\SNG-012\.m2\repository\com\alibaba\fastjson\1.2.70\fastjson-1.2.70.jar;C:\Users\SNG-012\.m2\repository\org\springframework\data\spring-data-commons\2.3.1.RELEASE\spring-data-commons-2.3.1.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-core\5.3.15\spring-core-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-jcl\5.3.15\spring-jcl-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-beans\5.3.15\spring-beans-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\slf4j\slf4j-api\1.7.33\slf4j-api-1.7.33.jar;C:\Users\SNG-012\.m2\repository\mysql\mysql-connector-java\8.0.20\mysql-connector-java-8.0.20.jar;C:\Users\SNG-012\.m2\repository\org\projectlombok\lombok\1.18.22\lombok-1.18.22.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.5.9\spring-boot-starter-test-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-test\2.5.9\spring-boot-test-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.5.9\spring-boot-test-autoconfigure-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\jayway\jsonpath\json-path\2.5.0\json-path-2.5.0.jar;C:\Users\SNG-012\.m2\repository\net\minidev\json-smart\2.4.7\json-smart-2.4.7.jar;C:\Users\SNG-012\.m2\repository\net\minidev\accessors-smart\2.4.7\accessors-smart-2.4.7.jar;C:\Users\SNG-012\.m2\repository\org\ow2\asm\asm\9.1\asm-9.1.jar;C:\Users\SNG-012\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;C:\Users\SNG-012\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;C:\Users\SNG-012\.m2\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter\5.7.2\junit-jupiter-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.2\junit-jupiter-api-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\SNG-012\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\SNG-012\.m2\repository\org\junit\platform\junit-platform-commons\1.7.2\junit-platform-commons-1.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.2\junit-jupiter-params-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.2\junit-jupiter-engine-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\platform\junit-platform-engine\1.7.2\junit-platform-engine-1.7.2.jar;C:\Users\SNG-012\.m2\repository\org\mockito\mockito-core\3.9.0\mockito-core-3.9.0.jar;C:\Users\SNG-012\.m2\repository\net\bytebuddy\byte-buddy\1.10.22\byte-buddy-1.10.22.jar;C:\Users\SNG-012\.m2\repository\net\bytebuddy\byte-buddy-agent\1.10.22\byte-buddy-agent-1.10.22.jar;C:\Users\SNG-012\.m2\repository\org\objenesis\objenesis\3.2\objenesis-3.2.jar;C:\Users\SNG-012\.m2\repository\org\mockito\mockito-junit-jupiter\3.9.0\mockito-junit-jupiter-3.9.0.jar;C:\Users\SNG-012\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\SNG-012\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-test\5.3.15\spring-test-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\xmlunit\xmlunit-core\2.8.4\xmlunit-core-2.8.4.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter-test\2.3.1\mybatis-spring-boot-starter-test-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-test-autoconfigure\2.3.1\mybatis-spring-boot-test-autoconfigure-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-tx\5.3.15\spring-tx-5.3.15.jar;C:\Users\SNG-012\.m2\repository\com\auth0\java-jwt\3.10.3\java-jwt-3.10.3.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.12.6\jackson-databind-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.12.6\jackson-annotations-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.12.6\jackson-core-2.12.6.jar;C:\Users\SNG-012\.m2\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\Users\SNG-012\.m2\repository\org\assertj\assertj-core\3.19.0\assertj-core-3.19.0.jar;C:\Users\SNG-012\.m2\repository\cn\hutool\hutool-all\5.4.0\hutool-all-5.4.0.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-boot-starter\3.5.1\mybatis-plus-boot-starter-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus\3.5.1\mybatis-plus-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-extension\3.5.1\mybatis-plus-extension-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-core\3.5.1\mybatis-plus-core-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-annotation\3.5.1\mybatis-plus-annotation-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\github\jsqlparser\jsqlparser\4.3\jsqlparser-4.3.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.5.9\spring-boot-autoconfigure-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\dynamic-datasource-spring-boot-starter\3.5.1\dynamic-datasource-spring-boot-starter-3.5.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.5.9\spring-boot-starter-aop-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\swagger\swagger-models\1.5.20\swagger-models-1.5.20.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C:\Users\SNG-012\.m2\repository\com\google\guava\guava\20.0\guava-20.0.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\SNG-012\.m2\repository\com\github\xingshuangs\iot-communication\1.4.2\iot-communication-1.4.2.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.5.9\spring-boot-starter-cache-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-context-support\5.3.15\spring-context-support-5.3.15.jar;C:\Users\SNG-012\.m2\repository\io\netty\netty-all\4.1.36.Final\netty-all-4.1.36.Final.jar;"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="user.variant" value=""/>
+    <property name="java.vendor.url" value="http://java.oracle.com/"/>
+    <property name="user.timezone" value="Asia/Shanghai"/>
+    <property name="java.vm.specification.version" value="1.8"/>
+    <property name="os.name" value="Windows 10"/>
+    <property name="user.country" value="CN"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="sun.boot.library.path" value="C:\Program Files\Java\jdk1.8.0_121\jre\bin"/>
+    <property name="sun.java.command" value="C:\Users\SNG-012\AppData\Local\Temp\surefire33896117267200105\surefirebooter1902636531692371884.jar C:\Users\SNG-012\AppData\Local\Temp\surefire33896117267200105 2024-03-07T11-50-56_835-jvmRun1 surefire967000318635874576tmp surefire_08363905452971083609tmp"/>
+    <property name="surefire.test.class.path" value="D:\xm4\HangZhouMes\TemperingGlassModule\target\test-classes;D:\xm4\HangZhouMes\TemperingGlassModule\target\classes;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.5.9\spring-boot-starter-web-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter\2.5.9\spring-boot-starter-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot\2.5.9\spring-boot-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.5.9\spring-boot-starter-logging-2.5.9.jar;C:\Users\SNG-012\.m2\repository\ch\qos\logback\logback-classic\1.2.10\logback-classic-1.2.10.jar;C:\Users\SNG-012\.m2\repository\ch\qos\logback\logback-core\1.2.10\logback-core-1.2.10.jar;C:\Users\SNG-012\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.1\log4j-to-slf4j-2.17.1.jar;C:\Users\SNG-012\.m2\repository\org\apache\logging\log4j\log4j-api\2.17.1\log4j-api-2.17.1.jar;C:\Users\SNG-012\.m2\repository\org\slf4j\jul-to-slf4j\1.7.33\jul-to-slf4j-1.7.33.jar;C:\Users\SNG-012\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\SNG-012\.m2\repository\org\yaml\snakeyaml\1.28\snakeyaml-1.28.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.5.9\spring-boot-starter-json-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.12.6\jackson-datatype-jdk8-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.12.6\jackson-datatype-jsr310-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.12.6\jackson-module-parameter-names-2.12.6.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.5.9\spring-boot-starter-tomcat-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.56\tomcat-embed-core-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.56\tomcat-embed-el-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.56\tomcat-embed-websocket-9.0.56.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-web\5.3.15\spring-web-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-webmvc\5.3.15\spring-webmvc-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-aop\5.3.15\spring-aop-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-context\5.3.15\spring-context-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-expression\5.3.15\spring-expression-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.3.1\mybatis-spring-boot-starter-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.5.9\spring-boot-starter-jdbc-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-jdbc\5.3.15\spring-jdbc-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.3.1\mybatis-spring-boot-autoconfigure-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\mybatis\3.5.13\mybatis-3.5.13.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\mybatis-spring\2.1.1\mybatis-spring-2.1.1.jar;C:\Users\SNG-012\.m2\repository\com\alibaba\fastjson\1.2.70\fastjson-1.2.70.jar;C:\Users\SNG-012\.m2\repository\org\springframework\data\spring-data-commons\2.3.1.RELEASE\spring-data-commons-2.3.1.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-core\5.3.15\spring-core-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-jcl\5.3.15\spring-jcl-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-beans\5.3.15\spring-beans-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\slf4j\slf4j-api\1.7.33\slf4j-api-1.7.33.jar;C:\Users\SNG-012\.m2\repository\mysql\mysql-connector-java\8.0.20\mysql-connector-java-8.0.20.jar;C:\Users\SNG-012\.m2\repository\org\projectlombok\lombok\1.18.22\lombok-1.18.22.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.5.9\spring-boot-starter-test-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-test\2.5.9\spring-boot-test-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.5.9\spring-boot-test-autoconfigure-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\jayway\jsonpath\json-path\2.5.0\json-path-2.5.0.jar;C:\Users\SNG-012\.m2\repository\net\minidev\json-smart\2.4.7\json-smart-2.4.7.jar;C:\Users\SNG-012\.m2\repository\net\minidev\accessors-smart\2.4.7\accessors-smart-2.4.7.jar;C:\Users\SNG-012\.m2\repository\org\ow2\asm\asm\9.1\asm-9.1.jar;C:\Users\SNG-012\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;C:\Users\SNG-012\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;C:\Users\SNG-012\.m2\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter\5.7.2\junit-jupiter-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.2\junit-jupiter-api-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\SNG-012\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\SNG-012\.m2\repository\org\junit\platform\junit-platform-commons\1.7.2\junit-platform-commons-1.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.2\junit-jupiter-params-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.2\junit-jupiter-engine-5.7.2.jar;C:\Users\SNG-012\.m2\repository\org\junit\platform\junit-platform-engine\1.7.2\junit-platform-engine-1.7.2.jar;C:\Users\SNG-012\.m2\repository\org\mockito\mockito-core\3.9.0\mockito-core-3.9.0.jar;C:\Users\SNG-012\.m2\repository\net\bytebuddy\byte-buddy\1.10.22\byte-buddy-1.10.22.jar;C:\Users\SNG-012\.m2\repository\net\bytebuddy\byte-buddy-agent\1.10.22\byte-buddy-agent-1.10.22.jar;C:\Users\SNG-012\.m2\repository\org\objenesis\objenesis\3.2\objenesis-3.2.jar;C:\Users\SNG-012\.m2\repository\org\mockito\mockito-junit-jupiter\3.9.0\mockito-junit-jupiter-3.9.0.jar;C:\Users\SNG-012\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\SNG-012\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-test\5.3.15\spring-test-5.3.15.jar;C:\Users\SNG-012\.m2\repository\org\xmlunit\xmlunit-core\2.8.4\xmlunit-core-2.8.4.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter-test\2.3.1\mybatis-spring-boot-starter-test-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-test-autoconfigure\2.3.1\mybatis-spring-boot-test-autoconfigure-2.3.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-tx\5.3.15\spring-tx-5.3.15.jar;C:\Users\SNG-012\.m2\repository\com\auth0\java-jwt\3.10.3\java-jwt-3.10.3.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.12.6\jackson-databind-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.12.6\jackson-annotations-2.12.6.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.12.6\jackson-core-2.12.6.jar;C:\Users\SNG-012\.m2\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\Users\SNG-012\.m2\repository\org\assertj\assertj-core\3.19.0\assertj-core-3.19.0.jar;C:\Users\SNG-012\.m2\repository\cn\hutool\hutool-all\5.4.0\hutool-all-5.4.0.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-boot-starter\3.5.1\mybatis-plus-boot-starter-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus\3.5.1\mybatis-plus-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-extension\3.5.1\mybatis-plus-extension-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-core\3.5.1\mybatis-plus-core-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\mybatis-plus-annotation\3.5.1\mybatis-plus-annotation-3.5.1.jar;C:\Users\SNG-012\.m2\repository\com\github\jsqlparser\jsqlparser\4.3\jsqlparser-4.3.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.5.9\spring-boot-autoconfigure-2.5.9.jar;C:\Users\SNG-012\.m2\repository\com\baomidou\dynamic-datasource-spring-boot-starter\3.5.1\dynamic-datasource-spring-boot-starter-3.5.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.5.9\spring-boot-starter-aop-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\swagger\swagger-models\1.5.20\swagger-models-1.5.20.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C:\Users\SNG-012\.m2\repository\com\google\guava\guava\20.0\guava-20.0.jar;C:\Users\SNG-012\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\SNG-012\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\SNG-012\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\SNG-012\.m2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;C:\Users\SNG-012\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\SNG-012\.m2\repository\com\github\xingshuangs\iot-communication\1.4.2\iot-communication-1.4.2.jar;C:\Users\SNG-012\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.5.9\spring-boot-starter-cache-2.5.9.jar;C:\Users\SNG-012\.m2\repository\org\springframework\spring-context-support\5.3.15\spring-context-support-5.3.15.jar;C:\Users\SNG-012\.m2\repository\io\netty\netty-all\4.1.36.Final\netty-all-4.1.36.Final.jar;"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="C:\Users\SNG-012"/>
+    <property name="user.language" value="zh"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.home" value="C:\Program Files\Java\jdk1.8.0_121\jre"/>
+    <property name="basedir" value="D:\xm4\HangZhouMes\TemperingGlassModule"/>
+    <property name="file.separator" value="\"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="java.awt.graphicsenv" value="sun.awt.Win32GraphicsEnvironment"/>
+    <property name="surefire.real.class.path" value="C:\Users\SNG-012\AppData\Local\Temp\surefire33896117267200105\surefirebooter1902636531692371884.jar"/>
+    <property name="sun.boot.class.path" value="C:\Program Files\Java\jdk1.8.0_121\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_121\jre\classes"/>
+    <property name="user.script" value=""/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="java.runtime.version" value="1.8.0_121-b13"/>
+    <property name="user.name" value="SNG-012"/>
+    <property name="path.separator" value=";"/>
+    <property name="os.version" value="10.0"/>
+    <property name="java.endorsed.dirs" value="C:\Program Files\Java\jdk1.8.0_121\jre\lib\endorsed"/>
+    <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
+    <property name="file.encoding" value="GBK"/>
+    <property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>
+    <property name="localRepository" value="C:\Users\SNG-012\.m2\repository"/>
+    <property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="C:\Users\SNG-012\AppData\Local\Temp\"/>
+    <property name="idea.version" value="2021.1.3"/>
+    <property name="java.version" value="1.8.0_121"/>
+    <property name="user.dir" value="D:\xm4\HangZhouMes\TemperingGlassModule"/>
+    <property name="os.arch" value="amd64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="java.awt.printerjob" value="sun.awt.windows.WPrinterJob"/>
+    <property name="sun.os.patch.level" value=""/>
+    <property name="java.library.path" value="C:\Program Files\Java\jdk1.8.0_121\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:\vm\bin\;D:\jdk17.0.8\bin;D:\apache-jmeter-5.4.1\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:/benxiaohai/mysql8/mysql8/mysql8\bin;C:\Program Files\Java\jdk1.8.0_121\bin;C:\Program Files\Tomcat\apache-tomcat-8.0.39\bin;D:\涓嬭浇\ADB;D;\github\platform-tools;C:\Program Files\python;C:\Program Files\python\Scripts;D:\BtSoft\panel\script;C:\Program Files\Google\Chrome\Application;C:\Program Files\apache-maven-3.9.1\bin;D:\寰俊web寮�鍙戣�呭伐鍏穃dll;C:\Pro;ram Files (x86)\NetSarang\Xshell 7\;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;D:\宸ヤ綔\apache-ant-1.9.16-bin\apache-ant-1.9.16\bin;D:\宸ヤ綔\Microsoft VS Code\bin;C:\Program Files (x86)\nodejs\;C:\Program Files\Tomcat2\apache-tomcat2\bin;C:\Program Files\Docker;C:\Program Files\Docker\Docker\resources\bin;D:\Erlang OTP\bin;D:\MQ\rabbitmq_server-3.12.12\sbin;D:\python\Scripts\;D:\python\;C:\Users\SNG-012\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Google\Chrome\Application;C:\Users\SNG-012\AppData\Roaming\npm;."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="25.121-b13"/>
+    <property name="java.ext.dirs" value="C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext;C:\Windows\Sun\Java\lib\ext"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
+    <property name="java.class.version" value="52.0"/>
+  </properties>
+  <testcase name="contextLoads" classname="com.mes.MesApplicationTests" time="0.225"/>
+</testsuite>
\ No newline at end of file
diff --git a/TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt b/TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt
new file mode 100644
index 0000000..93941f7
--- /dev/null
+++ b/TemperingGlassModule/target/surefire-reports/com.mes.MesApplicationTests.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.mes.MesApplicationTests
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.389 s - in com.mes.MesApplicationTests
diff --git a/UI-Project/config.js b/UI-Project/config.js
index 201fb02..ac9f2b1 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,4 +1,5 @@
 export default {
-  serverUrl:"localhost:8080/mesModuleTools"
+  serverUrl:"localhost:8080/mesModuleTools",
+  serverUrl2:"localhost:8081/mesModuleTools"
   //serverUrl:"res.abeim.cn"
 }
\ No newline at end of file
diff --git a/UI-Project/index.html b/UI-Project/index.html
index 03b130f..e96cd5a 100644
--- a/UI-Project/index.html
+++ b/UI-Project/index.html
@@ -2,7 +2,7 @@
 <html lang="en">
   <head>
     <meta charset="UTF-8">
-    <link rel="icon" href="/favicon.ico">
+    <!-- <link rel="icon" href="/favicon.ico"> -->
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>鍖楃幓</title>
   </head>
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index dce25ad..a7386d3 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -1,11 +1,11 @@
 {
-  "name": "northglass-erp",
+  "name": "northglass-mes",
   "version": "0.0.0",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
-      "name": "northglass-erp",
+      "name": "northglass-mes",
       "version": "0.0.0",
       "dependencies": {
         "@element-plus/icons-vue": "^2.1.0",
@@ -16,6 +16,7 @@
         "pinia": "^2.1.6",
         "pinia-plugin-persistedstate": "^3.2.0",
         "sortablejs": "^1.15.1",
+        "sweetalert2": "^11.10.7",
         "vue": "^3.3.4",
         "vue-router": "^4.2.4",
         "vxe-table": "^4.5.15",
@@ -1405,6 +1406,11 @@
         "node": ">=0.8"
       }
     },
+    "node_modules/sweetalert2": {
+      "version": "11.10.7",
+      "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz",
+      "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg=="
+    },
     "node_modules/to-fast-properties": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -2440,6 +2446,11 @@
         "frac": "~1.1.2"
       }
     },
+    "sweetalert2": {
+      "version": "11.10.7",
+      "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz",
+      "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg=="
+    },
     "to-fast-properties": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
diff --git a/UI-Project/package.json b/UI-Project/package.json
index 7a8a0c3..75d8054 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "northglass-erp",
+  "name": "northglass-mes",
   "version": "0.0.0",
   "private": true,
   "scripts": {
@@ -16,6 +16,7 @@
     "pinia": "^2.1.6",
     "pinia-plugin-persistedstate": "^3.2.0",
     "sortablejs": "^1.15.1",
+    "sweetalert2": "^11.10.7",
     "vue": "^3.3.4",
     "vue-router": "^4.2.4",
     "vxe-table": "^4.5.15",
diff --git a/UI-Project/src/assets/1.png b/UI-Project/src/assets/1.png
new file mode 100644
index 0000000..eea5301
--- /dev/null
+++ b/UI-Project/src/assets/1.png
Binary files differ
diff --git a/UI-Project/src/assets/11.png b/UI-Project/src/assets/11.png
new file mode 100644
index 0000000..46f9af1
--- /dev/null
+++ b/UI-Project/src/assets/11.png
Binary files differ
diff --git a/UI-Project/src/assets/2.png b/UI-Project/src/assets/2.png
new file mode 100644
index 0000000..470e6eb
--- /dev/null
+++ b/UI-Project/src/assets/2.png
Binary files differ
diff --git a/UI-Project/src/assets/3.png b/UI-Project/src/assets/3.png
new file mode 100644
index 0000000..4900b6c
--- /dev/null
+++ b/UI-Project/src/assets/3.png
Binary files differ
diff --git a/UI-Project/src/assets/88.png b/UI-Project/src/assets/88.png
new file mode 100644
index 0000000..365e1ad
--- /dev/null
+++ b/UI-Project/src/assets/88.png
Binary files differ
diff --git a/UI-Project/src/assets/9.png b/UI-Project/src/assets/9.png
new file mode 100644
index 0000000..3e37ece
--- /dev/null
+++ b/UI-Project/src/assets/9.png
Binary files differ
diff --git a/UI-Project/src/assets/aaa.png b/UI-Project/src/assets/aaa.png
new file mode 100644
index 0000000..be775d6
--- /dev/null
+++ b/UI-Project/src/assets/aaa.png
Binary files differ
diff --git a/UI-Project/src/assets/background.jpg b/UI-Project/src/assets/background.jpg
new file mode 100644
index 0000000..4c726c9a
--- /dev/null
+++ b/UI-Project/src/assets/background.jpg
Binary files differ
diff --git a/UI-Project/src/assets/bigcar01.png b/UI-Project/src/assets/bigcar01.png
new file mode 100644
index 0000000..98a0a0e
--- /dev/null
+++ b/UI-Project/src/assets/bigcar01.png
Binary files differ
diff --git a/UI-Project/src/assets/dipan.png b/UI-Project/src/assets/dipan.png
new file mode 100644
index 0000000..923b811
--- /dev/null
+++ b/UI-Project/src/assets/dipan.png
Binary files differ
diff --git a/UI-Project/src/assets/emi.png b/UI-Project/src/assets/emi.png
new file mode 100644
index 0000000..815024a
--- /dev/null
+++ b/UI-Project/src/assets/emi.png
Binary files differ
diff --git a/UI-Project/src/assets/main.css b/UI-Project/src/assets/main.css
index 20218a4..e9c78e5 100644
--- a/UI-Project/src/assets/main.css
+++ b/UI-Project/src/assets/main.css
@@ -3,12 +3,13 @@
 #app {
   margin: 0 auto;
   padding: 0;
-  background-color: #D5EAFF;
+  /* background-color: #D5EAFF; */
   font-weight: normal;
   height: 100%;
   width: 100%;
-  min-width: 1536px;
-  min-height: 730px;
+  /* min-width: 1536px; */
+  /* min-height: 730px; */
+  /* background-image: url("../../src/assets/background.jpg"); */
 }
 
 a,
diff --git a/UI-Project/src/assets/s.png b/UI-Project/src/assets/s.png
new file mode 100644
index 0000000..2caf181
--- /dev/null
+++ b/UI-Project/src/assets/s.png
Binary files differ
diff --git a/UI-Project/src/assets/shangpianji .png b/UI-Project/src/assets/shangpianji .png
new file mode 100644
index 0000000..fb645ca
--- /dev/null
+++ b/UI-Project/src/assets/shangpianji .png
Binary files differ
diff --git a/UI-Project/src/assets/shangpianji.png b/UI-Project/src/assets/shangpianji.png
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/UI-Project/src/assets/shangpianji.png
diff --git a/UI-Project/src/assets/sz.png b/UI-Project/src/assets/sz.png
new file mode 100644
index 0000000..fc3e92b
--- /dev/null
+++ b/UI-Project/src/assets/sz.png
Binary files differ
diff --git a/UI-Project/src/assets/taimian.png b/UI-Project/src/assets/taimian.png
new file mode 100644
index 0000000..81e0723
--- /dev/null
+++ b/UI-Project/src/assets/taimian.png
Binary files differ
diff --git a/UI-Project/src/assets/user.png b/UI-Project/src/assets/user.png
new file mode 100644
index 0000000..7c774be
--- /dev/null
+++ b/UI-Project/src/assets/user.png
Binary files differ
diff --git a/UI-Project/src/assets/woshihuancun.png b/UI-Project/src/assets/woshihuancun.png
new file mode 100644
index 0000000..25fb5fb
--- /dev/null
+++ b/UI-Project/src/assets/woshihuancun.png
Binary files differ
diff --git a/UI-Project/src/assets/xmjc.png b/UI-Project/src/assets/xmjc.png
new file mode 100644
index 0000000..dee5f48
--- /dev/null
+++ b/UI-Project/src/assets/xmjc.png
Binary files differ
diff --git a/UI-Project/src/assets/xmjclzh.png b/UI-Project/src/assets/xmjclzh.png
new file mode 100644
index 0000000..5935f14
--- /dev/null
+++ b/UI-Project/src/assets/xmjclzh.png
Binary files differ
diff --git a/UI-Project/src/components/ComputedTest.vue b/UI-Project/src/components/ComputedTest.vue
deleted file mode 100644
index 8ddad0f..0000000
--- a/UI-Project/src/components/ComputedTest.vue
+++ /dev/null
@@ -1,47 +0,0 @@
-<template>
-  <div>
-    {{ a }}
-    <br><br>
-    {{ result }}
-    <br><br>
-    {{ b }}
-    <br><br>
-    <el-button @click="b++">123123</el-button>
-    
-    <br><br>
-    {{ '鐖剁粍浠朵紶鍊肩粰瀛愮粍浠讹細'+car }}
-
-  <br><br>
-  <el-button @click="gaveParent">瀛愮粍浠朵紶閫掓暟鎹粰鐖剁粍浠�</el-button>
-  </div>
-</template>
-<script setup>
-  import {ref,computed,watch,defineProps,defineEmits} from 'vue'
-  let a = $ref([1,2,3,4,5,6])
-  let b =ref(0)
-
-  let props = defineProps({
-    car:{
-      String,
-      default:0
-    }
-  })
-
-  const emit = defineEmits(['changeNum'])
-  const gaveParent = () => {
-    emit('changeNum','瀛愮粍浠剁粰鐖剁粍浠朵紶鍊间簡')
-  }
-
-  //浣跨敤璁$畻灞炴�ц繃婊ゅ嚭鏁扮粍涓皬浜�2鐨�
-  const result=computed( () => {
-    return a.filter(item => item>2)
-  })
-
-  watch(b,(newValue,oldValue) => {
-    console.log("鏀瑰彉浜嗗綋鍓嶅�硷細"+newValue+" "+oldValue)
-  })
-
-</script>
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/components/basic/BasicTable.vue b/UI-Project/src/components/basic/BasicTable.vue
deleted file mode 100644
index 6cb5437..0000000
--- a/UI-Project/src/components/basic/BasicTable.vue
+++ /dev/null
@@ -1,675 +0,0 @@
-<template>
-  <div style="width: 100%;height: 100%;" >
-    <!-- 姝e父鍖哄煙鐨勬 -->
-    <div class="vxe-table--cell-area" ref="cellarea">
-      <span class="vxe-table--cell-main-area"></span>
-      <span class="vxe-table--cell-active-area"></span>
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-        @scroll ="scrollEvnt"
-
-    >
-<!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-<!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-<!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="gaveParent(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="gaveParent(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<script lang="ts" setup>
-import {ref, reactive, defineEmits, onMounted, nextTick, toRef, watch} from 'vue'
-import {VxeGridProps, VXETable} from 'vxe-table'
-import request from "@/utils/request"
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import router from "@/router";
-//prop鎺ユ敹鐖剁粍浠跺嚱鏁�
-
-
-
-let props = defineProps({
-  tableProp:{
-    String,
-    default: ''
-  }
-})
-
-//瀛愭柟娉曡皟鐢ㄧ埗鏂规硶
-let emit = defineEmits([
-      'getChildren',
-      'getFilterChildren',
-      'getCheckList',
-    ])
-const  gaveParent = (row,type)=> {
-  emit('getChildren',row,type)
-}
-//椤佃剼姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-const changeFilterEvent = (event, option, $panel,) => {
-  // 鎵嬪姩瑙﹀彂绛涢��
-  $panel.changeOption(event, !!option.data, option)
-}
-
-//瑙﹀彂绛涢�夋潯浠�
-function filterChanged(column){
-  let value = column.datas[0]!=undefined?column.datas[0]:''
-  value = value===''?'n*':value.trim()
-  props.tableProp.filter[column.field]=value
-}
-const xGrid = ref()
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'demo_1',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true , gt: 40},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns:props.tableProp.title,//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: props.tableProp.buttons,
-    // buttons: [
-    //   { code: 'myInsert', name: '鏂板' },
-    //   { code: 'deleteList', name: '鍒犻櫎' },
-    //   { code: 'checkList', name: '鎻愪氦'  },
-    //   // { code: 'mySave', name: '淇濆瓨', status: 'success' },
-    //   //{ code: 'myExport', name: '瀵煎嚭鏁版嵁', type: 'text', status: 'warning' },
-    //   // {
-    //   //   name: '绂佺敤鎸夐挳',
-    //   //   disabled: false,
-    //   //   dropdowns: [
-    //   //     { code: 'other1', name: '涓嬫媺鐨勬寜閽�1', type: 'text', disabled: false },
-    //   //     { code: 'other2', name: '涓嬫媺鐨勬寜閽�2', type: 'text', disabled: true },
-    //   //     { code: 'other3', name: '涓嬫媺鐨勬寜閽�3', type: 'text', disabled: false }
-    //   //   ]
-    //   // }
-    // ],
-    // tools: [
-    //   { code: 'myPrint', name: '鑷畾涔夋墦鍗�' }
-    // ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  props.tableProp.datas,//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (props.tableProp.footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-const gridEvents = {
-  toolbarButtonClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'checkList': {
-          if($grid.getCheckboxRecords().length==0){
-            VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          emit('getCheckList',$grid.getCheckboxRecords())
-          break
-        }
-        case 'deleteList': {
-          $grid.removeCheckboxRow()
-          break
-        }
-        case 'myInsert': {
-          $grid.insert({})
-          console.log($grid.getRecordset().insertRecords)
-          break
-        }
-        case 'mySave': {
-          const { insertRecords, removeRecords, updateRecords } = $grid.getRecordset()
-          VXETable.modal.message({ content: `鏂板 ${insertRecords.length} 鏉★紝鍒犻櫎 ${removeRecords.length} 鏉★紝鏇存柊 ${updateRecords.length} 鏉, status: 'success' })
-          break
-        }
-        case 'myExport': {
-          $grid.exportData({
-            type: 'csv'
-          })
-          break
-        }
-      }
-    }
-  },
-  toolbarToolClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-
-
-/*
-//榧犳爣婊戝姩閫変腑
-let isSelecting = ref(false) // 鏄惁姝e湪杩涜閫夋嫨鎿嶄綔,榛樿涓篺alse
-let selectionStart = reactive({ rowIndex: -1, cellIndex: -1 }) // 閫夋嫨鎿嶄綔璧峰鍗曞厓鏍间綅缃�
-let selectionEnd = reactive({ rowIndex: -1, cellIndex: -1 }) // 閫夋嫨鎿嶄綔缁撴潫鍗曞厓鏍间綅缃�
-
-onMounted(() => {
-  addListener()
-})
-
-
-
-let cellarea = ref()
-let leftfixedcellarea = ref()
-let rightfixedcellarea = ref()
-
-//杩斿洖table鐨剅ef鍚嶇О
-const getTablexGrid = () => {
-  return xGrid.value
-}
-
-const addListener = () => {
-  //娣诲姞澶氶�夊垪
-  nextTick(() => {
-    window.addEventListener("mousedown", tableOutDestroyAreaBox)//缁檞indow娣诲姞榧犳爣鎸変笅浜嬩欢,鍒ゆ柇鏄惁鍦ㄨ〃鏍煎,鏄攢姣�
-    window.addEventListener("mouseup", tbodymouseup)//缁檞indow娣诲姞榧犳爣鏉惧紑浜嬩欢
-    let tbody = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper table tbody")//鑾峰彇tbody鍖哄煙
-
-    if (tbody) {
-      tbody.addEventListener("mousedown", tbodymousedown)//缁欒〃鏍间腑鐨則body娣诲姞榧犳爣鎸変笅浜嬩欢
-      tbody.addEventListener("mousemove", tbodymousemove)//缁欒〃鏍间腑鐨則body娣诲姞榧犳爣绉诲姩浜嬩欢
-      tbody.addEventListener("mouseout", throttle(tbodymouseout, 50))//缁欒〃鏍间腑鐨則body娣诲姞榧犳爣绉诲嚭浜嬩欢
-      tbody.addEventListener("click", tableCellClick)//娣诲姞宸﹂敭鍗曞嚮浜嬩欢
-      tbody.oncontextmenu = tableCellMenuClick//娣诲姞鍙抽敭鑿滃崟浜嬩欢
-    }
-
-    let bodyWrapper = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper")//鑾峰彇姝e父鍖哄煙鐨刡ody
-    if (bodyWrapper) {
-      //娉ㄦ剰杩欓噷鐨剅ef鍚嶇О锛岃繖閲屾槸闈瀎ixed鍖哄煙鐨勬鐨勫悕绉�
-      bodyWrapper.appendChild(cellarea.value)//娣诲姞鑼冨洿妗嗗厓绱�
-    }
-    setTimeout(() => {
-      //#region 宸︿晶鍥哄畾鍒�
-      let leftfixedtbody = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper table tbody")//鑾峰彇fixedtbody鍖哄煙
-
-      if (leftfixedtbody) {
-        leftfixedtbody.addEventListener("mousedown", tbodymousedown)//缁欒〃鏍间腑鐨刲eftfixedtbody娣诲姞榧犳爣鎸変笅浜嬩欢
-        leftfixedtbody.addEventListener("mousemove", tbodymousemove)//缁欒〃鏍间腑鐨刲eftfixedtbody娣诲姞榧犳爣绉诲姩浜嬩欢
-        leftfixedtbody.addEventListener("mouseout", throttle(tbodymouseout, 50))//缁欒〃鏍间腑鐨刲eftfixedtbody娣诲姞榧犳爣绉诲嚭浜嬩欢
-        leftfixedtbody.addEventListener("click", tableCellClick)//娣诲姞鍗曞嚮浜嬩欢
-        leftfixedtbody.oncontextmenu = tableCellMenuClick//娣诲姞鍙抽敭鑿滃崟浜嬩欢
-      }
-
-      let leftFixedBodyWrapper = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper")
-      if (leftFixedBodyWrapper) {
-        //娉ㄦ剰杩欓噷鐨剅ef鍚嶇О锛岃繖閲屾槸fixed鍖哄煙鐨勬鐨勫悕绉�
-        leftFixedBodyWrapper.appendChild(leftfixedcellarea.value)
-      }
-      //#endregion
-
-      //#region 鍙充晶鍥哄畾鍒�
-      let rightfixedtbody = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper table tbody")//鑾峰彇fixedtbody鍖哄煙
-
-      if (rightfixedtbody) {
-        rightfixedtbody.addEventListener("mousedown", tbodymousedown)//缁欒〃鏍间腑鐨剅ightfixedtbody娣诲姞榧犳爣鎸変笅浜嬩欢
-        rightfixedtbody.addEventListener("mousemove", tbodymousemove)//缁欒〃鏍间腑鐨剅ightfixedtbody娣诲姞榧犳爣绉诲姩浜嬩欢
-        rightfixedtbody.addEventListener("mouseout", throttle(tbodymouseout, 50))//缁欒〃鏍间腑鐨剅ightfixedtbody娣诲姞榧犳爣绉诲嚭浜嬩欢
-        rightfixedtbody.addEventListener("click", tableCellClick)//娣诲姞鍗曞嚮浜嬩欢
-        rightfixedtbody.oncontextmenu = tableCellMenuClick//娣诲姞鍙抽敭鑿滃崟浜嬩欢
-      }
-
-      let rightFixedBodyWrapper = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper")
-      if (rightFixedBodyWrapper) {
-        //娉ㄦ剰杩欓噷鐨剅ef鍚嶇О锛岃繖閲屾槸fixed鍖哄煙鐨勬鐨勫悕绉�
-        rightFixedBodyWrapper.appendChild(rightfixedcellarea.value)
-      }
-      //#endregion
-
-    }, 100)
-
-  })
-}
-const tbodymousedown = (event) => {
-  event.stopPropagation(); // 闃绘鍐掓场
-  getTablexGrid().closeMenu(); // 鎵嬪姩鍏抽棴鍙抽敭鑿滃崟
-
-  if (event.button === 0) { // 宸﹂敭鎸変笅
-    // 璁板綍閫夋嫨鎿嶄綔璧峰浣嶇疆
-    selectionStart = getCellPosition(event.target); // 璁剧疆閫夋嫨鎿嶄綔璧峰鍗曞厓鏍间綅缃�
-    isSelecting.value = true; // 鏍囪涓烘鍦ㄩ�夋嫨鎿嶄綔
-  }
-};
-
-//榧犳爣绉诲姩浜嬩欢
-//todo 杩欓噷瑕佽妭娴佹搷浣�,鍙湪缁撴潫鏃惰Е鍙戜竴娆�
-const tbodymousemove = (event: MouseEvent) => {
-  if (event.button === 0) {//宸﹂敭绉诲姩
-    if (!isSelecting.value) return//濡傛灉褰撳墠闈炴鍦ㄩ�夋嫨鎿嶄綔,鐩存帴閫�鍑�
-    //璁板綍閫夋嫨鎿嶄綔缁撴潫浣嶇疆
-    selectionEnd = getCellPosition(event.target)
-
-    //璁剧疆鏍峰紡,骞舵樉绀鸿寖鍥存
-    setselectedCellArea()
-
-  }
-}
-
-//榧犳爣鎸夐敭缁撴潫浜嬩欢,娣诲姞鍦ㄤ簡window涓�
-const tbodymouseup = (event: MouseEvent) => {
-  if (event.button === 0) {//宸﹂敭鏉惧紑
-    isSelecting.value = false//鏍囪涓哄仠姝㈤�夋嫨鎿嶄綔
-  }
-}
-
-let outevent = ref()//绉诲姩浜嬩欢,涓嶄繚瀛�,寰幆瀹氭椂鍣ㄥ唴鏃犳硶鐩戝惉鍒版柊鐨勪簨浠�
-
-//榧犳爣绉诲嚭琛ㄦ牸浜嬩欢,鍙湪绉诲姩鐨勬椂鍊欎細瑙﹀彂,鏆傚仠绉诲姩涓嶈Е鍙�
-const tbodymouseout = (event: MouseEvent) => {
-  outevent.value = event//淇濆瓨绉诲姩浜嬩欢
-
-  if (isSelecting.value) {//濡傛灉姝e湪鎵ц閫変腑鎿嶄綔
-    const timer = setInterval(() => {//寮�鍚惊鐜畾鏃跺櫒
-      if (isSelecting.value) {//鍒ゆ柇褰撳墠鏄惁姝e湪閫夋嫨
-        //鑾峰彇琛ㄦ牸鍏冪礌
-        var table = getTablexGrid().$el.querySelector(".vxe-table--body-wrapper table")//鑾峰彇闈炲浐瀹氬垪(鍜屽浐瀹氬垪)鐨則able鍏冪礌
-        if (outevent.value.clientX > table.parentElement.getBoundingClientRect().right - 30) {//鍒ゆ柇榧犳爣x杞存槸鍚﹁秴鍑鸿〃鏍煎彸渚�,鍚戝彸婊氬姩
-          var maxScrollPosition = table.parentElement.scrollWidth - table.parentElement.clientWidth//鑾峰彇婊氬姩鏉℃渶澶т綅缃�
-          if (table.parentElement.scrollLeft < maxScrollPosition) {//濡傛灉娌″埌婊氬姩鏉℃渶澶т綅缃�,鎵ц婊氬姩
-            table.parentElement.scrollLeft += 10//鎵ц姘村钩婊氬姩鏉″悜鍙虫粴鍔�
-          }
-        } else if (outevent.value.clientX < table.parentElement.getBoundingClientRect().left + 30) {//鍒ゆ柇榧犳爣x杞存槸鍚﹁秴鍑鸿〃鏍煎乏渚�,鍚戝乏婊氬姩
-          if (table.parentElement.scrollLeft > 0) {//濡傛灉娌″埌婊氬姩鏉℃渶澶т綅缃�,鎵ц婊氬姩
-            //榧犳爣绉诲嚭琛ㄦ牸锛屾粴鍔ㄦ按骞虫粴鍔ㄦ潯
-            table.parentElement.scrollLeft -= 10//鎵ц姘村钩婊氬姩鏉″悜鍙虫粴鍔�
-          }
-        }
-
-
-      } else {
-        clearInterval(timer)//娓呴櫎寰幆瀹氭椂鍣�
-      }
-    }, 200)//杩欓噷璁剧疆婊戝姩閫熷害
-
-  }
-
-}
-
-//鑺傛祦鍑芥暟,todo//鏀逛负鍏ㄥ眬
-const throttle = (fn: Function, delay: number) => {
-  const canRun = ref(true)
-  return (...args: any[]) => {
-    if (!canRun.value) return
-    canRun.value = false
-    setTimeout(() => {
-      fn(...args)
-      canRun.value = true
-    }, delay)
-  }
-}
-
-// 鑾峰彇鍗曞厓鏍间綅缃�(rowIndex, cellIndex)
-const getCellPosition = (cell: any) => {
-
-
-  while (cell.tagName !== 'TD') {//灏哻ell鎸囧悜TD鍏冪礌
-    cell = cell.parentElement
-  }
-
-  let visibleColumn = getTablexGrid().getTableColumn().visibleColumn//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃澶村垪
-  const cellIndex = visibleColumn.findIndex((col: { id: any; }) => {//杩斿洖colid鐩哥瓑鐨剉isibleColumn鍏ㄩ噺琛ㄥご鍒楃殑绱㈠紩
-    return col.id == cell.getAttribute("colid")
-  })
-
-  let visibleData = getTablexGrid().getTableData().visibleData//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃浣撴暟鎹�
-
-  const rowIndex = visibleData.findIndex((row: { _X_ROW_KEY: any; }) => {//杩斿洖rowid鐩哥瓑鐨剉isibleData鍏ㄩ噺琛ㄤ綋鏁版嵁
-    return row._X_ROW_KEY == cell.parentElement.getAttribute("rowid")//杩斿洖rowid鐩哥瓑鐨剉isibleData鍏ㄩ噺琛ㄤ綋鏁版嵁鐨勭储寮�
-  })
-  return { rowIndex, cellIndex }
-
-}
-
-//璁剧疆妗嗘墦寮�
-const setselectedCellArea = () => {
-
-
-
-  var activeElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-active-area")//姝e父鍖哄煙閫変腑杈规婵�娲荤殑鍏冪礌(浠呮槸杈规)
-  var mainElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area")//姝e父鍖哄煙閫変腑杈规鍐呮暣涓寖鍥寸殑鍏冪礌
-
-  var leftFixedActiveElement = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-active-area")//宸︿晶鍥哄畾鍒楅�変腑杈规婵�娲荤殑鍏冪礌(浠呮槸杈规)
-  var leftFixedMainElement = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area")//宸︿晶鍥哄畾鍒楅�変腑杈规鍐呮暣涓寖鍥寸殑鍏冪礌
-
-  var rightFixedActiveElement = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper .vxe-table--cell-active-area")//鍙充晶鍥哄畾鍒楅�変腑杈规婵�娲荤殑鍏冪礌(浠呮槸杈规)
-  var rightFixedMainElement = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area")//鍙充晶鍥哄畾鍒楅�変腑杈规鍐呮暣涓寖鍥寸殑鍏冪礌
-
-
-  var elements = [activeElement, mainElement, leftFixedActiveElement, leftFixedMainElement, rightFixedActiveElement, rightFixedMainElement]
-  let area = getAreaBoxPosition()
-  if (area) {
-    var { width, height, left, top, right } = area
-  } else {
-    return
-  }
-  elements.forEach((element, index) => {
-    if (element) {//璁剧疆鏄剧ず鑼冨洿妗嗙殑鍐呴儴鍏冪礌鐨勬牱寮�
-      element.style.width = `${width}px`
-      element.style.height = `${height}px`
-      element.style.top = `${top}px`
-      element.style.display = "block"
-      if (index <= elements.length - 1 - 2) {//濡傛灉涓嶆槸rightFixedActiveElement鎴杛ightFixedMainElement
-        element.style.left = `${left}px`
-      } else {
-        element.style.right = `${right}px`
-      }
-    }
-  })
-
-  //鏄剧ず鑼冨洿妗�
-  openAreaBox()
-}
-
-//鏍规嵁寮�濮嬩綅缃拰缁撴潫浣嶇疆鐨勭储寮曡绠楁鐨剋idth,height,left,top(宸︿晶鍥哄畾鍒楀拰姝e父鍖哄煙鍜屽彸渚у浐瀹氬垪浣跨敤)
-const getAreaBoxPosition = () => {
-  let startRowIndex = selectionStart.rowIndex//鑾峰彇閫変腑璧峰琛岀储寮�
-  let endRowIndex = selectionEnd.rowIndex//鑾峰彇閫変腑缁撴潫琛岀储寮�
-  let startColumnIndex = selectionStart.cellIndex//鑾峰彇閫変腑璧峰鍒楃储寮�
-  let endColumnIndex = selectionEnd.cellIndex//鑾峰彇閫変腑缁撴潫鍒楃储寮�
-  let visibleColumn = getTablexGrid().getTableColumn().visibleColumn//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃澶村垪
-  let visibleData = getTablexGrid().getTableData().visibleData//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃浣撴暟鎹�
-  if (startColumnIndex < 0 || endColumnIndex < 0 || startRowIndex < 0 || endRowIndex < 0) return
-  var maxColumnIndex = visibleColumn.length - 1//鏈�澶у垪绱㈠紩
-  var maxRowIndex = visibleData.length - 1//鏈�澶ц绱㈠紩
-  if (endColumnIndex > maxColumnIndex) {//鍒版渶鍚庝竴鍒�,鎸囧悜鏈�鍚庝竴鍒�
-    endColumnIndex = maxColumnIndex
-  }
-  if (endRowIndex > maxRowIndex) {//鍒版渶鍚庝竴琛�,鎸囧悜鏈�鍚庝竴琛�
-    endRowIndex = maxRowIndex
-  }
-  let width = 0, height = 0, left = 0, top = 0, right = 0
-  visibleColumn.forEach((col: { renderWidth: number; }, index: number) => {
-    if (startColumnIndex <= endColumnIndex) {//寮�濮嬪垪绱㈠紩灏忎簬缁撴潫鍒楃储寮�,鍗充粠宸﹀線鍙抽�夋嫨
-      if (index < startColumnIndex) {
-        left += col.renderWidth//璺濈琛ㄦ牸鏁翠綋宸︿晶杈规璺濈
-      }
-      if (index > endColumnIndex) {//鏁版嵁绱㈠紩澶т簬缁撴潫鍒�,杩欓噷鑾峰彇璺濈鍚庨潰鏁版嵁鐨勫搴�
-        right += col.renderWidth//璺濈琛ㄦ牸鏁翠綋鍙充晶杈规璺濈,鍔犱笂褰撳墠鍒�
-      }
-      if (startColumnIndex <= index && index <= endColumnIndex) {//寮�濮嬪垪绱㈠紩澶т簬鏁版嵁绱㈠紩 鍜� 缁撴潫鍒楃储寮曞皬浜庢暟鎹储寮�,杩欓噷鑾峰彇閫変腑鍖哄煙鐨勫搴�
-        width += col.renderWidth//閫変腑鍖哄煙鐨勫搴�
-      }
-    } else {//浠庡彸寰�宸﹂�夋嫨
-      if (index < endColumnIndex) {
-        left += col.renderWidth//璺濈琛ㄦ牸鏁翠綋宸︿晶杈规璺濈
-      }
-      if (index > startColumnIndex) {//鏁版嵁绱㈠紩澶т簬寮�濮嬪垪,杩欓噷鑾峰彇璺濈鍚庨潰鏁版嵁鐨勫搴�
-        right += col.renderWidth//璺濈琛ㄦ牸鏁翠綋鍙充晶杈规璺濈,鍔犱笂褰撳墠鍒�
-      }
-      if (startColumnIndex >= index && index >= endColumnIndex) {//寮�濮嬪垪绱㈠紩澶т簬鏁版嵁绱㈠紩 鍜� 缁撴潫鍒楃储寮曞皬浜庢暟鎹储寮�,杩欓噷鑾峰彇閫変腑鍖哄煙鐨勫搴�
-        width += col.renderWidth//閫変腑鍖哄煙鐨勫搴�
-      }
-    }
-
-  })
-  if (startRowIndex <= endRowIndex) {//寮�濮嬭绱㈠紩灏忎簬缁撴潫琛岀储寮�,鍗充粠涓婂線涓嬮�夋嫨
-    height = (endRowIndex - startRowIndex + 1) * gridOptions.rowConfig!.height!//閫変腑鍖哄煙鐨勯珮搴�
-    top = startRowIndex * gridOptions.rowConfig!.height!//璺濈琛ㄦ牸鏁翠綋椤堕儴杈规璺濈
-  } else {
-    height = (startRowIndex - endRowIndex + 1) * gridOptions.rowConfig!.height!//閫変腑鍖哄煙鐨勯珮搴�
-    top = endRowIndex * gridOptions.rowConfig!.height!//璺濈琛ㄦ牸鏁翠綋椤堕儴杈规璺濈
-  }
-
-
-
-  return { width, height, left, top, right }
-
-}
-
-//鏄剧ず鑼冨洿妗�
-const openAreaBox = () => {
-  var element = xGrid.value.$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "block"
-  }
-  element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "block"
-  }
-  element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "block"
-  }
-}
-
-//琛ㄦ牸澶栭攢姣佽寖鍥存
-const tableOutDestroyAreaBox = (event: MouseEvent) => {
-  try{
-    var element = getTablexGrid().$el.querySelector(".vxe-table--render-wrapper")
-  }catch (err){
-
-  }
-
-  if (element) {
-    if (event.clientX < element.getBoundingClientRect().left || event.clientX > element.getBoundingClientRect().right
-        || event.clientY > element.getBoundingClientRect().top || event.clientY < element.getBoundingClientRect().bottom
-    ) {
-      destroyAreaBox()
-    }
-  }
-
-
-}
-//閿�姣佽寖鍥存
-const destroyAreaBox = () => {
-  var element = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "none"
-  }
-  element = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "none"
-  }
-  element = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "none"
-  }
-}
-
-//琛ㄦ牸鍗曞厓鏍肩偣鍑讳簨浠�
-const tableCellClick = (e: MouseEvent) => {
-
-  if (!isSelecting.value) {//闈為�変腑鐘舵��
-    try {
-      selectionStart = getCellPosition(e.target)//鑾峰彇鍗曞厓鏍间綅缃�
-      selectionEnd = selectionStart//缁撴潫浣嶇疆涔熸槸鑷繁
-      //璁剧疆鏍峰紡
-      setselectedCellArea()
-    } catch (error) {
-
-    }
-
-  }
-}
-
-//琛ㄦ牸鍙抽敭鐐瑰嚮浜嬩欢
-const tableCellMenuClick = (e: MouseEvent) => {
-  if (!isSelecting.value) {//闈為�変腑鐘舵��
-    let currentCellPosition = getCellPosition(e.target)//鑾峰彇鍗曞厓鏍间綅缃�
-    var horizontalFlag//鏄惁鍦ㄨ寖鍥存鐨勬按骞冲垽鏂爣璁�
-    var verticalFlag//鏄惁鍦ㄨ寖鍥存鐨勫瀭鐩村垽鏂爣璁�
-    if (selectionStart.cellIndex <= selectionEnd.cellIndex) {//濡傛灉鏄粠宸﹀線鍙抽�夊彇
-      horizontalFlag = selectionStart.cellIndex <= currentCellPosition.cellIndex && currentCellPosition.cellIndex <= selectionEnd.cellIndex
-    } else {//浠庡彸寰�宸﹂�夊彇
-      horizontalFlag = selectionEnd.cellIndex <= currentCellPosition.cellIndex && currentCellPosition.cellIndex <= selectionStart.cellIndex
-    }
-    if (selectionStart.rowIndex <= selectionEnd.rowIndex) {//濡傛灉鏄粠涓婂線涓嬮�夊彇
-      verticalFlag = selectionStart.rowIndex <= currentCellPosition.rowIndex && currentCellPosition.rowIndex <= selectionEnd.rowIndex
-    } else {//浠庝笅寰�涓婇�夊彇
-      verticalFlag = selectionEnd.rowIndex <= currentCellPosition.rowIndex && currentCellPosition.rowIndex <= selectionStart.rowIndex
-    }
-
-    if (horizontalFlag && verticalFlag) { //鍒ゆ柇濡傛灉涓嶅湪閫変腑鍖哄煙鍐�,瑙﹀彂琛ㄦ牸宸﹂敭鍗曞嚮浜嬩欢,鏇存柊鎴彇鍗曞厓鏍�,鍚﹀垯濡傛灉鍦ㄦ甯歌Е鍙戝彸閿彍鍗�
-
-    } else {
-      selectionStart = getCellPosition(e.target)//鑾峰彇鍗曞厓鏍间綅缃�
-      selectionEnd = selectionStart//缁撴潫浣嶇疆涔熸槸鑷繁
-      //璁剧疆鏍峰紡
-      setselectedCellArea()
-    }
-
-  }
-
-}
-const toolbarButtonClickEvent = ({ code }: { code: any }) => {
-  switch (code) {
-    case "getcellselctdata":
-      //鎴戠粰澶у鎵撳嵃澶勭悊:
-      console.log("鏄惁姝e湪杩涜婊戝姩閫変腑鎿嶄綔锛�", isSelecting.value)
-      //宸︿笂瑙掑潗鏍�
-      console.log("鍗曞厓鏍艰捣濮嬩綅缃細绱㈠紩:", selectionStart)
-      //鍙充笅瑙掑潗鏍�
-      console.log("鍗曞厓鏍肩粨鏉熶綅缃細绱㈠紩:", selectionEnd)
-
-      //杩欓噷闇�瑕佹槸visibleData
-      let tableData = getTablexGrid().getTableData().visibleData//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃浣撴暟鎹�
-      let rowStart = selectionStart.rowIndex//鑾峰彇閫変腑璧峰琛岀储寮�
-      let rowEnd = selectionEnd.rowIndex//鑾峰彇閫変腑缁撴潫琛岀储寮�
-      let selectRows = tableData.filter((col, index: number) => {//col鍙傛暟涓嶈兘鏀瑰惁鍒欎細鑾峰彇涓嶅埌鏁版嵁
-        //杩欓噷淇敼浠庡彸涓嬪線宸︿笂鎷栧姩鐨勬暟鎹樉绀�
-        if (rowStart <= rowEnd) {
-          return rowStart <= index && rowEnd >= index
-        } else {
-          return rowStart >= index && rowEnd <= index
-        }
-      })
-      console.log("榧犳爣閫変腑琛�:", JSON.stringify(selectRows))
-
-      //杩欓噷闇�瑕佹槸visibleColumn
-      let colStart = selectionStart.cellIndex//鑾峰彇閫変腑璧峰鍒楃储寮�
-      let colEnd = selectionEnd.cellIndex//鑾峰彇閫変腑缁撴潫鍒楃储寮�
-      let tableColumn = getTablexGrid().getTableColumn().visibleColumn//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃澶村垪
-      let selectCols = tableColumn.filter((col, index: number) => {//col鍙傛暟涓嶈兘鏀瑰惁鍒欎細鑾峰彇涓嶅埌鏁版嵁
-        //杩欓噷淇敼浠庡彸涓嬪線宸︿笂鎷栧姩鐨勬暟鎹樉绀�
-        if (colStart <= colEnd) {
-          return colStart <= index && colEnd >= index
-        } else {
-          return colStart >= index && colEnd <= index
-        }
-
-      })
-      console.log("榧犳爣閫変腑鍒�:", JSON.stringify(selectCols))
-      break
-  }
-}
-*/
-
-
-</script>
-
-<style  scoped>
-.vxe-grid {
-  /* 绂佺敤娴忚鍣ㄩ粯璁ら�変腑 */
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-
-
-/*婊氬姩鏉℃暣浣撻儴鍒�*/
-.mytable-scrollbar ::-webkit-scrollbar {
-  width: 10px;
-  height: 10px;
-}
-/*婊氬姩鏉$殑杞ㄩ亾*/
-.mytable-scrollbar ::-webkit-scrollbar-track {
-  background-color: #FFFFFF;
-}
-/*婊氬姩鏉¢噷闈㈢殑灏忔柟鍧楋紝鑳藉悜涓婂悜涓嬬Щ鍔�*/
-.mytable-scrollbar ::-webkit-scrollbar-thumb {
-  background-color: transparent;
-  border-radius: 5px;
-  border: 1px solid #F1F1F1;
-  box-shadow: inset 0 0 6px rgba(0,0,0,.3);
-}
-.mytable-scrollbar ::-webkit-scrollbar-thumb:hover {
-  background-color: #ffffff;
-}
-.mytable-scrollbar ::-webkit-scrollbar-thumb:active {
-  background-color: white;
-}
-/*杈硅锛屽嵆涓や釜婊氬姩鏉$殑浜ゆ眹澶�*/
-.mytable-scrollbar ::-webkit-scrollbar-corner {
-  background-color: #FFFFFF;
-}
-</style>
-
diff --git a/UI-Project/src/components/basic/product/GlassType.vue b/UI-Project/src/components/basic/product/GlassType.vue
deleted file mode 100644
index df6819f..0000000
--- a/UI-Project/src/components/basic/product/GlassType.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-<script setup>
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import useProductGlassTypeStore from "@/stores/sd/product/productGlassType"
-let productGlassTypeStore = useProductGlassTypeStore()
-
-let options=$ref([])
-request.get("/basicGlassType/getAll").then((res) => {
-  if(res.code==200){
-    for (let dataKey of res.data) {
-      dataKey.children=JSON.parse(dataKey.children)
-    }
-    options= deepClone(res.data)
-  }else{
-    ElMessage.warning(res.msg)
-  }
-})
-</script>
-
-<template>
-  <div>
-    <el-cascader
-        v-model="productGlassTypeStore.GlassType"
-        :options="options"
-        clearable
-    />
-  </div>
-</template>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/components/sd/product/GlassType.vue b/UI-Project/src/components/sd/product/GlassType.vue
deleted file mode 100644
index 7545d94..0000000
--- a/UI-Project/src/components/sd/product/GlassType.vue
+++ /dev/null
@@ -1,34 +0,0 @@
-<script setup>
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import useProductGlassTypeStore from "@/stores/sd/product/productGlassType"
-let productGlassTypeStore = useProductGlassTypeStore()
-
-let options=$ref([])
-request.get("/basicGlassType/getAll").then((res) => {
-  if(res.code==200){
-    for (let dataKey of res.data) {
-      dataKey.children=JSON.parse(dataKey.children)
-    }
-    options= deepClone(res.data)
-  }else{
-    ElMessage.warning(res.msg)
-  }
-})
-</script>
-
-<template>
-  <div>
-    <el-cascader
-        v-model="productGlassTypeStore.GlassType"
-        :options="options"
-        clearable
-        placeholder="鐜荤拑绫诲埆"
-    />
-  </div>
-</template>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
index 20334e7..d5c18f5 100644
--- a/UI-Project/src/layout/MainErpView.vue
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -75,56 +75,31 @@
 </script>
 
 <template>
-  <div>
+  <div id="all">
     <el-container>
       <el-header >
-        <div style="height: 100%;width: 100%;display: flex">
+        <div style="height: 100%;width: 100%;display: flex;background-color: #fff;">
           <img src="../assets/northGlass.ico" alt="" style="max-width: 100%;max-height: 100%">
-          <h3 style="margin: 1rem  ;font-weight: bold;width: 20vw;"> 娆㈣繋{{ user }}浣跨敤鍖楃幓ERP绯荤粺锛�</h3>
+          <h3 style="margin: 1rem  ;font-weight: bold;width: 20vw;"> 娆㈣繋{{ user }}浣跨敤鍖楃幓MES绯荤粺锛�</h3>
           <span style="height: 70%;width: 78vw;margin-top: 1rem;" >
-
-            <el-button  class="sys-quit" @click="quit"  type="info" round>
+            <el-button  class="sys-quit" @click="quit" round>
               <el-icon size="large"><SwitchButton  size=""/></el-icon>
             </el-button>
           </span>
-
         </div>
       </el-header>
+      <div id="line"></div>
       <el-container >
-        <el-aside width="160px" style="height: 97%; " >
-<!--          <el-menu
-              style=" border-radius:0.5rem;border: 0.01rem solid #409EFF;margin-bottom: 0.5rem"
-              @open="handleOpen"
-              ref="menu"
-              active-color="#ffd04b"
-              background-color="#409EFF"
-              default-active="2"
-              text-color="#fff">
-            <el-sub-menu
-
-                v-for="items in menuList"
-                :index="items.id"
-                :key="items.id">
-              <template #title>
-                <el-icon v-if="items.id==1"><Grid/></el-icon>
-                <el-icon v-if="items.id==2"><Histogram/></el-icon>
-                <el-icon v-if="items.id==3"><MessageBox/></el-icon>
-                <span style="font-weight: bold;">{{items.menuName}}</span>
-              </template>
-              <router-link
-                  v-show="items.id==menuItem.menuID"
-                  v-for="menuItem in menuItemList"
-                  :to="{path:menuItem.url}">
-                <el-menu-item  >
-                  {{ menuItem.itemName}}
-                </el-menu-item>
-              </router-link>
-
-            </el-sub-menu>
-          </el-menu>-->
+        <el-aside width="160px" style="height: 99%; background-color: #fff;" >
           <div class="menu"  >
-              <div v-for="items in menuList">
-                <div class='menu_title' @click="openMenu(items.id)"  >{{items.menuName}}<span class='indicator' >鈻�</span></div>
+             <div v-for="items in menuList">
+                <div class='menu_title' @click="openMenu(items.id)"  >
+              <!-- <span class='indicator' >鈱�</span> -->
+              <!-- <span class='indicator' >鈮�</span> -->
+              <!-- <img src="../assets/9.png" alt="" style="max-width: 50%;max-height: 50%;"> -->
+                  <span>鈽�</span>
+              {{items.menuName}}
+                </div>
                 <ul class='enter-x-left' v-show="openFlag==items.id">
 
                   <li v-for="menuItem in menuItemList"
@@ -154,9 +129,13 @@
 </template>
 
 <style scoped>
+#all{
+  background-color: #eee;
+  height: 100%;
+}
 .el-container{
   height: 100vh;
-  width: 100vw
+  width: 99vw
 }
 
 *{
@@ -167,7 +146,17 @@
   float: right;
   margin-right: 1rem;
   width: 5rem;
-
+}
+/* 妯嚎 */
+#line{
+float:right;
+width: 100%;
+height: 1px;
+/* margin-top: 0.5em; */
+margin-bottom: 0.5em;
+background:#d4c4c4;
+position: relative;
+text-align: center;
 }
 :deep(span){
   margin-right: 0;
@@ -181,17 +170,11 @@
   width: 99%;
   float: right;
   height: 99%;
+  background-color: #fff;
 }
-
-
-
-
 /*------------*/
 
-
-
-
-.menu div div{
+/* .menu div div{
 
   width: 138px;
   height: 35px;
@@ -208,16 +191,12 @@
   border-bottom: 12px ;
   margin-bottom:4px;
   text-align: left;
-  cursor: pointer;
-  border-radius:8px;
+  cursor: pointer; */
+  /* border-radius:8px; */
   /*   outline: none; */
-
-  background-color:#5CADFE;
-  box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
-
-
-
-}
+  /* background-color:#5CADFE; */
+  /* box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19); */
+/* } */
 
 .menu {
   width: 138px;
@@ -243,21 +222,21 @@
 
   height: 28px;
   line-height: 30px;
-  background: rgb(128, 128, 128);
+  /* background: rgb(128, 128, 128); */
   color: #000000;
   padding-left: 36px;
   cursor: pointer;
   overflow: hidden;
   text-align: left;
-  border-radius:8px;
+  /* border-radius:8px; */
   /*   outline: none; */
 
-  background: #5CADFE;
-  box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
+  /* background: #5CADFE; */
+  /* box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19); */
 }
 
 ul li:hover {
-  background:#5CADFE ;
+  /* background:#5CADFE ; */
   color: #ffffff;
 }
 
@@ -268,7 +247,7 @@
 }
 ul li a:hover {
 
-  color: #ffffff;
+  color: #1087ff;
 }
 
 .item_divider {
@@ -282,6 +261,7 @@
   width: 138px;
   height: 35px;
   display: block;
+  /* text-align: justify; */
   text-decoration: none;
   color: white;
   font-size: 14px;
@@ -289,12 +269,12 @@
 }
 
 .menu_title {
-  width: 138px;
-  height: 35px;
-  line-height: 35px;
-  background: #fafafa;
-  color: rgb(128, 128, 128);
-  font-size: 16px;
+  width: 140px;
+  height: 45px;
+  line-height: 55px;
+  /* background: #fafafa; */
+  color: rgb(43, 42, 42);
+  font-size: 17px;
   padding-left: 15px;
   transition: all 0.3s ease;
   cursor: pointer;
@@ -306,12 +286,12 @@
 
 .menu_title:hover {
   /* background: #dedede; */
-  color: #ffffff;
+  color: #3b9af9;
 }
 
 .indicator {
   display: block;
-  width: 50px;
+  width: 40px;
   height: 35px;
   font-weight: bold;
   position: absolute;
@@ -344,8 +324,6 @@
 .enter-x-left:nth-child(4){
   animation-delay: 0.4s;
 }
-
-
 @keyframes enter-x-left {
   to {
     opacity: 1;
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index aa9114b..297bac1 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -34,812 +34,121 @@
             }
          ]
         },
-          //sd妯″潡
+      
+        /*----------- 涓婄墖鏈� ----------------*/
+      {
+        path: 'Returns',
+        name: 'Returns',
+        component: () => import('../views/Returns/returns.vue'),
+        children:[
+          {
+            path: '/Returns/returns',
+            name: 'returns',
+            component: () => import('../views/Returns/returns.vue')
+          },
+        ]
+      },
+      /*----------- 鎺扮墖/璇嗗埆 ----------------*/
+    {
+      path: 'Identify',
+      name: 'Identify',
+      component: () => import('../views/Identify/identify.vue'),
+      children:[
         {
-          path: 'product',//浜у搧
-          name: 'product',
-          component: () => import('../views/sd/product/Product.vue'),
+          path: '/Identify/identify',
+          name: 'identify',
+          component: () => import('../views/Identify/identify.vue')
+        },
+      ]
+    },
+    /*----------- 鍗у紡缂撳瓨 ----------------*/
+  {
+    path: 'Caching',
+    name: 'Caching',
+    component: () => import('../views/Caching/caching.vue'),
+    children:[
+      {
+        path: '/Caching/caching',
+        name: 'caching',
+        component: () => import('../views/Caching/caching.vue')
+      },
+    ]
+  },
+  /*----------- 纾ㄨ竟锛堝喎鍔犲伐锛� ----------------*/
+{
+  path: 'StockBasicData',
+  name: 'StockBasicData',
+  component: () => import('../views/StockBasicData/stockBasicData.vue'),
+  children:[
+    {
+      path: '/StockBasicData/stockBasicData',
+      name: 'stockBasicData',
+      component: () => import('../views/StockBasicData/stockBasicData.vue')
+    },
+  ]
+},
+/*----------- 澶х悊鐗囩 ----------------*/
+{
+path: 'Slicecage',
+name: 'Slicecage',
+component: () => import('../views/Slicecage/slicecage.vue'),
+children:[
+  {
+    path: '/Slicecage/slicecage',
+    name: 'slicecage',
+    component: () => import('../views/Slicecage/slicecage.vue')
+  },
+]
+},
+/*----------- 閽㈠寲 ----------------*/
+{
+path: 'PurchaseReturn',
+name: 'purchase',
+component: () => import('../views/PurchaseReturn/purchase.vue'),
+children:[
+  {
+    path: '/PurchaseReturn/purchaseReturn',
+    name: 'purchaseReturn',
+    component: () => import('../views/PurchaseReturn/purchaseReturn.vue')
+  },
+  {
+    path: '/PurchaseReturn/purchaseStorage',
+    name: 'purchaseStorage',
+    component: () => import('../views/PurchaseReturn/purchaseStorage.vue')
+  },
+]
+},
+          /*----------- 涓嬬墖鍙� ----------------*/
+        {
+          path: 'UnLoadGlass',
+          name: 'UnLoadGlass',
+          component: () => import('../views/UnLoadGlass/UnLoadGlass.vue'),
           children:[
             {
-              path: 'createProduct',
-              name: 'createProduct',
-              component: () => import('../views/sd/product/CreateProduct.vue')
+              path: '/UnLoadGlass/loadmachinerack',
+              name: 'loadmachinerack',
+              component: () => import('../views/UnLoadGlass/loadmachinerack.vue')
             },
             {
-              path: 'selectProduct',
-              name: 'selectProduct',
-              component: () => import('../views/sd/product/SelectProduct.vue')
+              path: '/UnLoadGlass/loadmachineracktwo',
+              name: 'loadmachineracktwo',
+              component: () => import('../views/UnLoadGlass/loadmachineracktwo.vue')
             },
             {
-              path: 'test',
-              name: 'test',
-              component: () => import('../views/sd/product/Test.vue')
+              path: '/UnLoadGlass/Landingindication',
+              name: 'Landingindication',
+              component: () => import('../views/UnLoadGlass/Landingindication.vue')
             },
             {
-              path: 'test1',
-              name: 'test1',
-              component: () => import('../views/sd/product/Test11.vue')
-            },
-            {
-              path: 'testSort',
-              name: 'testSort',
-              component: () => import('../views/sd/product/testSort.vue')
-            },
-            {
-              name: 'product',
-              path: '',
-              redirect:'/main/product/selectProduct'
-            }
-          ]
-        },
-        {
-          path: 'order',//璁㈠崟
-          name: 'order',
-          component: () => import('../views/sd/order/Order.vue'),
-          children:[
-            {
-              path: 'selectOrder',
-              name: 'selectOrder',
-              component: () => import('../views/sd/order/SelectOrder.vue'),
-            },
-            {
-              path: 'createOrder',
-              name: 'createOrder',
-              component: () => import('../views/sd/order/CreateOrder.vue'),
-            },
-            {
-              path: 'updateOrderCraft',
-              name: 'updateOrderCraft',
-              component: () => import('../views/sd/order/UpdateOrderCraft.vue'),
-            },
-            {
-              path: 'orderReport',
-              name: 'orderReport',
-              component: () => import('../views/sd/order/OrderReport.vue'),
-            },
-            {
-              path: '',
-              redirect:'/main/order/SelectOrder'
-            }
-          ]
-        },
-        {
-          path: 'delivery',//鍙戣揣
-          name: 'delivery',
-          component: () => import('../views/sd/delivery/Delivery.vue'),
-          children: [
-            {
-              path: 'selectDelivery',
-              name: 'selectDelivery',
-              component: () => import('../views/sd/delivery/SelectDelivery.vue'),
-            },
-            {
-              path: 'selectOrderList',
-              name: 'selectOrderList',
-              component: () => import('../views/sd/delivery/SelectOrderList.vue'),
-            },
-            {
-              path: 'deliveryReport',
-              name: 'deliveryReport',
-              component: () => import('../views/sd/delivery/DeliveryReport.vue'),
-            },
-            {
-              path: 'createDelivery',
-              name: 'createDelivery',
-              component: () => import('../views/sd/delivery/CreateDelivery.vue'),
-            },
-
-
-            {
-              path: '',
-              redirect:'/main/delivery/selectDelivery'
-            }
-          ]
-        },
-        {
-          path: 'returns',//閫�璐�
-          name: 'returns',
-          component: () => import('../views/sd/returns/Returns.vue'),
-          children: [
-            {
-              path: '',
-              redirect:'/main/returns/selectReturns'
-            },
-            {
-              path: 'selectReturns',
-              name: 'selectReturns',
-              component: () => import('../views/sd/returns/SelectReturns.vue'),
-            },
-
-            {
-              path: 'createReturns',
-              name: 'createReturns',
-              component: () => import('../views/sd/returns/CreateReturns.vue'),
-            },
-            {
-              path: 'selectDeliveryList',
-              name: 'selectDeliveryList',
-              component: () => import('../views/sd/returns/SelectDeliveryList.vue'),
-            },
-            {
-              path: 'returnsReport',
-              name: 'returnsReport',
-              component: () => import('../views/sd/returns/ReturnsReport.vue'),
-            }
-
-
-          ]
-        },
-        {
-          path: 'customer',//瀹㈡埛
-          name: 'customer',
-          component: () => import('../views/sd/customer/Customer.vue'),
-          children: [
-            {
-              path: '',
-              redirect:'/main/customer/selectCustomer'
-            },
-            {
-              path: 'selectCustomer',
-              name: 'selectCustomer',
-              component: () => import('../views/sd/customer/SelectCustomer.vue'),
-            },
-            {
-              path: 'createCustomer',
-              name: 'createCustomer',
-              component: () => import('../views/sd/customer/CreateCustomer.vue'),
-            }
-          ]
-        },
-
-          //pp妯″潡
-        {
-          //宸ュ崟绠$悊
-          path: 'workOrder',
-          name: 'workOrder',
-          component: () => import('../views/pp/workOrder/WorkOrder.vue'),
-          children:[
-
-            {
-              path: 'selectAddWorkOrder',
-              name: 'selectAddWorkOrder',
-              component: () => import('../views/pp/workOrder/SelectAddWorkOrder.vue'),
-            },
-            {
-              path: 'releaseWorkOrder',
-              name: 'releaseWorkOrder',
-              component: () => import('../views/pp/workOrder/ReleaseWorkOrder.vue'),
-            },
-            {
-              path: 'addWorkOrder',
-              name: 'addWorkOrder',
-              component: () => import('../views/pp/workOrder/AddWorkOrder.vue'),
-            },
-            {
-              path: 'selectWorkOrder',
-              name: 'selectWorkOrder',
-              component: () => import('../views/pp/workOrder/SelectWorkOrder.vue'),
-            },
-            {
-              path: '',
-              redirect:'/main/workOrder/SelectWorkOrder'
-            }
-          ]
-
-        },
-        {
-          //娴佺▼鍗$鐞�
-          path: 'processCard',
-          name: 'processCard',
-          component: () => import('../views/pp/processCard/ProcessCard.vue'),
-          children:[
-
-            {
-              path: 'addProcessCard',
-              name: 'addProcessCard',
-              component: () => import('../views/pp/processCard/AddProcessCard.vue'),
-            },
-            {
-              path: 'printFlowCard',
-              name: 'printFlowCard',
-              component: () => import('../views/pp/processCard/PrintFlowCard.vue'),
-            },
-            {
-              path: 'selectAddProcess',
-              name: 'selectAddProcess',
-              component: () => import('../views/pp/processCard/SelectAddProcess.vue'),
-            },
-            {
-              path: 'selectPrintFlowCard',
-              name: 'selectPrintFlowCard',
-              component: () => import('../views/pp/processCard/SelectPrintFlowCard.vue'),
-            },
-            {
-              path: 'selectProcessCard',
-              name: 'selectProcessCard',
-              component: () => import('../views/pp/processCard/SelectProcessCard.vue'),
-            },
-            {
-              path: 'processCardDetails',
-              name: 'processCardDetails',
-              component: () => import('../views/pp/processCard/ProcessCardDetails.vue'),
-            },
-            {
-              path: 'splittingDetails',
-              name: 'splittingDetails',
-              component: () => import('../views/pp/processCard/SplittingDetails.vue'),
-            },
-            {
-              path: 'printProcess',
-              name: 'printProcess',
-              component: () => import('../views/pp/processCard/PrintProcess.vue'),
-            },
-            {
-              path: 'productionScheduling',
-              name: 'productionScheduling',
-              component: () => import('../views/pp/processCard/ProductionScheduling.vue'),
-            },
-            {
-              path: '',
-              redirect:'/main/processCard/SelectProcessCard'
-            }
-          ]
-
-        },
-        {
-          //鎶ュ伐绠$悊
-          path: 'reportingWorks',
-          name: 'reportingWorks',
-          component: () => import('../views/pp/reportingWorks/ReportingWorks.vue'),
-          children:[
-
-            {
-              path: 'selectReportingWorks',
-              name: 'selectReportingWorks',
-              component: () => import('../views/pp/reportingWorks/SelectReportingWorks.vue'),
-            },
-            {
-              path: 'addReportingWork',
-              name: 'addReportingWork',
-              component: () => import('../views/pp/reportingWorks/AddReportingWork.vue'),
-            },
-            {
-              path: 'qualityInspectionReview',
-              name: 'qualityInspectionReview',
-              component: () => import('../views/pp/reportingWorks/QualityInspectionReview.vue'),
-            },
-            {
-              path: 'reportingWorkDetail',
-              name: 'reportingWorkDetail',
-              component: () => import('../views/pp/reportingWorks/ReportingWorkDetail.vue'),
-            },
-            {
-              path: 'qualityInReviewDetail',
-              name: 'qualityInReviewDetail',
-              component: () => import('../views/pp/reportingWorks/QualityInReviewDetail.vue'),
-            },
-            {
-              path: '',
-              redirect:'/main/reportingWorks/SelectReportingWorks'
-            }
-          ]
-        },
-        {
-          //琛ョ墖绠$悊
-          path: 'replenish',
-          name: 'replenish',
-          component: () => import('../views/pp/Replenish/Replenish.vue'),
-          children:[
-
-            {
-              path: 'addReplenish',
-              name: 'addReplenish',
-              component: () => import('../views/pp/Replenish/AddReplenish.vue'),
-            },
-            {
-              path: 'printReplenishFlowCard',
-              name: 'printReplenishFlowCard',
-              component: () => import('../views/pp/Replenish/PrintReplenishFlowCard.vue'),
-            },
-            {
-              path: 'selectReplenish',
-              name: 'selectReplenish',
-              component: () => import('../views/pp/Replenish/SelectReplenish.vue'),
-            },
-            {
-              path: '',
-              redirect:'/main/Replenish/SelectReplenish'
-            }
-          ]
-        },
-        {
-          //杩斿伐绠$悊
-          path: 'rework',
-          name: 'rework',
-          component: () => import('../views/pp/Rework/Rework.vue'),
-          children:[
-
-            {
-              path: 'addRework',
-              name: 'addRework',
-              component: () => import('../views/pp/Rework/AddRework.vue'),
-            },
-            {
-              path: 'selectRework',
-              name: 'selectRework',
-              component: () => import('../views/pp/Rework/SelectRework.vue'),
-            },
-            {
-              path: '',
-              redirect:'/main/Rework/SelectRework'
-            }
-          ]
-        },
-        {
-          //BOM绠$悊
-          path: 'BOM',
-          name: 'BOM',
-          component: () => import('../views/pp/BOM/BOM.vue'),
-          children:[
-            {
-              path: 'benchmarkBOM',
-              name: 'benchmarkBOM',
-              component: () => import('../views/pp/BOM/BenchmarkBOM.vue'),
-            },
-            {
-              path: 'standardBOM',
-              name: 'standardBOM',
-              component: () => import('../views/pp/BOM/StandardBOM.vue'),
-            },
-            {
-              path: 'orderBOM',
-              name: 'orderBOM',
-              component: () => import('../views/pp/BOM/OrderBOM.vue'),
-            },
-            {
-              path: 'selectBOM',
-              name: 'selectBOM',
-              component: () => import('../views/pp/BOM/SelectBOM.vue'),
-            },
-            {
-              path: 'orderBOMDetails',
-              name: 'orderBOMDetails',
-              component: () => import('../views/pp/BOM/OrderBOMDetails.vue'),
-            },
-            {
-              path: 'standardBOMDetail',
-              name: 'standardBOMDetail',
-              component: () => import('../views/pp/BOM/StandardBOMDetail.vue'),
-            },
-            {
-              path: '',
-              redirect:'/main/BOM/SelectBOM'
-            }
-          ]
-        },
-        {
-          //璁惧绠$悊
-          path: 'machine',
-          name: 'machine',
-          component: () => import('../views/pp/machine/Machine.vue'),
-          children:[
-            {
-              path: 'selectMachine',
-              name: 'selectMachine',
-              component: () => import('../views/pp/machine/SelectMachine.vue'),
-            },
-            {
-              path: 'addMachine',
-              name: 'addMachine',
-              component: () => import('../views/pp/machine/AddMachine.vue'),
-            },
-            {
-              path: 'maintenanceAndRepair',
-              name: 'maintenanceAndRepair',
-              component: () => import('../views/pp/machine/MaintenanceAndRepair.vue'),
-            },
-            {
-              path: 'addMaintenanceAndRepair',
-              name: 'addMaintenanceAndRepair',
-              component: () => import('../views/pp/machine/AddMaintenanceAndRepair.vue'),
-            },
-            {
-              path: '',
-              redirect:'/main/machine/SelectMachine'
-            }
-          ]
-        },
-        {
-          //鎶ヨ〃绠$悊
-          path: 'report',
-          name: 'report',
-          component: () => import('../views/pp/report/Report.vue'),
-          children:[
-            {
-              //璁惧浜ч噺
-              path: 'equipmentOutput',
-              name: 'equipmentOutput',
-              component: () => import('../views/pp/report/EquipmentOutput.vue'),
-            },
-            {
-              //璁㈠崟BOM
-              path: 'orderBOMOutside',
-              name: 'orderBOMOutside',
-              component: () => import('../views/pp/report/OrderBOMOutside.vue'),
-            },
-            {
-              //璁㈠崟璁″垝鍒嗚В
-              path: 'orderPlanDecomposition',
-              name: 'orderPlanDecomposition',
-              component: () => import('../views/pp/report/OrderPlanDecomposition.vue'),
-            },
-            {
-              //宸ュ簭寰呭畬鎴�
-              path: 'processToBeCompleted',
-              name: 'processToBeCompleted',
-              component: () => import('../views/pp/report/ProcessToBeCompleted.vue'),
-            },
-            {
-              //鐢熶骇杩涘害
-              path: 'productionSchedule',
-              name: 'productionSchedule',
-              component: () => import('../views/pp/report/ProductionSchedule.vue'),
-            },
-            {
-              //娴佺▼鍗¤繘搴�
-              path: 'processCardProgress',
-              name: 'processCardProgress',
-              component: () => import('../views/pp/report/ProcessCardProgress.vue'),
-            },
-            {
-              //鍝佽川鎶ヨ〃
-              path: 'qualityReport',
-              name: 'qualityReport',
-              component: () => import('../views/pp/report/QualityReport.vue'),
-            },
-            {
-              //鍘熺墖棰嗘枡鎶ヨ〃
-              path: 'rawMaterialRequisition',
-              name: 'rawMaterialRequisition',
-              component: () => import('../views/pp/report/RawMaterialRequisition.vue'),
-            },
-            {
-              //鍒嗘灦鏄庣粏
-              path: 'splittingDetailsOutside',
-              name: 'splittingDetailsOutside',
-              component: () => import('../views/pp/report/SplittingDetailsOutside.vue'),
-            },
-            {
-              //浠诲姟瀹屾垚鎯呭喌
-              path: 'taskCompletionStatus',
-              name: 'taskCompletionStatus',
-              component: () => import('../views/pp/report/TaskCompletionStatus.vue'),
-            },
-            {
-              //鐝粍浜ч噺
-              path: 'teamOutput',
-              name: 'teamOutput',
-              component: () => import('../views/pp/report/TeamOutput.vue'),
-            },
-            {
-              //鍦ㄥ埗鍝佹姤琛�
-              path: 'workInProgress',
-              name: 'workInProgress',
-              component: () => import('../views/pp/report/WorkInProgress.vue'),
-            },
-            {
-              //鎴愬搧鐜囨姤琛�
-              path: 'yield',
-              name: 'yield',
-              component: () => import('../views/pp/report/Yield.vue'),
-            },
-            {
-              //娆$牬鎶ヨ〃
-              path: 'damageReport',
-              name: 'damageReport',
-              component: () => import('../views/pp/report/DamageReport.vue'),
-            },
-            // {
-            //   path: '',
-            //   redirect:'/main/report/ProductionSchedule'
-            // }
-          ]
-        },
-
-
-
-
-          //mm妯″潡
-        {
-          path: 'productStock',
-          name: 'productStock',
-          component: () => import('../views/mm/mainProductStock/ProductStock.vue'),
-          children:[
-            {
-              // 鎴愬搧搴撳瓨
-              path: 'productStockList',
-              name: 'productStockList',
-              component: () => import('../views/mm/mainProductStock/ProductStockList.vue'),
-            },
-            {
-              // 鎴愬搧鍏ュ簱
-              path: 'createProductStock',
-              name: 'createProductStock',
-              component:()=>   import('../views/mm/mainProductStock/CreateProductStock.vue'),
-            },
-            {
-              // 鎴愬搧鍑哄簱
-              path: 'finishedProductOut',
-              name: 'finishedProductOut',
-              component:()=>import('../views/mm/mainProductStock/FinishedProductOut.vue')
-            },
-            {
-              // 鎴愬搧鍑哄簱
-              path: 'finishedProductReturn',
-              name: 'finishedProductReturn',
-              component:()=>import('../views/mm/mainProductStock/FinishedProductReturn.vue')
-            },
-            {
-              // 璁㈠崟璋冩嫧
-              path: 'orderAllocation',
-              name: 'orderAllocation',
-              component:()=>import('../views/mm/mainProductStock/OrderAllocation.vue'),
-            },
-            {
-              // 鎴愬搧棰嗗嚭
-              path: 'finishedGoodsIssue',
-              name: 'finishedGoodsIssue',
-              component:()=>import('../views/mm/mainProductStock/FinishedGoodsIssue.vue'),
-            },
-            {
-              // 鎴愬搧杩斿伐
-              path: 'finishedProductRework',
-              name: 'finishedProductRework',
-              component:()=>import('../views/mm/mainProductStock/FinishedProductRework.vue'),
-            },
-            {
-              // 璋冩嫧璁板綍
-              path: 'transferRecord',
-              name: 'transferRecord',
-              component:()=>import('../views/mm/mainProductStock/TransferRecord.vue'),
-            },
-            {
-              // 棰嗗嚭璁板綍
-              path: 'takeOutRecord',
-              name: 'takeOutRecord',
-              component:()=>import('../views/mm/mainProductStock/TakeOutRecord.vue'),
-            },
-            {
-              // 杩斿伐璁板綍
-              path: 'reworkRecord',
-              name: 'reworkRecord',
-              component:()=>import('../views/mm/mainProductStock/ReworkRecord.vue'),
-            },
-
-            {
-              path: '',
-              redirect:'/main/productStock/ProductStockList'
-            }
-          ]
-        },
-
-
-
-
-
-        {
-          // 鐗╂枡璧勬枡
-          path:'ingredients',
-          name:'ingredients',
-          component: () => import('../views/mm/mainIngredient/Ingredients.vue'),
-          children:[
-            {
-              path: 'selectIngredients',
-              name: 'selectIngredients',
-              component:()=>import('../views/mm/mainIngredient/SelectIngredients.vue')
-            },
-            {
-              path: 'createIngredients',
-              name: 'createIngredients',
-              component:()=>import('../views/mm/mainIngredient/CreateIngredients.vue')
-            },
-            {
-              path: '',
-              redirect:'/main/ingredients/SelectIngredients'
-            }
-          ]
-        },
-
-
-
-
-        {
-          // 鐗╂枡搴撳瓨
-          path:'ingredientsStock',
-          name:'ingredientsStock',
-          component: () => import('../views/mm/mainIngredientStock/IngredientsStock.vue'),
-          children:[
-            {
-              path: 'selectIngredientsStock',
-              name: 'selectIngredientsStock',
-              component:()=>import('../views/mm/mainIngredientStock/SelectIngredientsStock.vue')
-            },
-
-            {
-              path: 'accessoriesMonthlySettlement',
-              name: 'accessoriesMonthlySettlement',
-              component:()=>import('../views/mm/mainIngredientStock/AccessoriesMonthlySettlement.vue')
-            },
-            {
-              path: 'originalMonthlySettlement',
-              name: 'originalMonthlySettlement',
-              component:()=>import('../views/mm/mainIngredientStock/OriginalMonthlySettlement.vue')
-            },
-            //   鐗╂枡鍑哄簱
-            {
-              path: 'materialOutbound',
-              name: 'materialOutbound',
-              component:()=>import('../views/mm/mainIngredientStock/MaterialOutbound.vue')
-            },
-              //鍑哄簱鏂板
-            {
-              path:'createOutBound',
-              name:'createOutBound',
-              component:()=>import('../views/mm/mainIngredientStock/CreateOutBound.vue')
-            },
-            //杩斿簱
-            {
-              path:'returnToStorage',
-              name:'returnToStorage',
-              component:()=>import('../views/mm/mainIngredientStock/ReturnToStorage.vue')
-            },
-
-            //杩斿簱鏂板
-            {
-              path:'returnToStorageCreate',
-              name:'returnToStorageCreate',
-              component:()=>import('../views/mm/mainIngredientStock/ReturnToStorageCreate.vue')
-            },
-            {
-              path: '',
-              redirect:'/main/ingredientsStock/SelectIngredientsStock'
-            }
-          ]
-        },
-
-
-
-
-
-        {
-          // 渚涘簲鍟嗙鐞嗭紒锛侊紒
-          path:'trader',
-          name:'trader',
-          component: () => import('../views/mm/mainTrader/Trader.vue'),
-          children:[
-            {
-              path: 'selectTrader',
-              name: 'selectTrader',
-              component:()=>import('../views/mm/mainTrader/SelectTrader.vue')
-            },
-            {
-              path: 'createTrader',
-              name: 'createTrader',
-              component:()=>import('../views/mm/mainTrader/CreateTrader.vue')
-            },
-            {
-              path: '',
-              redirect:'/main/trader/SelectTrader'
-            }
-          ]
-        },
-        /*------------- sunshiqiang Add --*/
-        {
-          /*----------- 浠撳偍鎶ヨ〃 ----------------*/
-          path: 'stockReport',
-          name: 'stockReport',
-          component: () => import('../views/mm/stockReport/stockReport.vue'),
-          children:[
-            {
-              path: 'WarehouseReport',
-              name: 'WarehouseReport',
-              component: () => import('../views/mm/stockReport/WarehouseReport.vue'),
-            }, {
-              path: 'StockMonthReport',
-              name: 'StockMonthReport',
-              component: () => import('../views/mm/stockReport/StockMonthReport.vue'),
-            }, {
-              path: 'SubsidiaryMonthReport',
-              name: 'SubsidiaryMonthReport',
-              component: () => import('../views/mm/stockReport/SubsidiaryMonthReport.vue'),
-            },
-            /*----------- 鏂板 ----------------*/
-            {
-              path: 'StockWarehouseReport',
-              name: 'StockWarehouseReport',
-              component: () => import('../views/mm/stockReport/StockWarehouseReport.vue'),
-            }, {
-              path: '',
-              redirect: '/main/stockReport/WarehouseReport'
-            }
-          ]
-        },
-        {
-          /*----------- 閲囪喘璁㈠崟 ----------------*/
-          path: 'purchaseOrder',
-          name: 'purchaseOrder',
-          component: () => import('../views/mm/purchaseOrder/PurchaseOrder.vue'),
-          children: [
-            {
-              path: 'SelectPurchaseOrder',
-              name: 'SelectPurchaseOrder',
-              component: () => import('../views/mm/purchaseOrder/Select.vue'),
-            }, {
-              path: 'CreatePurchaseOrder',
-              name: 'CreatePurchaseOrder',
-              component: () => import('../views/mm/purchaseOrder/Create.vue')
-            },
-            /*----------- 鏂板 ----------------*/
-            {
-              path: 'PaymentPurchaseOrder',
-              name: 'PaymentPurchaseOrder',
-              component: () => import('../views/mm/purchaseOrder/Payment.vue')
-            },
-            /*----------- 閫�璐� ----------------*/
-            {
-              path: 'ReturnPurchaseOrder',
-              name: 'ReturnPurchaseOrder',
-              component: () => import('../views/mm/purchaseOrder/Return.vue')
-            },
-            /*----------- 鍏ュ簱 ----------------*/
-            {
-              path: 'StoragePurchaseOrder',
-              name: 'StoragePurchaseOrder',
-              component: () => import('../views/mm/purchaseOrder/Storage.vue')
-            },
-            {
-              path: '',
-              redirect: '/main/purchaseOrder/SelectPurchaseOrder'
-            }
-          ]
-        },
-        {
-          /*----------- 閲囪喘鍏ュ簱 ----------------*/
-          path: 'purchaseStorage',
-          name: 'purchaseStorage',
-          component: () => import('../views/mm/purchaseStorage/PurchaseStorage.vue'),
-          children: [
-            {
-              path: 'SelectPurchaseStorage',
-              name: 'SelectPurchaseStorage',
-              component: () => import('../views/mm/purchaseStorage/Select.vue'),
-            },
-            {
-              path: '',
-              redirect: '/main/purchaseStorage/SelectPurchaseStorage'
-            }
-          ]
-        },
-        {
-          /*----------- 閲囪喘閫�璐� ----------------*/
-          path: 'purchaseReturn',
-          name: 'purchaseReturn',
-          component: () => import('../views/mm/purchaseReturn/PurchaseReturn.vue'),
-          children: [
-            {
-              path: 'SelectPurchaseReturn',
-              name: 'SelectPurchaseReturn',
-              component: () => import('../views/mm/purchaseReturn/Select.vue'),
-            },
-            {
-              path: '',
-              redirect: '/main/purchaseReturn/SelectPurchaseReturn'
+              path: '/UnLoadGlass/Landingindicationtwo',
+              name: 'Landingindicationtwo',
+              component: () => import('../views/UnLoadGlass/Landingindicationtwo.vue')
             }
           ]
         },
         {
           path: '',
-          redirect:'/main/order'
+          redirect:'/Slicecage/slicecage'
         }
       ]
     },
diff --git a/UI-Project/src/utils/unloadrequest.js b/UI-Project/src/utils/unloadrequest.js
new file mode 100644
index 0000000..bdaeeb5
--- /dev/null
+++ b/UI-Project/src/utils/unloadrequest.js
@@ -0,0 +1,49 @@
+import axios from 'axios'
+import config from '../../config';
+import useUserInfoStore from '@/stores/userInfo'
+const userStore=useUserInfoStore()
+const unloadrequest = axios.create({
+    baseURL: `http://${config.serverUrl2}`,  // 娉ㄦ剰锛侊紒 杩欓噷鏄叏灞�缁熶竴鍔犱笂浜� 鍚庣鎺ュ彛鍓嶇紑 鍓嶇紑锛屽悗绔繀椤昏繘琛岃法鍩熼厤缃紒
+    timeout: 5000
+})
+
+//
+
+// request 鎷︽埅鍣�
+// 鍙互鑷姹傚彂閫佸墠瀵硅姹傚仛涓�浜涘鐞�
+// 姣斿缁熶竴鍔爐oken锛屽璇锋眰鍙傛暟缁熶竴鍔犲瘑
+unloadrequest.interceptors.request.use(config => {
+    config.headers['Content-Type'] = 'application/json;charset=utf-8';
+    if(userStore.user){
+        config.headers['token'] = userStore.user.token;
+    }
+      // 璁剧疆璇锋眰澶�
+    return config
+}, error => {
+    return Promise.reject(error)
+});
+
+// response 鎷︽埅鍣�
+// 鍙互鍦ㄦ帴鍙e搷搴斿悗缁熶竴澶勭悊缁撴灉
+unloadrequest.interceptors.response.use(
+    response => {
+        let res = response.data;
+        // 濡傛灉鏄繑鍥炵殑鏂囦欢
+        if (response.config.responseType === 'blob') {
+            return res
+        }
+        // 鍏煎鏈嶅姟绔繑鍥炵殑瀛楃涓叉暟鎹�
+        if (typeof res === 'string') {
+            res = res ? JSON.parse(res) : res
+        }
+        return res;
+    },
+    error => {
+        console.log('err' + error) // for debug
+        return Promise.reject(error)
+    }
+)
+
+
+export default unloadrequest
+
diff --git a/UI-Project/src/utils/webSocket.js b/UI-Project/src/utils/webSocket.js
index 779990b..51e5ede 100644
--- a/UI-Project/src/utils/webSocket.js
+++ b/UI-Project/src/utils/webSocket.js
@@ -6,7 +6,7 @@
 
 
 var serverPort = "/ws"; // webSocket杩炴帴绔彛
-var wsuri = "ws://127.0.0.1:12345/ws";
+var wsuri = "ws://localhost:8081/mesModuleTools";
 
 function createWebSocket(callback) {
 
diff --git a/UI-Project/src/views/Caching/caching.vue b/UI-Project/src/views/Caching/caching.vue
new file mode 100644
index 0000000..b166446
--- /dev/null
+++ b/UI-Project/src/views/Caching/caching.vue
@@ -0,0 +1,766 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    type: '1200',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '1200'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '1200'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '1200'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  }
+]
+const tableDataa = [
+  {
+    ida: '3',
+    longa: '1005',
+    widea: '183.6',
+    thicka: '1991',
+  },
+  {
+    ida: '4',
+    longa: '105',
+    widea: '183',
+    thicka: '191',
+  }
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+</script>
+
+<template>
+  <div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 240px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="鐜荤拑ID" min-width="80" />
+          <el-table-column prop="long" align="center" label="浣嶇疆" min-width="120" />
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="type" align="center" label="闀�" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">鎶ョ己</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  <div id="awatch">
+    <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;">
+
+</div>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/HomeView.vue b/UI-Project/src/views/HomeView.vue
index 075c71e..6285749 100644
--- a/UI-Project/src/views/HomeView.vue
+++ b/UI-Project/src/views/HomeView.vue
@@ -3,21 +3,21 @@
 
 import { sendSock, createWebSocket, closeSock } from "@/utils/webSocket"
 
-function global_callback(msg) {
-  console.log("websocket鐨勫洖璋冨嚱鏁版敹鍒版湇鍔″櫒淇℃伅锛�" + JSON.stringify(msg));
-  // console.log("鏀跺埌鏈嶅姟鍣ㄤ俊鎭細" + msg);
-}
-function close(){
- closeSock();
+// function global_callback(msg) {
+//   console.log("websocket鐨勫洖璋冨嚱鏁版敹鍒版湇鍔″櫒淇℃伅锛�" + JSON.stringify(msg));
+//   // console.log("鏀跺埌鏈嶅姟鍣ㄤ俊鎭細" + msg);
+// }
+// function close(){
+//  closeSock();
 
-}
-function sendMessage(){
-  sendSock("123")
-}
-function createSocket(){
-  createWebSocket(global_callback);
-}
-</script>
+// }
+// function sendMessage(){
+//   sendSock("123")
+// }
+// function createSocket(){
+//   createWebSocket(global_callback);
+// }
+// </script>
 
 
 <template>
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
new file mode 100644
index 0000000..92ec074
--- /dev/null
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -0,0 +1,174 @@
+<template>
+  <el-card style="margin-left: 10px; margin-top: 10px; margin-right: 10px;" v-loading="loading">
+    <div style="display: flex;">
+      <div style="margin-left: 400px; font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
+      <div style="margin-left: 150px; font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
+    </div>
+    <svg width="100%" height="690" xmlns="http://www.w3.org/2000/svg" style="margin-top: -40px;">
+      <defs>
+            <marker id="arrow" markerUnits="strokeWidth" markerWidth="12" markerHeight="12" viewBox="0 0 12 12" refX="6"
+                refY="6" orient="auto">
+                <path d="M2,2 L10,6 L2,10 L2,2" style="fill: #911005;" />
+            </marker>
+        </defs>
+      <g v-for="(rack, index) in racks" :key="index">
+        <rect 
+          :x="rack.x" 
+          :y="rack.y" 
+          :width="rack.width" 
+          :height="rack.height" 
+          :fill="rack.fillColor" 
+          :data-index="index" 
+          class="rack-rect" 
+          style="stroke:#c8c9cc;stroke-width:3;"
+          @click="showRectInfo(rack)"
+        />
+        <line x1='510' y1='309' x2='260' y2='310' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
+        </line>
+        <line x1='850' y1='309' x2='1100' y2='310' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
+        </line>
+        <line x1='510' y1='409' x2='260' y2='410' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
+        </line>
+        <line x1='1200' y1='650' x2='1200' y2='470' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
+        </line>
+        <text x="370" y="240" dominant-baseline="middle" text-anchor="middle">NG2024030501A-01</text> 
+        <text x="370" y="260" dominant-baseline="middle" text-anchor="middle">500*300</text> 
+
+        <text x="970" y="240" dominant-baseline="middle" text-anchor="middle">NG2024030501A-02</text> 
+        <text x="970" y="260" dominant-baseline="middle" text-anchor="middle">500*300</text> 
+
+        <text x="600" y="500" dominant-baseline="middle" text-anchor="middle">NG2024030501A-03</text> 
+        <text x="600" y="520" dominant-baseline="middle" text-anchor="middle">800*450</text> 
+
+        
+        <text x="1280" y="520" dominant-baseline="middle" text-anchor="middle">NG2024030501A-04</text> 
+        <text x="1280" y="540" dominant-baseline="middle" text-anchor="middle">400*300</text> 
+        <g v-for="(item, itemIndex) in rack.items" :key="itemIndex">
+          <rect 
+            :x="calculateItemXPosition(rack, item, itemIndex)" 
+            :y="calculateItemYPosition(rack, item, itemIndex)" 
+            :width="item.width" 
+            :height="item.height" 
+            :fill="item.fillColor"
+          />
+        </g>
+      </g>
+    </svg>
+  </el-card>
+</template>
+
+<script>
+import Swal from 'sweetalert2'
+export default {
+  data() {
+    return {
+      loading: false,
+      racks: [
+        { 
+          x: 70, y: 126, width: 600, height: 240, fillColor: '#93d2f3', 
+          items: [
+            { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456',y: '20'},
+            { position: 'bottom-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' },
+            { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG12345678' }
+          ]
+        },
+        { 
+          x: 685, y: 126, width: 600, height: 240,  fillColor: '#93d2f3', 
+          items: [
+            { position: 'bottom-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+            { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+            { position: 'top-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' }
+          ]
+        },
+        { 
+          x: 70, y: 380, width: 1100, height: 260, fillColor: '#81b337', 
+          items: [
+            { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+            { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+            { position: 'top-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' }
+          ]
+        },
+        { 
+          x: 1185, y: 380, width: 200, height: 300,fillColor: '#81b337', 
+          items: [
+            { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+            { position: 'top-right',width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
+            { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' },
+          ]
+        }
+        
+        // Add more racks and items here as needed
+      ],
+    };
+  },
+  
+  methods: {
+    calculateItemXPosition(rack, item, index) {
+      if (item.position === 'top-right' || item.position === 'bottom-right') {
+        return Math.min(rack.x + rack.width - item.width, rack.x + rack.width);
+      } else {
+        return rack.x;
+      }
+    },
+    
+    calculateItemYPosition(rack, item, index) {
+      if (item.position === 'bottom-left' || item.position === 'bottom-right') {
+        return Math.min(rack.y + rack.height - item.height, rack.y + rack.height);
+      } else {
+        return rack.y;
+      }
+    },
+    
+    showCustomAlert(content) {
+      Swal.fire({
+    // type: 'warning', // 寮规绫诲瀷
+    title: '璇ョ墖鐜荤拑鐘舵��', //鏍囬
+    // text: "娉ㄩ攢鍚庡皢鏃犳硶鎭㈠锛岃璋ㄦ厧鎿嶄綔锛�", //鏄剧ず鍐呭            
+
+    confirmButtonColor: '#3085d6',// 纭畾鎸夐挳鐨� 棰滆壊
+    confirmButtonText: '浜哄伐鎷胯蛋',// 纭畾鎸夐挳鐨� 鏂囧瓧
+    showCancelButton: true, // 鏄惁鏄剧ず鍙栨秷鎸夐挳
+    cancelButtonColor: '#d33', // 鍙栨秷鎸夐挳鐨� 棰滆壊
+    cancelButtonText: "鐮存崯", // 鍙栨秷鎸夐挳鐨� 鏂囧瓧
+
+    // focusCancel: true, // 鏄惁鑱氱劍 鍙栨秷鎸夐挳
+    reverseButtons: true  // 鏄惁 鍙嶈浆 涓や釜鎸夐挳鐨勪綅缃� 榛樿鏄�  宸﹁竟 纭畾  鍙宠竟 鍙栨秷
+}).then((isConfirm) => {
+    try {
+        //鍒ゆ柇 鏄惁 鐐瑰嚮鐨� 纭畾鎸夐挳
+        if (isConfirm.value) {
+            Swal.fire("浜哄伐鎷胯蛋", "鐐瑰嚮浜嗕汉宸ユ嬁璧�", "success");
+        }
+        else {
+            Swal.fire("鐮存崯", "鐐瑰嚮浜嗙牬鎹�", "error");
+        }
+    } catch (e) {
+        alert(e);
+    }
+});
+    },
+    
+    showRectInfo(rectInfo) {
+      const contents = rectInfo.items.map(item => item.content).join(', ');
+      this.$nextTick(() => {
+        this.showCustomAlert(contents);
+      });
+    },
+  }
+};
+</script>
+
+<style scoped>
+.glass-rack {
+  width: 100%;
+  height: 80vh;
+}
+.rack-rect:hover {
+  cursor: pointer;
+}
+.custom-popover-class {
+  background-color: lightgrey;
+  color: black;
+  border: 1px solid black;
+}
+</style>
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 154d12b..d949ca3 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -98,11 +98,19 @@
 <template>
   <div class="mainDiv" >
     <div id="main-login">
-      <div id="img-div">
-        <img id="img-pic" src="@/assets/img.png" alt="">
+      <!-- <img
+        style="width: 100%; height: 99vh"
+        src="../../src/assets/background.jpg"
+      /> -->
+      <div>
+      <div style="position: absolute; left: 8vw; top: 6vw; ">
+        <img src="../../src/assets/3.png">
+      </div> 
+       <div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
+        鍖楃幓MES绯荤粺
       </div>
+    </div>
       <div id="div-login">
-        <h2>鍖楃幓鑷姩鍖朎RP绠$悊绯荤粺</h2>
         <el-form
             @submit.native.prevent
             ref="ruleFormRef"
@@ -110,41 +118,50 @@
             status-icon
             :rules="rules"
         >
-          <el-form-item label="鐢ㄦ埛锛�" prop="userId">
+        <div id="center">
+            <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">璐﹀彿</div>
+          <el-form-item prop="userId">
             <el-input
+            style="width: 340px;"
                 v-model="userForm.userId"
                 type="text"
                 autocomplete="off"
                 :prefix-icon="Avatar"
-                placeholder="璇疯緭鍏ヤ綘鐨勮处鍙�"
+                placeholder="璇疯緭鍏ヨ处鍙�"
             />
           </el-form-item>
-          <el-form-item label="瀵嗙爜锛�" prop="pass">
+            <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">瀵嗙爜</div>
+          <el-form-item prop="pass">
             <el-input
+            style="width: 340px;"
                 v-model="userForm.pass"
                 type="password"
                 autocomplete="off"
                 :prefix-icon="Lock"
-                placeholder="璇疯緭鍏ヤ綘鐨勫瘑鐮�"
+                show-password
+                placeholder="璇疯緭鍏ュ瘑鐮�"
             />
           </el-form-item>
           <el-form-item id="submitForm">
-            <el-button
-                :loading="registerLoadings"
-                type="primary"
-                @click="register"
-            >娉ㄥ唽
-            </el-button>
             <el-button
                 :loading="loginLoadings"
                 type="primary"
                 native-type="submit"
                 @click="submitForm(ruleFormRef)"
                 @keyup.enter.native="keyDown(e)"
+                plain
             >鐧诲綍
+            </el-button>
+            <el-button
+                :loading="registerLoadings"
+                type="primary"
+                @click="register"
+                plain
+            >娉ㄥ唽
             </el-button>
 
           </el-form-item>
+        </div>
         </el-form>
       </div>
     </div>
@@ -154,16 +171,15 @@
 
 <style scoped>
 .mainDiv{
-  //background-color: #1890FF;
   overflow: hidden;
   min-width: 718px;
+  background-image: url("../../src/assets/background.jpg");
+
 }
 #main-login{
   margin: 150px auto 0 auto;
-  height: 60vh;
-  width: 70vw;
-
-  //background-color: #f2f2f2;
+  height: 70vh;
+  width: 80vw;
 }
 #img-div{
   width: 55%;
@@ -179,23 +195,22 @@
 }
 #div-login{
   margin-top: 5%;
+  /* margin-top: 20%; */
+  /* margin-left: 650px; */
   background-color: #fff;
   float: right;
   width: 40%;
-  height: 80%;
-  border-radius: 12px;
+  height: 60%;
   min-width: 318px;
+  border-radius: 4px;
   box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
 }
-h2{
-  color: #1890FF;
-  width: 100%;
-  text-align: center;
-  margin-top: 20%;
+#center{
+  margin-top: -30px;
 }
 .el-form{
-  width: 50%;
-  margin: 5% auto auto;
+  width: 60%;
+  margin: 20% auto auto;
 }
 #submitForm {
   display: flex;
diff --git a/UI-Project/src/views/PurchaseReturn/purchase.vue b/UI-Project/src/views/PurchaseReturn/purchase.vue
new file mode 100644
index 0000000..d0567d3
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchase.vue
@@ -0,0 +1,49 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+
+</script>
+
+<template>
+  <!-- <div id="main-div"> -->
+   
+
+    <div id="main-body">
+      <router-view  />
+    </div>
+  <!-- </div> -->
+</template>
+
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
new file mode 100644
index 0000000..38963a3
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -0,0 +1,174 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+
+import { ref } from 'vue'
+
+const dialogFormVisible = ref(true)
+const dialogFormVisiblea = ref(false)
+
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+    }
+  ],
+})
+</script>
+
+<template>
+  <div style="margin-top: 10px;">
+     <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false">鎽嗙墖鐗堝浘</el-button>
+    <el-button  id="searchButton" type="success" @click="dialogFormVisiblea = true;dialogFormVisible = false">宸插嚭鐐夌幓鐠�</el-button>
+<div v-if="dialogFormVisible" >
+    <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+      <div style="display: flex;margin-bottom: 20px;">
+      <div style="margin-left: 400px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
+      <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
+    </div>
+    <div>
+            <div id="boxa" style="width: 400px;height: 120px;margin-left: 260px;">
+              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
+            <div> 500脳1500</div>
+          </div>
+            <div id="boxa" style="width: 400px;height: 120px;">
+              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
+            <div> 500脳1500</div>
+          </div>
+    </div>
+    <div style="margin-top: 20px;">
+            <div id="boxa" style="width: 400px;height: 120px;margin-left: 260px;">
+              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
+            <div> 500脳1500</div>
+          </div>
+            <div id="boxb" style="width: 400px;height: 120px;">
+              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
+            <div> 500脳1500</div>
+          </div>
+    </div>
+    </el-card>
+    </div>
+<div v-if="dialogFormVisiblea">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+      <el-scrollbar height="630px">
+      <div id="home-card">
+      <div id="home-item" v-for="n in 20" :key="n">
+            <div id="box" style="width: 100px;height: 165px;">100*65</div>
+            <div id="box" style="width: 107px;height: 150px;">107*60</div>
+            <div id="box" style="width: 107px;height: 155px;">109*60</div>
+      </div>
+    </div>
+  </el-scrollbar>
+    </el-card>
+</div>
+  </div>
+
+</template>
+
+<style scoped>
+#boxa{
+  border: 1px solid rgb(119, 116, 116);
+  background-color:  #529b2e;
+  text-align: center;
+  display: inline-block;
+	/* align-items:center; */
+	/* justify-content:center; */
+  margin-left: 20px;
+}
+#boxb{
+  border: 1px solid rgb(119, 116, 116);
+  background-color:  #a0cfff;
+  /* display:flex; */
+  text-align: center;
+  display: inline-block;
+	align-items:center;
+	justify-content:center;
+  margin-left: 20px;
+}
+#box{
+  border: 1px solid black;
+  background-color:  #337ecc;
+  display:flex;
+	align-items:center;
+	justify-content:center;
+}
+#home-card {
+    width: 100%;
+    overflow: hidden;
+    padding: 10px 0px;
+    display: flex;
+    flex-wrap: wrap;
+    #home-item {
+      border-style: solid;
+      border-width: 1px;
+      border-color: #E4E4E4;
+      width: calc(34% - 20px);
+      padding: 20px 0px 20px 20px;
+      margin-right: 10px;
+      margin-bottom: 10px;
+      display: flex;
+      justify-content: center;
+      /* align-items: center; */
+      background: #fff;
+      #home-img {
+        display: inline-block;
+        width: 160px;
+        height: 60px;
+        margin: 0;
+        padding: 0;
+      }
+      #home-right {
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: flex-start;
+        margin-left: 10px;
+        #home-num {
+          font-size: 40px;
+          margin: 5px 0;
+        }
+      }
+    }
+  }
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
new file mode 100644
index 0000000..11f2545
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -0,0 +1,90 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+
+import { ref } from 'vue'
+
+const dialogFormVisible = ref(true)
+const dialogFormVisiblea = ref(false)
+
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+    }
+  ],
+})
+</script>
+
+<template>
+  <div style="margin-top: 10px;">
+<div>
+    <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+      <div style="display: flex;margin-top: 20px;">
+      <div style="margin-left: 400px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
+      <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
+    </div>
+    <div>
+            <div id="boxa" style="width: 700px;height: 220px;margin-left: 260px;">
+              <div style="margin-top: 85px;"> NG202405060798A01-1</div> 
+            <div> 500脳1500</div>
+          </div>
+    </div>
+    </el-card>
+    </div>
+  </div>
+
+</template>
+
+<style scoped>
+#boxa{
+  border: 1px solid rgb(119, 116, 116);
+  background-color:  #529b2e;
+  text-align: center;
+  display: inline-block;
+  margin-left: 20px;
+  margin-top: 70px;
+  margin-bottom: 50px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/RegisterView.vue b/UI-Project/src/views/RegisterView.vue
index 605158d..44b8078 100644
--- a/UI-Project/src/views/RegisterView.vue
+++ b/UI-Project/src/views/RegisterView.vue
@@ -4,7 +4,8 @@
   import type { FormProps,FormInstance, FormRules } from 'element-plus'
   import {ElMessage,ElMessageBox} from "element-plus";
   import request from "@/utils/request";
-  import {Avatar, UserFilled} from "@element-plus/icons-vue";
+import { Lock,Avatar } from '@element-plus/icons-vue'
+  // import {Avatar, UserFilled} from "@element-plus/icons-vue";
 
   const router = useRouter()
   const route = useRoute()
@@ -101,6 +102,12 @@
       }
     })
   }
+  const toLogin = () => {
+              router.push({
+                path:'/login',
+              })
+  }
+
 
 
 
@@ -108,76 +115,141 @@
 </script>
 
 <template>
-  <h2 style="color: #1890FF">
-    <span>
-      <el-icon><UserFilled /></el-icon>
-      <p>鍖楃幓ERP鐢ㄦ埛娉ㄥ唽</p>
-    </span>
-  </h2>
-  <div id="main-div">
-
-    <div id="register">
-      <el-form
-          :label-position="labelPosition"
-          label-width="100px"
-          :model="register"
-          ref="ruleFormRef"
-          status-icon
-          :rules="rules"
-      >
-        <el-form-item label="濮撳悕锛�" prop="userName">
-          <el-input v-model="register.userName" />
-        </el-form-item>
-<!--        <el-form-item label="鐧婚檰鍚嶏細" prop="loginName">-->
-<!--          <el-input v-model="register.loginName" />-->
-<!--        </el-form-item>-->
-        <el-form-item label="瀵嗙爜锛�" prop="passWord">
-          <el-input type="password" v-model="register.passWord" />
-        </el-form-item>
-        <el-form-item label="纭瀵嗙爜锛�" prop="confirmPassword">
-          <el-input type="password" v-model="register.confirmPassword" />
-        </el-form-item>
-        <el-form-item >
-          <el-button
-              :loading="loginLoadings"
-              type="primary"
-              @click="submitForm(ruleFormRef)"
-          >娉ㄥ唽
-          </el-button>
-        </el-form-item>
-      </el-form>
+  
+  <div class="mainDiv" >
+    <div id="main-login">
+     <div>
+      <div style="position: absolute; left: 8vw; top: 6vw; ">
+        <img src="../../src/assets/3.png">
+      </div> 
+       <div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
+        鍖楃幓MES绯荤粺
+      </div>
     </div>
-  </div>
+    <div id="div-login">
+        <el-form
+            @submit.native.prevent
+            ref="ruleFormRef"
+            :model="register"
+            status-icon
+            :rules="rules"
+            label-width="75px"
+        >
+          <div id="title">娉ㄥ唽鏂扮敤鎴�</div>
+        <div id="center">
+            <!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">濮撳悕</div> -->
+          <el-form-item prop="userName" label="濮撳悕:">
+            <el-input
+            style="width: 200px;"
+                v-model="register.userName"
+                type="text"
+                autocomplete="off"
+                :prefix-icon="Avatar"
+                placeholder="璇疯緭鍏ュ鍚�"
+            />
+          </el-form-item>
+            <!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">瀵嗙爜</div> -->
+          <el-form-item prop="passWord" label="瀵嗙爜:">
+            <el-input
+            style="width: 200px;"
+                v-model="register.passWord"
+                type="password"
+                autocomplete="off"
+                :prefix-icon="Lock"
+                placeholder="璇疯緭鍏ュ瘑鐮�"
+                show-password
+            />
+          </el-form-item>
+            <!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">纭瀵嗙爜</div> -->
+          <el-form-item prop="confirmPassword" label="纭瀵嗙爜:">
+            <el-input
+            style="width: 200px;"
+                v-model="register.confirmPassword" 
+                type="password"
+                :prefix-icon="Lock"
+                autocomplete="off"
+                show-password
+                placeholder="璇风‘璁ゅ瘑鐮�"
+            />
+          </el-form-item>
+          <el-form-item id="submitForm">
+            <el-button
+            :loading="loginLoadings"
+                type="primary"
+                @click="submitForm(ruleFormRef)"
+                plain
+            >纭娉ㄥ唽
+            </el-button>
+            <el-button
+                type="primary"
+                @click="toLogin"
+                plain
+            >鍙栨秷
+            </el-button>
 
+          </el-form-item>
+        </div>
+        </el-form>
+      </div>
+</div>
+</div>
 </template>
 
 <style scoped>
-#main-div{
-  //overflow: hidden;
+/* #main-div{
   position: absolute;
-  left:50%;
-  top:50%;
+  left:75%;
+  top:45%;
   transform: translate(-50%, -50%);
-
-}
-h2{
-  text-align: center;
-  width: 100vw;
-  margin-top: 10vh;
-}
-#register{
-  background-color: #FAFAFA;
-  width: 50vw;
-  height: 50vh;
-  border-radius: 12px;
+} */
+/* #register{
+  background-color: #fff;
+  width: 32vw;
+  height: 35vh;
   box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
   display:flex;
   align-items:center;
   justify-content:center;
   min-height: 280px;
-}
-.el-form{
+} */
+/* .el-form{
   max-width: 300px;
+} */
+#div-login{
+  margin-top: 5%;
+  /* margin-top: 20%; */
+  /* margin-left: 650px; */
+  background-color: #fff;
+  border-radius: 4px;
+  float: right;
+  width: 40%;
+  height: 60%;
+  min-width: 318px;
+  box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
 }
 
+#center{
+  margin-top: 45px;
+  margin-left: 100px;
+}
+.mainDiv{
+  overflow: hidden;
+  min-width: 718px;
+  background-image: url("../../src/assets/background.jpg");
+
+}
+#main-login{
+  margin: 150px auto 0 auto;
+  height: 70vh;
+  width: 80vw;
+}
+#submitForm{
+  margin-top: 30px;
+  margin-left: -10px;
+}
+#title{
+  font-size: 25px;
+  text-align: center;
+  margin-top: 10px;
+}
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/returns/CreateReturns.vue b/UI-Project/src/views/Returns/CreateReturns.vue
similarity index 100%
rename from UI-Project/src/views/sd/returns/CreateReturns.vue
rename to UI-Project/src/views/Returns/CreateReturns.vue
diff --git a/UI-Project/src/views/sd/returns/ReturnsReport.vue b/UI-Project/src/views/Returns/ReturnsReport.vue
similarity index 100%
rename from UI-Project/src/views/sd/returns/ReturnsReport.vue
rename to UI-Project/src/views/Returns/ReturnsReport.vue
diff --git a/UI-Project/src/views/sd/returns/SelectDeliveryList.vue b/UI-Project/src/views/Returns/SelectDeliveryList.vue
similarity index 100%
rename from UI-Project/src/views/sd/returns/SelectDeliveryList.vue
rename to UI-Project/src/views/Returns/SelectDeliveryList.vue
diff --git a/UI-Project/src/views/Returns/SelectReturns.vue b/UI-Project/src/views/Returns/SelectReturns.vue
new file mode 100644
index 0000000..e3fce3b
--- /dev/null
+++ b/UI-Project/src/views/Returns/SelectReturns.vue
@@ -0,0 +1,273 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(false)
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191'
+  }
+]
+const tableDataa = [
+  {
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    station: '1'
+  },
+  {
+    long: '105',
+    wide: '183',
+    thick: '191',
+    station: '2'
+  }
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },//琛ㄥご鍙傛暟
+  // columns:[
+  //   {type:'expand',slots: { content:'content' },width: 50},
+  //   // {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' }},
+  //   {type: 'seq', title: '鑷簭', width: 80 },
+
+  //   // {title: '瀹℃牳', width: 40, slots: { default: 'state' }},
+  //   {title: 'id', width: 140, slots: { default: 'state' }},
+  //   {title: '闀�', width: 160, slots: { default: 'state' }},
+  //   {title: '瀹�', width: 160, slots: { default: 'state' }},
+  //   {title: '鍘�', width: 160, slots: { default: 'state' }},
+
+  //   // {field: '3',width:120,  title: '閫�璐у崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+  // ],
+  //琛ㄥご鎸夐挳
+  // toolbarConfig: {
+  //   buttons: [],
+  //   import: false,
+  //   export: true,
+  //   print: true,
+  //   zoom: true,
+  //   custom: true
+  // },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+  //table body瀹為檯鏁版嵁
+  // footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+  //   return[
+  //     columns.map((column, columnIndex) => {
+  //       if (columnIndex === 0) {
+  //         return '鍚堣:'
+  //       }
+  //       // if (props.tableProp.footList.includes(column.field)) {
+  //       //   return sumNum(data, column.field)
+  //       // }
+  //       return ''
+  //     })
+  //   ]
+  // }
+})
+</script>
+
+<template>
+  <div>
+    <!-- <el-date-picker
+        v-model="value1"
+        type="daterange"
+        start-placeholder="寮�濮嬫椂闂�"
+        end-placeholder="缁撴潫鏃堕棿"
+    /> -->
+    <!-- <el-button style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button> -->
+    <el-button style="margin-top: -5px;margin-left: 5px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">涓婄墖杈撳叆</el-button>
+    <el-button style="margin-top: -5px"  id="searchButton" type="primary" @click="dialogFormVisiblea = true">鍘熺墖淇℃伅</el-button>
+    <!-- <el-button style="margin-top: -5px"  id="searchButton" type="danger">浜哄伐鎷胯蛋</el-button> -->
+
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto">
+        <el-table height="100%" ref="table" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="id" min-width="80" />
+          <el-table-column prop="long" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="thick" align="center" label="鍘�" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain @click="open">浜哄伐鎷�111璧�</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+
+  
+  <el-dialog v-model="dialogFormVisible" top="21vh" width="40%" title="涓婄墖杈撳叆" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form >
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="宸ヤ綅锛�" :required="true" style="width: 14vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="闀匡細" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" />
+              </el-form-item></div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀹斤細" :required="true" style="width: 13.2vw;margin-left: 14px;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鍘氾細" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="dialogFormVisible = false">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" title="鍘熺墖淇℃伅">
+    <el-table height="100%" ref="table" :data="tableDataa" @row-click="handle">
+      <el-table-column
+        prop="long"
+        align="center"
+        label="闀�"
+        min-width="120"
+      />
+      <el-table-column
+        prop="wide"
+        align="center"
+        label="瀹�"
+        min-width="120"
+      />
+      <el-table-column
+        prop="thick"
+        align="center"
+        label="鍘�"
+        min-width="120"
+      />
+      <el-table-column
+        prop="station"
+        align="center"
+        label="宸ヤ綅"
+        min-width="120"
+      />
+    </el-table>
+    <div style="text-align: center; height: 22px; margin-top: 30px;">
+        <el-button @click="dialogFormVisiblea = false">鍏抽棴</el-button>
+      </div>
+  </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
new file mode 100644
index 0000000..a0a97f9
--- /dev/null
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -0,0 +1,426 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import type { TableColumnCtx } from 'element-plus'
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const add = ref(false)
+const adda = ref(false)
+
+const value = ref('')
+
+interface User {
+  id: string
+  name: string
+  amount1: string
+  amount2: string
+  amount3: number
+}
+
+interface SpanMethodProps {
+  row: User
+  column: TableColumnCtx<User>
+  rowIndex: number
+  columnIndex: number
+}
+
+const objectSpanMethod = ({
+  row,
+  column,
+  rowIndex,
+  columnIndex,
+}: SpanMethodProps) => {
+  if (columnIndex === 0) {
+    if (rowIndex % 2 === 0) {
+      return {
+        rowspan: 2,
+        colspan: 1,
+      }
+    } else {
+      return {
+        rowspan: 0,
+        colspan: 0,
+      }
+    }
+  }
+}
+
+const options = [
+  {
+    value: 'Option1',
+    label: 'P202561456',
+  },
+  {
+    value: 'Option2',
+    label: 'P202561456',
+  },
+  {
+    value: 'Option3',
+    label: 'P202561456',
+  },
+  {
+    value: 'Option4',
+    label: 'P202561456',
+  },
+  {
+    value: 'Option5',
+    label: 'P202561456',
+  },
+]
+const tableData: User[] = [
+
+  {
+    id: 'P202561456',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+  },
+  {
+    id: 'P202561456',
+    long: '105',
+    wide: '183',
+    thick: '191',
+  }
+]
+const tableDataa = [
+  {
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    station: '1'
+  },
+  {
+    long: '105',
+    wide: '183',
+    thick: '191',
+    station: '1'
+  }
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      // router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+      state: true
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+</script>
+
+<template>
+  <div>
+    <div id="dotClass">
+      <div>鎵撴爣鏈哄氨缁姸鎬侊細</div>
+      <i style="margin-top: 2px; background-color: green;width:18px;  height:18px;  border-radius: 50%;  display: block"></i>
+    <el-button style="margin-left: 30px;margin-top: -3px;">鎵嬪姩纭</el-button>
+ 
+    <div style="margin-left: 70px;">鍒囧壊鏈哄氨缁姸鎬侊細</div>
+     <i style="margin-top: 2px; background-color: #911005 ;width:18px;  height:18px;  border-radius: 50%;  display: block"></i>
+    <el-button style="margin-left: 30px;margin-top: -3px;" >鎵嬪姩纭</el-button>
+   </div>
+    <el-button style="margin-top: 5px;margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">閫夋嫨宸ョ▼</el-button>
+    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="primary">寮�濮嬩笂鐗�</el-button>
+    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" >鏆傚仠</el-button>
+    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="danger" >鍋滄浠诲姟</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto">
+        <!-- <el-table height="100%" ref="table" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="宸ョ▼鍙�" min-width="80" />
+          <el-table-column prop="long" align="center" label="鍘熺墖瀹�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鍘熺墖闀�" min-width="120" />
+          <el-table-column prop="thick" align="center" label="鑶滅郴" min-width="120" />
+          <el-table-column prop="thick" align="center" label="鏁伴噺" min-width="120" />
+          <el-table-column
+            align="center"
+            label="鐘舵��"
+            min-width="80"
+          >
+          <el-tag type="success">灏辩华</el-tag>
+          </el-table-column>
+        </el-table> -->
+    <el-table
+    height="100%"
+     ref="table"
+     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+      :data="tableData"
+      :span-method="objectSpanMethod"
+    >
+      <el-table-column prop="id" label="宸ョ▼鍙�" width="200" align="center"/>
+      <el-table-column prop="long" label="鍘熺墖瀹�" align="center"/>
+      <el-table-column prop="wide" label="鍘熺墖闀�" align="center"/>
+      <el-table-column prop="thick" label="鑶滅郴" align="center"/>
+      <el-table-column prop="thick" label="鏁伴噺" align="center"/>
+      <el-table-column prop="wide" label="鍘氬害" align="center"/>
+      <el-table-column
+            align="center"
+            label="鐘舵��"
+            min-width="80"
+          >
+          <el-tag type="success">灏辩华</el-tag>
+          <!-- <el-tag type="danger">鏈氨缁�</el-tag> -->
+          </el-table-column>
+    </el-table>
+      </div>
+    </el-card>
+      <div id="parent">
+        <img src="../../assets/shangpianji .png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 130px;">
+        <el-button style="margin-top: -830px;margin-left: -40px;"  size="mini" id="searchButton" @click="add = true">娣诲姞鍘熺墖</el-button>
+        <el-button style="margin-top: -10px;margin-left: -80px;"  size="mini" id="searchButton"  @click="adda = true">娣诲姞鍘熺墖</el-button>
+        <!-- <div id="overlay" v-show="state"></div> -->
+        <!-- <div id="overlaya" v-show="statea"></div> -->
+      </div>
+        </div>
+
+  
+  <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" title="宸ョ▼" >
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+      <el-form-item label="宸ョ▼鍙凤細" :required="true">
+        <el-select
+    v-model="value"
+    clearable
+    placeholder="璇烽�夋嫨宸ョ▼"
+    style="width: 300px"
+  >
+    <el-option
+      v-for="item in options"
+      :key="item.value"
+      :label="item.label"
+      :value="item.value"
+    />
+  </el-select>
+              </el-form-item>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="dialogFormVisible = false">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="add" top="23vh" width="45%" title="娣诲姞鍘熺墖" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="70px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="闀匡細" :required="true" style="width: 14vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" />
+              </el-form-item></div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鍘氬害锛�" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏁伴噺锛�" :required="true" style="width: 14vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="add = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="adda" top="23vh" width="45%" title="娣诲姞鍘熺墖" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" >
+      <el-form label-width="70px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="闀匡細" :required="true" style="width: 14vw">
+                <el-input  autocomplete="off" style="width: 180px" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" style="width: 180px" />
+              </el-form-item></div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw;">
+                <el-input autocomplete="off" style="width: 180px" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鍘氬害锛�" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" style="width: 180px" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏁伴噺锛�" :required="true" style="width: 14vw;">
+                <el-input autocomplete="off" style="width: 180px" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="adda = false">
+          纭
+        </el-button>
+        <el-button @click="adda = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+#parent{
+  position: relative;
+}
+#overlay{
+  position: absolute;
+  z-index: 1;
+  width: 212px;
+  height: 15px;
+  background-color: #529b2e;
+  margin-top: -407px;
+  margin-left: 171px;
+}
+#overlaya{
+  position: absolute;
+  z-index: 1;
+  width: 212px;
+  height: 15px;
+  background-color: #529b2e;
+  margin-top: -40px;
+  margin-left: 167px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
new file mode 100644
index 0000000..ea231b5
--- /dev/null
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -0,0 +1,568 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+
+const currentPage4 = ref(4)
+const pageSize4 = ref(100)
+// const tableData = [
+//   {
+//     id: '1',
+//     long: '1005',
+//     wide: '183.6',
+//     thick: '1991',
+//     type: '1234567',
+//     typea: '1',
+//   },
+// ]
+// const tableDatab = [
+//   {
+//     idb: '2',
+//     longb: '105',
+//     wideb: '183',
+//     typeb: '123456',
+//   }
+// ]
+const tableDataa = [
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+  {
+    ida: '3',
+    typea: '1991',
+  },
+]
+
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '纭畾瑕佹�ュ仠鍚�?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍚�',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鎬ュ仠鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鎬ュ仠澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+</script>
+
+<template>
+  <div style="height: 700px;">
+    <!-- <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">鎵嬪姩杩涚墖</el-button> -->
+    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisiblea = true">璁㈠崟淇℃伅</el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="success" @click="dialogFormVisibleb = true">鍑虹墖闃熷垪</el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger">缁堟杩涚墖</el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger">缁堟鍑虹墖</el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger"  @click="dialogForm">杞�ュ仠</el-button>
+    
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="鍑虹墖鐜荤拑ID" min-width="80" />
+          <el-table-column prop="long" align="center" label="绗煎瓙" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鏍煎瓙" min-width="120" />
+          <el-table-column prop="type" align="center" label="宸ョ▼鍙�" min-width="120" />
+          <el-table-column prop="type" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="type" align="center" label="閽㈠寲鐗堝浘鍙�" min-width="120" />
+          <el-table-column prop="type" align="center" label="灏哄" min-width="120" />
+          <el-table-column prop="type" align="center" label="缁撴潫浠诲姟" min-width="120" />
+        </el-table>
+      </div>
+    </el-card>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="idb" align="center" label="杩涚墖鐜荤拑ID" min-width="80" />
+          <el-table-column prop="longb" align="center" label="绗煎瓙" min-width="120" />
+          <el-table-column prop="wideb" align="center" label="鏍煎瓙" min-width="120" />
+          <el-table-column prop="typeb" align="center" label="宸ョ▼鍙�" min-width="120" />
+          <el-table-column prop="typeb" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="typeb" align="center" label="閽㈠寲鐗堝浘鍙�" min-width="120" />
+          <el-table-column prop="typeb" align="center" label="灏哄" min-width="120" />
+          <el-table-column prop="typeb" align="center" label="缁撴潫浠诲姟" min-width="120" />
+        </el-table>
+      </div>
+    </el-card>
+    <div style="padding: 10px;display: flex;height:110px;">
+                <div v-for="n in 9" :key="n" id="occupy">
+                    <el-col style="text-align:left;font-weight: bold;">#1</el-col>
+                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+                        <span id="biao">浣跨敤鐜�</span><span id="zhi">33%</span>
+                    </el-col>
+                    <hr style="width:80%;margin: 0 auto;" />
+                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+                        <span id="biao">绌洪棿锛堢墖鏁帮級</span><span id="zhi">555</span>
+                    </el-col>
+                </div>
+    </div>
+    <div id="awatch">
+  <img src="../../assets/xmjc.png" alt="" style="width: 70%;height: 100%;margin-left: 160px;">
+</div>
+  </div>
+<el-dialog v-model="dialogFormVisible" top="12vh" width="85%" title="璇风‘璁ょ幓鐠冧俊鎭�" >
+  <div style="margin-left: 50px;margin-bottom: 10px;">
+    <div style="display: flex;">
+    <p style="margin-top: 4px;">纭鐘舵��:</p>
+    <el-button style="margin-left: 10px;size: mini;" type="success">鍏佽</el-button>
+    <el-button style="margin-left: 10px;size: mini;" type="danger">涓嶅厑璁�</el-button>
+    <p style="margin-left: 60px;margin-top: 4px;">褰撳墠鐘舵��:</p>
+    <div style="margin-top: 4px; margin-left: 10px;">鎵嬪姩</div>
+    <el-button style="margin-left: 10px;size: mini;" type="primary">鍒囨崲</el-button>
+    <el-input  placeholder="璇疯緭鍏ョ幓鐠僫d" style="width: 180px;size: mini;margin-left: 60px;"></el-input>
+    <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
+    <p style="margin-left: 60px;margin-top: 4px;">鐜荤拑id:</p>
+    <el-input  style="width: 180px;size: mini;margin-left: 30px;"></el-input>
+  </div>
+    <div style="display: flex;">
+      <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">涓婄墖浣�</p>
+      <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">鎵爜浣�</p>
+    </div>
+    <div style="display: flex;">
+    <div style="margin-top: 20px;">
+      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
+      <el-form label-position="right" label-width="90px">
+      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="闀匡細">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="瀹斤細">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
+       </el-form-item>
+      </el-form>
+      </div>
+    <div style="margin-top: 20px;">
+      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
+      <el-form label-position="right" label-width="90px">
+      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="闀匡細">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="瀹斤細">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
+       </el-form-item>
+      </el-form>
+      </div>
+    <div style="margin-top: 20px;">
+      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
+      <el-form label-position="right" label-width="90px">
+      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="闀匡細">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="瀹斤細">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
+       </el-form-item>
+      </el-form>
+      </div>
+    <div style="margin-top: 20px;">
+      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
+      <el-form label-position="right" label-width="90px">
+      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="闀匡細">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
+       </el-form-item>
+      <el-form-item style="width: 20vw" label="瀹斤細">
+      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
+       </el-form-item>
+      </el-form>
+      </div>
+    </div>
+        </div>
+  <template #footer>
+    <div id="dialog-footer">
+      <el-button type="primary" @click="dialogFormVisible = false">
+        纭
+      </el-button>
+      <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+    </div>
+  </template>
+</el-dialog>
+<el-dialog v-model="dialogFormVisiblea" top="10vh" width="85%" title="璁㈠崟淇℃伅" >
+  <el-input  placeholder="璇疯緭鍏ュ伐绋嬪彿" style="width: 180px;size: mini;"></el-input>
+    <el-button style="margin-left: 10px;size: mini;" type="primary">鏌ヨ</el-button>
+    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
+        @selection-change="handleSelectionChange"
+        :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="ida" align="center" label="鐜荤拑id" min-width="80" />
+          <el-table-column prop="typea" align="center" label="宸ョ▼鍙�" min-width="120" />
+          <el-table-column prop="typea" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="typea" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="typea" align="center" label="鍘�" min-width="120" />
+        </el-table>
+        <div id="demo-pagination-block">
+    <el-pagination
+    style="margin-left: 850px;"
+      v-model:current-page="currentPage4"
+      v-model:page-size="pageSize4"
+      :page-sizes="[100, 200, 300, 400]"
+      :small="small"
+      :disabled="disabled"
+      :background="background"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="400"
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+    />
+  </div>
+</el-dialog>
+<el-dialog v-model="dialogFormVisibleb" top="10vh" width="85%" title="鍑虹墖闃熷垪" >
+  <div style="display: flex;">
+  <p style="margin-top: 4px;">闃熷垪鐘舵�侊細</p>
+  <p style="margin-top: 4px;">寮�濮�</p>
+    <el-button style="margin-left: 10px;size: mini;" type="danger">鍋滄</el-button>
+    <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
+  </div>
+    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
+        @selection-change="handleSelectionChange"
+        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="閾濇id" min-width="80" />
+          <el-table-column prop="type" align="center" label="鐜荤拑id" min-width="120" />
+          <el-table-column prop="type" align="center" label="璁㈠崟缂栧彿" min-width="120" />
+          <el-table-column prop="type" align="center" label="鍒楄〃缂栧彿" min-width="120" />
+          <el-table-column prop="type" align="center" label="绠卞瓙缂栧彿" min-width="120" />
+          <el-table-column prop="type" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="type" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="type" align="center" label="鐜荤拑鐘舵��" min-width="120" />
+          <el-table-column prop="type" align="center" label="椤哄簭" min-width="120" />
+          <el-table-column prop="type" align="center" label="瀹屾垚" min-width="120" />
+          <el-table-column prop="type" align="center" label="鎿嶄綔" min-width="120" />
+        </el-table>
+</el-dialog>
+
+</template>
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#occupy {
+    height: 100%;
+    width: 10%;
+    background-color: white;
+    margin: 0px 8px 0px 8px;
+    border: 1px #EBEEF5 solid;
+    text-align: center;
+    padding: 5px;
+}
+#biao {
+    font-size: 12px;
+}
+#zhi {
+    font-size: 18px;
+    font-weight: bold;
+}
+#demo-pagination-block + #demo-pagination-block {
+  margin-top: 10px;
+}
+#demo-pagination-block #demonstration {
+  margin-bottom: 16px;
+}
+::-webkit-scrollbar {
+     width: 0 !important;
+   }
+   ::-webkit-scrollbar {
+     width: 0 !important;height: 0;
+   }
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Create.vue b/UI-Project/src/views/StockBasicData/Create.vue
new file mode 100644
index 0000000..0fc1826
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Create.vue
@@ -0,0 +1,724 @@
+<template>
+  <el-header height="auto">
+    <el-descriptions
+        class="margin-top"
+        title=""
+        :column="4"
+        :size="'default'"
+        border
+        :rules="rules"
+        :model="ruleForm"
+    >
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy" prop="name">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘绫诲瀷
+        </template>
+<!--        <el-select v-model="form.buyType" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>-->
+        <el-select v-model="ruleForm.name" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>
+          <el-option
+              v-for="item in CGTypeOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item >
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘缁勭粐
+        </template>
+        <el-input v-model="ruleForm.name" placeholder="閲囪喘缁勭粐" clearable prop="name"></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          渚涘簲鍟�
+        </template>
+        <el-cascader
+            placeholder="閫夋嫨渚涘簲鍟�"
+            :options="buyerOptions"
+            filterable
+            clearable
+            empty-text="empty-text"
+            :v-model="form.supplier"
+        >
+        </el-cascader>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘閮ㄩ棬
+        </template>
+        <el-select v-model="cgBuMen" class="m-2" placeholder="閫夋嫨閲囪喘閮ㄩ棬" clearable>
+          <el-option
+              v-for="item in CGBuMenOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item>
+
+
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘鍛�
+        </template>
+        <el-select v-model="form.buyer" class="m-2" placeholder="閫夋嫨閲囪喘鍛�" clearable>
+          <el-option
+              v-for="item in BuyerOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"
+      >
+        <template #label>
+          <span style="color:red">*</span>
+          鍒惰〃鏃ユ湡
+        </template>
+        <el-date-picker
+            v-model="form.date"
+            type="date"
+            placeholder="閫夋嫨鍒惰〃鏃ユ湡"
+
+        />
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"></el-descriptions-item>
+    </el-descriptions>
+
+  </el-header>
+
+  <el-main style="padding-top: 5px;height:100%">
+    <!--    <el-button class="mt-4" style="width: 10%" @click="onAddItem"
+        >娣诲姞
+        </el-button>-->
+
+    <vxe-grid
+
+        max-height="500"
+        @filter-change="filterChanged"
+        class="mytable-scrollbar"
+        ref="xGrid"
+        v-bind="gridOptions"
+        @="gridEvents"
+    >
+
+      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+      <template #content="{ row}">
+        <ul class="expand-wrapper">
+          <li v-for="(item,key,index) in row">
+            <span style="font-weight: bold">{{ key + ':  ' }}</span>
+            <span>{{ item }}</span>
+          </li>
+        </ul>
+      </template>
+
+      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+      <template #button_slot="{ row }">
+        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+        <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+        <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+      </template>
+
+      <template #num1_filter="{ column, $panel }">
+        <div>
+          <div v-for="(option, index) in column.filters" :key="index">
+            <el-input v-model="option.data" @input="changeFilterEvent($event, option, $panel)" />
+          </div>
+        </div>
+      </template>
+    </vxe-grid>
+
+  </el-main>
+
+</template>
+
+<script lang="ts" setup>
+import {ref, reactive} from 'vue'
+import {useRouter} from "vue-router";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+let router = useRouter()
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  columns: [
+    //{title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    //{type: 'expand', title: '璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '鐗╂枡缂栫爜',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'gys',
+      width: '10%',
+      title: '浜у湴',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'w',
+      width: '8%',
+      title: '瀹藉害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'g',
+      width: '8%',
+      title: '楂樺害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true,
+      type: 'number'
+    },
+    {
+      field: 'h',
+      width: '8%',
+      title: '鍘氬害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'xh',
+      width: '8%',
+      title: '鍨嬪彿',/*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'dw',
+      width: '8%',
+      title: '鍗曚綅', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鏁伴噺', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鎿嶄綔鏁伴噺', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}}
+    },
+    {
+      field: 'sl',
+      width: '12%',
+      title: '绠辨暟',    /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '8%',
+      title: '鍗曠墖闈㈢Н', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '12%',
+      title: '鍗曚环',   /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: '6',
+      width: '8%',
+      title: '鎬绘暟閲�',   /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鎬婚潰绉�', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '鎬婚噾棰�',/*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '澶囨敞', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    }
+  ],//琛ㄥご鍙傛暟
+  toolbarConfig: {
+    buttons: [
+      {type: 'text'},
+      {
+        'name': '鏂板',
+
+        'code': 'Add',
+      },
+      {
+        'name': '绉婚櫎',
+
+        'code': 'Remove'
+      },
+      {
+        'name': '淇濆瓨璁㈠崟',
+        status: 'primary',
+        'code': 'Save'
+      }, {
+        'name': '鍏ュ簱',
+        status: 'primary',
+        'code': 'Storage'
+      }/*,
+      {
+        'name': '閫�璐�',
+        status: 'primary',
+        'code': 'Return'
+      },
+      {
+        'name': '杩斿洖鏌ヨ',
+
+        'code':'GoSelect'
+      }*/],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    tools: [],
+
+  },//琛ㄥご鎸夐挳
+  /*data: [{},{},{},{},{},{}],//table body瀹為檯鏁版嵁*/
+  data: [{}, {}, {}],//table body瀹為檯鏁版嵁
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 3}
+  ],//鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+//鏂板
+        case 'Add': {
+          const record = {
+            checked: false
+          }
+          $grid.insertAt(record, 0).then(({row}) => {
+            $grid.setEditRow(row)
+          })
+          break
+        }
+//绉婚櫎
+        case 'Remove': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+
+            MessageConfirmShow('绉婚櫎','鏄惁纭绉婚櫎閫変腑鐨�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒');
+
+          }
+          break
+        }
+//淇濆瓨
+        case 'Save': {
+          /*if (form.buyItem === null || form.buyItem === '') {
+            MessageShow('閲囪喘缁勭粐涓嶅彲涓虹┖','warning');
+            return;
+          }
+*/
+          //閫変腑鏁版嵁
+          /* const $table = this.$refs.xTable
+           const selectRecords = $table.getCheckboxRecords()*/
+//+$grid.rows.number
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+
+
+            MessageConfirmShow('淇濆瓨璁㈠崟','鏄惁纭畾淇濆瓨褰撳墠璁㈠崟淇℃伅');
+          }
+          break
+        }
+//鍏ュ簱
+        case 'Storage': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+            MessageConfirmShow('鍏ュ簱','鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�')
+          }
+          break
+        }
+//閫�搴�
+        case 'Return': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+
+
+          }
+          break
+        }
+
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+
+import type { FormInstance, FormRules } from 'element-plus'
+
+
+
+
+interface RuleForm {
+  name: string
+  region: string
+  count: string
+  date1: string
+  date2: string
+  delivery: boolean
+  type: string[]
+  resource: string
+  desc: string
+}
+const ruleFormRef = ref<FormInstance>()
+const ruleForm = reactive<RuleForm>({
+  name: '',
+  region: '',
+  count: '',
+  date1: '',
+  date2: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+})
+const rules = reactive<FormRules<RuleForm>>({
+  name: [
+    { required: true, message: 'Please input Activity name', trigger: 'blur' },
+    { min: 3, max: 5, message: 'Length should be 3 to 5', trigger: 'blur' },
+  ],
+  region: [
+    {
+      required: true,
+      message: 'Please select Activity zone',
+      trigger: 'change',
+    },
+  ],
+  count: [
+    {
+      required: true,
+      message: 'Please select Activity count',
+      trigger: 'change',
+    },
+  ],
+  date1: [
+    {
+      type: 'date',
+      required: true,
+      message: 'Please pick a date',
+      trigger: 'change',
+    },
+  ],
+  date2: [
+    {
+      type: 'date',
+      required: true,
+      message: 'Please pick a time',
+      trigger: 'change',
+    },
+  ],
+  type: [
+    {
+      type: 'array',
+      required: true,
+      message: 'Please select at least one activity type',
+      trigger: 'change',
+    },
+  ],
+  resource: [
+    {
+      required: true,
+      message: 'Please select activity resource',
+      trigger: 'change',
+    },
+  ],
+  desc: [
+    { required: true, message: 'Please input activity form', trigger: 'blur' },
+  ],
+})
+
+
+const form = reactive({
+  name: '',
+  region: '',
+  date: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+  supplier: '',
+  buyer: '',
+  buyItem: '',
+  buyType: ''
+
+})
+
+//渚涘簲鍟�
+const buyerOptions = [
+  {value: '0', label: '渚涘簲鍟�1'},
+  {value: '1', label: '渚涘簲鍟�2'},
+  {value: '2', label: '渚涘簲鍟�3'},
+  {value: '3', label: '渚涘簲鍟�4'},
+  {value: '4', label: '渚涘簲鍟�5'},
+  {value: '5', label: '渚涘簲鍟�6'},
+]
+
+
+const value = ref('')
+const cgBuMen = ref('')
+
+//閲囪喘绫诲瀷
+const CGTypeOptions = [
+  {
+    value: '1',
+    label: '鏍囧噯绫诲瀷',
+  },
+  {
+    value: '2',
+    label: '闈炴爣鍑嗙被鍨�',
+  },
+  {
+    value: '3',
+    label: '杩藉姞閲囪喘',
+  },
+
+]
+
+//閲囪喘閮ㄩ棬
+const CGBuMenOptions = [
+  {
+    value: '0',
+    label: '閲囪喘鍗庡寳閮�',
+  },
+  {
+    value: '1',
+    label: '閲囪喘涓滃崡閮�',
+  },
+  {
+    value: '2',
+    label: '閲囪喘瑗垮寳閮�',
+  },
+  {
+    value: '3',
+    label: '閲囪喘涓師閮�',
+  },
+  {
+    value: '4',
+    label: '閲囪喘澶栧浗閮�',
+  },
+
+]
+
+//閲囪喘浜�
+const BuyerOptions = [
+  {
+    value: '0',
+    label: '閲囪喘鍛�1',
+  },
+  {
+    value: '1',
+    label: '閲囪喘鍛�2',
+  },
+  {
+    value: '2',
+    label: '閲囪喘鍛�3',
+  },
+  {
+    value: '3',
+    label: '閲囪喘鍛�4',
+  },
+  {
+    value: '4',
+    label: '閲囪喘鍛�5',
+  },
+
+]
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    case '淇濆瓨璁㈠崟':
+      //淇濆瓨璁㈠崟閫昏緫浠g爜TODO
+      const submitForm = async (formEl: FormInstance | undefined) => {
+        if (!formEl) return
+        await formEl.validate((valid, fields) => {
+          if (valid) {
+            console.log('submit!')
+          } else {
+            console.log('error submit!', fields)
+          }
+        })
+      }
+      MessageShow('璁㈠崟淇濆瓨鎴愬姛锛�', 'success');
+      break;
+    case '绉婚櫎':
+      $grid.removeCheckboxRow();
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+
+}
+
+//鎻愮ず淇℃伅
+const MessageShow = (content, type ) => {
+
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title='鎿嶄綔纭鎻愮ず', type='warning') => {
+
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+        return logicExecute(czType);
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+
+</script>
+<style scoped>
+:deep(.el-descriptions__table .label-diy) {
+  text-align: center;
+  width: 100px;
+  /*font-size: large;*/
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Details.vue b/UI-Project/src/views/StockBasicData/Details.vue
new file mode 100644
index 0000000..04fa130
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Details.vue
@@ -0,0 +1,453 @@
+<template>
+  <el-header height="auto">
+    <el-descriptions
+        class="margin-top"
+        title=""
+        :column="4"
+        :size="'default'"
+        border
+    >
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          鎿嶄綔鍗曞彿
+        </template>
+        <el-input v-model="form.buyItem" placeholder="鍗曞彿" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘绫诲瀷
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘绫诲瀷" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘閮ㄩ棬
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘閮ㄩ棬" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          渚涘簲鍟�
+        </template>
+        <el-input v-model="form.buyItem" placeholder="渚涘簲鍟�" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘鍛�
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘鍛�" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘缁勭粐
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘缁勭粐" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          鍒惰〃鏃ユ湡
+        </template>
+        <el-date-picker
+            v-model="form.date"
+            type="date"
+            placeholder="閫夋嫨鍒惰〃鏃ユ湡"
+        />
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"></el-descriptions-item>
+
+    </el-descriptions>
+  </el-header>
+
+  <el-main style="padding-top: 5px;height:100%">
+    <vxe-grid
+        max-height="500"
+        @filter-change="filterChanged"
+        ref="xGrid"
+        v-bind="gridOptions"
+        v-on="gridEvents"
+    >
+
+      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+      <template #content="{ row}">
+        <ul class="expand-wrapper">
+          <li v-for="(item,key,index) in row">
+            <span style="font-weight: bold">{{ key + ':  ' }}</span>
+            <span>{{ item }}</span>
+          </li>
+        </ul>
+      </template>
+
+    </vxe-grid>
+
+  </el-main>
+
+</template>
+
+<script setup>
+import {ref, reactive} from 'vue'
+
+let router = useRouter()
+import {useRouter} from "vue-router";
+import { ElMessage, ElMessageBox} from "element-plus";
+
+const value = ref('')
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  //寮�鍚櫄鎷熸粴鍔�
+  scrollY: {enabled: true},
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  //绛涢�夐厤缃」
+  filterConfig: {
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  //琛ㄥご鍙傛暟銆佸垪鍚�
+  columns: [
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '鐗╂枡缂栫爜',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'gys',
+      width: '10%',
+      title: '浜у湴',
+
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'w',
+      width: '8%',
+      title: '瀹藉害',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'g',
+      width: '8%',
+      title: '楂樺害',
+      filters: [{data: ''}],
+      sortable: true,
+
+    },
+    {
+      field: 'h',
+      width: '8%',
+      title: '鍘氬害',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'xh',
+      width: '8%',
+      title: '鍨嬪彿',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'dw',
+      width: '8%',
+      title: '鍗曚綅',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鏁伴噺',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'czsl',
+      width: '8%',
+      title: '鎿嶄綔鏁伴噺',
+      type: 'number',
+      editRender: {name: 'input', type: 'number', attrs: {placeholder: ''}}
+    },
+    {
+      field: 'sl',
+      width: '12%',
+      title: '绠辨暟',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '8%',
+      title: '鍗曠墖闈㈢Н',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '12%',
+      title: '鍗曚环',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鎬婚潰绉�',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '鎬婚噾棰�',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '澶囨敞',
+      filters: [{data: ''}],
+      sortable: true
+    }
+  ],
+  //琛ㄥご鎸夐挳
+  toolbarConfig: {
+    buttons: [
+      {type: 'text'},
+      {
+        'name': '淇濆瓨璁㈠崟',
+        status: 'primary',
+        'code': 'Save'
+      }, {
+        'name': '鍏ュ簱',
+        status: 'primary',
+        'code': 'Storage'
+      },
+      {
+        'name': '閫�璐�',
+        status: 'primary',
+        'code': 'Return'
+      },
+      {
+        'name': '鍙栨秷',
+        status: '',
+        'code': 'Cancel'
+      }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    tools: [],
+
+  },
+  //table body瀹為檯鏁版嵁
+  data: [{}, {}, {}],
+  //鑴氬悎骞�
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 3}
+  ],
+  //鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+//淇濆瓨
+        case 'Save': {
+          MessageAlertShow('鐐瑰嚮浜嗕繚瀛樿鍗�','鎿嶄綔鎻愮ず');
+          //MessageShow('鐐瑰嚮浜嗕繚瀛樿鍗曪紒', 'error');
+          break;
+        }
+//鍙栨秷锛岃繑鍥炴煡璇㈤〉闈�
+        case 'Cancel': {
+          // router.push({path: '/main/purchaseOrder/StoragePurchaseOrder'})
+          break
+        }
+//鍏ュ簱
+        case 'Storage': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒', 'warning');
+            return
+          } else {
+            MessageConfirmShow('鍏ュ簱', '鏄惁纭瀵归�変腑鐨�' + $grid.getCheckboxRecords().length + '鐗╂枡杩涜鍏ュ簱鎿嶄綔锛�');
+          }
+          break
+        }
+//閫�璐�
+        case 'Return': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒', 'warning');
+            return
+          } else {
+
+            MessageConfirmShow('閫�璐�', '鏄惁纭瀵归�変腑鐨�' + $grid.getCheckboxRecords().length + '鐗╂枡杩涜閫�璐ф搷浣滐紒');
+          }
+          break
+        }
+
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+//琛ㄥ崟鏁版嵁
+const form = reactive({
+  name: '',
+  region: '',
+  date: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+  supplier: '',
+  buyer: '',
+  buyItem: '',
+  buyType: ''
+
+})
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content,type='success') => {
+    ElMessage({
+      message: content,
+      type: type,
+      showClose: true,
+    })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title='鎿嶄綔纭鎻愮ず', type='warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        return logicExecute(czType);
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow=(content,title,type='info')=>{
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.el-descriptions__table .label-diy) {
+  text-align: center;
+  width: 100px;
+  /*  font-size: large;*/
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Payment.vue b/UI-Project/src/views/StockBasicData/Payment.vue
new file mode 100644
index 0000000..475da20
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Payment.vue
@@ -0,0 +1,354 @@
+<template>
+  <el-container>
+    <el-header class="m-header" style="height: auto">
+      <el-row :gutter="10" style="margin-bottom: 5px">
+        <el-col :span="7">
+          <el-date-picker
+              v-model="datevalue"
+              type="daterange"
+              unlink-panels
+              range-separator="鍒�"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              :shortcuts="shortcuts"
+              :size="size"
+              format="YYYY/MM/DD"
+              value-format="YYYY-MM-DD"
+          />
+        </el-col>
+
+        <el-col :span="2">
+          <el-button
+              id="select"
+              type="primary"
+              :icon="Search"
+              @click="autoAddRow">鏌ヨ
+          </el-button>
+        </el-col>
+      </el-row>
+
+    </el-header>
+    <el-main style="padding-top: 5px">
+      <vxe-grid
+
+          max-height="600"
+          @filter-change="filterChanged"
+          class="mytable-scrollbar"
+          ref="xGrid"
+          v-bind="PayOptions"
+          @="gridEvents"
+
+      >
+
+        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+        <template #content="{ row }">
+          <ul class="expand-wrapper">
+            <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{item.title+':  '}}</span>
+              <span>{{ row[item.field] }}</span>
+            </li>
+          </ul>
+        </template>
+
+        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+        <template #button_slot="{ row }">
+          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+        </template>
+
+
+        <template #num1_filter="{ column, $panel }">
+          <div>
+            <div v-for="(option, index) in column.filters" :key="index">
+              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            </div>
+          </div>
+        </template>
+      </vxe-grid>
+    </el-main>
+  </el-container>
+</template>
+
+
+<script setup>
+import {ref} from 'vue'
+import {Search} from "@element-plus/icons-vue";
+import 'dayjs/locale/zh-cn'
+import {VXETable} from "vxe-table";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {ElMessage, ElMessageBox} from "element-plus";
+
+const datevalue = ref('')//鏃堕棿
+
+//缁勪欢鎺ユ敹鍙傛暟
+const PayOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  columns: [
+    /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: '5%'},//璇︽儏
+    {type: 'checkbox', fixed: "left", title: '', width: '5%'},
+    {type: 'seq', fixed: "left", title: ' ', width: '5%'},
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'cgzt', width: '10%', title: '鏈堜唤', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鏈熷垵閲戦',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鏈湡搴斾粯',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'w',
+      width: '10%',
+      title: '鏈湡宸蹭粯',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'g',
+      width: '10%',
+      title: '鏈熸湯浣欓',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'h', width: '9%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+  ],//琛ㄥご鍙傛暟
+  toolbarConfig: {
+    buttons: [{type: 'text'}, {
+      'name': '搴斾粯纭',
+      status: 'primary',
+      'code': 'Sure',
+    }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    style: 'paddling-left:10px'
+  },//琛ㄥご鎸夐挳
+  data: [{}, {}, {}, {}],//table body瀹為檯鏁版嵁
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 3}
+  ],//鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+          //搴斾粯纭
+        case 'Sure': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!", 'warning');
+            return
+          } else {
+            MessageConfirmShow("纭搴斾粯", '鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭搴斾粯锛�')
+          }
+          break
+        }
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+
+
+const shortcuts = [
+  {
+    text: '杩戜竴鍛�',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜竴涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜笁涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+      return [start, end]
+    },
+  },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '纭搴斾粯':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+
+  }
+  return true;
+}
+
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        return  logicExecute(czType);
+
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
+</script>
+
+
+<style scoped>
+.el-row {
+  margin-bottom: 20px;
+}
+
+.el-row:last-child {
+  margin-bottom: 0;
+}
+
+.el-col {
+  border-radius: 4px;
+}
+
+.m-header {
+  height: 32px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Return.vue b/UI-Project/src/views/StockBasicData/Return.vue
new file mode 100644
index 0000000..354092d
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Return.vue
@@ -0,0 +1,593 @@
+<template>
+  <el-container>
+    <el-header class="m-header" style="height: auto">
+      <el-row :gutter="10" style="margin-bottom: 5px">
+        <el-col :span="7">
+          <el-date-picker
+              v-model="datevalue"
+              type="daterange"
+              unlink-panels
+              range-separator="鍒�"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              :shortcuts="shortcuts"
+              :size="size"
+              format="YYYY/MM/DD"
+              value-format="YYYY-MM-DD"
+          />
+
+        </el-col>
+
+        <el-col :span="2">
+          <el-button
+              id="select"
+              type="primary"
+              :icon="Search"
+              @click="BtnSearchPurchaseOrder">鏌ヨ
+          </el-button>
+        </el-col>
+      </el-row>
+    </el-header>
+    <el-main style="padding-top: 5px;height:100%">
+      <vxe-grid
+
+          max-height="600"
+          @filter-change="filterChanged"
+          class="mytable-scrollbar"
+          ref="xGrid"
+          v-bind="gridOptions"
+          v-on="gridEvents"
+          @cell-dblclick="cellClickEvent"
+      >
+
+        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+        <template #content="{ row }">
+          <ul class="expand-wrapper">
+            <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
+              <span>{{ row[item.field] }}</span>
+            </li>
+          </ul>
+        </template>
+
+        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+        <template #button_slot="{ row }">
+          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+        </template>
+
+
+        <template #num1_filter="{ column, $panel }">
+          <div>
+            <div v-for="(option, index) in column.filters" :key="index">
+              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            </div>
+          </div>
+        </template>
+      </vxe-grid>
+
+
+      <!--      璇︽儏妗� 閮ㄥ垎1-->
+      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+                 resize>
+        <el-container>
+          <el-header height="35px"
+                     style="margin: 0;padding: 0">
+
+            <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
+              <template #prepend>閲囪喘鍗曞彿锛�</template>
+            </el-input>
+          </el-header>
+          <el-main>
+            <template #default>
+              <vxe-table
+                  border="default"
+                  auto-resize
+                  show-overflow
+                  max-height="400"
+                  :row-config="{isHover: true}"
+                  :show-header="false"
+                  :sync-resize="showDetails"
+                  :data="detailData"
+
+              >
+                <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
+                <vxe-column field="value"></vxe-column>
+              </vxe-table>
+            </template>
+          </el-main>
+          <el-footer height="40px">
+            <el-row>
+              <el-col :offset="20" :span="4">
+                <el-button
+                    id="Sure"
+                    type="primary"
+                    @click="SureReturn"
+                >纭閫�璐�
+                </el-button>
+              </el-col>
+
+            </el-row>
+          </el-footer>
+        </el-container>
+      </vxe-modal>
+      <!--      璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
+    </el-main>
+  </el-container>
+</template>
+
+
+<script setup>
+
+import {ref} from "vue";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {Search} from "@element-plus/icons-vue";
+import dayjs from "dayjs";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+
+let router = useRouter()
+const getTableRow = (row, type) => {
+  switch (type) {
+    case 'edit' : {
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      // router.push({path: '/main/purchaseOrder/DetailsPurchaseOrder', query: {id: row.id}})
+      break
+    }
+    case 'delete': {
+
+
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
+      break
+    }
+  }
+}
+
+const xGrid = ref()
+
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'Sure': {
+          if ($grid.getCheckboxRecords().length === 0) {
+
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!', 'warning');
+
+            return
+          } else {
+
+            MessageConfirmShow('纭畾', '鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�璐э紵')
+          }
+          break
+        }
+        case 'Log': {
+          MessageAlertShow('鐐瑰嚮浜嗛��璐ц褰�!', '鎿嶄綔鎻愮ず');
+          break
+        }
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+
+//鏌ヨ鎸夐挳鏂规硶
+const BtnSearchPurchaseOrder = () => {
+
+  //寮�濮嬫椂闂达紝缁撴潫鏃堕棿鑾峰彇
+  //MessageShow("寮�濮嬫椂闂�"+datevalue._rawValue[0]+"\r\n缁撴潫鏃堕棿\r\n"+datevalue._rawValue[1]);
+
+  for (let i = 1; i < 6; i++) {
+    const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
+    const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
+    const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
+    const t = i % 2 === 0 ? 5 : 6;
+    const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '閫�璐�' : '閮ㄥ垎鍏ュ簱';
+    const thdh = i % 2 === 0 ? '' : i % 3 === 0 ? 'THID' + randomOrderInt : '';
+    const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
+    const wlNo = 'NGWL1000' + randomInt;
+    const xh = 'NGXH' + randomSumInt;
+    const wlmc = 'WLMC' + randomInt;
+    const gys = '渚涘簲鍟�' + randomSumInt;
+    const xhdh = 'NG231200' + randomOrderInt;
+    const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
+    const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
+    const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
+    now.setDate(now.getDate() + 1);
+    gridOptions.data.push({
+      cgdh: CGNo,
+      thdh: thdh,
+      h: t,
+      xh: xh,
+      wlbh: wlNo,
+      wlmc: wlmc,
+      gys: gys,
+      w: w,
+      g: h,
+      dw: dw,
+      cgzt: s,
+      rq: dayjs(now).format('YYYY-MM-DD'),
+      yl: randomSumInt,
+      sl: randomOrderInt,
+      xsdh: xhdh,
+      je: randomInt,
+      6: '139xxxxxxxx',
+
+    })
+  }
+
+}
+
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  columns: [
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
+    {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+
+
+    {
+      field: 'thdh',
+      width: '10%',
+      title: '閫�璐у崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鐗╂枡缂栧彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '12%',
+      title: '涓嶅惈绋庡崟浠�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'sl',
+      width: '12%',
+      title: '宸查噰璐暟閲�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'je',
+      width: '12%',
+      title: '涓嶅惈绋庨噾棰�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鍗曟嵁鐘舵��',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'xsdh',
+      width: '10%',
+      title: '閿�鍞崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'rq',
+      width: '10%',
+      title: '鍒跺崟鏃ユ湡',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘閮ㄩ棬',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘缁勭粐',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+  ],//琛ㄥご鍙傛暟
+  toolbarConfig: {
+    buttons: [{type: 'text'}, {
+      'name': '閫�璐ц褰�',
+
+      'code': 'Log'
+    },
+      {
+        'name': '纭閫�璐�',
+        status: 'primary',
+        'code': 'Sure'
+      }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    style: 'paddling-left:10px'
+  },//琛ㄥご鎸夐挳
+  data: [],//table body瀹為檯鏁版嵁
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 4}
+  ],//鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+
+//璇︽儏妗� 閮ㄥ垎2
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
+const cellClickEvent = ({row}) => {
+  if (isQueryColumnId === false) {
+    queryColumnId();
+  }
+
+  detailData = list.map(field => {
+    return {label: queryColumnsTitle(field), value: row[field]}
+  })
+  showDetails.value = true;
+  showCGDH.value = row['cgdh'];
+}
+
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 4;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
+
+  while (columnIndex < gridOptions.columns.length) {
+    list.push(gridOptions.columns[columnIndex].field);
+    columnIndex++;
+  }
+  isQueryColumnId = true;
+  return list;
+}
+
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+  let i = 0;
+  while (i < gridOptions.columns.length + 1) {
+    if (gridOptions.columns[i].field === cn) {
+      return gridOptions.columns[i].title;
+    }
+    i++;
+  }
+}
+
+// 璇︽儏妗嗛儴鍒�2 缁撴潫
+
+const SureReturn = () => {
+
+  MessageConfirmShow('閫�璐�', '鏄惁纭閫�璐э紵')
+
+}
+
+//璇︽儏妗� 閮ㄥ垎2 缁撴潫
+
+
+const now = new Date()
+
+//鏃堕棿蹇嵎閫夋嫨
+const datevalue = ref('')
+const shortcuts = [
+  {
+    text: '杩戜竴鍛�',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜竴涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜笁涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+      return [start, end]
+    },
+  },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+  const $grid = xGrid.value
+  switch (type) {
+    case '纭畾':
+      //澶氶�夐��璐ч�昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //鍗曢��璐ч�昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        logicExecute(czType);
+
+        return true;
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.v-column-label div span) {
+  font-weight: bold;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Select.vue b/UI-Project/src/views/StockBasicData/Select.vue
new file mode 100644
index 0000000..b7539d3
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Select.vue
@@ -0,0 +1,486 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(false)
+const box = ref(true)
+const boxa = ref(false)
+const boxb = ref(false)
+// const tableData = [
+//   {
+//     id: '1',
+//     long: '1005',
+//     wide: '183.6',
+//     thick: '1991',
+//     type: '5',
+//     typea: '1',
+//   },
+//   {
+//     id: '2',
+//     long: '105',
+//     wide: '183',
+//     thick: '191',
+//     typea: '1',
+//     type: '5'
+//   },
+//   {
+//     id: '2',
+//     long: '105',
+//     wide: '183',
+//     thick: '191',
+//     typea: '1',
+//     type: '5'
+//   },
+// ]
+const tableData = ref([
+{
+    id: '2',
+    ida: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    typeb: '1',
+    typec: '1',
+    type: '5'
+  },
+  {
+    id: '12',
+    ida: '12',
+    long: '1105',
+    wide: '1183',
+    thick: '1911',
+    typea: '11',
+    typeb: '11',
+    typec: '11',
+    type: '15'
+  },
+])
+// 鏂板涓�琛�
+const addTableData = ()=>{
+  const newRow = {
+    id: null,
+    id: null,
+    long: null,
+    wide: null,
+    thick: null,
+    typea: null,
+    type: null,
+    typeb: null,
+    typec: null,
+  }
+  tableData.value.push(newRow)
+}
+// 鍒犻櫎
+const deleteTableData = (row) =>{
+  const index = tableData.value.indexOf(row);
+  if (index !== -1) {
+    tableData.value.splice(index, 1);
+  }
+}
+const tableDataa = [
+  {
+    ida: '3',
+    longa: '1005',
+    widea: '183.6',
+    thicka: '1991',
+  },
+  {
+    ida: '4',
+    longa: '105',
+    widea: '183',
+    thicka: '191',
+  }
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const selectedRows = ref([]);
+const handleSelectionChange = (selection) => {
+  selectedRows.value = selection;
+};
+const showMessage = () => {
+  if (selectedRows.value.length === 0) {
+    ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+  } else{
+    ElMessage({
+    message: '鍑虹墖鎴愬姛锛�',
+    type: 'success',
+  })
+
+  }
+};
+const pick = () => {
+  if (selectedRows.value.length === 0) {
+    ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+  } else{
+    ElMessage({
+    message: '鐮存崯鎴愬姛锛�',
+    type: 'success',
+  })
+
+  }
+};
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+</script>
+
+<template>
+  <div>
+     <el-button style="margin-top: 5px;margin-left: 5px;"   id="searchButton" type="primary" @click="showMessage">鍑虹墖</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" type="primary" @click="pick">鐮存崯</el-button>
+    <!-- <el-button style="margin-top: 5px"  id="searchButton" type="primary" @click="dialogFormVisible = true">娣诲姞</el-button> -->
+    <el-button style="margin-top: 5px"  id="searchButton" type="primary"  @click="addTableData" >娣诲姞</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" @click="boxb = true;box = false" >鍚堝苟</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" @click="box = true;boxb = false" >鍗曠墖</el-button>
+
+    <div v-if="box">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+    <el-table-column type="selection" width="55"  />
+    <el-table-column prop="id" align="center" label="鏍呮牸鍙�" min-width="80" >
+      <template #default="scope">
+        <el-input v-model="scope.row.id" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="ida" align="center" label="id" min-width="80">
+            <template #default="scope">
+        <el-input v-model="scope.row.ida" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="long" align="center" label="闀�" min-width="100" >
+            <template #default="scope">
+        <el-input v-model="scope.row.long" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="100">
+            <template #default="scope">
+        <el-input v-model="scope.row.wide" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="type" align="center" label="鍘氬害" min-width="100">
+            <template #default="scope">
+        <el-input v-model="scope.row.type" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="typea" align="center" label="鑶滅郴" min-width="100" >
+            <template #default="scope">
+        <el-input v-model="scope.row.typea" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="typeb" align="center" label="鍑虹墖椤哄簭" min-width="120" >
+            <template #default="scope">
+        <el-input v-model="scope.row.typeb" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="typec" align="center" label="娴佺▼鍗″彿" min-width="150">
+            <template #default="scope">
+        <el-input v-model="scope.row.typec" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="thick" align="center" label="鍏朵粬" min-width="120" >
+            <template #default="scope">
+        <el-input v-model="scope.row.thick" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">璇︽儏</el-button>
+        <el-button @click="deleteTableData(scope.row)" link icon="Delete" type="primary">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
+  </el-table>
+</div>
+
+    </el-card>
+  </div>
+  <div v-if="boxb">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+    <el-table-column type="selection" width="55"  />
+    <el-table-column prop="id" align="center" label="鏍呮牸" min-width="80">
+      <template #default="scope">
+        <el-input v-model="scope.row.id" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="ida" align="center" label="id" min-width="80">
+            <template #default="scope">
+        <el-input v-model="scope.row.ida" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="long" align="center" label="闀�" min-width="120" >
+            <template #default="scope">
+        <el-input v-model="scope.row.long" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="120">
+            <template #default="scope">
+        <el-input v-model="scope.row.wide" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="type" align="center" label="鍘氬害" min-width="120">
+            <template #default="scope">
+        <el-input v-model="scope.row.type" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="typea" align="center" label="鑶滅郴" min-width="120" >
+            <template #default="scope">
+        <el-input v-model="scope.row.typea" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="typeb" align="center" label="鍑虹墖椤哄簭" min-width="120" >
+            <template #default="scope">
+        <el-input v-model="scope.row.typeb" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="typec" align="center" label="娴佺▼鍗″彿" min-width="120">
+            <template #default="scope">
+        <el-input v-model="scope.row.typec" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column prop="thick" align="center" label="鍏朵粬" min-width="120" >
+            <template #default="scope">
+        <el-input v-model="scope.row.thick" size="small"></el-input>
+      </template>
+      </el-table-column>
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">璇︽儏</el-button>
+        <el-button @click="deleteTableData(scope.row)" link icon="Delete" type="primary">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
+  </el-table>
+      </div>
+    </el-card>
+  </div>
+  </div>
+  <el-dialog v-model="dialogFormVisible" top="21vh" width="40%" title="娣诲姞" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form >
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏍呮牸鍙凤細" :required="true" style="width: 14vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="id锛�" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" />
+              </el-form-item></div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="闀匡細" :required="true" style="width: 13.2vw;margin-left: 14px;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鍘氬害锛�" :required="true" style="width: 13.2vw;margin-left: 14px;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鍑虹墖椤哄簭锛�" :required="true" style="width: 13.2vw;margin-left: 14px;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+              <el-form-item label="娴佺▼鍗″彿" :required="true" style="width: 14vw">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鍏朵粬锛�" :required="true" style="width: 13.2vw;margin-left: 14px;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="dialogFormVisible = false">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+    <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" title="鍘熺墖淇℃伅">
+    <el-table height="100%" ref="table" :data="tableDataa" @row-click="handle">
+      <el-table-column
+        prop="long"
+        align="center"
+        label="闀�"
+        min-width="120"
+      />
+      <el-table-column
+        prop="wide"
+        align="center"
+        label="瀹�"
+        min-width="120"
+      />
+      <el-table-column
+        prop="thick"
+        align="center"
+        label="鍘�"
+        min-width="120"
+      />
+      <el-table-column
+        prop="station"
+        align="center"
+        label="宸ヤ綅"
+        min-width="120"
+      />
+    </el-table>
+    <div style="text-align: center; height: 22px; margin-top: 30px;">
+        <el-button @click="dialogFormVisiblea = false">鍏抽棴</el-button>
+      </div>
+  </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#box{
+  position: relative;
+
+  #icon{
+    position: absolute;
+    bottom:10px;
+    right: 19px;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Storage.vue b/UI-Project/src/views/StockBasicData/Storage.vue
new file mode 100644
index 0000000..98a9156
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Storage.vue
@@ -0,0 +1,603 @@
+<template>
+  <el-container>
+    <el-header class="m-header" style="height: auto">
+      <el-row :gutter="10" style="margin-bottom: 5px">
+        <el-col :span="7">
+          <el-date-picker
+              v-model="datevalue"
+              type="daterange"
+              unlink-panels
+              range-separator="鍒�"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              :shortcuts="shortcuts"
+
+              format="YYYY/MM/DD"
+              value-format="YYYY-MM-DD"
+          />
+
+        </el-col>
+        <el-col :span="2">
+          <el-button
+              id="select"
+              type="primary"
+              :icon="Search"
+              @click="BtnSearchPurchaseOrder">鏌ヨ
+          </el-button>
+        </el-col>
+
+      </el-row>
+
+
+    </el-header>
+    <el-main style="padding-top: 5px;height:100%">
+      <vxe-grid
+
+          max-height="600"
+          @filter-change="filterChanged"
+          class="mytable-scrollbar"
+          ref="xGrid"
+          v-bind="gridOptions"
+          v-on="gridEvents"
+
+          @cell-dblclick="cellClickEvent"
+
+      >
+
+        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+        <template #content="{ row }">
+          <ul class="expand-wrapper">
+            <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
+              <span>{{ row[item.field] }}</span>
+            </li>
+          </ul>
+        </template>
+
+        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+        <template #button_slot="{ row }">
+          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+          <el-button @click="getTableRow(row,'look')" link type="primary" size="small">鏌ョ湅</el-button>
+          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+        </template>
+
+
+        <template #num1_filter="{ column, $panel }">
+          <div>
+            <div v-for="(option, index) in column.filters" :key="index">
+              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            </div>
+          </div>
+        </template>
+      </vxe-grid>
+
+      <!--      璇︽儏妗� 閮ㄥ垎1-->
+      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+                 resize>
+        <el-container>
+          <el-header height="35px"
+                     style="margin: 0;padding: 0">
+
+            <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
+              <template #prepend>閲囪喘鍗曞彿锛�</template>
+            </el-input>
+          </el-header>
+          <el-main>
+            <template #default>
+              <vxe-table
+                  border="inner"
+                  auto-resize
+                  show-overflow
+                  max-height="400"
+                  :row-config="{isHover: true}"
+                  :show-header="false"
+                  :sync-resize="showDetails"
+                  :data="detailData">
+                <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
+                <vxe-column field="value"></vxe-column>
+              </vxe-table>
+            </template>
+          </el-main>
+          <el-footer height="40px">
+            <el-row>
+              <el-col :offset="20" :span="4">
+                <el-button
+                    id="Sure"
+                    type="primary"
+                    @click="SureStorage"
+                >纭鍏ュ簱
+                </el-button>
+              </el-col>
+
+            </el-row>
+          </el-footer>
+        </el-container>
+      </vxe-modal>
+      <!--      璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
+
+
+    </el-main>
+  </el-container>
+
+
+</template>
+
+
+<script setup>
+import {ref} from "vue";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {Search} from "@element-plus/icons-vue";
+import dayjs from "dayjs";
+import {VXETable} from "vxe-table";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+let router = useRouter()
+
+
+const getTableRow = (row, type) => {
+  switch (type) {
+    case 'edit' : {
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/purchaseOrder/DetailsPurchaseOrder', query: {id: row.id}});
+
+      break
+    }
+    case 'look': {
+      /*this.detailData = ['name', 'nickname', 'role', 'sex', 'age', 'amount', 'address'].map(field => {
+        return { label: field, value: row[field] }
+      })*/
+      //this.showDetails = true
+      break
+    }
+    case 'delete': {
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
+      break
+    }
+  }
+}
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'Sure': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', 'warning');
+            //openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
+            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+            return
+          } else {
+            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
+            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
+            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+            return
+          }
+          break
+        }
+        case 'Log': {
+
+          //openAlert({type: 'alert', content: '鐐瑰嚮浜嗛��璐ц褰�', status: 'success'})
+          MessageConfirmShow("閫�璐ц褰�", "鐐瑰嚮浜嗛��璐ц褰�", "", 'success')
+          break
+        }
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+const openAlert = (options) => {
+  if (options.type === 'message') {
+    VXETable.modal.message(options)
+  } else {
+    VXETable.modal.alert(options)
+  }
+
+}
+const closeAlert = (id) => {
+  VXETable.modal.close(id)
+}
+
+
+//鏌ヨ璋冪敤浜嬩欢
+const BtnSearchPurchaseOrder = () => {
+  //寮�濮嬫椂闂达紝缁撴潫鏃堕棿鑾峰彇
+  //MessageShow(datevalue._rawValue[0]+"\r\n鏃堕棿2\r\n"+datevalue._rawValue[1]);
+
+  for (let i = 1; i < 6; i++) {
+    const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
+    const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
+    const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
+    const t = i % 2 === 0 ? 5 : 6;
+    const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '寰呭鏍�' : '宸查噰璐�';
+    const rkdh = i % 2 === 0 ? 'RKID' + randomOrderInt : i % 3 === 0 ? '' : '';
+    const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
+    const wlNo = 'NGWL1000' + randomInt;
+    const xh = 'NGXH' + randomSumInt;
+    const wlmc = 'WLMC' + randomInt;
+    const gys = '渚涘簲鍟�' + randomSumInt;
+    const xhdh = 'NG231200' + randomOrderInt;
+    const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
+    const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
+    const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
+    now.setDate(now.getDate() + 1);
+    gridOptions.data.push({
+      cgdh: CGNo,
+      rkdh: rkdh,
+      h: t,
+      xh: xh,
+      wlbh: wlNo,
+      wlmc: wlmc,
+      gys: gys,
+      w: w,
+      g: h,
+      dw: dw,
+      cgzt: s,
+      rq: dayjs(now).format('YYYY-MM-DD'),
+      yl: randomSumInt,
+      sl: randomOrderInt,
+      xsdh: xhdh,
+      je: randomInt,
+      6: '139xxxxxxxx',
+
+    })
+  }
+
+}
+
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  //showDetails: false,//寮圭獥 鏄惁鏄剧ず
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  columns: [
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
+    {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+
+
+    {
+      field: 'rkdh',
+      width: '10%',
+      title: '鍏ュ簱鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鐗╂枡缂栧彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '12%',
+      title: '涓嶅惈绋庡崟浠�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'sl',
+      width: '12%',
+      title: '宸查噰璐暟閲�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'je',
+      width: '12%',
+      title: '涓嶅惈绋庨噾棰�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鍗曟嵁鐘舵��',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'xsdh',
+      width: '10%',
+      title: '閿�鍞崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'rq',
+      width: '10%',
+      title: '鍒跺崟鏃ユ湡',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘閮ㄩ棬',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: '7',
+      width: '10%',
+      title: '閲囪喘缁勭粐',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '8', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+  ],//琛ㄥご鍙傛暟
+  toolbarConfig: {
+    buttons: [{type: 'text'/*,name:'璁㈠崟鍏ュ簱'*/}, {
+      'name': '鍏ュ簱璁板綍',
+
+      'code': 'Log'
+    },
+      {
+        'name': '纭鍏ュ簱',
+        status: 'primary',
+        'code': 'Sure'
+      }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    style: 'paddling-left:10px'
+  },//琛ㄥご鎸夐挳
+  data: [],//table body瀹為檯鏁版嵁
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 4}
+  ],//鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+
+
+//璇︽儏妗� 閮ㄥ垎2
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
+const cellClickEvent = ({row}) => {
+  if(isQueryColumnId===false){
+    queryColumnId();
+  }
+
+  detailData = list.map(field => {
+    return {label: queryColumnsTitle(field), value: row[field]}
+  })
+
+  showDetails.value = true;
+  showCGDH.value = row['cgdh'];
+}
+
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 4;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
+  while (columnIndex < gridOptions.columns.length) {
+    list.push(gridOptions.columns[columnIndex].field);
+    columnIndex++;
+  }
+  isQueryColumnId = true;
+  return list;
+}
+
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+  let i = 0;
+  while (i < gridOptions.columns.length + 1) {
+    if (gridOptions.columns[i].field === cn) {
+      return gridOptions.columns[i].title;
+    }
+    i++;
+  }
+}
+//璇︽儏妗� 閮ㄥ垎2 缁撴潫
+
+
+const SureStorage = () => {
+  MessageShow('纭鍏ュ簱鎴愬姛');
+
+}
+
+
+const now = new Date()
+
+//鏃堕棿蹇嵎閫夋嫨
+const datevalue = ref('')
+const shortcuts = [
+  {
+    text: '杩戜竴鍛�',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜竴涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜笁涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+      return [start, end]
+    },
+  },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+//鎻愮ず淇℃伅
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+        return logicExecute(czType);
+
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.v-column-label div span) {
+  font-weight: bold;
+}
+
+
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
new file mode 100644
index 0000000..cf2dab3
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -0,0 +1,169 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    type: '寰呰瘑鍒�',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+
+</script>
+
+<template>
+  <div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="id" min-width="80" />
+          <el-table-column prop="long" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鍘氬害" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鑶滅郴" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鍑虹墖椤哄簭" min-width="120" />
+          <el-table-column prop="wide" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鍏朵粬" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">鐮存崯</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#main-body{
+  margin-top: -20px;
+  margin-left: 300px;
+}
+#main-bodya{
+  margin-top: -10px;
+  margin-left: 100px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
index a574308..9fc3091 100644
--- a/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
+++ b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
@@ -8,7 +8,6 @@
 import deepClone from "@/utils/deepClone";
 import { ElMessage } from "element-plus";
 import { useRouter } from "vue-router";
-import GlassType from '@/components/basic/product/GlassType.vue'
 
 
 const router = useRouter()
@@ -24,7 +23,8 @@
 export default {
   mounted() {
     //鑾峰彇鏁版嵁
-    request.get("/Temper/Tindex").then((res) => {
+    var data="ProcessId="+"P24032508";
+    request.get("/TidyUpGlassModule/SelectTerritoryInfo?"+data).then((res) => {
       if (res.code == 200) {
         var StoveCount=0;
         var temperid;
@@ -161,11 +161,8 @@
 
 <template>
   <div ref="content">
-
+    <canvas ref="mycanvas"></canvas>
   </div>
-  <canvas ref="mycanvas" >
-
-  </canvas>
 </template>
 
 <style scoped>
diff --git a/UI-Project/src/views/UnLoadGlass.rar b/UI-Project/src/views/UnLoadGlass.rar
new file mode 100644
index 0000000..a4932b3
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass.rar
Binary files differ
diff --git a/UI-Project/src/views/UnLoadGlass.zip b/UI-Project/src/views/UnLoadGlass.zip
new file mode 100644
index 0000000..6435317
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass.zip
Binary files differ
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
new file mode 100644
index 0000000..1c572a5
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -0,0 +1,118 @@
+<template>
+  <div class="glass-rack">
+    <div >
+      <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
+        <g stroke="null" id="Layer_1">
+          <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
+          <g v-for="(rack, index) in racks" :key="index">
+            <rect 
+              :x="rack.x" 
+              :y="rack.y" 
+              :width="rack.width" 
+              :height="rack.height" 
+              :fill="rack.fillColor"
+          :data-index="index" 
+          class="rack-rect" 
+          @click="showRectInfo(rack)"
+            />
+            <rect 
+              :x="calculateItemXPosition(rack, rack.item, index)" 
+              :y="calculateItemYPosition(rack, rack.item, index)" 
+              :width="rack.item.width" 
+              :height="rack.item.height" 
+              :fill="rack.item.fillColor"
+            />
+            <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 1 }}鍙峰伐浣�</text>
+            <text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
+          </g>
+        </g>
+      </svg>
+    </div>
+  </div>
+</template>
+
+<script>
+import Swal from 'sweetalert2'
+export default {
+  data() {
+    return {
+      racks: [
+        { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
+        { x: 50, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 20, width: 10, fillColor: 'yellow', content: 'NG1234567' } },
+        { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
+        { x: 280, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 35, width: 23, fillColor: 'yellow', content: 'NG123456910' } },
+        { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
+      ]
+    };
+  },
+  methods: {
+    // 璁$畻鍐呴儴鐗╁搧鐨� x 鍧愭爣浣嶇疆
+    calculateItemXPosition(rack, item, index) {
+      if (index === 0 || index === 1) {  // 濡傛灉鏄涓�鎴栫浜屼釜鐗╁搧
+        return rack.x;  // 杩斿洖宸﹁竟鐣� x 鍧愭爣
+      } else if (index === 2 || index === 3) {  // 濡傛灉鏄涓夋垨绗洓涓墿鍝�
+        return rack.x + rack.width - item.width;  // 杩斿洖鍙宠竟鐣� x 鍧愭爣
+      } else {
+        return rack.x + (rack.width - item.width) / 2;  // 杩斿洖姘村钩灞呬腑鐨� x 鍧愭爣
+      }
+    },
+    // 璁$畻鍐呴儴鐗╁搧鐨� y 鍧愭爣浣嶇疆
+    calculateItemYPosition(rack, item, index) {
+      if (index === 0 || index === 1) {  // 濡傛灉鏄涓�鎴栫浜屼釜鐗╁搧
+        return rack.y + (rack.height - item.height) / 2;  // 杩斿洖鍨傜洿灞呬腑鐨� y 鍧愭爣
+      } else if (index === 2 || index === 3) {  // 濡傛灉鏄涓夋垨绗洓涓墿鍝�
+        return rack.y + (rack.height - item.height) / 2;  // 杩斿洖鍨傜洿灞呬腑鐨� y 鍧愭爣
+      } else {
+        return rack.y + rack.height - item.height;  // 杩斿洖搴曢儴瀵归綈鐨� y 鍧愭爣
+      }
+    },
+    showCustomAlert(content) {
+      var str="鏋跺彿   :      111\n" +
+        "闀�     :      111\n" +
+        "瀹�     :      111\n" +
+        "鍘�     :      111\n"+
+        "鐜荤拑ID :      111\n"+
+        "鑶滅郴   :      111\n";
+
+Swal.fire({
+  title: '鐜荤拑淇℃伅',
+  html: '<pre>' + str + '</pre>',
+  customClass: {
+    popup: 'format-pre'
+  }
+});
+
+  },
+    showRectInfo( rectInfo) {
+  const content = rectInfo.item.content;
+  this.$nextTick(() => {
+    this.showCustomAlert(content);
+  });
+},
+  }
+};
+</script>
+
+<style scoped>
+.glass-rack {
+  margin-left: 20px;
+  width: 500px;
+  margin-top: 10px;
+  /* background-color: antiquewhite; */
+}
+.rack-rect:hover {
+  cursor: pointer;
+}
+.custom-popover-class {
+  background-color: lightgrey;
+  color: black;
+  border: 1px solid black;
+}
+.format-pre pre {
+  background: #49483e;
+  color: #f7f7f7;
+  padding: 10px;
+  font-size: 14px;
+}
+
+</style>
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
new file mode 100644
index 0000000..1c43b71
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -0,0 +1,114 @@
+<template>
+  <div class="glass-rack">
+    <div>
+      <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
+        <g stroke="null" id="Layer_1">
+          <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
+          <g v-for="(rack, index) in racks" :key="index">
+            <rect 
+              :x="rack.x" 
+              :y="rack.y" 
+              :width="rack.width" 
+              :height="rack.height" 
+              :fill="rack.fillColor"
+          :data-index="index" 
+          class="rack-rect" 
+          @click="showRectInfo(rack)"
+            />
+            <rect 
+              :x="calculateItemXPosition(rack, rack.item, index)" 
+              :y="calculateItemYPosition(rack, rack.item, index)" 
+              :width="rack.item.width" 
+              :height="rack.item.height" 
+              :fill="rack.item.fillColor"
+            />
+            <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 6 }}鍙峰伐浣�</text>
+            <text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
+          </g>
+        </g>
+      </svg>
+    </div>
+  </div>
+</template>
+
+<script>
+import Swal from 'sweetalert2'
+export default {
+  data() {
+    return {
+      racks: [
+        { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
+        { x: 50, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 20, width: 10, fillColor: 'yellow', content: 'NG1234567' } },
+        { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
+        { x: 280, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 35, width: 23, fillColor: 'yellow', content: 'NG123456910' } },
+        { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
+      ]
+    };
+  },
+  methods: {
+    calculateItemXPosition(rack, item, index) {
+      if (index === 0 || index === 1) {
+        return rack.x;
+      } else if (index === 2 || index === 3) {
+        return rack.x + rack.width - item.width;
+      } else {
+        return rack.x + (rack.width - item.width) / 2;
+      }
+    },
+    calculateItemYPosition(rack, item, index) {
+      if (index === 0 || index === 1) {
+        return rack.y + (rack.height - item.height) / 2;
+      } else if (index === 2 || index === 3) {
+        return rack.y + (rack.height - item.height) / 2;
+      } else {
+        return rack.y + rack.height - item.height;
+      }
+    },
+    showCustomAlert(content) {
+      var str="鏋跺彿   :      111\n" +
+        "闀�     :      111\n" +
+        "瀹�     :      111\n" +
+        "鍘�     :      111\n"+
+        "鐜荤拑ID :      111\n"+
+        "鑶滅郴   :      111\n";
+
+Swal.fire({
+  title: '鐜荤拑淇℃伅',
+  html: '<pre>' + str + '</pre>',
+  customClass: {
+    popup: 'format-pre'
+  }
+});
+
+  },
+    showRectInfo( rectInfo) {
+  const content = rectInfo.item.content;
+  this.$nextTick(() => {
+    this.showCustomAlert(content);
+  });
+},
+  }
+};
+</script>
+
+<style scoped>
+.glass-rack {
+  margin-left: 20px;
+  width: 500px;
+}
+.rack-rect:hover {
+  cursor: pointer;
+}
+.custom-popover-class {
+  background-color: lightgrey;
+  color: black;
+  border: 1px solid black;
+}
+.format-pre pre {
+  background: #49483e;
+  color: #f7f7f7;
+  padding: 10px;
+  font-size: 14px;
+}
+
+</style>
diff --git a/UI-Project/src/views/sd/customer/Customer.vue b/UI-Project/src/views/UnLoadGlass/UnLoadGlass.vue
similarity index 75%
rename from UI-Project/src/views/sd/customer/Customer.vue
rename to UI-Project/src/views/UnLoadGlass/UnLoadGlass.vue
index bb247e9..823a521 100644
--- a/UI-Project/src/views/sd/customer/Customer.vue
+++ b/UI-Project/src/views/UnLoadGlass/UnLoadGlass.vue
@@ -10,13 +10,13 @@
 
 <template>
   <div id="main-div">
-    <div id="div-title">
+    <!-- <div id="div-title">
       <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/customer/selectCustomer' }">瀹㈡埛棣栭〉</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/customer/CreateCustomer' }">鏂板</el-breadcrumb-item>
+        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/UnLoadGlass/loadmachinerack' }">涓嬬墖绠$悊</el-breadcrumb-item>
+        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/UnLoadGlass/loadmachinerack' }">涓嬬墖淇℃伅</el-breadcrumb-item>
         <el-breadcrumb-item v-show="false" :to="{ path: '/main/product/test1' }">娴嬭瘯</el-breadcrumb-item>
       </el-breadcrumb>
-    </div>
+    </div> -->
 
     <div id="main-body">
       <router-view  />
@@ -37,14 +37,14 @@
   margin-top: -5px;
   margin-left: 1rem;
 }
-#searchButton1{
+/* #searchButton1{
 //margin-left: 10rem;
-}
+} */
 /*main-body鏍峰紡*/
 #main-body{
   width: 100%;
   height: 95%;
-  margin-top: 1%;
+  /* margin-top: 1%; */
 }
 #select{
   margin-left:0.5rem;
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
new file mode 100644
index 0000000..9d6e547
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -0,0 +1,193 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+const dialogFormVisiblea = ref(false)
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import Landingindication from "./Landingindication.vue";
+// import Landingindicationtwo from "./Landingindicationtwo.vue";
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    state: '鏈惎鐢�',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+
+</script>
+
+<template>
+  <div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="涓嬬墖浣�" min-width="80" />
+          <el-table-column prop="long" align="center" label="鏋跺彿" min-width="120" />
+          <el-table-column prop="wide" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鎬绘暟閲�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
+          <el-table-column prop="state" align="center" label="鍚敤鐘舵��" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain v-show="state !== '宸插惎鐢�' " @click="dialogFormVisiblea = true">缁戝畾鏋跺瓙</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogFormVisible = true">娓呯┖</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  <div style="display: flex;">
+  <div id="main-body">
+      <Landingindication></Landingindication>
+    </div>
+  <!-- <div id="main-bodya">
+    <Landingindicationtwo></Landingindicationtwo>
+    </div> -->
+    </div>
+    <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="缁戝畾鏋跺瓙" >
+    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form  label-width="100px" label-position="right">
+              <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
+                <el-input  autocomplete="off"/>
+              </el-form-item>
+              <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 18vw;">
+                <el-input autocomplete="off" />
+              </el-form-item>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="dialogFormVisiblea = false">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#main-body{
+  margin-top: -20px;
+  margin-left: 450px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
new file mode 100644
index 0000000..cd181fc
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
@@ -0,0 +1,193 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+const dialogFormVisiblea = ref(false)
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+// import Landingindication from "./Landingindication.vue";
+import Landingindicationtwo from "./Landingindicationtwo.vue";
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    state: '鏈惎鐢�',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+
+</script>
+
+<template>
+  <div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="涓嬬墖浣�" min-width="80" />
+          <el-table-column prop="long" align="center" label="鏋跺彿" min-width="120" />
+          <el-table-column prop="wide" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鎬绘暟閲�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
+          <el-table-column prop="state" align="center" label="鍚敤鐘舵��" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain v-show="state !== '宸插惎鐢�' " @click="dialogFormVisiblea = true">缁戝畾鏋跺瓙</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogFormVisible = true">娓呯┖</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  <div style="display: flex;">
+  <!-- <div id="main-body">
+      <Landingindication></Landingindication>
+    </div> -->
+  <div id="main-body">
+    <Landingindicationtwo></Landingindicationtwo>
+    </div>
+    </div>
+    <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="缁戝畾鏋跺瓙" >
+    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form  label-width="100px" label-position="right">
+              <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
+                <el-input  autocomplete="off"/>
+              </el-form-item>
+              <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 18vw;">
+                <el-input autocomplete="off" />
+              </el-form-item>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="dialogFormVisiblea = false">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#main-body{
+  margin-top: -10px;
+  margin-left: 450px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredient/CreateIngredients.vue b/UI-Project/src/views/mm/mainIngredient/CreateIngredients.vue
deleted file mode 100644
index 6dd4365..0000000
--- a/UI-Project/src/views/mm/mainIngredient/CreateIngredients.vue
+++ /dev/null
@@ -1,214 +0,0 @@
-<!-- 鐗╂枡璧勬枡鏂板鍘熺墖 -->
-
-<script lang="ts" setup>
-import {ref} from "vue";
-const value = ref('')
-const options = [
-  {
-    value: '鍘熺墖',
-    label: '鍘熺墖'
-  },
-  {
-    value: '杈呮枡',
-    label: '杈呮枡',
-  }
-]
-</script>
-<template>
-
- <div class="center-box">
-  
-   <el-card class="form-card">
-   <el-form  size="medium" >
-<div>
-  <el-row>
-  <el-col :span="4">
-    <el-select v-model="value" placeholder="璇烽�夋嫨绫诲埆">
-      <el-option
-          v-for="item in options"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value"
-      />
-    </el-select>
-  </el-col>
-  </el-row>
-</div>
-
-     <el-divider ></el-divider> <!-- 娣诲姞鍒嗛殧绾� -->
-
-     <el-row gutter="5" v-show="value=='鍘熺墖'" >
-       <el-col :span="4.5">
-        闀垮害 <el-input v-show="value=='鍘熺墖'" v-model="name" placeholder="璇疯緭鍏ラ暱搴�" style="width: 150px; height: 30px;" />
-       </el-col>
-       <el-col :span="4.5">
-         鍘氬害 <el-input v-show="value=='鍘熺墖'"  v-model="name" placeholder="璇疯緭鍏ュ帤搴�" style="width: 150px; height: 30px;" />
-       </el-col>
-       <el-col :span="4.5">
-         瀹藉害 <el-input v-show="value=='鍘熺墖'" v-model="name" placeholder="璇疯緭鍏ュ搴�" style="width: 150px; height: 30px;" />
-       </el-col>
-<!--       <el-col :span="4">-->
-<!--         <el-dropdown>-->
-<!--           <el-button type="primary">-->
-<!--             鑶滅郴<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
-<!--           </el-button>-->
-<!--           <template #dropdown>-->
-<!--             <el-dropdown-menu>-->
-<!--               <el-dropdown-item>闈為晙鑶�</el-dropdown-item>-->
-<!--               <el-dropdown-item>鍦ㄧ嚎LOW-E</el-dropdown-item>-->
-<!--               <el-dropdown-item>SUPPER-I</el-dropdown-item>-->
-<!--               <el-dropdown-item>SUPPER-I+</el-dropdown-item>-->
-<!--               <el-dropdown-item>SUPPER-II</el-dropdown-item>-->
-<!--               <el-dropdown-item>SUPPER-III</el-dropdown-item>-->
-<!--               <el-dropdown-item>SUPPER-V</el-dropdown-item>-->
-<!--               <el-dropdown-item>SUPPER-IA</el-dropdown-item>-->
-<!--               <el-dropdown-item>SUNLITE LOWE</el-dropdown-item>-->
-<!--               <el-dropdown-item>LOW-E40</el-dropdown-item>-->
-<!--               <el-dropdown-item>LOW-E40A</el-dropdown-item>-->
-<!--               <el-dropdown-item>LOW-E50</el-dropdown-item>-->
-<!--               <el-dropdown-item>LOW-E55N</el-dropdown-item>-->
-<!--             </el-dropdown-menu>-->
-<!--           </template>-->
-<!--         </el-dropdown>-->
-<!--       </el-col>-->
-     </el-row>
-     <el-divider ></el-divider> <!-- 娣诲姞鍒嗛殧绾� -->
-       <el-row gutter="5" v-show="value=='鍘熺墖'|| value=='杈呮枡'">
-       <el-col :span="4.5">
-         鍚嶇О <el-input  v-show="value=='鍘熺墖' || value=='杈呮枡'" v-model="productName" placeholder="璇疯緭鍏ュ悕绉�" style="width: 150px; height: 30px;" />
-       </el-col>
-         <el-col :span="4.5">
-           鏁伴噺 <el-input v-show="value=='鍘熺墖' || value=='杈呮枡'"  v-model="salId" placeholder="璇疯緭鍏ユ暟閲�" style="width: 150px; height: 30px;" />
-         </el-col>
-         <el-col :span="4.5">
-           鍗曚綅 <el-input v-model="name" placeholder="璇疯緭鍏ュ崟浣�" style="width: 150px; height: 30px;" />
-         </el-col>
-         <el-col :span="4.5">
-           鍨嬪彿<el-input v-model="name" placeholder="璇疯緭鍏ュ瀷鍙�" style="width: 150px; height: 30px;" />
-         </el-col>
-       </el-row>
-     <el-divider v-show="false" ></el-divider> <!-- 娣诲姞鍒嗛殧绾� -->
-<!--         <el-row gutter="5">-->
-<!--           <el-col span="4.5">-->
-<!--           <el-input v-model="name" placeholder="璇疯緭鍏ユ崲绠楀崟浣�" style="width: 150px; height: 30px;" />-->
-<!--           </el-col>-->
-<!--           <el-col :span="4.5">-->
-<!--             <el-input v-model="name" placeholder="璇疯緭鍏ユ崲绠楃巼" style="width: 150px; height: 30px;" />-->
-<!--           </el-col>-->
-<!--     </el-row>-->
-
-     <el-divider ></el-divider> <!-- 娣诲姞鍒嗛殧绾� -->
-
-     <el-row gutter="5">
-
-
-
-
-     </el-row>
-
-<!--     <el-divider ></el-divider> &lt;!&ndash; 娣诲姞鍒嗛殧绾� &ndash;&gt;-->
-
-<!--     <el-row gutter="5">-->
-<!--       <el-col :span="4.5">-->
-<!--         <el-input v-model="name" placeholder="璇疯緭鍏ュ瀷鍙�" style="width: 150px; height: 30px;" />-->
-<!--       </el-col>-->
-
-<!--       <el-col :span="4.5">-->
-<!--         <el-input v-model="name" placeholder="璇疯緭鍏ュ崟浣�" style="width: 150px; height: 30px;" />-->
-<!--       </el-col>-->
-<!--       <el-col :span="4">-->
-<!--         <el-dropdown>-->
-<!--           <el-button type="primary">-->
-<!--             浜у湴<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
-<!--           </el-button>-->
-<!--           <template #dropdown>-->
-<!--             <el-dropdown-menu>-->
-<!--               <el-dropdown-item>鏆傛棤</el-dropdown-item>-->
-<!--             </el-dropdown-menu>-->
-<!--           </template>-->
-<!--         </el-dropdown>-->
-<!--       </el-col>-->
-<!--       <el-col :span="4">-->
-<!--         <el-dropdown>-->
-<!--           <el-button type="primary">-->
-<!--             涓被<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
-<!--           </el-button>-->
-<!--           <template #dropdown>-->
-<!--             <el-dropdown-menu>-->
-<!--               <el-dropdown-item>0</el-dropdown-item>-->
-<!--             </el-dropdown-menu>-->
-<!--           </template>-->
-<!--         </el-dropdown>-->
-<!--       </el-col>-->
-<!--     </el-row>-->
-
-
-<!--     <el-divider ></el-divider> &lt;!&ndash; 娣诲姞鍒嗛殧绾� &ndash;&gt;-->
-
-<!--     <el-row gutter="5">-->
-
-
-<!--       <el-col :span="4.5">-->
-<!--         <el-input v-model="name" placeholder="璇疯緭鍏ュ娉�" style="width: 150px; height: 30px;" />-->
-<!--       </el-col>-->
-<!--       <el-col :span="4">-->
-<!--         <el-dropdown>-->
-<!--           <el-button type="primary">-->
-<!--             灏忕被<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
-<!--           </el-button>-->
-<!--           <template #dropdown>-->
-<!--             <el-dropdown-menu>-->
-<!--               <el-dropdown-item>0</el-dropdown-item>-->
-<!--             </el-dropdown-menu>-->
-<!--           </template>-->
-<!--         </el-dropdown>-->
-<!--       </el-col>-->
-<!--     </el-row>-->
-
-<!--     <el-divider ></el-divider> &lt;!&ndash; 娣诲姞鍒嗛殧绾� &ndash;&gt;-->
-
-
-<!--     <el-row gutter="5">-->
-<!--&lt;!&ndash;       <el-col :span="4.5">&ndash;&gt;-->
-<!--&lt;!&ndash;         <el-input v-model="name" placeholder="璇疯緭鍏ヤ繚璐ㄦ湡" style="width: 150px; height: 30px;" />&ndash;&gt;-->
-<!--&lt;!&ndash;       </el-col>&ndash;&gt;-->
-<!--&lt;!&ndash;       <el-col :span="4.5">&ndash;&gt;-->
-<!--&lt;!&ndash;         <el-input v-model="name" placeholder="璇疯緭鍏ユ渶楂橀璀�" style="width: 150px; height: 30px;" />&ndash;&gt;-->
-<!--&lt;!&ndash;       </el-col>&ndash;&gt;-->
-<!--&lt;!&ndash;       <el-col :span="4.5">&ndash;&gt;-->
-<!--&lt;!&ndash;         <el-input v-model="name" placeholder="璇疯緭鍏ユ媶鍖呴璀�" style="width: 150px; height: 30px;" />&ndash;&gt;-->
-<!--&lt;!&ndash;       </el-col>&ndash;&gt;-->
-
-<!--     </el-row>-->
-<!--     <el-divider ></el-divider> &lt;!&ndash; 娣诲姞鍒嗛殧绾� &ndash;&gt;-->
-     <el-row  gutter="10" justify="center" >
-       <el-col span="4">
-         <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-       </el-col>
-       <el-col span="4">
-         <el-button id="searchButton" type="primary" :icon="Search">纭畾</el-button>
-       </el-col>
-     </el-row>
-   </el-form>
-   </el-card>
- </div>
-
-</template>
-<style>
-.centered-box {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  height: 100vh;
-}
-
-.form-card {
-  width: 1000px;
-  padding: 30px 30px;
-}
-.button-row {
-  display: flex;
-  justify-content: center;
-  margin-top: 20px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredient/Ingredients.vue b/UI-Project/src/views/mm/mainIngredient/Ingredients.vue
deleted file mode 100644
index 351258b..0000000
--- a/UI-Project/src/views/mm/mainIngredient/Ingredients.vue
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--  鐗╂枡璧勬枡  -->
-
-
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/ingredients/SelectIngredients' }">鐗╂枡璧勬枡</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/ingredients/CreateIngredients' }">鐗╂枡鏂板</el-breadcrumb-item>
-        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
-      </el-breadcrumb>
-
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-  /* margin-left: 10rem; */
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-#select{
-  margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredient/SelectIngredients.vue b/UI-Project/src/views/mm/mainIngredient/SelectIngredients.vue
deleted file mode 100644
index eb617c4..0000000
--- a/UI-Project/src/views/mm/mainIngredient/SelectIngredients.vue
+++ /dev/null
@@ -1,183 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/ingredients/CreateIngredients', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    {field: 'materialCode', width:'150', title: '鐗╂枡缂栫爜', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'materialName', width: '150',title: '鐗╂枡鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'origin', width: '120',title: '浜у湴', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'width', width: '100',title: '瀹藉害', sortable: true},
-    {field: 'height',width: '100', title: '楂樺害', sortable: true,showOverflow:"ellipsis"},
-    {field: 'thickness', width: '80',title: '鍘氬害', sortable: true},
-    {field: 'model',width: '100', title: '鍨嬪彿', sortable: true},
-    {field: 'conversionRate', width: '100',title: '鎹㈢畻鐜�', sortable: true},
-    {field: 'unit',width: '100', title: '鍗曚綅', sortable: true},
-    {field: 'conversionUnit', width: '80',title: '鎹㈢畻鍗曚綅', sortable: true},
-    {field: 'shelfLife',width: '100', title: '淇濊川鏈�', sortable: true},
-    {field: 'weight', width: '100',title: ' 閲嶉噺', sortable: true},
-    {field: 'quantity',width: '110', title: '鏁伴噺', sortable: true},
-    {field: 'inventoryOrganization',width: '100', title: '搴撳瓨缁勭粐', sortable: true},
-    {field: 'remark',width: '80', title: '澶囨敞', sortable: true},
-
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "materialCode": 700900000000941,
-      "materialName": "涓濊闃叉檼鎵嬪濂楄",
-      "origin": "00",
-      "width": "00",
-      "height": "00",
-      "thickness":'00',
-      "model": "鏈嶉グ",
-      "conversionRate": "1000",
-      "unit": "鍙�",
-      "conversionUnit": "1",
-      "shelfLife": "12涓湀",
-      "weight": "0.0000",
-      "quantity": "10000",
-      "inventoryOrganization": "浜哄伐搴�",
-      "remark": "娴嬭瘯",
-    },
-    {
-      "materialCode": 700900000000941,
-      "materialName": "涓濊闃叉檼鎵嬪濂楄",
-      "origin": "00",
-      "width": "00",
-      "height": "00",
-      "thickness":'00',
-      "model": "鏈嶉グ",
-      "conversionRate": "1000",
-      "unit": "鍙�",
-      "conversionUnit": "1",
-      "shelfLife": "12涓湀",
-      "weight": "0.0000",
-      "quantity": "10000",
-      "inventoryOrganization": "浜哄伐搴�",
-      "remark": "娴嬭瘯",
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-      <!--      涓嬫媺璇︽儏寰幆鏄剧ず涓枃   -->
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredientStock/AccessoriesMonthlySettlement.vue b/UI-Project/src/views/mm/mainIngredientStock/AccessoriesMonthlySettlement.vue
deleted file mode 100644
index 058693f..0000000
--- a/UI-Project/src/views/mm/mainIngredientStock/AccessoriesMonthlySettlement.vue
+++ /dev/null
@@ -1,252 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-import {VXETable} from "vxe-table";
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-
-  }
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:  [
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'month', width:'150', title: '鏈堜唤', sortable: true,editRender: { name: 'input' },filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
-    {field: 'unit', width: '150',title: '鍗曚綅', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'materialCode', width: '120',title: '鐗╂枡缂栫爜', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'materialName', width: '100',title: '鐗╂枡鍚嶇О', sortable: true},
-    {field: 'height',width: '100', title: '楂樺害', sortable: true,showOverflow:"ellipsis"},
-    {field: 'thickness', width: '80',title: '鍘氬害', sortable: true},
-    {field: 'width',width: '100', title: '瀹藉害', sortable: true},
-    {field: 'lastMonthQuantity', width: '100',title: '涓婃湀鏁伴噺', sortable: true},
-    {field: 'lastMonthArea',width: '100', title: '涓婃湀闈㈢Н', sortable: true},
-    {field: 'thisMonthReceivedQuantity', width: '140',title: '鏈湀鍏ュ簱鏁伴噺', sortable: true},
-    {field: 'thisMonthReceivedArea',width: '140', title: '鏈湀鍏ュ簱闈㈢Н', sortable: true},
-    {field: 'thisMonthIssuedQuantity', width: '140',title: '鏈湀鍑哄簱鏁伴噺', sortable: true},
-    {field: 'thisMonthIssuedArea',width: '140', title: '鏈湀鍑哄簱闈㈢Н', sortable: true},
-    {field: 'thisMonthInventoryQuantity',width: '140', title: '鏈湀搴撳瓨鏁伴噺', sortable: true},
-    {field: 'thisMonthInventoryArea',width: '140', title: '鏈湀搴撳瓨闈㈢Н', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //   'name': '鏌ヨ',
-    //   'code':'add'
-    // },],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      'month':'3',
-      'unit':'浠�',
-      'materialCode':'KF2023122101',
-      'materialName':'鍏墰鎻掑骇',
-      'height':'0',
-      'thickness':'0',
-      'width':'0',
-      'lastMonthQuantity':'100',
-      'lastMonthArea':'0',
-      'thisMonthReceivedQuantity':'100',
-      'thisMonthReceivedArea':'0',
-      'thisMonthIssuedQuantity':'23',
-      'thisMonthIssuedArea':'0',
-      'thisMonthInventoryQuantity':'77',
-      'thisMonthInventoryArea':'0',
-    },
-    {
-      'month':'3',
-      'unit':'浠�',
-      'materialCode':'KF2023122101',
-      'materialName':'鍏墰鎻掑骇',
-      'height':'0',
-      'thickness':'0',
-      'width':'0',
-      'lastMonthQuantity':'100',
-      'lastMonthArea':'0',
-      'thisMonthReceivedQuantity':'100',
-      'thisMonthReceivedArea':'0',
-      'thisMonthIssuedQuantity':'23',
-      'thisMonthIssuedArea':'0',
-      'thisMonthInventoryQuantity':'77',
-      'thisMonthInventoryArea':'0',
-    },
-    {
-      'month':'3',
-      'unit':'浠�',
-      'materialCode':'KF2023122101',
-      'materialName':'鍏墰鎻掑骇',
-      'height':'0',
-      'thickness':'0',
-      'width':'0',
-      'lastMonthQuantity':'100',
-      'lastMonthArea':'0',
-      'thisMonthReceivedQuantity':'100',
-      'thisMonthReceivedArea':'0',
-      'thisMonthIssuedQuantity':'23',
-      'thisMonthIssuedArea':'0',
-      'thisMonthInventoryQuantity':'77',
-      'thisMonthInventoryArea':'0',
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const  xGrid = ref();
-
-const gridEvents = {
-  toolbarButtonClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'add': {
-
-          router.push({path: '/main/trader/CreateTrader'})
-          /*if($grid.getCheckboxRecords().length==0){
-            VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }*/
-          return;
-        }
-
-      }
-    }
-  },
-  toolbarToolClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <el-row gutter="10" >
-      <el-col :span="2.5">
-        <div class="label-text">鏌ヨ杈呮枡鎶ヨ〃鏃ユ湡</div>
-      </el-col>
-      <el-col :span="4">
-        <el-date-picker
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            style="width: 200px;"
-        />
-      </el-col>
-      <el-col span="4">
-        <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ鎶ヨ〃</el-button>
-      </el-col>
-    </el-row>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredientStock/CreateOutBound.vue b/UI-Project/src/views/mm/mainIngredientStock/CreateOutBound.vue
deleted file mode 100644
index 68cf0be..0000000
--- a/UI-Project/src/views/mm/mainIngredientStock/CreateOutBound.vue
+++ /dev/null
@@ -1,226 +0,0 @@
-<!--鐗╂枡鍑哄簱-->
-
-
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    // { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'MaterialCode', width: '150',title: '鐗╂枡缂栫爜', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'MaterialName', width: '120',title: '鐗╂枡鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'InventoryCount',width: '100', title: '搴撳瓨鏁伴噺', sortable: true},
-    {field: 'OutNum', width:'150', title: '鍑哄簱鏁伴噺', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'Origin', width: '100',title: '浜у湴', sortable: true},
-    {field: 'Width', width: '80',title: '瀹藉害', sortable: true},
-    {field: 'Height',width: '100', title: '楂樺害', sortable: true},
-    {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
-    {field: 'MainUnit',width: '100', title: '鍗曚綅', sortable: true},
-    {field: 'SafetyStock', width: '100',title: '鍗曠墖闈㈢Н', sortable: true},
-    {field: 'AvailableInventory', width: '100',title: '鎹㈢畻鐜�', sortable: true},
-    {field: 'UnclaimedQuantity',width: '140', title: '鏈鍙栨暟閲�', sortable: true},
-    {field: 'TotalArea',width: '100', title: '搴撳尯', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'ProductionDate',width: '100', title: '搴撲綅', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'ShelfLife',width: '100', title: '宸ョ▼鍗曞彿', sortable: true},
-    {field: 'LocationNumber',width: '100', title: '鐢熶骇鏃ユ湡', sortable: true},
-    {field: 'remark',width: '80', title: '澶囨敞', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-        {'name': '鎻愪氦',status:'primary'},
-        {'name': '瀹℃牳',status:'primary', 'disabled': true}
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <el-row gutter="10" >
-    <el-col :span="2.5">
-      <div class="label-text">棰嗘枡鏃ユ湡</div>
-    </el-col>
-    <el-col :span="4">
-      <el-date-picker
-          type="daterange"
-          start-placeholder="寮�濮嬫椂闂�"
-          end-placeholder="缁撴潫鏃堕棿"
-          style="width: 200px;height: 30px"
-      />
-    </el-col>
-    <el-col :span="4">
-    <el-input v-model="productName" placeholder="璇疯緭鍏ラ鏂欏憳鍚嶇О" style="width: 200px; height: 30px;" />
-    </el-col>
-    <el-col :span="4">
-    <el-input v-model="banzu" placeholder="璇疯緭鍏ラ鏂欑彮缁�" style="width: 200px; height: 30px;" />
-    </el-col>
-    <el-col :span="7">
-    浠撶鍛�<el-input v-model="banzu" placeholder="鐜嬬繝鍏�" style="width: 200px; height: 30px;" />
-    </el-col>
-<!--    <el-col span="4">-->
-<!--      <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ鎶ヨ〃</el-button>-->
-<!--    </el-col>-->
-  </el-row>
-
-  <el-row gutter="10" >
-    <el-col :span="2.5">
-      <div class="label-text">搴撳瓨缁勭粐</div>
-    </el-col>
-    <el-col :span="4">
-                  <el-dropdown>
-                    <el-button type="primary">
-                      璇烽�夋嫨搴撳瓨缁勭粐<el-icon class="el-icon--right" style="width: 66px;height: 30px"><arrow-down /></el-icon>
-                    </el-button>
-                    <template #dropdown>
-                      <el-dropdown-menu>
-                        <el-dropdown-item>浜哄伐搴�</el-dropdown-item>
-                        <el-dropdown-item>璁″垝搴�</el-dropdown-item>
-                        <el-dropdown-item>鑷姩鍖栧簱</el-dropdown-item>
-                      </el-dropdown-menu>
-                    </template>
-                  </el-dropdown>
-                </el-col>
-
-    <el-col :span="4">
-      <el-dropdown>
-        <el-button type="primary">
-          璇烽�夋嫨鍑哄簱绫诲瀷<el-icon class="el-icon--right" style="width:66px;"><arrow-down /></el-icon>
-        </el-button>
-        <template #dropdown>
-          <el-dropdown-menu>
-            <el-dropdown-item>鏍囧噯鍑哄簱</el-dropdown-item>
-            <el-dropdown-item>琛ュ崟棰嗘枡</el-dropdown-item>
-            <el-dropdown-item>杩斿伐棰嗘枡</el-dropdown-item>
-          </el-dropdown-menu>
-        </template>
-      </el-dropdown>
-    </el-col>
-    <el-col :span="12">
-      <el-input v-model="banzu" placeholder="璇疯緭鍏ラ攢鍞崟鍙�" style="width: 200px; height: 30px;" />
-    </el-col>
-<!--    <el-col span="4">-->
-<!--      <el-button id="searchButton" type="primary" :icon="Search">鎻愪氦</el-button>-->
-<!--    </el-col>-->
-    <!--    <el-col span="4">-->
-    <!--      <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ鎶ヨ〃</el-button>-->
-    <!--    </el-col>-->
-  </el-row>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredientStock/IngredientsStock.vue b/UI-Project/src/views/mm/mainIngredientStock/IngredientsStock.vue
deleted file mode 100644
index 6cdfc0c..0000000
--- a/UI-Project/src/views/mm/mainIngredientStock/IngredientsStock.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--  鐗╂枡搴撳瓨 -->
-
-
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/ingredientsStock/SelectIngredientsStock' }">鐗╂枡搴撳瓨</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/ingredientsStock/MaterialOutbound' }">鐗╂枡鍑哄簱</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/ingredientsStock/OriginalMonthlySettlement' }">鍘熺墖鏈堢粨</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/ingredientsStock/AccessoriesMonthlySettlement' }">杈呮枡鏈堢粨</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/ingredientsStock/ReturnToStorage' }">杩斿簱</el-breadcrumb-item>
-        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
-      </el-breadcrumb>
-
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-#select{
-  margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredientStock/MaterialOutbound.vue b/UI-Project/src/views/mm/mainIngredientStock/MaterialOutbound.vue
deleted file mode 100644
index edb4f9e..0000000
--- a/UI-Project/src/views/mm/mainIngredientStock/MaterialOutbound.vue
+++ /dev/null
@@ -1,251 +0,0 @@
-<!--鐗╂枡鍑哄簱-->
-
-
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/ingredientsStock/CreateOutbound', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-
-    {title: '瀹℃牳', width: 50, slots: { default: 'state' },},
-
-    {field: 'InventoryOrganization', width:'150', title: '搴撳瓨缁勭粐', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'MaterialCode', width: '150',title: '鐗╂枡缂栫爜', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'MaterialName', width: '120',title: '鐗╂枡鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'InventoryCount',width: '100', title: '搴撳瓨鏁伴噺', sortable: true},
-    {field: 'OutNum', width:'150', title: '鍑哄簱鏁伴噺', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'Origin', width: '100',title: '浜у湴', sortable: true},
-    {field: 'InventoryNumber',width: '100', title: '搴撳瓨缂栧彿', sortable: true,showOverflow:"ellipsis"},
-    {field: 'Width', width: '80',title: '瀹藉害', sortable: true},
-    {field: 'Height',width: '100', title: '楂樺害', sortable: true},
-    {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
-    {field: 'MainUnit',width: '100', title: '涓诲崟浣�', sortable: true},
-    {field: 'SafetyStock', width: '100',title: '瀹夊叏搴撳瓨', sortable: true},
-    {field: 'AvailableInventory', width: '100',title: '鍙敤搴撳瓨', sortable: true},
-    {field: 'UnclaimedQuantity',width: '140', title: '鏈鍙栨暟閲�', sortable: true},
-    {field: 'TotalArea',width: '100', title: '鎬婚潰绉�', sortable: true},
-    {field: 'ProductionDate',width: '100', title: '鐢熶骇鏃ユ湡', sortable: true},
-    {field: 'ShelfLife',width: '100', title: '淇濊川鏈�', sortable: true},
-    {field: 'LocationNumber',width: '100', title: '搴撲綅缂栧彿', sortable: true},
-    {field: 'StorageArea',width: '100', title: '瀛樺偍鍖哄煙', sortable: true},
-    {field: 'Location',width: '100', title: '搴撲綅', sortable: true},
-    {field: 'BacklogInventory',width: '100', title: '绉帇搴撳瓨', sortable: true},
-    {field: 'remark',width: '80', title: '澶囨敞', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [{
-      code:'add','name': '鍑哄簱鏂板',status:'primary'
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "InventoryOrganization": "浜哄伐搴�",
-      "MaterialCode": "700900000000115",
-      "MaterialName": "鍐170",
-      "Origin": "China",
-      "InventoryNumber": "KC2006891",
-      "Width": '',
-      "Height": "",
-      "Thickness": "",
-      "MainUnit": "浠�",
-      "SafetyStock": "5",
-      "InventoryCount": "20",
-      "AvailableInventory": "9",
-      "UnclaimedQuantity": "2",
-      "TotalArea": "0",
-      "ProductionDate": "2016-10-17",
-      "ShelfLife": "0",
-      "LocationNumber": "0",
-      "StorageArea": "0",
-      "Location": "0",
-      "BacklogInventory": "40",
-      "remark": "娴嬭瘯",
-    },
-    {
-      "InventoryOrganization": "浜哄伐搴�",
-      "MaterialCode": "700900000000115",
-      "MaterialName": "鍐175",
-      "Origin": "China",
-      "InventoryNumber": "KC2006891",
-      "Width": '',
-      "Height": "",
-      "Thickness": "",
-      "MainUnit": "浠�",
-      "SafetyStock": "5",
-      "InventoryCount": "20",
-      "AvailableInventory": "9",
-      "UnclaimedQuantity": "2",
-      "TotalArea": "0",
-      "ProductionDate": "2016-10-17",
-      "ShelfLife": "0",
-      "LocationNumber": "0",
-      "StorageArea": "0",
-      "Location": "0",
-      "BacklogInventory": "40",
-      "remark": "娴嬭瘯",
-    },{
-      "InventoryOrganization": "浜哄伐搴�",
-      "MaterialCode": "700900000000115",
-      "MaterialName": "鍐180",
-      "Origin": "China",
-      "InventoryNumber": "KC2006891",
-      "Width": '',
-      "Height": "",
-      "Thickness": "",
-      "MainUnit": "浠�",
-      "SafetyStock": "2",
-      "InventoryCount": "23",
-      "AvailableInventory": "4",
-      "UnclaimedQuantity": "3",
-      "TotalArea": "0",
-      "ProductionDate": "2016-10-17",
-      "ShelfLife": "0",
-      "LocationNumber": "0",
-      "StorageArea": "0",
-      "Location": "0",
-      "BacklogInventory": "40",
-      "remark": "娴嬭瘯",
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const  xGrid = ref();
-const gridEvents = {
-  toolbarButtonClick({ code }) {
-    const $grid = xGrid.value
-    if($grid){
-      switch (code){
-        case 'add':{
-          /*VXETable.modal.confirm('鐐瑰嚮浜嗗簱瀛樿皟鎷�');*/
-          router.push({path: '/main/ingredientsStock/CreateOutbound'});
-          return;
-          break
-        }
-      }
-    }
-  }
-}
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-    </vxe-grid>
-  </div>
-</template>
-
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredientStock/OriginalMonthlySettlement.vue b/UI-Project/src/views/mm/mainIngredientStock/OriginalMonthlySettlement.vue
deleted file mode 100644
index b2fda63..0000000
--- a/UI-Project/src/views/mm/mainIngredientStock/OriginalMonthlySettlement.vue
+++ /dev/null
@@ -1,252 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-import {VXETable} from "vxe-table";
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-
-
-  }
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:  [
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'month', width:'150', title: '鏈堜唤', sortable: true,editRender: { name: 'input' },filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
-    {field: 'unit', width: '150',title: '鍗曚綅', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'materialCode', width: '120',title: '鐗╂枡缂栫爜', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'materialName', width: '100',title: '鐗╂枡鍚嶇О', sortable: true},
-    {field: 'height',width: '100', title: '楂樺害', sortable: true,showOverflow:"ellipsis"},
-    {field: 'thickness', width: '80',title: '鍘氬害', sortable: true},
-    {field: 'width',width: '100', title: '瀹藉害', sortable: true},
-    {field: 'lastMonthQuantity', width: '100',title: '涓婃湀鏁伴噺', sortable: true},
-    {field: 'lastMonthArea',width: '100', title: '涓婃湀闈㈢Н', sortable: true},
-    {field: 'thisMonthReceivedQuantity', width: '140',title: '鏈湀鍏ュ簱鏁伴噺', sortable: true},
-    {field: 'thisMonthReceivedArea',width: '140', title: '鏈湀鍏ュ簱闈㈢Н', sortable: true},
-    {field: 'thisMonthIssuedQuantity', width: '140',title: '鏈湀鍑哄簱鏁伴噺', sortable: true},
-    {field: 'thisMonthIssuedArea',width: '140', title: '鏈湀鍑哄簱闈㈢Н', sortable: true},
-    {field: 'thisMonthInventoryQuantity',width: '140', title: '鏈湀搴撳瓨鏁伴噺', sortable: true},
-    {field: 'thisMonthInventoryArea',width: '140', title: '鏈湀搴撳瓨闈㈢Н', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //   'name': '鏌ヨ',
-    //   'code':'add'
-    // },],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-    'month':'3',
-    'unit':'mm',
-    'materialCode':'KF2023122101',
-    'materialName':'鏅�氶挗鍖栫幓鐠�',
-    'height':'110.20',
-    'thickness':'3.00',
-    'width':'90.40',
-    'lastMonthQuantity':'100',
-    'lastMonthArea':'0',
-    'thisMonthReceivedQuantity':'100',
-    'thisMonthReceivedArea':'0',
-    'thisMonthIssuedQuantity':'23',
-    'thisMonthIssuedArea':'0',
-    'thisMonthInventoryQuantity':'77',
-    'thisMonthInventoryArea':'0',
-    },
-    {
-      'month':'3',
-      'unit':'mm',
-      'materialCode':'KF2023122101',
-      'materialName':'鏅�氶挗鍖栫幓鐠�',
-      'height':'224.50',
-      'thickness':'5.00',
-      'width':'120.80',
-      'lastMonthQuantity':'100',
-      'lastMonthArea':'0',
-      'thisMonthReceivedQuantity':'100',
-      'thisMonthReceivedArea':'0',
-      'thisMonthIssuedQuantity':'23',
-      'thisMonthIssuedArea':'0',
-      'thisMonthInventoryQuantity':'77',
-      'thisMonthInventoryArea':'0',
-    },
-    {
-      'month':'3',
-      'unit':'mm',
-      'materialCode':'KF2023122101',
-      'materialName':'鏅�氶挗鍖栫幓鐠�',
-      'height':'190.00',
-      'thickness':'4.00',
-      'width':'90.00',
-      'lastMonthQuantity':'100',
-      'lastMonthArea':'0',
-      'thisMonthReceivedQuantity':'100',
-      'thisMonthReceivedArea':'0',
-      'thisMonthIssuedQuantity':'23',
-      'thisMonthIssuedArea':'0',
-      'thisMonthInventoryQuantity':'77',
-      'thisMonthInventoryArea':'0',
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const  xGrid = ref();
-
-const gridEvents = {
-  toolbarButtonClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'add': {
-
-          router.push({path: '/main/trader/CreateTrader'})
-          /*if($grid.getCheckboxRecords().length==0){
-            VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }*/
-          return;
-        }
-
-      }
-    }
-  },
-  toolbarToolClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <el-row gutter="10" >
-      <el-col :span="2.5">
-        <div class="label-text">鏌ヨ鍘熺墖鎶ヨ〃鏃ユ湡</div>
-      </el-col>
-      <el-col :span="4">
-        <el-date-picker
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            style="width: 200px;"
-        />
-      </el-col>
-    <el-col span="4">
-      <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ鎶ヨ〃</el-button>
-    </el-col>
-    </el-row>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredientStock/ReturnToStorage.vue b/UI-Project/src/views/mm/mainIngredientStock/ReturnToStorage.vue
deleted file mode 100644
index 3d8a6f8..0000000
--- a/UI-Project/src/views/mm/mainIngredientStock/ReturnToStorage.vue
+++ /dev/null
@@ -1,256 +0,0 @@
-<!--杩斿簱-->
-
-
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/ingredientsStock/CreateOutbound', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-
-    {title: '瀹℃牳', width: 50, slots: { default: 'state' },},
-
-    {field: 'ReturnNum', width:'150', title: '杩斿簱缂栧彿', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'SalesNum', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'ReturnType', width: '120',title: '杩斿簱绫诲瀷', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'DocumentType',width: '100', title: '鍗曟嵁绫诲瀷', sortable: true},
-    {field: 'ProjectName', width:'150', title: '椤圭洰鍚嶇О', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'MaterialCode', width: '100',title: '鐗╂枡缂栫爜', sortable: true},
-    {field: 'MaterialName',width: '100', title: '鐗╂枡鍚嶇О', sortable: true,showOverflow:"ellipsis"},
-    {field: 'Width', width: '80',title: '瀹藉害', sortable: true},
-    {field: 'Height',width: '100', title: '楂樺害', sortable: true},
-    {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
-    {field: 'OriginPlace',width: '100', title: '浜у湴', sortable: true},
-    {field: 'SaveQuantity', width: '100',title: '鑺傜害鏁伴噺', sortable: true},
-    {field: 'Type', width: '100',title: '绫诲瀷', sortable: true},
-    {field: 'Supplier',width: '140', title: '棰嗘枡鍛�/渚涘簲鍟�', sortable: true},
-    {field: 'ClassGroup',width: '100', title: '鐝粍/渚涘簲鍟�', sortable: true},
-    {field: 'WarehouseKeeper',width: '100', title: '浠撶鍛�', sortable: true},
-    {field: 'Remark',width: '100', title: '澶囨敞', sortable: true},
-    {field: 'MakingData',width: '100', title: '鍒跺崟鏃ユ湡', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [{
-      code:'add','name': '杩斿簱鏂板',status:'primary'
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "ReturnNum": "FK24010811",
-      "SalesNum": "杩愯緭鏉愭枡鐮存崯",
-      "ReturnType": "閲囪喘鐮存崯",
-      "DocumentType": "瀹℃牳",
-      "ProjectName": "",
-      "MaterialCode": "80010128003308035401530000",
-      "MaterialName": "鐧界幓-3鍘�-鍒堕暅-浼樿川鍔犲伐绾�",
-      "Width": '3540.00',
-      "Height": "1530.00",
-      "Thickness": "3.00",
-      "OriginPlace": "骞胯タ鍗楀畞",
-      "SaveQuantity": "1.000",
-      "Type": "鐩存帴杩斿簱",
-      "Supplier": "骞胯タ鍗楀畞浼忔硶",
-      "ClassGroup": "鏇叉儬闇�",
-      "WarehouseKeeper": "鏇叉儬闇�",
-      "Remark": "2401060345",
-      "MakingData": "2024-01-08 08锛�41锛�09",
-    },
-    {
-      "ReturnNum": "FK24010811",
-      "SalesNum": "杩愯緭鏉愭枡鐮存崯",
-      "ReturnType": "閲囪喘鐮存崯",
-      "DocumentType": "瀹℃牳",
-      "ProjectName": "",
-      "MaterialCode": "80010128003308035401530000",
-      "MaterialName": "鐧界幓-3鍘�-鍒堕暅-浼樿川鍔犲伐绾�",
-      "Width": '3540.00',
-      "Height": "1530.00",
-      "Thickness": "3.00",
-      "OriginPlace": "骞胯タ鍗楀畞",
-      "SaveQuantity": "1.000",
-      "Type": "鐩存帴杩斿簱",
-      "Supplier": "骞胯タ鍗楀畞浼忔硶",
-      "ClassGroup": "鏇叉儬闇�",
-      "WarehouseKeeper": "鏇叉儬闇�",
-      "Remark": "2401060345",
-      "MakingData": "2024-01-08 08锛�41锛�09",
-    },
-    {
-      "ReturnNum": "FK24010811",
-      "SalesNum": "杩愯緭鏉愭枡鐮存崯",
-      "ReturnType": "閲囪喘鐮存崯",
-      "DocumentType": "瀹℃牳",
-      "ProjectName": "",
-      "MaterialCode": "80010128003308035401530000",
-      "MaterialName": "鐧界幓-3鍘�-鍒堕暅-浼樿川鍔犲伐绾�",
-      "Width": '3540.00',
-      "Height": "1530.00",
-      "Thickness": "3.00",
-      "OriginPlace": "骞胯タ鍗楀畞",
-      "SaveQuantity": "1.000",
-      "Type": "鐩存帴杩斿簱",
-      "Supplier": "骞胯タ鍗楀畞浼忔硶",
-      "ClassGroup": "鏇叉儬闇�",
-      "WarehouseKeeper": "鏇叉儬闇�",
-      "Remark": "2401060345",
-      "MakingData": "2024-01-08 08锛�41锛�09",
-    },
-
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const  xGrid = ref();
-const gridEvents = {
-  toolbarButtonClick({ code }) {
-    const $grid = xGrid.value
-    if($grid){
-      switch (code){
-        case 'add':{
-          /*VXETable.modal.confirm('鐐瑰嚮浜嗗簱瀛樿皟鎷�');*/
-          router.push({path: '/main/ingredientsStock/ReturnToStorageCreate'});
-          return;
-          break
-        }
-      }
-    }
-  }
-}
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <el-row gutter="10" >
-      <el-col :span="2.5">
-        <div class="label-text">浼樺寲鏃ユ湡</div>
-      </el-col>
-      <el-col :span="4">
-        <el-date-picker
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            style="width: 200px;"
-        />
-      </el-col>
-      <el-col span="4">
-        <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-      </el-col>
-    </el-row>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-    </vxe-grid>
-  </div>
-</template>
-
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredientStock/ReturnToStorageCreate.vue b/UI-Project/src/views/mm/mainIngredientStock/ReturnToStorageCreate.vue
deleted file mode 100644
index 006feae..0000000
--- a/UI-Project/src/views/mm/mainIngredientStock/ReturnToStorageCreate.vue
+++ /dev/null
@@ -1,193 +0,0 @@
-<script setup>
-import {reactive, ref} from "vue"
-import {VXETable} from "vxe-table"
-import {useRouter} from "vue-router"
-const router = useRouter()
-
-const xGrid = ref()
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
-    {field: 'orderID',width:120,  title: '鐗╂枡缂栫爜',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '鐗╂枡鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '浜у湴',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '瀹藉害',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '楂樺害',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '鍘氬害',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '搴撳瓨缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '绛夌骇',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '鎹㈢畻鐜�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '鏈鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '杩斿簱鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '鎬绘暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '搴撳尯',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '搴撲綅',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '宸ョ▼鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '鐢熶骇鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderID',width:120,  title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const gridEvents = {
-  toolbarButtonClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'Craft': {
-          router.push({path: '/main/order/updateOrderCraft', query: { orderID: 12123 }})
-          break
-        }
-      }
-    }
-  }
-}
-
-</script>
-
-<template>
-  <div class="main-div">
-
-    <div class="order-primary" style="background-color: white">
-      <el-row>
-        <el-col  :span="2"><el-text>浜よ揣鏃ユ湡锛�</el-text></el-col>
-        <el-col  :span="4">
-          <el-date-picker
-              type="week"
-              format="[Week] ww"
-              placeholder="閫夋嫨鏃ユ湡"/>
-        </el-col>
-        <el-col  :span="2"><el-text>*閫�鏂欏憳/渚涘簲鍟嗭細</el-text></el-col>
-        <el-col  :span="4"><el-input/></el-col>
-        <el-col  :span="2"><el-text>*閫�鏂欑彮缁勶細</el-text></el-col>
-        <el-col  :span="4">
-          <el-select  clearable placeholder=" " >
-            <el-option/>
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>*鍒跺崟鍛橈細</el-text></el-col>
-        <el-col  :span="4">
-          <el-select  clearable placeholder=" " >
-            <el-option />
-          </el-select>
-        </el-col>
-
-        <!--      <el-col :span="2"><el-text  /></el-col>-->
-      </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>*鍑哄簱绫诲瀷锛�</el-text></el-col>
-        <el-col  :span="4">
-          <el-select  clearable placeholder=" " >
-            <el-option/>
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>璁㈠崟缂栧彿锛�</el-text></el-col>
-        <el-col  :span="4"><el-text /></el-col>
-        <el-col  :span="2"><el-text>椤圭洰鍚嶇О锛�</el-text></el-col>
-        <el-col  :span="4"><el-text /></el-col>
-        <el-col  :span="2"><el-text>鎵规鍙凤細</el-text></el-col>
-        <el-col  :span="4"><el-text /></el-col>
-      </el-row>
-    </div>
-    <div class="order-detail">
-      <vxe-grid
-          max-height="97%"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          v-on="gridEvents"
-      >
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-
-
-      </vxe-grid>
-      <el-row justify="center">
-          <el-button  id="searchButton" type="primary" :icon="Search" style="margin-right:20px;">娓呴櫎</el-button>
-          <el-button  id="searchButton" type="primary" :icon="save" style="margin-left:20px;">纭畾</el-button>
-      </el-row>
-    </div>
-  </div>
-</template>
-
-<style scoped>
-.main-div {
-  width: 100%;
-  height: 100%;
-  text-align: center;
-}
-.el-col{
-  border: #181818 1px solid;
-}
-:deep(.el-input__wrapper) {
-  box-shadow: 0 0 0 0 var(--el-input-border-color, var(--el-border-color)) inset;
-  cursor: default;
-  border: none !important;
-  background-color: transparent;
-}
-.order-primary{
-  width: 100%;
-}
-.order-detail{
-  width: 100%;
-  height: 80%;
-}
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue b/UI-Project/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue
deleted file mode 100644
index f7fac75..0000000
--- a/UI-Project/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue
+++ /dev/null
@@ -1,224 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'InventoryOrganization', width:'150', title: '搴撳瓨缁勭粐', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'MaterialCode', width: '150',title: '鐗╂枡缂栫爜', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'MaterialName', width: '120',title: '鐗╂枡鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'Origin', width: '100',title: '浜у湴', sortable: true},
-    {field: 'InventoryNumber',width: '100', title: '搴撳瓨缂栧彿', sortable: true,showOverflow:"ellipsis"},
-    {field: 'Width', width: '80',title: '瀹藉害', sortable: true},
-    {field: 'Height',width: '100', title: '楂樺害', sortable: true},
-    {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
-    {field: 'MainUnit',width: '100', title: '涓诲崟浣�', sortable: true},
-    {field: 'SafetyStock', width: '100',title: '瀹夊叏搴撳瓨', sortable: true},
-    {field: 'InventoryCount',width: '100', title: '搴撳瓨鏁伴噺', sortable: true},
-    {field: 'AvailableInventory', width: '100',title: '鍙敤搴撳瓨', sortable: true},
-    {field: 'UnclaimedQuantity',width: '140', title: '鏈鍙栨暟閲�', sortable: true},
-    {field: 'TotalArea',width: '100', title: '鎬婚潰绉�', sortable: true},
-    {field: 'ProductionDate',width: '100', title: '鐢熶骇鏃ユ湡', sortable: true},
-    {field: 'ShelfLife',width: '100', title: '淇濊川鏈�', sortable: true},
-    {field: 'LocationNumber',width: '100', title: '搴撲綅缂栧彿', sortable: true},
-    {field: 'StorageArea',width: '100', title: '瀛樺偍鍖哄煙', sortable: true},
-    {field: 'Location',width: '100', title: '搴撲綅', sortable: true},
-    {field: 'BacklogInventory',width: '100', title: '绉帇搴撳瓨', sortable: true},
-    {field: 'remark',width: '80', title: '澶囨敞', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //   'name': '鏂板'
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "InventoryOrganization": "浜哄伐搴�",
-      "MaterialCode": "700900000000115",
-      "MaterialName": "鍐170",
-      "Origin": "China",
-      "InventoryNumber": "KC2006891",
-      "Width": '',
-      "Height": "",
-      "Thickness": "",
-      "MainUnit": "浠�",
-      "SafetyStock": "5",
-      "InventoryCount": "20",
-      "AvailableInventory": "9",
-      "UnclaimedQuantity": "2",
-      "TotalArea": "0",
-      "ProductionDate": "2016-10-17",
-      "ShelfLife": "0",
-      "LocationNumber": "0",
-      "StorageArea": "0",
-      "Location": "0",
-      "BacklogInventory": "40",
-      "remark": "娴嬭瘯",
-    },
-    {
-      "InventoryOrganization": "浜哄伐搴�",
-      "MaterialCode": "700900000000115",
-      "MaterialName": "鍐175",
-      "Origin": "China",
-      "InventoryNumber": "KC2006891",
-      "Width": '',
-      "Height": "",
-      "Thickness": "",
-      "MainUnit": "浠�",
-      "SafetyStock": "5",
-      "InventoryCount": "20",
-      "AvailableInventory": "9",
-      "UnclaimedQuantity": "2",
-      "TotalArea": "0",
-      "ProductionDate": "2016-10-17",
-      "ShelfLife": "0",
-      "LocationNumber": "0",
-      "StorageArea": "0",
-      "Location": "0",
-      "BacklogInventory": "40",
-      "remark": "娴嬭瘯",
-    },{
-      "InventoryOrganization": "浜哄伐搴�",
-      "MaterialCode": "700900000000115",
-      "MaterialName": "鍐180",
-      "Origin": "China",
-      "InventoryNumber": "KC2006891",
-      "Width": '',
-      "Height": "",
-      "Thickness": "",
-      "MainUnit": "浠�",
-      "SafetyStock": "2",
-      "InventoryCount": "23",
-      "AvailableInventory": "4",
-      "UnclaimedQuantity": "3",
-      "TotalArea": "0",
-      "ProductionDate": "2016-10-17",
-      "ShelfLife": "0",
-      "LocationNumber": "0",
-      "StorageArea": "0",
-      "Location": "0",
-      "BacklogInventory": "40",
-      "remark": "娴嬭瘯",
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/CreateProductStock.vue b/UI-Project/src/views/mm/mainProductStock/CreateProductStock.vue
deleted file mode 100644
index 6cee0e5..0000000
--- a/UI-Project/src/views/mm/mainProductStock/CreateProductStock.vue
+++ /dev/null
@@ -1,339 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import VXETable from "vxe-table";
-let router=useRouter()
-let produceList = ref([])
-let tableRef = ref([])
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
-      break
-    }
-    case 'back':{
-      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
-      break
-    }
-    case 'out' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
-      break
-    }
-  }
-}
-
-
-
-const hasDecimal=(value)=>{
-  const regex=/\./ // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐�
-  return regex.test(value) //杩斿洖true/false
-}
-
-const hasDecimalhtml=(item,row)=>{
-  let aa=item.split('.').length
-  if (aa===2){
-    return row[item.split('.')[0]][item.split('.')[1]]
-  }else if(aa===3){
-    return row[item.split('.')[0]][item.split('.')[1]][item.split('.')[2]]
-  }
-
-
-}
-
-
-//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
-let filterData = ref({
-  orderDetail:{
-    orderNumber:'',
-    productName:'',
-    productId:'',
-    width:'',
-    height:'',
-    quantity:''
-  },
-  order:{
-    orderId:'',
-    creater:'',
-    project:'',
-    area:'',
-    batch:''
-
-  }
-})
-
-
-//绗竴娆¤皟鐢�
-request.post("/FinishedGoodsInventory/getseletwarehousing/1/100",filterData.value).then((res) => {
-
-  if(res.code==200){
-    console.log(res.data)
-    pageTotal.value=res.data.total
-    pageNum=1
-    produceList = deepClone(res.data.data)
-    xGrid.value.loadData(produceList)
-    gridOptions.loading=false
-  }else{
-    ElMessage.warning(res.msg)
-    router.push("/login")
-  }
-})
-
-
-//瀹氫箟椤甸潰鎬婚〉鏁�
-let pageTotal=ref('')
-//瀹氫箟褰撳墠椤垫暟
-let pageNum=$ref(1)
-let pageState = null
-
-/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/
-const changeFilterEvent = (event, option, $panel,) => {
-  // 鎵嬪姩瑙﹀彂绛涢��
-  $panel.changeOption(event, !!option.data, option)
-}
-function filterChanged(column){
-  gridOptions.loading=true
-  //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖�
-  let value = column.datas[0]!=undefined?column.datas[0]:''
-  value = value.trim()
-  //鍒ゆ柇鏄惁瀛樺湪澶栭敭
-  if (column.property.indexOf('.')>-1){
-    const  columnArr = column.property.split('.')
-    filterData.value[columnArr[0]] = {
-      [columnArr[1]]:value
-    }
-  }else{
-    filterData.value[column.property] = value
-  }
-  request.post("/FinishedGoodsInventory/getseletwarehousing/1/100",filterData.value).then((res) => {
-
-    if(res.code==200){
-      console.log(res.data)
-      pageTotal.value=res.data.total
-      pageNum=1
-      produceList = deepClone(res.data.data)
-      xGrid.value.loadData(produceList)
-      gridOptions.loading=false
-    }else{
-      ElMessage.warning(res.msg)
-      router.push("/login")
-    }
-  })
-}
-
-
-
-
-
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '60'},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '220', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'order.orderId', width: '150',title: '閿�鍞崟鍙�', showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.buildingNumber', width: '120',title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.productId',width: '100', title: '浜у搧缂栧彿', filters:[{ data: '' }],showOverflow:"ellipsis",slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.productName',width: '100', title: '浜у搧鍚嶇О', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.width', width: '100',title: '瀹藉害', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.height',width: '100', title: '楂樺害', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'order.creater', width: '100',title: '涓氬姟鍛�', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'order.project', width: '100',title: '椤圭洰鍚嶇О', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderNumber',width: '140', title: '璁㈠簭', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.quantity',width: '140', title: '璁㈠崟鎬绘暟', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'inventoryQuantity',width: '100', title: '瀹屽伐鏁伴噺', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'order.area',width: '140', title: '闈㈢Н', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'processId',width: '100', title: '娴佺▼鍗″彿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'receivedQuantity',width: '100', title: '宸插叆鏁伴噺', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'order.batch',width: '100', title: '鎵规', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [{
-      'name': '纭鍏ュ簱',status: 'primary',
-      'code':'add'
-    }
-      ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  }
-  ,//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return `椤垫暟:${pageNum}/${pageTotal.value}`
-        }
-
-        return ''
-      })
-    ]
-  }
-
-})
-const  xGrid = ref();
-const storageRegion = ref(null);
-const remark = ref(null);
-const flowcard = ref(null);
-const gridEvents = {
-  toolbarButtonClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'add': {
-          //鍒ゆ柇杈撳叆妗嗗�间笉鑳戒负null
-          if(storageRegion.value!==null && storageRegion.value!=""){
-            const $table = xGrid.value
-            if ($table) {
-              const selectRecords = $table.getCheckboxRecords()
-              //寰幆鑾峰彇閫変腑鐨勫閫夋
-              for (let i=0;i<selectRecords.length;i++){
-                //瀹氫箟鍚庣闇�瑕佺殑鍙傛暟
-                let flowData = ref({
-                  finishedGoodsInventory:{
-                    storageRegion:storageRegion.value,
-                    remark:remark.value
-                  },
-
-                  flowcard:selectRecords[0]
-                })
-                console.log(flowcard.value)
-                request.post("/FinishedGoodsInventory/addseletwarehousing",flowData.value).then((res) => {
-                 /* request.post("/FinishedGoodsInventory/addseletwarehousing/"+storageRegion.value+"/"+remark.value,flowData.value).then((res) => {*/
-                  if(res.code===200){
-                    alert(`鍏ュ簱鎴愬姛`)
-                    request.post("/FinishedGoodsInventory/getseletwarehousing/1/100",filterData.value).then((res) => {
-
-                      if(res.code===200){
-                        console.log(res.data)
-                        pageTotal.value=res.data.total
-                        pageNum=1
-                        produceList = deepClone(res.data.data)
-                        xGrid.value.loadData(produceList)
-                        gridOptions.loading=false
-                      }else{
-                        ElMessage.warning(res.msg)
-                        router.push("/login")
-                      }
-                    })
-                  }else{
-                    ElMessage.warning(res.msg)
-                    router.push("/login")
-                  }
-                })
-              }
-            }
-            return;
-
-
-          }else{
-            alert(`璇疯緭鍏ュ簱浣峘)
-          }
-
-        }
-
-      }
-    }
-  },
-
-}
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-        <el-input style="width: 200px" v-model="storageRegion" class="m-2" placeholder="璇疯緭鍏ュ簱浣�">
-      </el-input>
-        <el-input style="width: 200px" v-model="remark" class="m-2" placeholder="璇疯緭鍏ュ娉�">
-        </el-input>
-
-
-
-    </div>
-
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span v-if="hasDecimal(item.field)">{{ hasDecimalhtml(item.field,row) }}</span>
-            <span v-else>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-<!--        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">璁㈠崟璋冩嫧</el-button>-->
-<!--        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">鎴愬搧棰嗗嚭</el-button>-->
-<!--        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">鎴愬搧杩斿伐</el-button>-->
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/FinishedGoodsIssue.vue b/UI-Project/src/views/mm/mainProductStock/FinishedGoodsIssue.vue
deleted file mode 100644
index b2e72fe..0000000
--- a/UI-Project/src/views/mm/mainProductStock/FinishedGoodsIssue.vue
+++ /dev/null
@@ -1,245 +0,0 @@
-<!--鎴愬搧棰嗗嚭-->
-
-
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    // case 'edit' :{
-    //   //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-    //   router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
-    //   break
-    // }
-    // case 'back':{
-    //   router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
-    //   break
-    // }
-    // case 'out' :{
-    //   //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-    //   router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
-    //   break
-    // }
-  }
-}
-const  xGrid = ref();
-const gridEvents = {
-  toolbarButtonClick({ code }) {
-    const $grid = xGrid.value
-    if($grid){
-      switch (code){
-        case 'verify':{
-          alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-          // router.push({path: '/main/productStock/OrderAllocation'});
-          // return;
-          break
-        }
-        case 'out':{
-          router.push({path: '/main/productStock/TakeOutRecord'});
-          return;
-          break;
-        }
-        case 'rework':{
-          router.push({path: '/main/productStock/FinishedProductRework'});
-          return;
-          break;
-        }
-      }
-    }
-  },
-}
-
-
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    // { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '220', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'SalesOrderNumber', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'ProjectName', width: '120',title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'ProcessCardNumber',width: '100', title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis"},
-    {field: 'FinishedProductNumber', width: '100',title: '鎴愬搧缂栧彿', sortable: true},
-    {field: 'Quantity',width: '140', title: '鏁伴噺', sortable: true},
-    {field: 'DiaoQuantity',width: '140', title: '棰嗗嚭鏁伴噺',editRender: { name: 'input', attrs: { placeholder: '' } }, sortable: true},
-    {field: 'ProductNumber',width: '100', title: '浜у搧缂栧彿', sortable: true},
-    {field: 'CustomerNumber', width: '100',title: '瀹㈡埛缂栧彿', sortable: true},
-    {field: 'CustomerName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true},
-    {field: 'Length', width: '100',title: '闀垮害', sortable: true},
-    {field: 'Width',width: '100', title: '瀹藉害', sortable: true},
-    {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
-    {field: 'SingleArea',width: '140', title: '鍗曠墖闈㈢Н', sortable: true},
-    {field: 'TotalArea',width: '100', title: '鎬婚潰绉�', sortable: true},
-    {field: 'StorageArea',width: '100', title: '搴撳尯', sortable: true},
-    {field: 'Location',width: '100', title: '搴撲綅', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [{
-      'name': '纭棰嗗嚭',
-      'code': 'verify',
-      status: 'primary'
-    },{
-      'name': '棰嗗嚭璁板綍','code':'out',
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-    },{
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-    },{
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-    },
-
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">璁㈠崟璋冩嫧</el-button>
-        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">鎴愬搧棰嗗嚭</el-button>
-        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">鎴愬搧杩斿伐</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/FinishedProductOut.vue b/UI-Project/src/views/mm/mainProductStock/FinishedProductOut.vue
deleted file mode 100644
index d7e1fcc..0000000
--- a/UI-Project/src/views/mm/mainProductStock/FinishedProductOut.vue
+++ /dev/null
@@ -1,317 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
-      break
-    }
-    case 'back':{
-      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
-      break
-    }
-    case 'out' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
-      break
-    }
-  }
-}
-
-const  xGrid = ref();
-const gridEvents = {
-  toolbarButtonClick({ code }) {
-    const $grid = xGrid.value
-    if($grid){
-      switch (code){
-        case 'ver':{
-          alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-          // router.push({path: '/main/productStock/OrderAllocation'});
-          // return;
-          break
-        }
-        case 'record':{
-          router.push({path: '/main/productStock/TransferRecord'});
-          return;
-          break;
-        }
-        case 'rework':{
-          router.push({path: '/main/productStock/FinishedProductRework'});
-          return;
-          break;
-        }
-      }
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    {title: '鎿嶄綔', width: '80', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'DeliveryOrderNumber', width:'150', title: '閫佽揣鍗曞彿', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'SalesOrderNumber', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'ProjectName', width: '120',title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'ProductName', width: '100',title: '鎴愬搧鍚嶇О', sortable: true},
-    {field: 'ProductNumber',width: '100', title: '鎴愬搧缂栧彿', sortable: true},
-    {field: 'CustomerName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true},
-    {field: 'Length', width: '100',title: '闀垮害', sortable: true},
-    {field: 'Width',width: '100', title: '瀹藉害', sortable: true},
-    {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
-    {field: 'TotalQuantity',width: '140', title: '鎬绘暟閲�', sortable: true},
-    {field: 'TotalArea',width: '100', title: '鎬婚潰绉�', sortable: true},
-    {field: 'FloorNumber',width: '100', title: '妤煎眰缂栧彿', sortable: true},
-    {field: 'OrderNumber',width: '100', title: '璁㈠簭', sortable: true},
-    {field: 'Salesman',width: '100', title: '涓氬姟鍛�', sortable: true},
-    {field: 'BoxNumber',width: '100', title: '绠卞彿', sortable: true},
-    {field: 'Quantity',width: '100', title: '鏁伴噺', sortable: true},
-    {field: 'ReportingDate',width: '140', title: '鎶ヨ〃鏃ユ湡', sortable: true},
-    {field: 'OrderQuantity',width: '100', title: '璁㈠崟鏁�', sortable: true},
-    {field: 'Status',width: '100', title: '鐘舵��', sortable: true},
-    {field: 'remark',width: '80', title: '澶囨敞', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [{
-      'name': '纭鍑哄簱',
-      status: 'primary',
-      'code':'ver'
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "DeliveryOrderNumber": "1",
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "CustomerName": "鏉庝簩鐗�",
-      "Salesman": "灏忓渤",
-      "OrderNumber": '7',
-      "FloorNumber": "06040000022",
-      "OrderQuantity": "7",
-      "Length": "1230.00",
-      "Width": "1075.00",
-      "Thickness": "6.700",
-      "TotalQuantity": "100.00",
-      "TotalArea": "360.80",
-      "BoxNumber": "06",
-      "ReportingDate": "2023-12-22",
-      "ProductNumber": "NG2312220001",
-      "ProductName": "瓒呯骇鐜荤拑",
-      "Quantity": "360",
-      "Status": "宸茶皟鏋�",
-      "remark": "娴嬭瘯",
-    },  {
-      "DeliveryOrderNumber": "1",
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "CustomerName": "鏉庝簩鐗�",
-      "Salesman": "灏忓渤",
-      "OrderNumber": '7',
-      "FloorNumber": "06040000022",
-      "OrderQuantity": "7",
-      "Length": "1230.00",
-      "Width": "1075.00",
-      "Thickness": "6.700",
-      "TotalQuantity": "100.00",
-      "TotalArea": "360.80",
-      "BoxNumber": "06",
-      "ReportingDate": "2023-12-22",
-      "ProductNumber": "NG2312220001",
-      "ProductName": "瓒呯骇鐜荤拑",
-      "Quantity": "360",
-      "Status": "宸茶皟鏋�",
-      "remark": "娴嬭瘯",
-    },  {
-      "DeliveryOrderNumber": "1",
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "CustomerName": "鏉庝簩鐗�",
-      "Salesman": "灏忓渤",
-      "OrderNumber": '7',
-      "FloorNumber": "06040000022",
-      "OrderQuantity": "7",
-      "Length": "1230.00",
-      "Width": "1075.00",
-      "Thickness": "6.700",
-      "TotalQuantity": "100.00",
-      "TotalArea": "360.80",
-      "BoxNumber": "06",
-      "ReportingDate": "2023-12-22",
-      "ProductNumber": "NG2312220001",
-      "ProductName": "瓒呯骇鐜荤拑",
-      "Quantity": "360",
-      "Status": "宸茶皟鏋�",
-      "remark": "娴嬭瘯",
-    },  {
-      "DeliveryOrderNumber": "1",
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "CustomerName": "鏉庝簩鐗�",
-      "Salesman": "灏忓渤",
-      "OrderNumber": '7',
-      "FloorNumber": "06040000022",
-      "OrderQuantity": "7",
-      "Length": "1230.00",
-      "Width": "1075.00",
-      "Thickness": "6.700",
-      "TotalQuantity": "100.00",
-      "TotalArea": "360.80",
-      "BoxNumber": "06",
-      "ReportingDate": "2023-12-22",
-      "ProductNumber": "NG2312220001",
-      "ProductName": "瓒呯骇鐜荤拑",
-      "Quantity": "360",
-      "Status": "宸茶皟鏋�",
-      "remark": "娴嬭瘯",
-    },  {
-      "DeliveryOrderNumber": "1",
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "CustomerName": "鏉庝簩鐗�",
-      "Salesman": "灏忓渤",
-      "OrderNumber": '7',
-      "FloorNumber": "06040000022",
-      "OrderQuantity": "7",
-      "Length": "1230.00",
-      "Width": "1075.00",
-      "Thickness": "6.700",
-      "TotalQuantity": "100.00",
-      "TotalArea": "360.80",
-      "BoxNumber": "06",
-      "ReportingDate": "2023-12-22",
-      "ProductNumber": "NG2312220001",
-      "ProductName": "瓒呯骇鐜荤拑",
-      "Quantity": "360",
-      "Status": "宸茶皟鏋�",
-      "remark": "娴嬭瘯",
-    },  {
-      "DeliveryOrderNumber": "1",
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "CustomerName": "鏉庝簩鐗�",
-      "Salesman": "灏忓渤",
-      "OrderNumber": '7',
-      "FloorNumber": "06040000022",
-      "OrderQuantity": "7",
-      "Length": "1230.00",
-      "Width": "1075.00",
-      "Thickness": "6.700",
-      "TotalQuantity": "100.00",
-      "TotalArea": "360.80",
-      "BoxNumber": "06",
-      "ReportingDate": "2023-12-22",
-      "ProductNumber": "NG2312220001",
-      "ProductName": "瓒呯骇鐜荤拑",
-      "Quantity": "360",
-      "Status": "宸茶皟鏋�",
-      "remark": "娴嬭瘯",
-    },
-
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/FinishedProductReturn.vue b/UI-Project/src/views/mm/mainProductStock/FinishedProductReturn.vue
deleted file mode 100644
index b388a7a..0000000
--- a/UI-Project/src/views/mm/mainProductStock/FinishedProductReturn.vue
+++ /dev/null
@@ -1,183 +0,0 @@
-<!--鎴愬搧閫�璐�-->
-
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      alert('鏍规嵁閫�璐у崟鍙锋煡璇㈠悇鍗曟槑缁嗭紝鍦ㄦ槑缁嗕腑淇敼')
-      // router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    // { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    {title: '鎿嶄綔', width: '100', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'ReturnNumber', width: '150',title: '閫�璐у崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'SalesNumber', width: '120',title: '閿�鍞崟鍙�', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'NewNum', width:'150', title: '璁㈠簭', sortable: true },
-    {field: 'ShippingNumber',width: '100', title: '鍙戣揣鍗曞彿', sortable: true,showOverflow:"ellipsis"},
-    {field: 'CustomerName', width: '100',title: '瀹㈡埛鍚嶇О', sortable: true},
-    {field: 'ProjectName',width: '100', title: '浜у搧鍚嶇О', sortable: true},
-    {field: 'ReturnedQuantity', width: '100',title: '閫�璐ф暟閲�', sortable: true},
-    {field: 'ProductName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true},
-    {field: 'Salesperson', width: '100',title: '涓氬姟鍛�', sortable: true},
-    {field: 'OrderDate',width: '100', title: '鍒跺崟鏃ユ湡', sortable: true},
-    {field: 'Remark', width: '100',title: '澶囨敞', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //   'name': '鏂板'
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "ReturnNumber": "TD23072003",
-      "SalesNumber": "NG23112209",
-      "ShippingNumber": "JG23112209",
-      'CustomerName':'寮犱笁',
-      'ProjectName':'楂樻�ц兘鐜繚闀�',
-      'ProductName':'4mm楂樻�ц兘鐜繚闀�',
-      "ReturnedQuantity": "367",
-      "Salesperson": "姣涘崼",
-      "OrderDate": "23-11-30 00:00:00",
-      "NewNum":'123123123',
-      "Remark": "娴嬭瘯",
-    } ,{
-      "ReturnNumber": "TD23072003",
-      "SalesNumber": "NG23112209",
-      "ShippingNumber": "JG23112209",
-      'CustomerName':'寮犱笁',
-      'ProjectName':'楂樻�ц兘鐜繚闀�',
-      'ProductName':'4mm楂樻�ц兘鐜繚闀�',
-      "ReturnedQuantity": "367",
-      "Salesperson": "姣涘崼",
-      "OrderDate": "23-11-30 00:00:00",
-      "NewNum":'123123123',
-      "Remark": "娴嬭瘯",
-    }, {
-      "ReturnNumber": "TD23072003",
-      "SalesNumber": "NG23112209",
-      "ShippingNumber": "JG23112209",
-      'CustomerName':'寮犱笁',
-      'ProjectName':'楂樻�ц兘鐜繚闀�',
-      'ProductName':'4mm楂樻�ц兘鐜繚闀�',
-      "ReturnedQuantity": "367",
-      "Salesperson": "姣涘崼",
-      "OrderDate": "23-11-30 00:00:00",
-      "NewNum":'123123123',
-      "Remark": "娴嬭瘯",
-    }
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/FinishedProductRework.vue b/UI-Project/src/views/mm/mainProductStock/FinishedProductRework.vue
deleted file mode 100644
index 19209e7..0000000
--- a/UI-Project/src/views/mm/mainProductStock/FinishedProductRework.vue
+++ /dev/null
@@ -1,246 +0,0 @@
-<!--鎴愬搧杩斿伐-->
-
-
-
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
-      break
-    }
-    case 'back':{
-      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
-      break
-    }
-    case 'out' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
-      break
-    }
-  }
-}
-const  xGrid = ref();
-const gridEvents = {
-  toolbarButtonClick({ code }) {
-    const $grid = xGrid.value
-    if($grid){
-      switch (code){
-        case 'ver':{
-          alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-          // router.push({path: '/main/productStock/OrderAllocation'});
-          // return;
-          break
-        }
-        case 'record':{
-          router.push({path: '/main/productStock/ReworkRecord'});
-          return;
-          break;
-        }
-        case 'rework':{
-          router.push({path: '/main/productStock/FinishedProductRework'});
-          return;
-          break;
-        }
-      }
-    }
-  },
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    // { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '220', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'SalesOrderNumber', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'ProjectName', width: '120',title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'ProcessCardNumber',width: '100', title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis"},
-    {field: 'FinishedProductNumber', width: '100',title: '鎴愬搧缂栧彿', sortable: true},
-    {field: 'Quantity',width: '140', title: '鏁伴噺', sortable: true},
-    {field: 'ReworkQuantity',width: '140', title: '杩斿伐鏁伴噺',editRender: { name: 'input', attrs: { placeholder: '' } }, sortable: true},
-    {field: 'ProductNumber',width: '100', title: '浜у搧缂栧彿', sortable: true},
-    {field: 'CustomerNumber', width: '100',title: '瀹㈡埛缂栧彿', sortable: true},
-    {field: 'CustomerName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true},
-    {field: 'Length', width: '100',title: '闀垮害', sortable: true},
-    {field: 'Width',width: '100', title: '瀹藉害', sortable: true},
-    {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
-    {field: 'SingleArea',width: '140', title: '鍗曠墖闈㈢Н', sortable: true},
-    {field: 'TotalArea',width: '100', title: '鎬婚潰绉�', sortable: true},
-    {field: 'StorageArea',width: '100', title: '搴撳尯', sortable: true},
-    {field: 'Location',width: '100', title: '搴撲綅', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [{
-      'name': '杩斿伐纭',
-      status: 'primary',
-      'code':'ver'
-    },
-      {
-      'name': '杩斿伐璁板綍',
-        'code':'record'
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-    },{
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-    },{
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-    },
-
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">璁㈠崟璋冩嫧</el-button>
-        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">鎴愬搧棰嗗嚭</el-button>
-        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">鎴愬搧杩斿伐</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/OrderAllocation.vue b/UI-Project/src/views/mm/mainProductStock/OrderAllocation.vue
deleted file mode 100644
index ca5b462..0000000
--- a/UI-Project/src/views/mm/mainProductStock/OrderAllocation.vue
+++ /dev/null
@@ -1,245 +0,0 @@
-<!--鎴愬搧璋冩嫧-->
-
-
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      // router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
-      break
-    }
-    case 'back':{
-      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
-      break
-    }
-    case 'out' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    // { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '80', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'SalesOrderNumber', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'ProjectName', width: '120',title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'NowNum', width: '120',title: '褰撳墠搴忓彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'Quantity',width: '140', title: '璁㈠崟鏁伴噺', sortable: true},
-    {field: 'DiaoSalesOrderNumber', width: '150',title: '璋冩嫧鍗曞彿',editRender: { name: 'input', attrs: { placeholder: '' } }, sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'NewNum', width:'150', title: '鏂拌搴�', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'DiaoQuantity',width: '140', title: '璋冩嫧鏁伴噺',editRender: { name: 'input', attrs: { placeholder: '' } }, sortable: true},
-    {field: 'ProcessCardNumber',width: '100', title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis"},
-    {field: 'FinishedProductNumber', width: '100',title: '鎴愬搧缂栧彿', sortable: true},
-    {field: 'ProductNumber',width: '100', title: '浜у搧缂栧彿', sortable: true},
-    {field: 'CustomerNumber', width: '100',title: '瀹㈡埛缂栧彿', sortable: true},
-    {field: 'CustomerName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true},
-    {field: 'Length', width: '100',title: '闀垮害', sortable: true},
-    {field: 'Width',width: '100', title: '瀹藉害', sortable: true},
-    {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true},
-    {field: 'SingleArea',width: '140', title: '鍗曠墖闈㈢Н', sortable: true},
-    {field: 'TotalArea',width: '100', title: '鎬婚潰绉�', sortable: true},
-    {field: 'StorageArea',width: '100', title: '搴撳尯', sortable: true},
-    {field: 'Location',width: '100', title: '搴撲綅', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-        {'name': '纭璋冩嫧',status: 'primary','code':'edit'},
-        {'name': '璋冩嫧璁板綍','code':'record'}
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-      "NowNum":'1'
-    },{
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-      "NowNum":'1'
-    },{
-      "SalesOrderNumber": "NG23072003",
-      "ProjectName": "閽㈠寲鐜荤拑",
-      "ProcessCardNumber": "NG23072003A01",
-      'FinishedProductNumber':'',
-      'FinishedProductName':'',
-      'BoxNumber':'',
-      "CustomerNumber": "KD0071",
-      "CustomerName": "浠�",
-      "Length": "1075.00",
-      "Width": "440.00",
-      "Thickness": "3.00",
-      "Quantity": "360",
-      "SingleArea": "0.473000",
-      "TotalArea": "170.28",
-      "StorageArea": "0.47",
-      "Location": "170.28",
-      "NowNum":'1'
-    },
-
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const  xGrid = ref();
-const gridEvents = {
-  toolbarButtonClick({ code }) {
-    const $grid = xGrid.value
-    if($grid){
-      switch (code){
-        case 'edit':{
-          alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-          // router.push({path: '/main/productStock/OrderAllocation'});
-          // return;
-          break
-        }
-        case 'record':{
-          router.push({path: '/main/productStock/TransferRecord'});
-          return;
-          break;
-        }
-        case 'rework':{
-          router.push({path: '/main/productStock/FinishedProductRework'});
-          return;
-          break;
-        }
-      }
-    }
-  }
-}
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-<!--        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">鎴愬搧棰嗗嚭</el-button>-->
-<!--        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">鎴愬搧杩斿伐</el-button>-->
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/ProductStock.vue b/UI-Project/src/views/mm/mainProductStock/ProductStock.vue
deleted file mode 100644
index 9616419..0000000
--- a/UI-Project/src/views/mm/mainProductStock/ProductStock.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-   <div id="div-title">
-     <el-breadcrumb :separator-icon="ArrowRight">
-       <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/productStock/ProductStockList' }">搴撳瓨鏌ヨ</el-breadcrumb-item>
-       <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/productStock/CreateProductStock' }">鎴愬搧鍏ュ簱</el-breadcrumb-item>
-       <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productStock/FinishedProductOut' }">鎴愬搧鍑哄簱</el-breadcrumb-item>
-       <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productStock/FinishedProductReturn' }">璁㈠崟鎴愬搧閫�璐�</el-breadcrumb-item>
-       <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
-<!--       <el-breadcrumb-item :to="{ path: '/main/productStock/OrderAllocation' }">璁㈠崟璋冩嫧</el-breadcrumb-item>-->
-<!--       <el-breadcrumb-item :to="{ path: '/main/productStock/FinishedGoodsIssue' }">鎴愬搧棰嗗嚭</el-breadcrumb-item>-->
-<!--       <el-breadcrumb-item :to="{ path: '/main/productStock/FinishedProductRework' }">鎴愬搧杩斿伐</el-breadcrumb-item>-->
-       <!-- <el-breadcrumb-item :to="{ path: '/main/product/createProduct' }"></el-breadcrumb-item> -->
-     </el-breadcrumb>
-
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-  //margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-#select{
-  margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/ProductStockList.vue b/UI-Project/src/views/mm/mainProductStock/ProductStockList.vue
deleted file mode 100644
index dc100ed..0000000
--- a/UI-Project/src/views/mm/mainProductStock/ProductStockList.vue
+++ /dev/null
@@ -1,290 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-let router=useRouter()
-let produceList = ref([])
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
-      break
-    }
-    case 'back':{
-      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
-      break
-    }
-    case 'out' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
-      break
-    }
-  }
-}
-
-const hasDecimal=(value)=>{
-  const regex=/\./ // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐�
-  return regex.test(value) //杩斿洖true/false
-}
-
-const hasDecimalhtml=(item,row)=>{
-  let aa=item.split('.').length
-  if (aa===2){
-    return row[item.split('.')[0]][item.split('.')[1]]
-  }else if(aa===3){
-    return row[item.split('.')[0]][item.split('.')[1]][item.split('.')[2]]
-  }
-
-
-}
-
-
-
-
-//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
-let filterData = ref({
-  orderDetail:{
-    orderNumber:'',
-    productName:'',
-    productId:'',
-    width:'',
-    height:''
-  },
-  order:{
-    orderId:'',
-    orderType:'',
-    project:''
-  }
-})
-
-
-
-//绗竴娆¤皟鐢�
-request.post("/FinishedGoodsInventory/getselet/1/100",filterData.value).then((res) => {
-
-  if(res.code==200){
-    console.log(res.data)
-    pageTotal.value=res.data.total
-    pageNum=1
-    produceList = deepClone(res.data.data)
-    xGrid.value.loadData(produceList)
-    gridOptions.loading=false
-  }else{
-    ElMessage.warning(res.msg)
-    router.push("/login")
-  }
-})
-
-
-//瀹氫箟椤甸潰鎬婚〉鏁�
-let pageTotal=ref('')
-//瀹氫箟褰撳墠椤垫暟
-let pageNum=$ref(1)
-let pageState = null
-
-/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/
-const changeFilterEvent = (event, option, $panel,) => {
-  // 鎵嬪姩瑙﹀彂绛涢��
-  $panel.changeOption(event, !!option.data, option)
-}
-function filterChanged(column){
-  gridOptions.loading=true
-  //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖�
-  let value = column.datas[0]!=undefined?column.datas[0]:''
-  value = value.trim()
-  //鍒ゆ柇鏄惁瀛樺湪澶栭敭
-  if (column.property.indexOf('.')>-1){
-    const  columnArr = column.property.split('.')
-    filterData.value[columnArr[0]] = {
-      [columnArr[1]]:value
-    }
-  }else{
-    filterData.value[column.property] = value
-  }
-  request.post("/FinishedGoodsInventory/getselet/1/100",filterData.value).then((res) => {
-
-    if(res.code==200){
-      console.log(res.data.data)
-      pageTotal.value=res.data.total
-      pageNum=1
-      produceList = deepClone(res.data.data)
-      xGrid.value.loadData(produceList)
-      gridOptions.loading=false
-    }else{
-      ElMessage.warning(res.msg)
-    }
-  })
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '60'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '220', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'orderDetail.orderNumber', width:'150', title: '璁㈠崟搴忓彿', filters:[{ data: '' }],editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'order.orderId', width: '150',title: '閿�鍞崟鍙�',showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'order.project', width: '120',title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'order.orderType', width: '100',title: '璁㈠崟绫诲瀷', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.productName', width: '100',title: '浜у搧鍚嶇О', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.productId',width: '100', title: '浜у搧缂栧彿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-
-    {field: 'orderDetail.width', width: '100',title: '瀹藉害',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderDetail.height',width: '100', title: '楂樺害', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'inventory',width: '140', title: '搴撳瓨鏁伴噺', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'quantityAvailable',width: '140', title: '鍙敤鏁伴噺', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-
-    {field: 'actualSignalArea',width: '140', title: '瀹為檯鍗曠墖闈㈢Н', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'area',width: '100', title: '鎬婚潰绉�', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-
-    /*{field: 'warehouseNumber',width: '100', title: '浠撳簱缂栧彿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},*/
-    {field: 'storageRegion',width: '100', title: '搴撳瓨鍖哄煙', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'status',width: '100', title: '鐘舵��', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-
-    {field: 'enterStorageTime',width: '140', title: '鍏ュ簱鏃堕棿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'updateTime',width: '140', title: '淇敼鏃堕棿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'endTime',width: '100', title: '鍑哄簱鏃堕棿', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'remark',width: '80', title: '澶囨敞', filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-      { 'code' :'issue','name':'璁㈠崟璋冩嫧',status: 'primary'},
-      { 'code' :'out','name':'鎴愬搧棰嗗嚭',status: 'primary'},
-      { 'code' :'rework','name':'鎴愬搧杩斿伐',status: 'primary'},
-
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return `椤垫暟:${pageNum}/${pageTotal.value}`
-        }
-
-        return ''
-      })
-    ]
-  }
-
-})
-const  xGrid = ref();
-const gridEvents = {
-  toolbarButtonClick({ code }) {
-    const $grid = xGrid.value
-    if($grid){
-      switch (code){
-        case 'issue':{
-          /*VXETable.modal.confirm('鐐瑰嚮浜嗗簱瀛樿皟鎷�');*/
-          router.push({path: '/main/productStock/OrderAllocation'});
-          return;
-          break
-        }
-        case 'out':{
-          router.push({path: '/main/productStock/FinishedGoodsIssue'});
-          return;
-          break;
-        }
-        case 'rework':{
-          router.push({path: '/main/productStock/FinishedProductRework'});
-          return;
-          break;
-        }
-      }
-    }
-  }
-}
-
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span v-if="hasDecimal(item.field)">{{ hasDecimalhtml(item.field,row) }}</span>
-            <span v-else>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-<!--        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">璁㈠崟璋冩嫧</el-button>-->
-<!--        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">鎴愬搧棰嗗嚭</el-button>-->
-<!--        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">鎴愬搧杩斿伐</el-button>-->
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/ReworkRecord.vue b/UI-Project/src/views/mm/mainProductStock/ReworkRecord.vue
deleted file mode 100644
index 6d93559..0000000
--- a/UI-Project/src/views/mm/mainProductStock/ReworkRecord.vue
+++ /dev/null
@@ -1,231 +0,0 @@
-<!-- 棰嗗嚭璁板綍  -->
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'id', width:'150', title: '棰嗗嚭鍗曞彿', sortable: true,},
-    {field: 'MaterialCode', width: '150',title: '璁㈠崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'Code', width: '150',title: '搴忓彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'MaterialName', width: '120',title: '琛ョ墖鍗曞彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'Origin', width: '100',title: '宸ュ簭', sortable: true},
-    {field: 'InventoryNumber',width: '100', title: '娆$牬鍘熷洜', sortable: true,showOverflow:"ellipsis"},
-    {field: 'Thickness', width: '80',title: '閫�璐у崟鍙�', sortable: true},
-    {field: 'MainUnit',width: '100', title: '瀹屽伐鏁伴噺', sortable: true},
-    {field: 'RecordNum',width: '100', title: '杩斿伐鏁伴噺', sortable: true},
-    {field: 'ProductNum',width: '100', title: '浜у搧缂栧彿', sortable: true},
-    {field: 'ProductName',width: '100', title: '浜у搧鍚嶇О', sortable: true},
-    {field: 'Height', width: '100',title: '闀�', sortable: true},
-    {field: 'Width',width: '100', title: '瀹�', sortable: true},
-    {field: 'status', width: '80',title: '瀹℃牳鐘舵��', sortable: true},
-    {field: 'ZhiDanRen', width: '80',title: '鍒跺崟浜�', sortable: true},
-    {field: 'SafetyStock', width: '100',title: '鍒跺崟鏃ユ湡', sortable: true},
-    {field: 'Auditor', width: '100',title: '瀹℃牳浜�', sortable: true},
-    {field: 'AuditorDate', width: '100',title: '瀹℃牳鏃ユ湡', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //   'name': '鏂板'
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "id": "LC23123011",
-      "MaterialCode": "NG23060212",
-      "Code": "1",
-      "MaterialName": "11鏈�29閫�璐т紬鑷�",
-      "Origin": "鏅洪暅",
-      "InventoryNumber": '榛戠偣',
-      "Thickness": '',
-      "MainUnit": "",
-      "RecordNum": "876",
-      "ProductNum": "0604000108",
-      "ProductName": "4mm楂樻�ц兘鐜繚闀�",
-      "Height": "930.00",
-      "Width": "550.00",
-      "status": "宸插鏍�",
-      "ZhiDanRen": "鏇叉収闇�",
-      "SafetyStock": "2023-12-30",
-      "Auditor": "鏇叉収闇�",
-      "AuditorDate": "2023-12-30",
-    },
-    {
-      "id": "LC23123011",
-      "MaterialCode": "NG23060212",
-      "Code": "1",
-      "MaterialName": "11鏈�29閫�璐т紬鑷�",
-      "Origin": "鏅洪暅",
-      "InventoryNumber": '榛戠偣',
-      "Thickness": '',
-      "MainUnit": "",
-      "RecordNum": "876",
-      "ProductNum": "0604000108",
-      "ProductName": "4mm楂樻�ц兘鐜繚闀�",
-      "Height": "930.00",
-      "Width": "550.00",
-      "status": "宸插鏍�",
-      "ZhiDanRen": "鏇叉収闇�",
-      "SafetyStock": "2023-12-30",
-      "Auditor": "鏇叉収闇�",
-      "AuditorDate": "2023-12-30",
-    },
-    {
-      "id": "LC23123011",
-      "MaterialCode": "NG23060212",
-      "Code": "1",
-      "MaterialName": "11鏈�29閫�璐т紬鑷�",
-      "Origin": "鏅洪暅",
-      "InventoryNumber": '榛戠偣',
-      "Thickness": '',
-      "MainUnit": "",
-      "RecordNum": "876",
-      "ProductNum": "0604000108",
-      "ProductName": "4mm楂樻�ц兘鐜繚闀�",
-      "Height": "930.00",
-      "Width": "550.00",
-      "status": "宸插鏍�",
-      "ZhiDanRen": "鏇叉収闇�",
-      "SafetyStock": "2023-12-30",
-      "Auditor": "鏇叉収闇�",
-      "AuditorDate": "2023-12-30",
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <el-row gutter="10" >
-      <el-col :span="2.5">
-        <div class="label-text">鍒跺崟鏃ユ湡鑼冨洿</div>
-      </el-col>
-      <el-col :span="4">
-        <el-date-picker
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            style="width: 200px;"
-        />
-      </el-col>
-      <el-col span="4">
-        <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-      </el-col>
-    </el-row>
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/TakeOutRecord.vue b/UI-Project/src/views/mm/mainProductStock/TakeOutRecord.vue
deleted file mode 100644
index 481f077..0000000
--- a/UI-Project/src/views/mm/mainProductStock/TakeOutRecord.vue
+++ /dev/null
@@ -1,223 +0,0 @@
-<!-- 棰嗗嚭璁板綍  -->
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'id', width:'150', title: '棰嗗嚭鍗曞彿', sortable: true,},
-    {field: 'MaterialCode', width: '150',title: '鍘熻鍗曞彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'Code', width: '150',title: '搴忓彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'MaterialName', width: '120',title: '鏂拌鍗曞彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'Origin', width: '100',title: '鏂板簭鍙�', sortable: true},
-    {field: 'InventoryNumber',width: '100', title: '棰嗗嚭绫诲瀷', sortable: true,showOverflow:"ellipsis"},
-    {field: 'Thickness', width: '80',title: '璋冨嚭鏁伴噺', sortable: true},
-    {field: 'MainUnit',width: '100', title: '浜у搧缂栧彿', sortable: true},
-    {field: 'ProductName',width: '100', title: '浜у搧鍚嶇О', sortable: true},
-    {field: 'Height', width: '100',title: '闀�', sortable: true},
-    {field: 'Width',width: '100', title: '瀹�', sortable: true},
-    {field: 'ZhiDanRen', width: '80',title: '鍒跺崟浜�', sortable: true},
-    {field: 'status', width: '80',title: '鍗曟嵁鐘舵��', sortable: true},
-    {field: 'SafetyStock', width: '100',title: '鍒跺崟鏃ユ湡', sortable: true},
-    {field: 'Auditor', width: '100',title: '瀹℃牳浜�', sortable: true},
-    {field: 'AuditorDate', width: '100',title: '瀹℃牳鏃ユ湡', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //   'name': '鏂板'
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "id": "LC23123011",
-      "MaterialCode": "NG23060212",
-      "Code": "1",
-      "MaterialName": "11鏈�29閫�璐т紬鑷�",
-      "Origin": "琛ュ崟",
-      "InventoryNumber": '閫�璐у簾寮�',
-      "Thickness": '876',
-      "MainUnit": "0604000108",
-      "ProductName": "4mm楂樻�ц兘鐜繚闀�",
-      "Height": "930.00",
-      "Width": "550.00",
-      "ZhiDanRen": "鏇叉収闇�",
-      "status": "宸插鏍�",
-      "SafetyStock": "2023-12-30",
-      "Auditor": "鏇叉収闇�",
-      "AuditorDate": "2023-12-30",
-    },
-    {
-      "id": "LC23123010",
-      "MaterialCode": "NG23060211",
-      "Code": "1",
-      "MaterialName": "11鏈�29閫�璐т紬鑷�",
-      "Origin": "琛ュ崟",
-      "InventoryNumber": '寮�浠嬮鍑�',
-      "Thickness": '584',
-      "MainUnit": "0604000107",
-      "ProductName": "5mm鐜哀鏍戣剛闀�",
-      "Height": "866.00",
-      "Width": "486.00",
-      "ZhiDanRen": "鏇叉収闇�",
-      "status": "宸插鏍�",
-      "SafetyStock": "2023-12-30",
-      "Auditor": "鏇叉収闇�",
-      "AuditorDate": "2023-12-30",
-    },
-    {
-      "id": "LC23123009",
-      "MaterialCode": "NG23060210",
-      "Code": "1",
-      "MaterialName": "11鏈�29閫�璐т紬鑷�",
-      "Origin": "琛ュ崟",
-      "InventoryNumber": '寮�浠嬮鍑�',
-      "Thickness": '584',
-      "MainUnit": "0604000106",
-      "ProductName": "5mm鐜哀鏍戣剛闀�",
-      "Height": "866.00",
-      "Width": "486.00",
-      "ZhiDanRen": "鏇叉収闇�",
-      "status": "宸插鏍�",
-      "SafetyStock": "2023-12-30",
-      "Auditor": "鏇叉収闇�",
-      "AuditorDate": "2023-12-30",
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <el-row gutter="10" >
-      <el-col :span="2.5">
-        <div class="label-text">鍒跺崟鏃ユ湡鑼冨洿</div>
-      </el-col>
-      <el-col :span="4">
-        <el-date-picker
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            style="width: 200px;"
-        />
-      </el-col>
-      <el-col span="4">
-        <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-      </el-col>
-    </el-row>
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainProductStock/TransferRecord.vue b/UI-Project/src/views/mm/mainProductStock/TransferRecord.vue
deleted file mode 100644
index 13f6584..0000000
--- a/UI-Project/src/views/mm/mainProductStock/TransferRecord.vue
+++ /dev/null
@@ -1,202 +0,0 @@
-<!-- 璋冩嫧璁板綍 -->
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'id', width:'150', title: 'ID', sortable: true,},
-    {field: 'MaterialCode', width: '150',title: '鍘熻鍗曞彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'MaterialName', width: '120',title: '鏂拌鍗曞彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'Origin', width: '100',title: '鏂板簭鍙�', sortable: true},
-    {field: 'InventoryNumber',width: '100', title: '搴撳瓨鏁�', sortable: true,showOverflow:"ellipsis"},
-    {field: 'Width', width: '80',title: '璋冪敤鏁伴噺', sortable: true},
-    {field: 'ZhiDanRen', width: '80',title: '鍒跺崟浜�', sortable: true},
-    {field: 'Height',width: '100', title: '浜у搧缂栧彿', sortable: true},
-    {field: 'Thickness', width: '100',title: '闀�', sortable: true},
-    {field: 'MainUnit',width: '100', title: '瀹�', sortable: true},
-    {field: 'SafetyStock', width: '100',title: '鍒跺崟鏃ユ湡', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //   'name': '鏂板'
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "id": "3765",
-      "MaterialCode": "NG23120709",
-      "MaterialName": "9",
-      "Origin": "NG23122010",
-      "InventoryNumber": "20",
-      "Width": '12.00',
-      "ZhiDanRen": '鍒樻檽鑹�',
-      "Height": "0601000437",
-      "Thickness": "1390.00",
-      "MainUnit": "760.00",
-      "SafetyStock": "2023-12-30",
-    },
-    {
-      "id": "3766",
-      "MaterialCode": "NG23120709",
-      "MaterialName": "9",
-      "Origin": "NG23122010",
-      "InventoryNumber": "20",
-      "Width": '12.00',
-      "ZhiDanRen": '鍒樻檽鑹�',
-      "Height": "0601000437",
-      "Thickness": "1390.00",
-      "MainUnit": "760.00",
-      "SafetyStock": "2023-12-30",
-    },{
-      "id": "3767",
-      "MaterialCode": "NG23120709",
-      "MaterialName": "9",
-      "Origin": "NG23122010",
-      "InventoryNumber": "20",
-      "Width": '12.00',
-      "ZhiDanRen": '鍒樻檽鑹�',
-      "Height": "0601000437",
-      "Thickness": "1390.00",
-      "MainUnit": "760.00",
-      "SafetyStock": "2023-12-30",
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <el-row gutter="10" >
-      <el-col :span="2.5">
-        <div class="label-text">鍒跺崟鏃ユ湡鑼冨洿</div>
-      </el-col>
-      <el-col :span="4">
-        <el-date-picker
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            style="width: 200px;"
-        />
-      </el-col>
-      <el-col span="4">
-        <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-      </el-col>
-    </el-row>
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainTrader/CreateTrader.vue b/UI-Project/src/views/mm/mainTrader/CreateTrader.vue
deleted file mode 100644
index 1d2c874..0000000
--- a/UI-Project/src/views/mm/mainTrader/CreateTrader.vue
+++ /dev/null
@@ -1,106 +0,0 @@
-<script lang="ts" setup>
-
-</script>
-<template>
-  <div class="center-box">
-    <el-card class="form-card">
-      <el-form  size="medium" >
-
-
-
-        <el-row gutter="5">
-          <el-col :span="4.5">
-            <el-input v-model="name" placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" style="width: 150px; height: 30px;" />
-          </el-col>
-
-          <el-col :span="4">
-            <el-dropdown>
-              <el-button type="primary">
-                缁撶畻鏂瑰紡<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
-              </el-button>
-              <template #dropdown>
-                <el-dropdown-menu>
-                  <el-dropdown-item>璐у埌浠樻</el-dropdown-item>
-                  <el-dropdown-item>娆惧埌鍙戣揣</el-dropdown-item>
-                  <el-dropdown-item>鏈堢粨浠樻</el-dropdown-item>
-                </el-dropdown-menu>
-              </template>
-            </el-dropdown>
-          </el-col>
-        </el-row>
-
-        <el-divider ></el-divider> <!-- 娣诲姞鍒嗛殧绾� -->
-
-
-        <el-row gutter="5">
-          <el-col :span="4.5">
-            <el-input v-model="name" placeholder="璇疯緭鍏ヨ仈绯讳汉" style="width: 150px; height: 30px;" />
-          </el-col>
-
-          <el-col :span="4.5">
-            <el-input v-model="name" placeholder="璇疯緭鍏ョ◣鐜�" style="width: 150px; height: 30px;" />
-          </el-col>
-        </el-row>
-
-        <el-divider ></el-divider> <!-- 娣诲姞鍒嗛殧绾� -->
-
-
-
-        <el-row gutter="5">
-          <el-col :span="4.5">
-            <el-input v-model="name" placeholder="璇疯緭鍏ユ崲绠楀崟浣�" style="width: 150px; height: 30px;" />
-          </el-col>
-
-          <el-col :span="4.5">
-            <el-input v-model="name" placeholder="璇疯緭鍏ョ瓑绾�" style="width: 150px; height: 30px;" />
-          </el-col>
-        </el-row>
-        <el-divider ></el-divider> <!-- 娣诲姞鍒嗛殧绾� -->
-
-
-
-
-        <el-row gutter="5">
-          <el-col :span="4.5">
-            <el-input v-model="name" placeholder="璇疯緭鍏ュ娉�" style="width: 150px; height: 30px;" />
-          </el-col>
-
-          <el-col :span="4.5">
-            <el-input v-model="name" placeholder="璇疯緭鍏ユ墍灞為泦鍥�" style="width: 150px; height: 30px;" />
-          </el-col>
-
-        </el-row>
-
-        <el-divider ></el-divider> <!-- 娣诲姞鍒嗛殧绾� -->
-
-
-        <el-row  gutter="10" justify="center" >
-          <el-col span="4.5">
-            <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-          </el-col>
-          <el-col span="4.5">
-            <el-button id="searchButton" type="primary" :icon="save">纭畾</el-button>
-          </el-col>
-        </el-row>
-      </el-form>
-    </el-card>
-  </div>
-</template>
-<style>
-.centered-box {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  height: 100vh;
-}
-
-.form-card {
-  width: 600px;
-  padding: 30px 30px;
-}
-.button-row {
-  display: flex;
-  justify-content: center;
-  margin-top: 20px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainTrader/SelectTrader.vue b/UI-Project/src/views/mm/mainTrader/SelectTrader.vue
deleted file mode 100644
index d1954be..0000000
--- a/UI-Project/src/views/mm/mainTrader/SelectTrader.vue
+++ /dev/null
@@ -1,219 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-import {VXETable} from "vxe-table";
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-
-  }
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
-    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
-    {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
-    {field: 'supplierCode', width:'150', title: '渚涘簲鍟嗙紪鍙�', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'supplierName', width: '150',title: '渚涘簲鍟嗗悕绉�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'agentProduct', width: '120',title: '浠g悊浜у搧', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'settlementMethod', width: '100',title: '缁撶畻鏂瑰紡', sortable: true},
-    {field: 'contactPerson',width: '100', title: '鑱旂郴浜�', sortable: true,showOverflow:"ellipsis"},
-    {field: 'taxRate', width: '80',title: '绋庣巼', sortable: true},
-    {field: 'companyAddress',width: '100', title: '鍏徃鍦板潃', sortable: true},
-    {field: 'receivingAddress', width: '100',title: '鏀惰揣鍦板潃', sortable: true},
-    {field: 'belongingGroup',width: '100', title: '鎵�灞為泦鍥�', sortable: true},
-    {field: 'grade', width: '80',title: '绛夌骇', sortable: true},
-    {field: 'documentStatus',width: '100', title: '鍗曟嵁鐘舵��', sortable: true},
-    {field: 'auditor', width: '100',title: '瀹℃牳鍛�', sortable: true},
-    {field: 'auditDate',width: '110', title: '瀹℃牳鏃ユ湡', sortable: true},
-    {field: 'conversionUnit',width: '100', title: '鎹㈢畻鍗曚綅', sortable: true},
-    {field: 'remark',width: '80', title: '澶囨敞', sortable: true},
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //   'name': '鏂板',
-    //    'code':'add'
-    // },],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "supplierCode": 216,
-      "supplierName": "瀹胯縼瀹d箣鏂囩數瀛愬晢鍔℃湁闄愬叕鍙�",
-      "agentProduct": "杈呮枡",
-      "settlementMethod": "璐у埌浠樻",
-      "contactPerson": "骞抽挗",
-      "taxRate": 13.00,
-      "companyAddress": "鍖椾含甯傝緰鍖轰笢鍩庡尯",
-      "receivingAddress": "鍖椾含甯傝緰鍖轰笢鍩庡尯",
-      "belongingGroup": "涓婃捣鍖楃幓",
-      "grade": "5",
-      "documentStatus": "鏈鏍�",
-      "auditor": "灏忓渤",
-      "auditDate": "2023-11-19",
-      "conversionUnit": "0",
-      "remark": "娴嬭瘯",
-    },
-    {
-      "supplierCode": 215,
-      "supplierName": "瀹胯縼瀹d箣鏂囩數瀛愬晢鍔℃湁闄愬叕鍙�",
-      "agentProduct": "杈呮枡",
-      "settlementMethod": "璐у埌浠樻",
-      "contactPerson": "灏忓渤",
-      "taxRate": 13.00,
-      "companyAddress": "鍖椾含甯傝緰鍖轰笢鍩庡尯",
-      "receivingAddress": "鍖椾含甯傝緰鍖轰笢鍩庡尯",
-      "belongingGroup": "涓婃捣鍖楃幓",
-      "grade": "5",
-      "documentStatus": "鏈鏍�",
-      "auditor": "灏忓渤",
-      "auditDate": "2023-11-19",
-      "conversionUnit": "0",
-      "remark": "娴嬭瘯",
-    },
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const  xGrid = ref();
-
-const gridEvents = {
-  toolbarButtonClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'add': {
-
-          router.push({path: '/main/trader/CreateTrader'})
-          /*if($grid.getCheckboxRecords().length==0){
-            VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }*/
-          return;
-        }
-
-      }
-    }
-  },
-  toolbarToolClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/mainTrader/Trader.vue b/UI-Project/src/views/mm/mainTrader/Trader.vue
deleted file mode 100644
index ceb3526..0000000
--- a/UI-Project/src/views/mm/mainTrader/Trader.vue
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--  渚涘簲鍟嗙鐞嗕富椤甸潰 -->
-
-
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/trader/SelectTrader' }">渚涘簲鍟嗗垪琛�</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/trader/CreateTrader' }">渚涘簲鍟嗘柊澧�</el-breadcrumb-item>
-        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
-<!--        <el-breadcrumb-item :to="{ path: '/main/trader/CreateTrader' }">鍒涘缓</el-breadcrumb-item>-->
-      </el-breadcrumb>
-
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-#select{
-  margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue b/UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue
index c95d058..62b26fb 100644
--- a/UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue
+++ b/UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue
@@ -1,121 +1,39 @@
 <template>
   <div class="common-layout">
     <el-container>
-      <el-header style="height: 30px">
-        <el-breadcrumb :separator-icon="ArrowRight">
-          <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''"
-                              :to="{path:'/main/purchaseOrder/SelectPurchaseOrder'}">鏌ヨ閲囪喘璁㈠崟
+      <!-- <el-header style="height: 30px"> -->
+
+        <!-- <el-breadcrumb :separator-icon="ArrowRight">
+          <el-breadcrumb-item>閲囪喘涓庣墿璧�</el-breadcrumb-item>
+          <el-breadcrumb-item> 閲囪喘閫�璐�
+
           </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''"
-                              :to="{path:'/main/purchaseOrder/CreatePurchaseOrder'}">鍒涘缓閲囪喘璁㈠崟
+          <el-breadcrumb-item :to="{path:'/main/purchaseReturn/SelectPurchaseReturn'}"> 鏌ヨ
+
           </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''"
-                              :to="{path:'/main/purchaseOrder/StoragePurchaseOrder'}">閲囪喘鍏ュ簱
+
+          <el-breadcrumb-item >
+
           </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''"
-                              :to="{path:'/main/purchaseOrder/ReturnPurchaseOrder'}">閲囪喘閫�璐�
-          </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''"
-                              :to="{path:'/main/purchaseOrder/PaymentPurchaseOrder'}">搴斾粯閲囪喘璁㈠崟
-          </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(6)" :class="indexFlag===6?'indexTag':''"
-                              :to="{path:'/main/purchaseOrder/CreateHeader'}">鍒涘缓澶存ā鎷�
-          </el-breadcrumb-item>
-          <el-breadcrumb-item style="display: none"></el-breadcrumb-item>
-        </el-breadcrumb>
-      </el-header>
-      <el-main style="padding: 0">
+        </el-breadcrumb> -->
+      <!-- </el-header> -->
+      <el-main style="padding: 0;width: 99%;height: 100%;">
         <router-view/>
       </el-main>
-      <!--     <el-footer>Footer</el-footer>-->
+      <!--      <el-footer>Footer</el-footer>-->
     </el-container>
-
-
   </div>
-
 </template>
 
 
 <script setup>
-import {nextTick, ref} from 'vue'
-import {ArrowRight, Search} from "@element-plus/icons-vue";
-import {ElMessage, ElMessageBox} from "element-plus";
 
-let indexFlag = $ref(1)
+import {ArrowRight} from "@element-plus/icons-vue";
 
-function changeRouter(index) {
-  indexFlag = index
-}
-
-/*
-
-//鎻愮ず淇℃伅
-//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
-const MessageShow = (content, type = 'success') =>{
-  ElMessage({
-    message: content,
-    type: type,
-    showClose: true,
-  })
-}
-
-//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
-const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
-  ElMessageBox.confirm(
-      content,
-      title,
-      {
-        cancelButtonText: '鍙栨秷',
-        confirmButtonText: '纭畾',
-        type: type,
-        center: true,
-      }
-  )
-      //鐐瑰嚮浜嗙‘瀹�
-      .then(() => {
-        switch (czType) {
-          case '纭畾':
-            //澶氶�夐��璐ч�昏緫浠g爜TODO
-            MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
-            break;
-          case '閫�璐�':
-            //鍗曢��璐ч�昏緫浠g爜TODO
-            MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
-            break;
-          default:
-            MessageShow('鏈煡鎿嶄綔锛�', 'error');
-            break;
-        }
-
-        return true;
-      })
-      //鐐瑰嚮浜嗗彇娑�
-      .catch(() => {
-        return false;
-      })
-}
-
-//寮圭獥淇℃伅
-const MessageAlertShow = (content, title, type = 'info') => {
-
-  ElMessageBox.alert(content, title, {
-    // 绂佹鑷姩瀵圭劍
-    //autofocus: false,
-    confirmButtonText: 'OK',
-    /!*callback: (action: Action) => {
-      MessageShow(`action: ${action}`,type)
-    },*!/
-  })
-}
-
-*/
 
 </script>
 
 
 <style scoped>
-:deep(.indexTag .el-breadcrumb__inner) {
-  color: #5CADFE !important;
-  font-weight: 900;
-}
+
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/Select.vue b/UI-Project/src/views/mm/purchaseOrder/Select.vue
index 29b29e8..4b42baf 100644
--- a/UI-Project/src/views/mm/purchaseOrder/Select.vue
+++ b/UI-Project/src/views/mm/purchaseOrder/Select.vue
@@ -1,257 +1,753 @@
-<template>
-  <el-container>
-    <el-header class="m-header" style="height: auto">
-      <el-row :gutter="10" style="margin-bottom: 5px">
-        <el-col :span="7">
-          <el-date-picker
-              v-model="datevalue"
-              type="daterange"
-              unlink-panels
-              range-separator="鍒�"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              :shortcuts="shortcuts"
-              :size="size"
-              format="YYYY/MM/DD"
-              value-format="YYYY-MM-DD"
-          />
-
-        </el-col>
-
-        <el-col :span="2">
-          <el-button
-              id="select"
-              type="primary"
-              :icon="Search"
-              @click="BtnSearchPurchaseOrder">鏌ヨ
-          </el-button>
-        </el-col>
-      </el-row>
-    </el-header>
-
-    <el-main style="padding-top: 5px;height:100%">
-      <vxe-grid
-          max-height="600"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          v-on="gridEvents"
-          @cell-dblclick="cellClickEvent"
-      >
-
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row }">
-          <ul class="expand-wrapper">
-            <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
-              <span style="font-weight: bold">{{item.title+':  '}}</span>
-              <span>{{ row[item.field] }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
-        </template>
-
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-
-      <!--      璇︽儏妗� 閮ㄥ垎1-->
-      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
-                 resize>
-        <el-container>
-          <el-header height="35px"
-                     style="margin: 0;padding: 0">
-
-            <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
-              <template #prepend>閲囪喘鍗曞彿锛�</template>
-            </el-input>
-          </el-header>
-          <el-main>
-            <template #default>
-              <vxe-table
-                  border="inner"
-                  auto-resize
-                  show-overflow
-                  max-height="400"
-                  :row-config="{isHover: true}"
-                  :show-header="false"
-                  :sync-resize="showDetails"
-                  :data="detailData">
-                <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
-                <vxe-column field="value"></vxe-column>
-              </vxe-table>
-            </template>
-          </el-main>
-          <el-footer height="40px">
-            <el-row>
-              <el-col :offset="20" :span="4">
-                <el-button
-                    id="Sure"
-                    type="primary"
-                    @click="logicExecute('缂栬緫')"
-                >缂栬緫
-                </el-button>
-              </el-col>
-
-            </el-row>
-          </el-footer>
-        </el-container>
-      </vxe-modal>
-      <!--      璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
-
-
-    </el-main>
-  </el-container>
-</template>
-
-
 <script setup>
-import {ref} from "vue";
-import {reactive} from "vue";
-import {useRouter} from 'vue-router'
 import {Search} from "@element-plus/icons-vue";
-import dayjs from "dayjs";
-import {ElMessage} from "element-plus";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
 
-
-
-let router = useRouter()
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
-      break
-    }
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(false)
+const box = ref(true)
+const boxa = ref(false)
+const boxb = ref(false)
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    type: '寰呰瘑鍒�',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
   }
-}
-
-const xGrid = ref()
-const gridEvents = {
-  toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'Add': {//鏂板
-          router.push({path: '/main/purchaseOrder/CreatePurchaseOrder'})
-          break
-        }
-        case 'AddNo': {//鏃犲崟鏂板
-
-          MessageShow('鐐瑰嚮浜嗘棤鍗曟柊澧�', 'success');
-          break
-        }
-
-      }
-    }
+]
+const tableDataa = [
+  {
+    ida: '3',
+    longa: '1005',
+    widea: '183.6',
+    thicka: '1991',
   },
-  toolbarToolClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
+  {
+    ida: '4',
+    longa: '105',
+    widea: '183',
+    thicka: '191',
+  }
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
     }
-  },
-}
-
-const BtnSearchPurchaseOrder = () => {
-  for (let i = 1; i < 6; i++) {
-    const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
-    const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
-    const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
-    const t = i % 2 === 0 ? 5 : 6;
-    const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '寰呭鏍�' : i % 5 === 0 ? '宸查噰璐�' : '閫�搴�';
-    const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
-    const wlNo = 'NGWL1000' + randomInt;
-    const xh = 'NGXH' + randomSumInt;
-    const wlmc = 'WLMC' + randomInt;
-    const gys = '渚涘簲鍟�' + randomSumInt;
-    const xhdh = 'NG231200' + randomOrderInt;
-    const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
-    const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
-    const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
-    now.setDate(now.getDate() + 1);
-    gridOptions.data.push({
-      cgdh: CGNo,
-      h: t,
-      xh: xh,
-      wlbh: wlNo,
-      wlmc: wlmc,
-      gys: gys,
-      w: w,
-      g: h,
-      dw: dw,
-      cgzt: s,
-      rq: dayjs(now).format('YYYY-MM-DD'),
-      yl: randomSumInt,
-      sl: randomOrderInt,
-      xsdh: xhdh,
-      je: randomInt,
-      6: '139xxxxxxxx',
-
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
     })
-  }
-
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
 }
-
-
-//椤甸潰閫昏緫浠g爜鎵ц
-function logicExecute(type) {
-  const $grid = xGrid.value
+const getTableRow = (row,type) =>{
   switch (type) {
-    case '缂栬緫':
-      //MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
-      //缂栬緫閫昏緫浠g爜TODO
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder'})
-      break;
-    case '閫�璐�':
-      //鍗曢��璐ч�昏緫浠g爜TODO
-      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
-      break;
-    default:
-      MessageShow('鏈煡鎿嶄綔锛�', 'error');
-      break;
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
   }
-  return true;
 }
 
 
-//缁勪欢鎺ユ敹鍙傛暟
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒囨崲鐗堝浘?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const selectedRows = ref([]);
+const handleSelectionChange = (selection) => {
+  selectedRows.value = selection;
+};
+const showMessage = () => {
+  if (selectedRows.value.length === 0) {
+    ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+  } else{
+    ElMessage({
+    message: '閲嶆柊璇嗗埆鎴愬姛锛�',
+    type: 'success',
+  })
+
+  }
+};
+const pick = () => {
+  if (selectedRows.value.length === 0) {
+    ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+  } else{
+    ElMessage({
+    message: '浜哄伐鍖归厤鎴愬姛锛�',
+    type: 'success',
+  })
+
+  }
+};
+const remove = () => {
+  if (selectedRows.value.length === 0) {
+    ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+  } else{
+    ElMessage({
+    message: '鎿嶄綔鎴愬姛锛�',
+    type: 'success',
+  })
+
+  }
+};
+
 const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
   align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
   showFooter: true,//鏄剧ず鑴�
   printConfig: {},
   importConfig: {},
   exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
   columnConfig: {
     resizable: true,
     useKey: true
@@ -267,296 +763,155 @@
     mode: 'row',
     showStatus: true
   },
-  columns: [
-    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
-    {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
-    /* {type: 'checkbox',fixed:"left", title: '', width: 50 },*/
-    {type: 'seq', fixed: "left", title: ' ', width: 50},
-
-
+  data:  [
     {
-      field: 'cgdh',
-      width: '10%',
-      title: '閲囪喘鍗曞彿',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {
-      field: 'gys',
-      width: '10%',
-      title: '渚涘簲鍟�',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {
-      field: 'wlbh',
-      width: '10%',
-      title: '鐗╂枡缂栧彿',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {
-      field: 'wlmc',
-      width: '10%',
-      title: '鐗╂枡鍚嶇О',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {
-      field: '6',
-      width: '12%',
-      title: '涓嶅惈绋庡崟浠�',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {
-      field: 'sl',
-      width: '12%',
-      title: '宸查噰璐暟閲�',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {
-      field: 'je',
-      width: '12%',
-      title: '涓嶅惈绋庨噾棰�',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {
-      field: 'cgzt',
-      width: '10%',
-      title: '鍗曟嵁鐘舵��',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {
-      field: 'xsdh',
-      width: '10%',
-      title: '閿�鍞崟鍙�',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {
-      field: 'rq',
-      width: '10%',
-      title: '鍒跺崟鏃ユ湡',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {
-      field: '6',
-      width: '10%',
-      title: '閲囪喘閮ㄩ棬',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {
-      field: '6',
-      width: '10%',
-      title: '閲囪喘缁勭粐',
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      sortable: true
-    },
-    {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
-  ],//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: [/*{type:'text'},
-      {
-      'name': '鍒涘缓璁㈠崟',
-
-      'code':'Add',
-    },
-
-      {
-        'name': '鏃犲崟鏂板',
-
-        'code':'AddNo'
-      }*/
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true,
-    style: 'paddling-left:10px'
-  },//琛ㄥご鎸夐挳
-  data: [],//table body瀹為檯鏁版嵁
-  mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 4}
-  ],//鍚堝苟鑴�
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        /* if (props.tableProp.footList.includes(column.field)) {
-           return sumNum(data, column.field)
-         }*/
-        return ''
-      })
-    ]
-  },
-
-})
-
-//璇︽儏妗� 閮ㄥ垎2
-const showCGDH = ref();
-const showDetails = ref(false);
-let detailData = [];
-const cellClickEvent = ({row}) => {
-  if(isQueryColumnId===false){
-    queryColumnId();
-  }
-
-  detailData = list.map(field => {
-    return {label: queryColumnsTitle(field), value: row[field]}
-  })
-
-  showDetails.value = true;
-  showCGDH.value = row['cgdh'];
-}
-
-//鑾峰彇琛ㄥ垪
-let list = [];
-let columnIndex = 3;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
-let isQueryColumnId = false;
-const queryColumnId = () => {
-  while (columnIndex < gridOptions.columns.length) {
-    list.push(gridOptions.columns[columnIndex].field);
-    columnIndex++;
-  }
-  isQueryColumnId = true;
-  return list;
-}
-
-//鑾峰彇琛ㄥ垪鍚�
-function queryColumnsTitle(cn) {
-  let i = 0;
-  while (i < gridOptions.columns.length + 1) {
-    if (gridOptions.columns[i].field === cn) {
-      return gridOptions.columns[i].title;
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
     }
-    i++;
-  }
-}
-//璇︽儏妗� 閮ㄥ垎2 缁撴潫
-
-
-const now = new Date()
-
-//鏃堕棿蹇嵎閫夋嫨
-const datevalue = ref('')
-const shortcuts = [
-  {
-    text: '杩戜竴鍛�',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
-      return [start, end]
-    },
-  },
-  {
-    text: '杩戜竴涓湀',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
-      return [start, end]
-    },
-  },
-  {
-    text: '杩戜笁涓湀',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
-      return [start, end]
-    },
-  },
-]
-
-
-//鎻愮ず淇℃伅
-//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
-const MessageShow = (content, type = 'success') => {
-  ElMessage({
-    message: content,
-    type: type,
-    showClose: true,
-  })
-}
-
-//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
-const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
-  ElMessageBox.confirm(
-      content,
-      title,
-      {
-        cancelButtonText: '鍙栨秷',
-        confirmButtonText: '纭畾',
-        type: type,
-        center: true,
-      }
-  )
-      //鐐瑰嚮浜嗙‘瀹�
-      .then(() => {
-
-        logicExecute(czType);
-
-        return true;
-      })
-      //鐐瑰嚮浜嗗彇娑�
-      .catch(() => {
-        return false;
-      })
-}
-
-//寮圭獥淇℃伅
-const MessageAlertShow = (content, title, type = 'info') => {
-
-  ElMessageBox.alert(content, title, {
-    // 绂佹鑷姩瀵圭劍
-    //autofocus: false,
-    confirmButtonText: 'OK',
-    /*callback: (action: Action) => {
-      MessageShow(`action: ${action}`,type)
-    },*/
-  })
-}
-
+  ],
+})
 </script>
 
+<template>
+  <div>
+     <el-button style="margin-top: 5px;margin-left: 5px;"   id="searchButton" type="primary" @click="showMessage">閲嶆柊璇嗗埆</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" type="primary" @click="pick">浜哄伐鍖归厤</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" type="primary" @click="remove">浜哄伐鎷胯蛋</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" type="primary" >鐮存崯</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" @click="boxb = true;box = false" >鍚堝苟</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" @click="box = true;boxb = false" >鍗曠墖</el-button>
+    <el-button style="margin-top: 5px;float: right;margin-right: 50px;"  id="searchButton" type="text"  @click="dialogForm">鐗堝浘鍙�</el-button>
+
+    <div v-if="box">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column type="selection" width="55"  />
+          <el-table-column prop="id" align="center" label="id" min-width="80" />
+          <el-table-column prop="long" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="type" align="center" label="鐘舵��" min-width="120" />
+          <el-table-column prop="thick" align="center" label="鍏朵粬" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <!-- <el-button size="mini" type="text" plain  @click="dialogFormVisible = true">璇︽儏</el-button> -->
+              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">璁剧疆</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+    <div v-if="boxb">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column type="selection" width="55"  />
+          <el-table-column prop="id" align="center" label="绫诲瀷搴忓彿" min-width="80" />
+          <el-table-column prop="long" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="typea" align="center" label="鏁伴噺" min-width="120" />
+          <el-table-column prop="thick" align="center" label="鍏朵粬" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <!-- <el-button size="mini" type="text" plain  @click="dialogFormVisible = true">璇︽儏</el-button> -->
+              <el-button size="mini" type="text" plain  @click="dialogFormVisiblea = true">璁剧疆</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+    <!-- <div v-if="boxa">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column type="selection" width="55"  />
+          <el-table-column prop="ida" align="center" label="id" min-width="80" />
+          <el-table-column prop="longa" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="widea" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="thicka" align="center" label="鍏朵粬" min-width="120" />
+        </el-table>
+      </div>
+    </el-card>
+  </div> -->
+  </div>
+  <!-- <el-dialog v-model="dialogFormVisible" top="21vh" width="30%" title="灏忕墖鍥�" >
+      
+        <div id="message">
+          200*100
+        </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button @click="dialogFormVisible = false">鍏抽棴</el-button>
+      </div>
+    </template>
+  </el-dialog> -->
+  <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="娴嬮噺璁剧疆" >
+            <el-form  size="mini" label-width="150px">
+      <el-form style="margin-left: 80px;">
+        
+        <el-form-item label="璇樊闀匡細" :required="true" style="width: 16vw;margin-bottom: 30px;">
+            <div style="display: flex;"><el-input  autocomplete="off" /><div style="margin-left: 10px;">mm</div> </div>
+              </el-form-item>
+              <el-form-item label="璇樊瀹斤細" :required="true" style="width: 16vw">
+            <div style="display: flex;"><el-input  autocomplete="off" /><div style="margin-left: 10px;">mm</div> </div>
+              </el-form-item>
+        </el-form>
+            </el-form>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="dialogFormVisiblea = false">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <div id="awatch">灏忕墖鍥撅細
+<div id="watch">200*100</div>
+</div>
+</template>
 
 <style scoped>
-:deep(.v-column-label div span) {
-  font-weight: bold;
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  display: flex;
+  margin-top: 20px;
+  font-size: 20px;
+  margin-left: 50px;
+}
+#watch{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 300px;
+   height: 150px;
+   background-color: #337ecc;
+   margin-left: 2%;
+   margin-top: 10px;
 }
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseReturn/PurchaseReturn.vue b/UI-Project/src/views/mm/purchaseReturn/PurchaseReturn.vue
deleted file mode 100644
index 5d65801..0000000
--- a/UI-Project/src/views/mm/purchaseReturn/PurchaseReturn.vue
+++ /dev/null
@@ -1,39 +0,0 @@
-<template>
-  <div class="common-layout">
-    <el-container>
-      <el-header style="height: 30px">
-
-        <el-breadcrumb :separator-icon="ArrowRight">
-          <el-breadcrumb-item>閲囪喘涓庣墿璧�</el-breadcrumb-item>
-          <el-breadcrumb-item> 閲囪喘閫�璐�
-
-          </el-breadcrumb-item>
-          <el-breadcrumb-item :to="{path:'/main/purchaseReturn/SelectPurchaseReturn'}"> 鏌ヨ
-
-          </el-breadcrumb-item>
-
-          <el-breadcrumb-item >
-
-          </el-breadcrumb-item>
-        </el-breadcrumb>
-      </el-header>
-      <el-main style="padding: 0;width: 99%;height: 100%;">
-        <router-view/>
-      </el-main>
-      <!--      <el-footer>Footer</el-footer>-->
-    </el-container>
-  </div>
-</template>
-
-
-<script setup>
-
-import {ArrowRight} from "@element-plus/icons-vue";
-
-
-</script>
-
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseReturn/Select.vue b/UI-Project/src/views/mm/purchaseReturn/Select.vue
deleted file mode 100644
index e4fb018..0000000
--- a/UI-Project/src/views/mm/purchaseReturn/Select.vue
+++ /dev/null
@@ -1,255 +0,0 @@
-<template>
-  <el-container>
-    <el-header class="m-header" style="height: auto">
-      <el-row :gutter="10" style="margin-bottom: 5px">
-
-        <el-col :span="7">
-          <el-date-picker
-              v-model="datevalue"
-              type="daterange"
-              unlink-panels
-              range-separator="鍒�"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              :shortcuts="shortcuts"
-              :size="size"
-              format="YYYY/MM/DD"
-              value-format="YYYY-MM-DD"
-          />
-
-        </el-col>
-
-        <el-col :span="2">
-          <el-button
-              id="select"
-              type="primary"
-              :icon="Search"
-              @click="autoAddRow">鏌ヨ
-          </el-button>
-        </el-col>
-      </el-row>
-
-    </el-header>
-    <el-main style="padding-top: 5px">
-      <div @scroll="handleTableScroll">
-
-        <el-table :data="tableData" empty-text="鏆傛棤鏁版嵁" style="width: 100%" max-height="550px" border
-                  show-summary
-                  sum-text=" ">
-          <el-table-column fixed="left" prop="rIndex" label="" width="50" align="center"></el-table-column>
-
-          <el-table-column fixed="left" label="鎿嶄綔" width="120">
-            <template #default="scope">
-              <el-button
-                  link
-                  type="primary"
-                  size="small"
-                  @click.prevent="deleteRow(scope.$index)"
-              >
-                缂栬緫
-              </el-button>
-              <el-button
-                  link
-                  type="primary"
-                  size="small"
-                  @click.prevent="deleteRow(scope.$index)"
-              >
-                鍒犻櫎
-              </el-button>
-            </template>
-          </el-table-column>
-
-
-          <el-table-column prop="ordernumber" label="閲囪喘鍗曞彿" width="150"/>
-          <el-table-column prop="name" label="渚涘簲鍟�" width="120"/>
-          <el-table-column prop="strockNumber" label="鐗╂枡缂栧彿" width="200"/>
-          <el-table-column prop="city" label="鐗╂枡鍚嶇О" width="120"/>
-          <el-table-column prop="width" sortable label="瀹藉害" width="120"/>
-          <el-table-column prop="height" sortable label="楂樺害" width="120"/>
-          <el-table-column prop="thick" sortable label="鍘氬害" width="120"/>
-          <el-table-column prop="zip" label="鍨嬪彿" width="120"/>
-          <el-table-column prop="number" label="鍗曚綅" width="120"/>
-          <el-table-column prop="number" sortable label="涓嶅惈绋庡崟浠�" width="120"/>
-          <el-table-column prop="number" label="鏁伴噺" width="120" show-summary="ture"/>
-          <el-table-column prop="number" label="宸查噰璐暟閲�" width="120"/>
-          <el-table-column prop="zip" sortable label="閲戦" width="120"/>
-          <el-table-column prop="zip" label="涓嶅惈绋庨噾棰�" width="120"/>
-          <el-table-column prop="date" label="绋庣巼" width="120"/>
-          <el-table-column prop="date" label="搴撳瓨" width="120"/>
-          <el-table-column prop="zip" label="鍛ㄧ敤閲�" width="120"/>
-          <el-table-column prop="zip" label="鏈堢敤閲�" width="120"/>
-          <el-table-column prop="state" label="鍗曟嵁鐘舵��" width="120"/>
-          <el-table-column prop="ordernumber" label="閿�鍞崟鍙�" width="200"/>
-          <el-table-column prop="date" label="鍒跺崟鏃ユ湡" width="120"/>
-          <el-table-column prop="zip" label="鍒跺崟浜�" width="120"/>
-          <el-table-column prop="zip" label="閲囪喘閮ㄩ棬" width="120"/>
-          <el-table-column prop="zip" label="閲囪喘缁勭粐" width="120"/>
-          <el-table-column prop="zip" label="澶囨敞" width="200"/>
-
-
-        </el-table>
-
-
-      </div>
-    </el-main>
-  </el-container>
-</template>
-
-
-<script setup>
-
-import {nextTick, ref} from 'vue'
-import {Search} from "@element-plus/icons-vue";
-
-const s_wuliaomingcheng = ref('')
-const s_buyOrderNumber = ref('')
-const s_width = ref('')
-const s_height = ref('')
-const s_thick = ref('')
-
-
-const options = [
-  {
-    value: '0',
-    label: '鍏ㄩ儴'
-  },
-  {
-    value: '1',
-    label: '鍘熺墖'
-  },
-  {
-    value: '2',
-    label: '鍖栧鍝�'
-  },
-  {
-    value: '3',
-    label: '宸ュ叿'
-  },
-  {
-    value: '4',
-    label: '鏈ㄧ'
-  },
-  {
-    value: '5',
-    label: '鐧界幓'
-  },
-]
-
-const buyerOptions = [
-  {
-    value: '0',
-    label: '鍏ㄩ儴'
-  },
-  {
-    value: '1',
-    label: '閲囪喘鐢�'
-  },
-  {
-    value: '2',
-    label: '閲囪喘涔�'
-  },
-]
-
-const stateOptions = [
-  {
-    value: '0',
-    label: '寰呭鏍�'
-  },
-  {
-    value: '1',
-    label: '寰呴噰璐�'
-  },
-  {
-    value: '2',
-    label: '宸查噰璐�'
-  },
-]
-
-import dayjs from 'dayjs'
-import 'dayjs/locale/zh-cn'
-
-const now = new Date()
-
-const tableData = ref([])
-
-const autoAddRow = () => {
-  for (let i = 0; i < 10; i++) {
-    now.setDate(now.getDate() + 1)
-    const randomInt = Math.floor(Math.random() * 999) + 1000;
-    const randomOrderInt = Math.floor(Math.random() * 99) + 100;
-    const randomSumInt = Math.floor(Math.random() * 99) + 10;
-    var t = i % 2 === 0 ? 5 : 6;
-    var s = i % 3 === 0 ? '' : i % 4 === 0 ? '宸查噰璐�' : '寰呭鏍�';
-    var oNo = 'NGNO100000' + randomOrderInt;//璁㈠崟缂栧彿
-    var wlNo = 'NGWL100000' + randomInt
-    tableData.value.push({
-
-      date: dayjs(now).format('YYYY-MM-DD'),
-      name: '渚涘簲鍟�' + randomSumInt,
-      state: s,
-      city: 'Los Angeles',
-      address: 'No. 189, Grove St, Los Angeles',
-      zip: 'CA 90036',
-      number: randomInt,
-      width: '3660',
-      height: '2440',
-      rIndex: tableData.value.length + 1,
-      ordernumber: oNo,
-      strockNumber: wlNo,
-      thick: t
-    })
-  }
-}
-
-const datevalue = ref('')
-
-const shortcuts = [
-  {
-    text: '杩戜竴鍛�',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
-      return [start, end]
-    },
-  },
-  {
-    text: '杩戜竴涓湀',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
-      return [start, end]
-    },
-  },
-  {
-    text: '杩戜笁涓湀',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
-      return [start, end]
-    },
-  },
-]
-
-</script>
-
-
-<style scoped>
-.el-row {
-  margin-bottom: 20px;
-}
-
-.el-row:last-child {
-  margin-bottom: 0;
-}
-
-.el-col {
-  border-radius: 4px;
-}
-
-.m-header {
-  height: 32px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseStorage/PurchaseStorage.vue b/UI-Project/src/views/mm/purchaseStorage/PurchaseStorage.vue
deleted file mode 100644
index bdd9f2f..0000000
--- a/UI-Project/src/views/mm/purchaseStorage/PurchaseStorage.vue
+++ /dev/null
@@ -1,36 +0,0 @@
-<template>
-  <div class="common-layout">
-    <el-container >
-      <el-header style="height: 30px">
-
-        <el-breadcrumb :separator-icon="ArrowRight">
-          <el-breadcrumb-item>閲囪喘涓庣墿璧�</el-breadcrumb-item>
-          <el-breadcrumb-item>閲囪喘鍏ュ簱
-
-          </el-breadcrumb-item>
-          <el-breadcrumb-item :to="{path:'/main/purchaseStorage/SelectPurchaseStorage'}">鏌ヨ
-
-          </el-breadcrumb-item>
-          <el-breadcrumb-item></el-breadcrumb-item>
-        </el-breadcrumb>
-      </el-header>
-      <el-main style="padding: 0">
-        <router-view/>
-      </el-main>
-
-      <!--      <el-footer>Footer</el-footer>-->
-    </el-container>
-  </div>
-</template>
-
-
-<script setup>
-import {useRouter} from "vue-router";
-
-const router = useRouter();
-import {ArrowRight} from "@element-plus/icons-vue";
-</script>
-
-
-<style scoped>
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseStorage/Select.vue b/UI-Project/src/views/mm/purchaseStorage/Select.vue
deleted file mode 100644
index ed8e9aa..0000000
--- a/UI-Project/src/views/mm/purchaseStorage/Select.vue
+++ /dev/null
@@ -1,276 +0,0 @@
-<template>
-  <el-container>
-    <el-header class="m-header" style="height: auto">
-      <!-- -->
-      <el-row :gutter="10" style="margin-bottom: 5px">
-
-        <el-col :span="7">
-          <el-date-picker
-              v-model="datevalue"
-              type="daterange"
-              unlink-panels
-              range-separator="鍒�"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              :shortcuts="shortcuts"
-              :size="size"
-              format="YYYY/MM/DD"
-              value-format="YYYY-MM-DD"
-          />
-
-        </el-col>
-        <el-col :span="3">
-          <el-button
-              id="select"
-              type="primary"
-              :icon="Search"
-              @click="autoAddRow">鏌ヨ
-          </el-button>
-        </el-col>
-      </el-row>
-
-    </el-header>
-    <el-main style="padding-top: 5px">
-      <el-table :data="tableData" empty-text="鏆傛棤鏁版嵁" style="width: 100%" max-height="550px"  border show-summary
-                sum-text=" ">
-        <el-table-column fixed="left" prop="rIndex" label="" width="50" align="center"></el-table-column>
-
-        <el-table-column fixed="left" label="鎿嶄綔" width="120">
-          <template #default="scope">
-            <el-button
-                link
-                type="primary"
-                size="small"
-                @click.prevent="deleteRow(scope.$index)"
-            >
-              缂栬緫
-            </el-button>
-            <el-button
-                link
-                type="primary"
-                size="small"
-                @click.prevent="deleteRow(scope.$index)"
-            >
-              鍒犻櫎
-            </el-button>
-          </template>
-        </el-table-column>
-
-
-        <el-table-column prop="stockItem" label="搴撳瓨缁勭粐" width="150"/>
-        <el-table-column prop="wuliaoCode" label="鐗╂枡缂栧彿" width="220"/>
-        <el-table-column prop="rukuCode" label="鍏ュ簱鍗曞彿" width="120"/>
-        <el-table-column prop="storageType" label="鍏ュ簱绫诲瀷" width="120"/>
-        <el-table-column prop="buyerCode" label="閲囪喘鍗曞彿" width="150"/>
-        <el-table-column prop="wuliaoName" label="鐗╂枡鍚嶇О" width="120"/>
-        <el-table-column prop="state" label="鍗曟嵁鐘舵��" width="120"/>
-        <el-table-column prop="shname" label="瀹℃牳鍛�" width="120"/>
-        <el-table-column prop="date" sortable label="瀹℃牳鏃ユ湡" width="120"/>
-        <el-table-column prop="date" sortable label="鍏ュ簱鏃ユ湡" width="120"/>
-        <el-table-column prop="buyerName" label="閲囪喘鍛�" width="120"/>
-        <el-table-column prop="cgName" sortable label="浠撶鍛�" width="120"/>
-        <el-table-column prop="zip" label="鍒跺崟浜�" width="120"/>
-        <el-table-column prop="address" label="浜у湴" width="120"/>
-        <el-table-column prop="number" sortable label="瀹藉害" width="120"/>
-        <el-table-column prop="number" sortable label="鍘氬害" width="120"/>
-        <el-table-column prop="kcCode" label="搴撳瓨缂栧彿" width="150"/>
-        <el-table-column prop="number" sortable label="绠辨暟" width="120"/>
-        <el-table-column prop="number" sortable label="鍗曠鐗囨暟" width="200"/>
-        <el-table-column prop="oneArea" sortable label="鍗曠墖闈㈢Н" width="120"/>
-        <el-table-column prop="number" sortable label="鎬婚潰绉�" width="120"/>
-        <el-table-column prop="number" sortable label="鎬绘暟閲�" width="120"/>
-        <el-table-column prop="number" sortable label="鎬婚噾棰�" width="120"/>
-        <el-table-column prop="date" sortable label="鐢熶骇鏃ユ湡" width="120"/>
-        <el-table-column prop="zip" label="搴撳尯" width="120"/>
-        <el-table-column prop="zip" label="澶囨敞" width="200"/>
-
-
-      </el-table>
-    </el-main>
-  </el-container>
-</template>
-
-<script setup>
-
-import {ref} from 'vue'
-import {ArrowRight, Search} from "@element-plus/icons-vue";
-
-
-const s_wuliaomingcheng = ref('')
-const s_buyOrderNumber = ref('')
-const s_width = ref('')
-const s_height = ref('')
-const s_thick = ref('')
-
-
-const options = [
-  {
-    value: '0',
-    label: '鍏ㄩ儴'
-  },
-  {
-    value: '1',
-    label: '鍘熺墖'
-  },
-  {
-    value: '2',
-    label: '鍖栧鍝�'
-  },
-  {
-    value: '3',
-    label: '宸ュ叿'
-  },
-  {
-    value: '4',
-    label: '鏈ㄧ'
-  },
-  {
-    value: '5',
-    label: '鐧界幓'
-  },
-]
-
-const buyerOptions = [
-  {
-    value: '0',
-    label: '鍏ㄩ儴'
-  },
-  {
-    value: '1',
-    label: '閲囪喘鐢�'
-  },
-  {
-    value: '2',
-    label: '閲囪喘涔�'
-  },
-]
-
-const stateOptions = [
-  {
-    value: '0',
-    label: '寰呭鏍�'
-  },
-  {
-    value: '1',
-    label: '寰呴噰璐�'
-  },
-  {
-    value: '2',
-    label: '宸查噰璐�'
-  },
-]
-
-const stockItemOptions = [
-  {
-    value: 0,
-    label: '浜哄伐搴�'
-  }, {
-    value: 1,
-    label: '璁″垝搴�'
-  }, {
-    value: 2,
-    label: '鑷姩鍖栧簱'
-  }, {
-    value: 3,
-    label: '浣欑墖搴�'
-  }, {
-    value: 4,
-    label: '娈嬬墖搴�'
-  }, {
-    value: 5,
-    label: '杈呮枡搴�'
-  },
-]
-import dayjs from 'dayjs'
-import 'dayjs/locale/zh-cn'
-
-const now = new Date()
-
-const tableData = ref([])
-
-const autoAddRow = () => {
-  for (let i = 0; i < 10; i++) {
-    now.setDate(now.getDate() + 1)
-    const randomWLInt = Math.floor(Math.random() * 99999) + 100000;
-    const randomInt = Math.floor(Math.random() * 999) + 1000;
-    const randomSumInt = Math.floor(Math.random() * 99) + 10;
-    const randomErInt = Math.floor(Math.random() * 9);
-    const randomErInt2 = Math.floor(Math.random() * 9);
-    const randomErInt3 = Math.floor(Math.random() * 9);
-    const t = i % 3 === 0 ? 5 : i % 4 === 0 ? 6 : i % 5 === 0 ? 8 : i % 7 === 0 ? 10 : 12;
-    const sItem = i % 3 === 0 ? '璁″垝搴�' : i % 4 === 0 ? '浜哄伐搴�' : i % 5 === 0 ? '鑷姩鍖栧簱' : i % 7 === 0 ? '浣欑墖搴�' : '杈呮枡搴�';
-    tableData.value.push({
-      date: dayjs(now).format('YYYY-MM-DD'),
-      name: '渚涘簲鍟�' + randomSumInt,
-      state: '鏈鏍�',
-      stockItem: sItem,
-      wuliaoCode: 'WL9000000000' + randomWLInt,
-      rukuCode: 'RK2312' + randomInt,
-      storageType: '鏍囧噯閲囪喘',
-      buyerCode: 'CG2312000' + randomInt,
-      zip: 'CA 90036',
-      number: randomInt,
-      shname: '瀹℃牳' + randomErInt,
-      buyerName: '閲囪喘' + randomErInt2,
-      cgName: '浠撶' + randomErInt3,
-      address: '杩欐槸鐗╂枡浜у湴',
-      kcCode: 'KC2312999' + randomInt,
-      oneArea: randomSumInt / 10,
-      rIndex: tableData.value.length + 1,
-      thick: t
-    })
-  }
-}
-
-const datevalue = ref('')
-
-const shortcuts = [
-  {
-    text: '杩戜竴鍛�',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
-      return [start, end]
-    },
-  },
-  {
-    text: '杩戜竴涓湀',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
-      return [start, end]
-    },
-  },
-  {
-    text: '杩戜笁涓湀',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
-      return [start, end]
-    },
-  },
-]
-
-</script>
-
-<style scoped>
-
-.el-row {
-  margin-bottom: 20px;
-}
-
-.el-row:last-child {
-  margin-bottom: 0;
-}
-
-.el-col {
-  border-radius: 4px;
-}
-
-.m-header {
-  height: 64px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/stockReport/StockMonthReport.vue b/UI-Project/src/views/mm/stockReport/StockMonthReport.vue
deleted file mode 100644
index b8cc81a..0000000
--- a/UI-Project/src/views/mm/stockReport/StockMonthReport.vue
+++ /dev/null
@@ -1,277 +0,0 @@
-<template>
-  <el-container>
-    <el-header class="m-header">
-      <el-row :gutter="10">
-        <el-col :span="6">
-          <el-date-picker
-              v-model="datevalue"
-              type="daterange"
-              unlink-panels
-              range-separator="鍒�"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              :shortcuts="shortcuts"
-              :size="size"
-              format="YYYY/MM/DD"
-              value-format="YYYY-MM-DD"
-          />
-        </el-col>
-        <el-col :span="2" :offset="1">
-          <el-button
-              id="select"
-              type="primary"
-              :icon="Search"
-              @click="autoAddRow">鏌ヨ
-          </el-button>
-        </el-col>
-      </el-row>
-    </el-header>
-    <el-main style="padding-top: 5px">
-      <vxe-grid
-          max-height="600"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          @="gridEvents"
-      >
-
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
-        </template>
-
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-
-    </el-main>
-  </el-container>
-</template>
-
-
-<script setup>
-
-import {ref} from "vue";
-import {reactive} from "vue";
-import {useRouter} from 'vue-router'
-import {Search} from "@element-plus/icons-vue";
-import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
-let router = useRouter()
-
-//缁勪欢鎺ユ敹鍙傛暟
-const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns: [
-    /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
-    {type: 'seq', fixed: "left", title: ' ', width: 50},
-    /*{ type: 'checkbox',fixed:"left", title: '', width: 50 },*/
-    {type: 'expand', title:'璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
-    {field: 'cgdh', width: '10%', title: '搴撳瓨缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%', title: '鐗╂枡缂栫爜', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'gys', width: '10%',title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbh', width: '10%',title: '浜у湴', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%', title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%',title: '涓诲崟浣�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%',title: '瀹夊叏搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '12%',title: '搴撳瓨鏁�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '鍙敤搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '12%',title: '鏈鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '8%',title: '鎬婚潰绉�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '12%',title: '鍗曠墖闈㈢Н', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '8%',title: '鐢熶骇鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '淇濊川鏈�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳尯', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%',title: '搴撲綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xsdh', width: '10%',title: '绉帇搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
-  ],//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: [{type:'text'},{type:'text',name:'鍘熺墖鏈堢粨鎶ヨ〃'}],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true,
-    style: 'paddling-left:10px'
-  },//琛ㄥご鎸夐挳
-  data: [
-    {},{},{},{},{},{},{},{},{},{},{},
-
-  ],//table body瀹為檯鏁版嵁
-  mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 2}
-  ],//鍚堝苟鑴�
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        /* if (props.tableProp.footList.includes(column.field)) {
-           return sumNum(data, column.field)
-         }*/
-        return ''
-      })
-    ]
-  },
-})
-
-
-
-
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-
-
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
-      break
-    }
-  }
-}
-
-
-
-
-const xGrid = ref()
-const gridEvents = {
-  toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'Add': {//鏂板
-          router.push({path: '/main/purchaseOrder/CreatePurchaseOrder'})
-          break
-        }
-        case 'Storage': {//鍏ュ簱
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            /*            async ()=>{
-              const type = await.VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-            }*/
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-
-            /* if(VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵' )){
-              //openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success',lockView: false, mask: false })
-
-
-            }*/
-
-            /* if(type==='confirm'){
-              openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            }
-
-*/
-            //openAlert({type:'alert', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-      }
-    }
-  },
-  toolbarToolClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
-
-}
-
-</script>
-
-
-<style scoped>
-.m-header {
-  height: auto
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/stockReport/StockReport.vue b/UI-Project/src/views/mm/stockReport/StockReport.vue
deleted file mode 100644
index 851d811..0000000
--- a/UI-Project/src/views/mm/stockReport/StockReport.vue
+++ /dev/null
@@ -1,49 +0,0 @@
-<template>
-  <div class="common-layout">
-    <el-container>
-      <el-header style="height: 30px">
-        <el-breadcrumb :separator-icon="ArrowRight">
-          <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''"
-                              :to="{path:'/main/stockReport/WarehouseReport'}">鍘熸潗鏂欐姤琛�
-          </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''"
-                              :to="{path:'/main/stockReport/StockWarehouseReport'}">鎴愬搧鎶ヨ〃
-          </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''"
-                              :to="{path:'/main/stockReport/StockMonthReport'}">鍘熺墖鏈堢粨鎶ヨ〃
-          </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''"
-                              :to="{path:'/main/stockReport/SubsidiaryMonthReport'}">
-            杈呮枡鏈堢粨鎶ヨ〃
-          </el-breadcrumb-item>
-          <el-breadcrumb-item style="display: none"></el-breadcrumb-item>
-        </el-breadcrumb>
-      </el-header>
-      <el-main style="padding: 0;width: 99%;height: 100%;">
-        <router-view/>
-      </el-main>
-      <!--     <el-footer>Footer</el-footer>-->
-    </el-container>
-  </div>
-
-</template>
-
-<script setup>
-import {nextTick, ref} from 'vue'
-import {ArrowRight, Search} from "@element-plus/icons-vue";
-
-let indexFlag = $ref(1)
-
-function changeRouter(index) {
-  indexFlag = index
-}
-
-</script>
-
-
-<style scoped>
-:deep(.indexTag .el-breadcrumb__inner) {
-  color: #5CADFE !important;
-  font-weight: 900;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/stockReport/StockWarehouseReport.vue b/UI-Project/src/views/mm/stockReport/StockWarehouseReport.vue
deleted file mode 100644
index 8c4e6c9..0000000
--- a/UI-Project/src/views/mm/stockReport/StockWarehouseReport.vue
+++ /dev/null
@@ -1,272 +0,0 @@
-<template>
-<div style="padding: 0;width: 100%;height: 100%">
-
-    <el-header class="m-header" style="height: auto">
-
-    </el-header>
-    <el-main style="padding-top: 5px">
-      <vxe-grid
-          max-height="600"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          v-on="gridEvents"
-      >
-
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
-        </template>
-
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-    </el-main>
-  </div>
-</template>
-
-
-<script setup>
-import {ref} from 'vue'
-import {reactive} from "vue";
-import {useRouter} from 'vue-router'
-import {Search} from "@element-plus/icons-vue";
-import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
-let router = useRouter()
-
-//缁勪欢鎺ユ敹鍙傛暟
-const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns: [
-   /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
-    {type: 'seq', fixed: "left", title: ' ', width: 50},
-    /*{ type: 'checkbox',fixed:"left", title: '', width: 50 },*/
-    {type: 'expand', title:'璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
-    {field: 'cgdh', width: '10%', title: '搴撳瓨缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%', title: '鐗╂枡缂栫爜', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'gys', width: '10%',title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbh', width: '10%',title: '浜у湴', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%', title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%',title: '涓诲崟浣�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%',title: '瀹夊叏搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '12%',title: '搴撳瓨鏁�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '鍙敤搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '12%',title: '鏈鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '8%',title: '鎬婚潰绉�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '12%',title: '鍗曠墖闈㈢Н', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '8%',title: '鐢熶骇鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '淇濊川鏈�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳尯', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%',title: '搴撲綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xsdh', width: '10%',title: '绉帇搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
-  ],//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: [{type:'text'},{
-      'name': '鎴愬搧搴撳瓨',
-      'code': 'ProductStockList',
-    },{
-      'name': '鍏ュ簱璁板綍',
-      'code': 'StorageRecord',
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true,
-    style: 'paddling-left:10px'
-  },//琛ㄥご鎸夐挳
-  data: [
-    {},{},{},{},{},{},{},{},{},{},{},
-
-  ],//table body瀹為檯鏁版嵁
-  mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 2}
-  ],//鍚堝苟鑴�
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        /* if (props.tableProp.footList.includes(column.field)) {
-           return sumNum(data, column.field)
-         }*/
-        return ''
-      })
-    ]
-  },
-})
-
-
-
-
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-
-
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
-      break
-    }
-  }
-}
-
-
-
-
-const xGrid = ref()
-const gridEvents = {
-  toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'ProductStockList': {//鏂板
-          router.push({path: '/main/productStock/ProductStockList'})
-          break
-        }
-        case 'StorageRecord': {//鍏ュ簱
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'alert', content: '鎮ㄧ偣鍑讳簡鏌ョ湅鍏ュ簱璁板綍', status: 'success'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            /*            async ()=>{
-              const type = await.VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-            }*/
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-
-            /* if(VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵' )){
-              //openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success',lockView: false, mask: false })
-
-
-            }*/
-
-            /* if(type==='confirm'){
-              openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            }
-
-*/
-            //openAlert({type:'alert', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-      }
-    }
-  },
-  toolbarToolClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
-
-}
-
-
-</script>
-
-
-<style scoped>
-.el-row {
-  margin-bottom: 20px;
-}
-
-.el-row:last-child {
-  margin-bottom: 0;
-}
-
-.el-col {
-  border-radius: 4px;
-}
-
-.m-header {
-  height: 64px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/stockReport/SubsidiaryMonthReport.vue b/UI-Project/src/views/mm/stockReport/SubsidiaryMonthReport.vue
deleted file mode 100644
index 5c6c1bb..0000000
--- a/UI-Project/src/views/mm/stockReport/SubsidiaryMonthReport.vue
+++ /dev/null
@@ -1,268 +0,0 @@
-<template>
-  <el-container>
-    <el-header class="m-header">
-      <el-row :gutter="10">
-        <el-col :span="6">
-          <el-date-picker
-              v-model="datevalue"
-              type="daterange"
-              unlink-panels
-              range-separator="鍒�"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              :shortcuts="shortcuts"
-              :size="size"
-              format="YYYY/MM/DD"
-              value-format="YYYY-MM-DD"
-          />
-        </el-col>
-        <el-col :span="2" :offset="1">
-          <el-button
-              id="select"
-              type="primary"
-              :icon="Search"
-              @click="autoAddRow">鏌ヨ
-          </el-button>
-        </el-col>
-      </el-row>
-    </el-header>
-    <el-main style="padding-top: 5px">
-      <vxe-grid
-          max-height="600"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          @="gridEvents"
-      >
-
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
-        </template>
-
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-
-    </el-main>
-  </el-container>
-</template>
-
-
-<script setup>
-
-import {ref} from "vue";
-import {reactive} from "vue";
-import {useRouter} from 'vue-router'
-import {Search} from "@element-plus/icons-vue";
-import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
-let router = useRouter()
-
-//缁勪欢鎺ユ敹鍙傛暟
-const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns: [
-    /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
-    {type: 'seq', fixed: "left", title: ' ', width: 50},
-    /*{ type: 'checkbox',fixed:"left", title: '', width: 50 },*/
-    {type: 'expand', title:'璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
-    {field: 'cgdh', width: '10%', title: '搴撳瓨缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%', title: '鐗╂枡缂栫爜', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'gys', width: '10%',title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbh', width: '10%',title: '浜у湴', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%', title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%',title: '涓诲崟浣�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%',title: '瀹夊叏搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '12%',title: '搴撳瓨鏁�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '鍙敤搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '12%',title: '鏈鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '8%',title: '鎬婚潰绉�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '12%',title: '鍗曠墖闈㈢Н', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '8%',title: '鐢熶骇鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '淇濊川鏈�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳尯', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%',title: '搴撲綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xsdh', width: '10%',title: '绉帇搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
-  ],//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: [{type:'text'},{type:'text',name:'杈呮枡鏈堢粨鎶ヨ〃'}],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true,
-    style: 'paddling-left:10px'
-  },//琛ㄥご鎸夐挳
-  data: [
-    {},{},{},{},{},{},{},{},{},{},{},
-  ],//table body瀹為檯鏁版嵁
-  mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 2}
-  ],//鍚堝苟鑴�
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        /* if (props.tableProp.footList.includes(column.field)) {
-           return sumNum(data, column.field)
-         }*/
-        return ''
-      })
-    ]
-  },
-})
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-
-
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
-      break
-    }
-  }
-}
-const xGrid = ref()
-const gridEvents = {
-  toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'Add': {//鏂板
-          router.push({path: '/main/purchaseOrder/CreatePurchaseOrder'})
-          break
-        }
-        case 'Storage': {//鍏ュ簱
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            /*            async ()=>{
-              const type = await.VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-            }*/
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-
-            /* if(VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵' )){
-              //openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success',lockView: false, mask: false })
-
-
-            }*/
-
-            /* if(type==='confirm'){
-              openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            }
-
-*/
-            //openAlert({type:'alert', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-      }
-    }
-  },
-  toolbarToolClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
-
-}
-
-</script>
-
-
-<style scoped>
-.m-header {
-  height: auto
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/stockReport/WarehouseReport.vue b/UI-Project/src/views/mm/stockReport/WarehouseReport.vue
deleted file mode 100644
index 9db690a..0000000
--- a/UI-Project/src/views/mm/stockReport/WarehouseReport.vue
+++ /dev/null
@@ -1,387 +0,0 @@
-<template>
-  <div style="padding: 0;width: 100%;height: 100%">
-
-    <el-header class="m-header" style="height: auto">
-
-    </el-header>
-
-    <el-main style="padding-top: 5px">
-      <vxe-grid
-          max-height="600"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          v-on="gridEvents"
-          @cell-dblclick="cellClickEvent"
-      >
-
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
-        </template>
-
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-
-      <!--      璇︽儏妗� 閮ㄥ垎1-->
-      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false" resize>
-        <el-container >
-          <el-header height="35px"
-                     style="margin: 0;padding: 0">
-
-            <el-input  v-model="showNum" placeholder="閲囪喘鍗曞彿" disabled >
-              <template #prepend>鐗╂枡缂栫爜</template>
-            </el-input>
-          </el-header>
-          <el-main>
-            <template #default>
-              <vxe-table
-                  border="default"
-                  auto-resize
-                  show-overflow
-                  max-height="400"
-                  :row-config="{isHover: true}"
-                  :show-header="false"
-                  :sync-resize="showDetails"
-                  :data="detailData"
-              >
-                <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
-                <vxe-column field="value"></vxe-column>
-              </vxe-table>
-            </template>
-          </el-main>
-          <el-footer height="40px">
-<!--            <el-row>
-              <el-col :offset="20" :span="4">
-                <el-button
-                    id="Sure"
-                    type="primary"
-                    @click="SureReturn"
-                >纭閫�璐�
-                </el-button>
-              </el-col>
-
-            </el-row>-->
-          </el-footer>
-        </el-container>
-      </vxe-modal>
-      <!--      璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
-
-    </el-main>
-  </div>
-</template>
-
-
-<script setup>
-import {ref} from 'vue'
-import {reactive} from "vue";
-import {useRouter} from 'vue-router'
-import {Search} from "@element-plus/icons-vue";
-import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
-let router = useRouter()
-
-const list =  (i) => {
-  return {
-    'kczz':'浜哄伐搴�',
-    'wlbm':'NGWL202312000'+i,
-    'wlmc':'杩欐槸鐗╂枡鍚嶇О',
-    'cd':'鍦扮悆鏉�',
-    'kcbh':'KC202300'+i,
-    'w':'0',
-    'g':'0',
-    'h':'0',
-    'zdw':'浠�',
-    'aqkc':'0',
-    'kcs':'20',
-    'kykc':'30',
-    'wlsl':'20',
-    'zmj':'0',
-    'dpmj':'0',
-    'scrq':'2023-12-20',
-    'bzq':'2025-12-20',
-    'kq':'2000',
-    'kw':'23',
-    'jykc':'5',
-    'bz':'杩欐槸澶囨敞*10086'
-  }
-}
-
-//缁勪欢鎺ユ敹鍙傛暟
-const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns: [
-
-    {type: 'expand', title:'', fixed: "left", slots: {content: 'content'}, width: 50},/* 璇︽儏 */
-    /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
-    {type: 'seq', fixed: "left", title: ' ', width: 50},
-    /*{ type: 'checkbox',fixed:"left", title: '', width: 50 },*/
-    {field: 'kczz', width: '13%', title: '搴撳瓨缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbm', width: '10%', title: '鐗╂枡缂栫爜', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%',title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cd', width: '10%',title: '浜у湴', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'kcbh', width: '10%', title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'zdw', width: '8%',title: '涓诲崟浣�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'aqkc', width: '8%',title: '瀹夊叏搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'kcs', width: '12%',title: '搴撳瓨鏁�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'kykc', width: '8%',title: '鍙敤搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlsl', width: '12%',title: '鏈鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'zmj', width: '8%',title: '鎬婚潰绉�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dpmj', width: '12%',title: '鍗曠墖闈㈢Н', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'scrq', width: '8%',title: '鐢熶骇鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'bzq', width: '8%',title: '淇濊川鏈�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    /*{field: 'kcbh', width: '10%',title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},*/
-    {field: 'kq', width: '10%',title: '搴撳尯', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'kw', width: '10%',title: '搴撲綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'jykc', width: '10%',title: '绉帇搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'bz', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
-  ],//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: [{type:'text'},{
-      'name': '鍏ュ簱璁板綍',
-      'code': 'StorageRecord',
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true,
-    style: 'paddling-left:10px'
-  },//琛ㄥご鎸夐挳
-  data: [
-    list(0),list(1),list(2),list(3),list(4),list(5),list(6),list(7),list(8),list(9),
-
-  ],//table body瀹為檯鏁版嵁
-  mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 2}
-  ],//鍚堝苟鑴�
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        /* if (props.tableProp.footList.includes(column.field)) {
-           return sumNum(data, column.field)
-         }*/
-        return ''
-      })
-    ]
-  },
-})
-
-
-//鍒楄〃鎿嶄綔
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-
-
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
-      break
-    }
-  }
-}
-
-const xGrid = ref()
-const gridEvents = {
-  toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'ProductStockList': {//鏂板
-          router.push({path: '/main/productStock/ProductStockList'})
-          break
-        }
-        case 'StorageRecord': {//鍏ュ簱
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'alert', content: '鎮ㄧ偣鍑讳簡鏌ョ湅鍏ュ簱璁板綍', status: 'success'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-            return
-          }
-          break
-        }
-      }
-    }
-  },
-  toolbarToolClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-
-const showNum =ref();
-const showDetails =ref(false);
-let detailData =[];
-
-const cellClickEvent = ({row}) => {
-  detailData = cName.map(field => {
-    return { label: ModelColumnContent(field) , value: row[field] }
-
-  })
-
-
-  showDetails.value = true;
-  showNum.value = row['wlbm'];
-
-}
-const cName = ['kczz','wlbm','wlmc','cd','kcbh','w','g','h','zdw','aqkc','kcs','kykc','wlsl','zmj', 'dpmj','scrq','bzq','kq','kw','jykc','bz'];
-const ModelColumnContent = (text) => {
-  switch (text) {
-    case 'kczz':
-      return "搴撳瓨缁勭粐";
-    case 'wlbm':
-      return "鐗╂枡缂栫爜";
-    case 'wlmc':
-      return "鐗╂枡鍚嶇О";
-    case 'cd':
-      return "浜у湴";
-    case 'kcbh':
-      return "搴撳瓨缂栧彿";
-    case 'w':
-      return "瀹�";
-    case 'g':
-      return "楂�";
-    case 'h':
-      return "鍘�";
-    case 'zdw':
-      return "涓诲崟浣�";
-    case 'aqkc':
-      return "瀹夊叏搴撳瓨";
-    case 'kcs':
-      return "搴撳瓨鏁�";
-    case 'kykc':
-      return "鍙敤搴撳瓨";
-    case 'wlsl':
-      return "鏈鏁伴噺";
-    case 'zmj':
-      return "鎬婚潰绉�";
-    case 'dpmj':
-      return "鍗曠墖闈㈢Н";
-    case 'scrq':
-      return "鐢熶骇鏃ユ湡";
-    case 'bzq': return "淇濊川鏈�";
-    case 'kq': return "搴撳尯";
-    case 'kw': return "搴撲綅";
-    case 'jykc': return "绉帇搴撳瓨";
-    case 'bz':
-      return "澶囨敞";
-    default:
-      return text;
-
-  }
-
-}
-
-
-
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
-}
-
-
-</script>
-
-
-<style scoped>
-.el-row {
-  margin-bottom: 20px;
-}
-
-.el-row:last-child {
-  margin-bottom: 0;
-}
-
-.el-col {
-  border-radius: 4px;
-}
-
-.m-header {
-  height: 64px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/BOM/BOM.vue b/UI-Project/src/views/pp/BOM/BOM.vue
deleted file mode 100644
index 920e46e..0000000
--- a/UI-Project/src/views/pp/BOM/BOM.vue
+++ /dev/null
@@ -1,62 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/BOM/SelectBOM' }">BOM绠$悊</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/BOM/BenchmarkBOM' }">鍩哄噯BOM</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/BOM/StandardBOM' }">鏍囧噯BOM</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/BOM/OrderBOM' }">璁㈠崟BOM</el-breadcrumb-item>
-        <el-breadcrumb-item :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">鎵撳嵃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/BOM/BenchmarkBOM.vue b/UI-Project/src/views/pp/BOM/BenchmarkBOM.vue
deleted file mode 100644
index 486fff8..0000000
--- a/UI-Project/src/views/pp/BOM/BenchmarkBOM.vue
+++ /dev/null
@@ -1,254 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '鐗╂枡缂栫爜',  title: '鐗╂枡缂栫爜',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '鐗╂枡鍚嶇О', title: '鐗╂枡鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '鏁伴噺',title: '鏁伴噺', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '棰嗘枡宸ュ簭', title: '棰嗘枡宸ュ簭',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '涓诲崟浣�',title: '涓诲崟浣�', sortable: true,showOverflow:"ellipsis"},
-    {field: '鎹㈢畻鐜�', title: '鎹㈢畻鐜�', sortable: true},
-    {field: '鍓崟浣�', title: '鍓崟浣�', sortable: true},
-    {field: '浜у湴', title: '浜у湴', sortable: true,showOverflow:"ellipsis"},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    //琛ㄦ牸涓婃柟鍔熻兘鎸夐挳
-    buttons: [
-      {code: 'print_lck', name: '娣诲姞涓�琛�' },
-      {code: 'print_lck', name: '鍑忓皯涓�琛�' },
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      //鐗╂枡缂栫爜
-      鐗╂枡缂栫爜: '70020000000000000000000004',
-      //鐗╂枡鍚嶇О
-      鐗╂枡鍚嶇О: '棰勬礂鍓�7600TRO-DS',
-      //鏁伴噺
-      鏁伴噺: '4',
-      //棰嗘枡宸ュ簭
-      棰嗘枡宸ュ簭: '鍒堕暅',
-      //涓诲崟浣�
-      涓诲崟浣�:'L',
-      //鎹㈢畻鐜�
-      鎹㈢畻鐜�:'0.001000',
-      //鍓崟浣�
-      鍓崟浣�:'ml',
-      //浜у湴
-      浜у湴:'鍥涘窛',
-    },
-    {
-      //鐗╂枡缂栫爜
-      鐗╂枡缂栫爜: '70020000000000000000000004',
-      //鐗╂枡鍚嶇О
-      鐗╂枡鍚嶇О: '棰勬礂鍓�7600TRO-DS',
-      //鏁伴噺
-      鏁伴噺: '4',
-      //棰嗘枡宸ュ簭
-      棰嗘枡宸ュ簭: '鍒堕暅',
-      //涓诲崟浣�
-      涓诲崟浣�:'L',
-      //鎹㈢畻鐜�
-      鎹㈢畻鐜�:'0.001000',
-      //鍓崟浣�
-      鍓崟浣�:'ml',
-      //浜у湴
-      浜у湴:'鍥涘窛',
-    },
-    {
-      //鐗╂枡缂栫爜
-      鐗╂枡缂栫爜: '70020000000000000000000004',
-      //鐗╂枡鍚嶇О
-      鐗╂枡鍚嶇О: '棰勬礂鍓�7600TRO-DS',
-      //鏁伴噺
-      鏁伴噺: '4',
-      //棰嗘枡宸ュ簭
-      棰嗘枡宸ュ簭: '鍒堕暅',
-      //涓诲崟浣�
-      涓诲崟浣�:'L',
-      //鎹㈢畻鐜�
-      鎹㈢畻鐜�:'0.001000',
-      //鍓崟浣�
-      鍓崟浣�:'ml',
-      //浜у湴
-      浜у湴:'鍥涘窛',
-    },
-    {
-      //鐗╂枡缂栫爜
-      鐗╂枡缂栫爜: '70020000000000000000000004',
-      //鐗╂枡鍚嶇О
-      鐗╂枡鍚嶇О: '棰勬礂鍓�7600TRO-DS',
-      //鏁伴噺
-      鏁伴噺: '4',
-      //棰嗘枡宸ュ簭
-      棰嗘枡宸ュ簭: '鍒堕暅',
-      //涓诲崟浣�
-      涓诲崟浣�:'L',
-      //鎹㈢畻鐜�
-      鎹㈢畻鐜�:'0.001000',
-      //鍓崟浣�
-      鍓崟浣�:'ml',
-      //浜у湴
-      浜у湴:'鍥涘窛',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['鏁伴噺']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-//浜у搧绉嶇被涓嬫媺妗�
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <el-select v-model="value" class="m-2" placeholder="浜у搧绉嶇被">
-      <el-option
-          v-for="item in options"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value"
-      />
-    </el-select>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/BOM/OrderBOM.vue b/UI-Project/src/views/pp/BOM/OrderBOM.vue
deleted file mode 100644
index 56c0bb3..0000000
--- a/UI-Project/src/views/pp/BOM/OrderBOM.vue
+++ /dev/null
@@ -1,273 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/BOM/OrderBOMDetails', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 70, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-
-    { field: '閿�鍞崟鍙�',width: 130, title: '閿�鍞崟鍙�',sortable: true, filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
-    { field: '瀹㈡埛鍚嶇О',width: 130, title: '瀹㈡埛鍚嶇О',sortable: true,  filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    { field: '椤圭洰鍚嶇О',width: 130, title: '椤圭洰鍚嶇О',sortable: true, filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
-    { field: '鎵规',width: 75, title: '鎵规',sortable: true, },
-    {field: '璁㈠崟鏁�',width: 83,  title: '璁㈠崟鏁�', sortable: true, },
-    {field: '璁㈠崟闈㈢Н',width: 100, title: '璁㈠崟闈㈢Н', sortable: true,showOverflow:"ellipsis" ,},
-    {field: '璁㈠崟绫诲瀷',width: 110, title: '璁㈠崟绫诲瀷', sortable: true,},
-    {field: '涓氬姟鍛�',width: 85, title: '涓氬姟鍛�', sortable: true},
-    {field: '宸ュ崟BOM鐢熸垚鏃堕棿',width: 160,title: '宸ュ崟BOM鐢熸垚鏃堕棿', sortable: true,showOverflow:"ellipsis"},
-    {field: '宸ュ崟BOM瀹℃牳鏃堕棿',width: 160,title: '宸ュ崟BOM瀹℃牳鏃堕棿', sortable: true},
-  ],
-  //琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      //閿�鍞崟鍙�
-      閿�鍞崟鍙�: 'NG23121201',
-      //瀹㈡埛鍚嶇О
-      瀹㈡埛鍚嶇О: '姹熼棬棣楄揪鐗圭幓绉戞妧鏈夐檺鍏徃',
-      //椤圭洰鍚嶇О
-      椤圭洰鍚嶇О: '澶ф澘闀�',
-      //鎵规
-      鎵规: '1鎵逛竴',
-      //璁㈠崟鏁�
-      璁㈠崟鏁�:'1212',
-      //璁㈠崟闈㈢Н
-      璁㈠崟闈㈢Н:'442.21',
-      //璁㈠崟绫诲瀷
-      璁㈠崟绫诲瀷:'鍐呴儴',
-      //涓氬姟鍛�
-      涓氬姟鍛�:'XX',
-      //宸ュ崟BOM鐢熸垚鏃堕棿
-      宸ュ崟BOM鐢熸垚鏃堕棿:'2020-01-01',
-      //宸ュ崟BOM瀹℃牳鏃堕棿
-      宸ュ崟BOM瀹℃牳鏃堕棿:'2020-01-02',
-    },
-    {
-      //閿�鍞崟鍙�
-      閿�鍞崟鍙�: 'NG23121201',
-      //瀹㈡埛鍚嶇О
-      瀹㈡埛鍚嶇О: '姹熼棬棣楄揪鐗圭幓绉戞妧鏈夐檺鍏徃',
-      //椤圭洰鍚嶇О
-      椤圭洰鍚嶇О: '澶ф澘闀�',
-      //鎵规
-      鎵规: '1鎵逛竴',
-      //璁㈠崟鏁�
-      璁㈠崟鏁�:'1212',
-      //璁㈠崟闈㈢Н
-      璁㈠崟闈㈢Н:'442.21',
-      //璁㈠崟绫诲瀷
-      璁㈠崟绫诲瀷:'鍐呴儴',
-      //涓氬姟鍛�
-      涓氬姟鍛�:'XX',
-      //宸ュ崟BOM鐢熸垚鏃堕棿
-      宸ュ崟BOM鐢熸垚鏃堕棿:'2020-01-01',
-      //宸ュ崟BOM瀹℃牳鏃堕棿
-      宸ュ崟BOM瀹℃牳鏃堕棿:'2020-01-02',
-    },
-    {
-      //閿�鍞崟鍙�
-      閿�鍞崟鍙�: 'NG23121201',
-      //瀹㈡埛鍚嶇О
-      瀹㈡埛鍚嶇О: '姹熼棬棣楄揪鐗圭幓绉戞妧鏈夐檺鍏徃',
-      //椤圭洰鍚嶇О
-      椤圭洰鍚嶇О: '澶ф澘闀�',
-      //鎵规
-      鎵规: '1鎵逛竴',
-      //璁㈠崟鏁�
-      璁㈠崟鏁�:'1212',
-      //璁㈠崟闈㈢Н
-      璁㈠崟闈㈢Н:'442.21',
-      //璁㈠崟绫诲瀷
-      璁㈠崟绫诲瀷:'鍐呴儴',
-      //涓氬姟鍛�
-      涓氬姟鍛�:'XX',
-      //宸ュ崟BOM鐢熸垚鏃堕棿
-      宸ュ崟BOM鐢熸垚鏃堕棿:'2020-01-01',
-      //宸ュ崟BOM瀹℃牳鏃堕棿
-      宸ュ崟BOM瀹℃牳鏃堕棿:'2020-01-02',
-    },
-    {
-      //閿�鍞崟鍙�
-      閿�鍞崟鍙�: 'NG23121201',
-      //瀹㈡埛鍚嶇О
-      瀹㈡埛鍚嶇О: '姹熼棬棣楄揪鐗圭幓绉戞妧鏈夐檺鍏徃',
-      //椤圭洰鍚嶇О
-      椤圭洰鍚嶇О: '澶ф澘闀�',
-      //鎵规
-      鎵规: '1鎵逛竴',
-      //璁㈠崟鏁�
-      璁㈠崟鏁�:'1212',
-      //璁㈠崟闈㈢Н
-      璁㈠崟闈㈢Н:'442.21',
-      //璁㈠崟绫诲瀷
-      璁㈠崟绫诲瀷:'鍐呴儴',
-      //涓氬姟鍛�
-      涓氬姟鍛�:'XX',
-      //宸ュ崟BOM鐢熸垚鏃堕棿
-      宸ュ崟BOM鐢熸垚鏃堕棿:'2020-01-01',
-      //宸ュ崟BOM瀹℃牳鏃堕棿
-      宸ュ崟BOM瀹℃牳鏃堕棿:'2020-01-02',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['璁㈠崟鏁�','璁㈠崟闈㈢Н']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-        />
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 40%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/BOM/OrderBOMDetails.vue b/UI-Project/src/views/pp/BOM/OrderBOMDetails.vue
deleted file mode 100644
index 55dc9a2..0000000
--- a/UI-Project/src/views/pp/BOM/OrderBOMDetails.vue
+++ /dev/null
@@ -1,271 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/BOM/StandardBOMDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-const form = reactive({
-  xsdh:'NG23010101',
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    { slots: { default: 'state' }, title: '鍩哄噯BOM', width: 110 },
-    { slots: { default: 'state' }, title: '鏍囧噯BOM', width: 110 },
-    { slots: { default: 'state' }, title: '瀹℃牳', width: 80 },
-    {field: '瀹㈡埛缂栧彿', width: 120, title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '瀹㈡埛鍚嶇О',width: 120, title: '瀹㈡埛鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧缂栧彿', width: 130,title: '浜у搧缂栧彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧鍚嶇О',width: 120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '鐜荤拑闀�', width: 100,title: '鐜荤拑闀�', sortable: true,showOverflow:"ellipsis"},
-    {field: '鐜荤拑瀹�', width: 100,title: '鐜荤拑瀹�', sortable: true},
-    {field: '鍘氬害',width: 100, title: '鍘氬害', sortable: true},
-    {field: '褰㈢姸',width: 120, title: '褰㈢姸', sortable: true,showOverflow:"ellipsis"},
-    {field: '澶囨敞', width: 120,title: '澶囨敞', sortable: true},
-    {field: '浜у搧鍒涘缓浜�',width: 120, title: '浜у搧鍒涘缓浜�', sortable: true},
-    {field: 'BOM鍒涘缓浜�',width: 120, title: 'BOM鍒涘缓浜�', sortable: true},
-    {field: '瀹℃牳鍛�',width: 120, title: '瀹℃牳鍛�', sortable: true}
-  ],
-  //琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-      {code: 'print_lck', name: '杞噰璐崟' ,status:'primary'},
-      {code: 'print_lck', name: '瀹℃牳', status:'primary'},
-      {code: 'print_lck', name: '鍒犻櫎', status:'primary'},
-      {code: 'print_lck', name: '淇敼瓒呴鏁伴噺', status:'primary'},
-      {code: 'print_lck', name: '鐢熸垚璁㈠崟BOM',status:'primary' ,icon:'vxe-icon-save'},
-        ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      //瀹㈡埛缂栧彿
-      瀹㈡埛缂栧彿: 'D123123',
-      //瀹㈡埛鍚嶇О
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-    {
-      //瀹㈡埛缂栧彿
-      瀹㈡埛缂栧彿: 'D123123',
-      //瀹㈡埛鍚嶇О
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-    {
-      //瀹㈡埛缂栧彿
-      瀹㈡埛缂栧彿: 'D123123',
-      //瀹㈡埛鍚嶇О
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['finishedNumber','finishedArea','wornNumber','wornArea']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div>
-        <el-input placeholder="閿�鍞崟鍙�" style="width: 115px" v-model="form.xsdh"></el-input>
-
-      <el-select v-model="value" class="m-2" placeholder="001123311" style="width: 120px">
-        <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-        />
-      </el-select>
-      <el-select v-model="value" class="m-2" placeholder="閽㈠寲" style="width: 80px">
-        <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-        />
-      </el-select>
-      <br>
-      <el-input placeholder="鐗╂枡缂栫爜" style="width: 200px"></el-input>
-      <el-input placeholder="鐗╂枡鍚嶇О" style="width: 200px"></el-input>
-      <el-input placeholder="闇�姹傛暟閲�" style="width: 200px"></el-input>
-      <el-button type="primary">娣诲姞</el-button>
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 40%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/BOM/SelectBOM.vue b/UI-Project/src/views/pp/BOM/SelectBOM.vue
deleted file mode 100644
index 31ecdfa..0000000
--- a/UI-Project/src/views/pp/BOM/SelectBOM.vue
+++ /dev/null
@@ -1,249 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/BOM/StandardBOMDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 80, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    { slots: { default: 'state' }, title: '鍩哄噯BOM', width: 110 },
-    { slots: { default: 'state' }, title: '鏍囧噯BOM', width: 110 },
-    { slots: { default: 'state' }, title: '瀹℃牳', width: 80 },
-    {field: '瀹㈡埛缂栧彿', width: 120, title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '瀹㈡埛鍚嶇О',width: 120, title: '瀹㈡埛鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧缂栧彿', width: 130,title: '浜у搧缂栧彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧鍚嶇О',width: 120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '鐜荤拑闀�', width: 100,title: '鐜荤拑闀�', sortable: true,showOverflow:"ellipsis"},
-    {field: '鐜荤拑瀹�', width: 100,title: '鐜荤拑瀹�', sortable: true},
-    {field: '鍘氬害',width: 100, title: '鍘氬害', sortable: true},
-    {field: '褰㈢姸',width: 120, title: '褰㈢姸', sortable: true,showOverflow:"ellipsis"},
-    {field: '澶囨敞', width: 120,title: '澶囨敞', sortable: true},
-    {field: '浜у搧鍒涘缓浜�',width: 120, title: '浜у搧鍒涘缓浜�', sortable: true},
-    {field: 'BOM鍒涘缓浜�',width: 120, title: 'BOM鍒涘缓浜�', sortable: true},
-    {field: '瀹℃牳鍛�',width: 120, title: '瀹℃牳鍛�', sortable: true}
-  ],
-  //琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      瀹㈡埛缂栧彿: 'D123123',
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-    {
-      瀹㈡埛缂栧彿: 'D123123',
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-    {
-      瀹㈡埛缂栧彿: 'D123123',
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-    {
-      瀹㈡埛缂栧彿: 'D123123',
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['finishedNumber','finishedArea','wornNumber','wornArea']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-        />
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 40%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/BOM/StandardBOM.vue b/UI-Project/src/views/pp/BOM/StandardBOM.vue
deleted file mode 100644
index 4ba9d06..0000000
--- a/UI-Project/src/views/pp/BOM/StandardBOM.vue
+++ /dev/null
@@ -1,235 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/BOM/StandardBOMDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑瀹℃牳鐘舵��')
-      break
-    }
-  }
-}
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 80, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    { slots: { default: 'state' }, title: '鍩哄噯BOM', width: 110 },
-    { slots: { default: 'state' }, title: '鏍囧噯BOM', width: 110 },
-    { slots: { default: 'state' }, title: '瀹℃牳', width: 80 },
-    {field: '瀹㈡埛缂栧彿', width: 120, title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '瀹㈡埛鍚嶇О',width: 120, title: '瀹㈡埛鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧缂栧彿', width: 130,title: '浜у搧缂栧彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧鍚嶇О',width: 120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '鐜荤拑闀�', width: 100,title: '鐜荤拑闀�', sortable: true,showOverflow:"ellipsis"},
-    {field: '鐜荤拑瀹�', width: 100,title: '鐜荤拑瀹�', sortable: true},
-    {field: '鍘氬害',width: 100, title: '鍘氬害', sortable: true},
-    {field: '褰㈢姸',width: 120, title: '褰㈢姸', sortable: true,showOverflow:"ellipsis"},
-    {field: '澶囨敞', width: 120,title: '澶囨敞', sortable: true},
-    {field: '浜у搧鍒涘缓浜�',width: 120, title: '浜у搧鍒涘缓浜�', sortable: true},
-    {field: 'BOM鍒涘缓浜�',width: 120, title: 'BOM鍒涘缓浜�', sortable: true},
-    {field: '瀹℃牳鍛�',width: 120, title: '瀹℃牳鍛�', sortable: true}
-  ],
-  //琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      瀹㈡埛缂栧彿: 'D123123',
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-    {
-      瀹㈡埛缂栧彿: 'D123123',
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-    {
-      瀹㈡埛缂栧彿: 'D123123',
-      瀹㈡埛鍚嶇О: 'XXXX鍏徃',
-      浜у搧缂栧彿: '06040000022',
-      浜у搧鍚嶇О:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鐜荤拑闀�:'1440',
-      鐜荤拑瀹�:'3660',
-      鍘氬害:'30',
-      褰㈢姸:'鏅舰',
-      澶囨敞:'111',
-      浜у搧鍒涘缓浜�:'寮犱笁',
-      BOM鍒涘缓浜�:'鏉庡洓',
-      瀹℃牳鍛�:'鐜嬩簲',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['finishedNumber','finishedArea','wornNumber','wornArea']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-        />
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 40%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/BOM/StandardBOMDetail.vue b/UI-Project/src/views/pp/BOM/StandardBOMDetail.vue
deleted file mode 100644
index 2409504..0000000
--- a/UI-Project/src/views/pp/BOM/StandardBOMDetail.vue
+++ /dev/null
@@ -1,259 +0,0 @@
-<script setup>
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '鐗╂枡缂栫爜',  title: '鐗╂枡缂栫爜',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '鐗╂枡鍚嶇О', title: '鐗╂枡鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '鏁伴噺',title: '鏁伴噺', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '棰嗘枡宸ュ簭', title: '棰嗘枡宸ュ簭',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '涓诲崟浣�',title: '涓诲崟浣�', sortable: true,showOverflow:"ellipsis"},
-    {field: '鎹㈢畻鐜�', title: '鎹㈢畻鐜�', sortable: true},
-    {field: '鍓崟浣�', title: '鍓崟浣�', sortable: true},
-    {field: '浜у湴', title: '浜у湴', sortable: true,showOverflow:"ellipsis"},
-  ],
-  //琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-
-      {code: 'print_lck', name: '娣诲姞涓�琛�' },
-      {code: 'print_lck', name: '鍑忓皯涓�琛�' },
-      {code: 'print_lck', name: '瀹℃牳',status:'primary' },
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
-
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      鐗╂枡缂栫爜: '70020000000000000000000004',
-      鐗╂枡鍚嶇О: '棰勬礂鍓�7600TRO-DS',
-      鏁伴噺: '4',
-      棰嗘枡宸ュ簭: '鍒堕暅',
-      涓诲崟浣�:'L',
-      鎹㈢畻鐜�:'0.001000',
-      鍓崟浣�:'ml',
-      浜у湴:'鍥涘窛',
-    },
-    {
-      鐗╂枡缂栫爜: '70020000000000000000000004',
-      鐗╂枡鍚嶇О: '棰勬礂鍓�7600TRO-DS',
-      鏁伴噺: '4',
-      棰嗘枡宸ュ簭: '鍒堕暅',
-      涓诲崟浣�:'L',
-      鎹㈢畻鐜�:'0.001000',
-      鍓崟浣�:'ml',
-      浜у湴:'鍥涘窛',
-    },
-    {
-      鐗╂枡缂栫爜: '70020000000000000000000004',
-      鐗╂枡鍚嶇О: '棰勬礂鍓�7600TRO-DS',
-      鏁伴噺: '4',
-      棰嗘枡宸ュ簭: '鍒堕暅',
-      涓诲崟浣�:'L',
-      鎹㈢畻鐜�:'0.001000',
-      鍓崟浣�:'ml',
-      浜у湴:'鍥涘窛',
-    },
-    {
-      鐗╂枡缂栫爜: '70020000000000000000000004',
-      鐗╂枡鍚嶇О: '棰勬礂鍓�7600TRO-DS',
-      鏁伴噺: '4',
-      棰嗘枡宸ュ簭: '鍒堕暅',
-      涓诲崟浣�:'L',
-      鎹㈢畻鐜�:'0.001000',
-      鍓崟浣�:'ml',
-      浜у湴:'鍥涘窛',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['鏁伴噺']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-const form = reactive({
-  name: '',
-  id:'',
-  length:'',
-  width:'',
-
-  region: '1',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-
-</script>
-
-<template>
-  <div>
-    <div style="text-align: center">
-      <el-input placeholder="浜у搧缂栧彿" style="width: 140px" v-model="form.id"></el-input>
-      &nbsp;
-      <el-input placeholder="浜у搧鍚嶇О" style="width: 180px" v-model="form.name"></el-input>
-      &nbsp;
-      <el-input placeholder="闀�" style="width: 60px" v-model="form.length"></el-input>
-      &nbsp;
-      <el-input placeholder="瀹�" style="width: 60px" v-model="form.width"></el-input>
-      &nbsp;
-      <label>鍩烘暟:</label>
-      <el-input placeholder="鍩烘暟" style="width: 40px" v-model="form.region">1</el-input>
-
-      <div id="tab_div">
-        <table class="tab_bfl" style="border: 1px solid black;">
-          <tr>
-            <td>棰嗘枡宸ュ簭</td>
-            <td>鍒囧壊</td>
-            <td>纾ㄨ竟</td>
-            <td>閽㈠寲</td>
-          </tr>
-          <tr>
-            <td>鎶ュ簾鐜�%</td>
-            <td>0</td>
-            <td>0</td>
-            <td>0</td>
-          </tr>
-        </table>
-      </div>
-    </div>
-    <div>
-      <vxe-grid
-          max-height="100%"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-
-      >
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li  v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{key+':  '}}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-        </template>
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-
-
-      </vxe-grid>
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#tab_div{
-  text-align: center;
-  margin: 0 auto;
-  width: 50%;
-}
-.tab_bfl{
-  text-align: center;
-  width: 100%;
-border-collapse: collapse;
-}
-
-.tab_bfl td{
-  border: 1px solid black;
-}
-
-.tab_bfl tr{
-  border: 1px;
-  height: 30px;
-}
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/Replenish/AddReplenish.vue b/UI-Project/src/views/pp/Replenish/AddReplenish.vue
deleted file mode 100644
index 42b0bc3..0000000
--- a/UI-Project/src/views/pp/Replenish/AddReplenish.vue
+++ /dev/null
@@ -1,308 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: 80 },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '鎶ュ伐鏃堕棿', width: 120,title: '鎶ュ伐鏃堕棿', sortable: true},
-    {field: '閿�鍞崟鍙�', width: 120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '娴佺▼鍗″彿',width: 120, title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '椤圭洰鍚嶇О', width: 130,title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧鍚嶇О',width: 120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '鎶ュ伐缂栧彿', width: 100,title: '鎶ュ伐缂栧彿', sortable: true,showOverflow:"ellipsis"},
-    {field: '搴忓彿', width: 70,title: '搴忓彿', sortable: true},
-    {field: '鍗曠墖鍚嶇О',width: 100, title: '鍗曠墖鍚嶇О', sortable: true},
-    {field: '妤煎眰缂栧彿',width: 120, title: '妤煎眰缂栧彿', sortable: true,showOverflow:"ellipsis"},
-    {field: '鏍囪', width: 80,title: '鏍囪', sortable: true},
-    {field: '鐗囨爣璁�',width: 90, title: '鐗囨爣璁�', sortable: true},
-    {field: '娴佺▼鍗℃暟閲�',width: 120, title: '娴佺▼鍗℃暟閲�', sortable: true},
-    {field: '瀹�',width: 80, title: '瀹�', sortable: true},
-    {field: '楂�',width: 80, title: '楂�', sortable: true},
-    {field: '闈㈢Н',width: 80, title: '闈㈢Н', sortable: true},
-    {field: '褰㈢姸',width: 80, title: '褰㈢姸', sortable: true},
-    {field: '娆$牬鏁伴噺',width: 120, title: '娆$牬鏁伴噺', sortable: true},
-    {field: '娆$牬绫诲瀷',width: 120, title: '娆$牬绫诲瀷', sortable: true},
-    {field: '娆$牬鍘熷洜',width: 120, title: '娆$牬鍘熷洜', sortable: true},
-    {field: '璐d换璁惧',width: 120, title: '璐d换璁惧', sortable: true},
-    {field: '鎶ュ伐宸ュ簭',width: 120, title: '鎶ュ伐宸ュ簭', sortable: true},
-    {field: '璐d换宸ュ簭',width: 120, title: '璐d换宸ュ簭', sortable: true},
-    {field: '璐d换鐝粍',width: 120, title: '璐d换鐝粍', sortable: true},
-    {field: '璐d换浜哄憳',width: 120, title: '璐d换浜哄憳', sortable: true},
-    {field: '璐ㄦ鍛�',width: 100, title: '璐ㄦ鍛�', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    buttons: [
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      鎶ュ伐鏃堕棿:'2021-01-01',
-      閿�鍞崟鍙�:'NG23010101',
-      娴佺▼鍗″彿:'NG23010101A01',
-      椤圭洰鍚嶇О:'xxxx',
-      浜у搧鍚嶇О:"xxxxxxxxx",
-      鎶ュ伐缂栧彿:"BG2301010001",
-      妤煎眰缂栧彿:"D4-010-01",
-      闈㈢Н:'23.11',
-      鎶ュ伐宸ュ簭:'閽㈠寲',
-      璐ㄦ鍛�:"寮犱笁",
-      搴忓彿:'1',
-      鍗曠墖鍚嶇О: '6mm鐧界幓骞抽挗(澶�)',
-      鏍囪: '1',
-      鐗囨爣璁�: '(澶�)',
-      娴佺▼鍗℃暟閲�: '11',
-      瀹�: '575',
-      楂�:"2241",
-      褰㈢姸: '鏅舰',
-      娆$牬鏁伴噺: '12',
-      娆$牬绫诲瀷: '鏈哄櫒',
-      娆$牬鍘熷洜:'姘旀场瓒呮爣',
-      璐d换宸ュ簭:'涓┖',
-      璐d换鐝粍:'涓┖涓�鐝�',
-      璐d换浜哄憳:'',
-      璐d换璁惧:'涓┖3#绾�',
-    },
-    {
-      鎶ュ伐鏃堕棿:'2021-01-01',
-      閿�鍞崟鍙�:'NG23010101',
-      娴佺▼鍗″彿:'NG23010101A01',
-      椤圭洰鍚嶇О:'xxxx',
-      浜у搧鍚嶇О:"xxxxxxxxx",
-      鎶ュ伐缂栧彿:"BG2301010001",
-      妤煎眰缂栧彿:"D4-010-01",
-      闈㈢Н:'23.11',
-      鎶ュ伐宸ュ簭:'閽㈠寲',
-      璐ㄦ鍛�:"寮犱笁",
-      搴忓彿:'1',
-      鍗曠墖鍚嶇О: '6mm鐧界幓骞抽挗(澶�)',
-      鏍囪: '1',
-      鐗囨爣璁�: '(澶�)',
-      娴佺▼鍗℃暟閲�: '11',
-      瀹�: '575',
-      楂�:"2241",
-      褰㈢姸: '鏅舰',
-      娆$牬鏁伴噺: '12',
-      娆$牬绫诲瀷: '鏈哄櫒',
-      娆$牬鍘熷洜:'姘旀场瓒呮爣',
-      璐d换宸ュ簭:'涓┖',
-      璐d换鐝粍:'涓┖涓�鐝�',
-      璐d换浜哄憳:'',
-      璐d换璁惧:'涓┖3#绾�',
-    },
-    {
-      鎶ュ伐鏃堕棿:'2021-01-01',
-      閿�鍞崟鍙�:'NG23010101',
-      娴佺▼鍗″彿:'NG23010101A01',
-      椤圭洰鍚嶇О:'xxxx',
-      浜у搧鍚嶇О:"xxxxxxxxx",
-      鎶ュ伐缂栧彿:"BG2301010001",
-      妤煎眰缂栧彿:"D4-010-01",
-      闈㈢Н:'23.11',
-      鎶ュ伐宸ュ簭:'閽㈠寲',
-      璐ㄦ鍛�:"寮犱笁",
-      搴忓彿:'1',
-      鍗曠墖鍚嶇О: '6mm鐧界幓骞抽挗(澶�)',
-      鏍囪: '1',
-      鐗囨爣璁�: '(澶�)',
-      娴佺▼鍗℃暟閲�: '11',
-      瀹�: '575',
-      楂�:"2241",
-      褰㈢姸: '鏅舰',
-      娆$牬鏁伴噺: '12',
-      娆$牬绫诲瀷: '鏈哄櫒',
-      娆$牬鍘熷洜:'姘旀场瓒呮爣',
-      璐d换宸ュ簭:'涓┖',
-      璐d换鐝粍:'涓┖涓�鐝�',
-      璐d换浜哄憳:'',
-      璐d换璁惧:'涓┖3#绾�',
-    },
-    {
-      鎶ュ伐鏃堕棿:'2021-01-01',
-      閿�鍞崟鍙�:'NG23010101',
-      娴佺▼鍗″彿:'NG23010101A01',
-      椤圭洰鍚嶇О:'xxxx',
-      浜у搧鍚嶇О:"xxxxxxxxx",
-      鎶ュ伐缂栧彿:"BG2301010001",
-      妤煎眰缂栧彿:"D4-010-01",
-      闈㈢Н:'23.11',
-      鎶ュ伐宸ュ簭:'閽㈠寲',
-      璐ㄦ鍛�:"寮犱笁",
-      搴忓彿:'1',
-      鍗曠墖鍚嶇О: '6mm鐧界幓骞抽挗(澶�)',
-      鏍囪: '1',
-      鐗囨爣璁�: '(澶�)',
-      娴佺▼鍗℃暟閲�: '11',
-      瀹�: '575',
-      楂�:"2241",
-      褰㈢姸: '鏅舰',
-      娆$牬鏁伴噺: '12',
-      娆$牬绫诲瀷: '鏈哄櫒',
-      娆$牬鍘熷洜:'姘旀场瓒呮爣',
-      璐d换宸ュ簭:'涓┖',
-      璐d换鐝粍:'涓┖涓�鐝�',
-      璐d换浜哄憳:'',
-      璐d换璁惧:'涓┖3#绾�',
-    },
-    {
-      鎶ュ伐鏃堕棿:'2021-01-01',
-      閿�鍞崟鍙�:'NG23010101',
-      娴佺▼鍗″彿:'NG23010101A01',
-      椤圭洰鍚嶇О:'xxxx',
-      浜у搧鍚嶇О:"xxxxxxxxx",
-      鎶ュ伐缂栧彿:"BG2301010001",
-      妤煎眰缂栧彿:"D4-010-01",
-      闈㈢Н:'23.11',
-      鎶ュ伐宸ュ簭:'閽㈠寲',
-      璐ㄦ鍛�:"寮犱笁",
-      搴忓彿:'1',
-      鍗曠墖鍚嶇О: '6mm鐧界幓骞抽挗(澶�)',
-      鏍囪: '1',
-      鐗囨爣璁�: '(澶�)',
-      娴佺▼鍗℃暟閲�: '11',
-      瀹�: '575',
-      楂�:"2241",
-      褰㈢姸: '鏅舰',
-      娆$牬鏁伴噺: '12',
-      娆$牬绫诲瀷: '鏈哄櫒',
-      娆$牬鍘熷洜:'姘旀场瓒呮爣',
-      璐d换宸ュ簭:'涓┖',
-      璐d换鐝粍:'涓┖涓�鐝�',
-      璐d换浜哄憳:'',
-      璐d换璁惧:'涓┖3#绾�',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['娴佺▼鍗℃暟閲�','闈㈢Н','娆$牬鏁伴噺']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/Replenish/PrintReplenishFlowCard.vue b/UI-Project/src/views/pp/Replenish/PrintReplenishFlowCard.vue
deleted file mode 100644
index be817fe..0000000
--- a/UI-Project/src/views/pp/Replenish/PrintReplenishFlowCard.vue
+++ /dev/null
@@ -1,257 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/processCard/PrintFlowCard', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    //  {title: '鎿嶄綔', width: 140, slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'salesOrderNo',width: 120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: 'productionOrderNo',width: 120, title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'customerName',width: 120, title: '瀹㈡埛鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'entryName',width: 120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'sliceMarking',width: 90, title: '鐗囨爣璁�', sortable: true,showOverflow:"ellipsis"},
-    {field: 'marking',width: 80, title: '鏍囪', sortable: true},
-    {field: 'pieces',width: 80, title: '鐗囨暟', sortable: true},
-    {field: 'area',width: 80, title: '闈㈢Н', sortable: true,showOverflow:"ellipsis"},
-    {field: 'productName',width: 120, title: '浜у搧鍚嶇О', sortable: true},
-    {field: 'floorNumber',width: 120, title: '妤煎眰缂栧彿', sortable: true},
-    {field: 'divider', width: 120,title: '鍒嗘灦鍛�', sortable: true},
-    {field: 'splittingTime',width: 120, title: '鍒嗘灦鏃堕棿', sortable: true},
-    {field: 'notes',width: 120, title: '澶囨敞', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    buttons: [
-      {
-        name:'瀹ゅ唴闈�',
-        dropdowns: [
-          { code: 'other1', name: '瀹ゅ唴闈�', type: 'text', },
-          { code: 'other2', name: '瀹ゅ闈�', type: 'text',  },
-        ]
-      },
-      {
-        name:'鎴愬搧鏍囩',
-        dropdowns: [
-          { code: 'other1', name: '鎴愬搧鏍囩', type: 'text', },
-          { code: 'other2', name: '鍗曠墖鏍囩', type: 'text',},
-        ]
-      },
-      {code: 'print_lck', name: '鎵撳嵃娴佺▼鍗�',status:'primary' },
-      {code: 'print_bq', name: '鎵撳嵃鏍囩',status:'primary' },
-      {code: 'print_qx', name: '涓嶅彲鎺掔増' ,status:'primary'},
-      {code: 'print_pb', name: '璁″垝鎺掔増',status:'primary' }
-    ],
-
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      salesOrderNo: 'NG231201',
-      productionOrderNo:'NG231201A',
-      processCard: 'NG231201A01',
-      customerName:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃',
-      entryName:'閾堕殕骞垮満',
-      sliceMarking:'(澶�)',
-      marking:'1',
-      pieces:'16',
-      area:'24.14',
-      productName: '10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      singlePieceName: '10mm瓒呯櫧UD60骞抽挗(澶�)',
-      floorNumber: '16-BSGB05',
-      divider: '鏅舰',
-      splittingTime: '2023-01-11',
-      notes: '',
-    },
-    {
-      salesOrderNo: 'NG231201',
-      productionOrderNo:'NG231201A',
-      processCard: 'NG231201A01',
-      customerName:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃',
-      entryName:'閾堕殕骞垮満',
-      sliceMarking:'(鍐�)',
-      marking:'2',
-      pieces:'16',
-      area:'24.14',
-      productName: '10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      singlePieceName: '10mm瓒呯櫧骞抽挗(鍐�)',
-      floorNumber: '16-BSGB05',
-      divider: '鏅舰',
-      splittingTime: '2023-01-11',
-      notes: '',
-    },
-    {
-      salesOrderNo: 'NG231201',
-      productionOrderNo:'NG231201A',
-      processCard: 'NG231201A02',
-      customerName:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃',
-      entryName:'閾堕殕骞垮満',
-      sliceMarking:'(澶�)',
-      marking:'1',
-      pieces:'6',
-      area:'24.14',
-      productName: '10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      singlePieceName: '10mm瓒呯櫧UD60骞抽挗(澶�)',
-      floorNumber: '16-BSGB05',
-      divider: '鏅舰',
-      splittingTime: '2023-01-11',
-      notes: '',
-    },
-    {
-      salesOrderNo: 'NG231201',
-      productionOrderNo:'NG231201A',
-      processCard: 'NG231201A02',
-      customerName:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃',
-      entryName:'閾堕殕骞垮満',
-      sliceMarking:'(鍐�)',
-      marking:'2',
-      pieces:'6',
-      area:'24.14',
-      productName: '10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      singlePieceName: '10mm瓒呯櫧骞抽挗(鍐�)',
-      floorNumber: '16-BSGB05',
-      divider: '鏅舰',
-      splittingTime: '2023-01-11',
-      notes: '',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['pieces','area']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">鎵撳嵃</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鎺掔増</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-
-.stnw{
-  height: 33px;
-  width: 80px;
-  background-color: #409eff;
-  color: white;
-  border: none;
-  border-radius: 5px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/Replenish/Replenish.vue b/UI-Project/src/views/pp/Replenish/Replenish.vue
deleted file mode 100644
index c5a29d7..0000000
--- a/UI-Project/src/views/pp/Replenish/Replenish.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/Replenish/SelectReplenish' }">琛ョ墖绠$悊</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/Replenish/AddReplenish' }">琛ョ墖鏂板</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/Replenish/PrintReplenishFlowCard' }">琛ョ墖鎵撳嵃</el-breadcrumb-item>
-        <el-breadcrumb-item :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">鎵撳嵃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/Replenish/SelectReplenish.vue b/UI-Project/src/views/pp/Replenish/SelectReplenish.vue
deleted file mode 100644
index f8a96f2..0000000
--- a/UI-Project/src/views/pp/Replenish/SelectReplenish.vue
+++ /dev/null
@@ -1,332 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 80, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-
-    {field: 'salesOrderNo', width: 120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: 'processCardNo',width: 120, title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'entryName', width: 130,title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'productName',width: 120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'reportingWorkNo', width: 100,title: '鎶ュ伐缂栧彿', sortable: true,showOverflow:"ellipsis"},
-    {field: 'serialNumber', width: 70,title: '搴忓彿', sortable: true},
-    {field: 'singlePieceName',width: 100, title: '鍗曠墖鍚嶇О', sortable: true},
-    {field: 'floorNumber',width: 120, title: '妤煎眰缂栧彿', sortable: true,showOverflow:"ellipsis"},
-    {field: 'marking', width: 80,title: '鏍囪', sortable: true},
-    {field: 'pieces',width: 90, title: '鐗囨爣璁�', sortable: true},
-    {field: 'processCardNumber',width: 120, title: '娴佺▼鍗℃暟閲�', sortable: true},
-    {field: 'width',width: 80, title: '瀹�', sortable: true},
-    {field: 'height',width: 80, title: '楂�', sortable: true},
-    {field: 'area',width: 80, title: '闈㈢Н', sortable: true},
-    {field: 'shape',width: 80, title: '褰㈢姸', sortable: true},
-    {field: 'numberBroken',width: 120, title: '娆$牬鏁伴噺', sortable: true},
-    {field: 'reasonType',width: 120, title: '娆$牬绫诲瀷', sortable: true},
-    {field: 'reasonDamage',width: 120, title: '娆$牬鍘熷洜', sortable: true},
-    {field: 'responsibilityDevice',width: 120, title: '璐d换璁惧', sortable: true},
-    {field: 'reportingProcess',width: 120, title: '鎶ュ伐宸ュ簭', sortable: true},
-    {field: 'responsibilityProcess',width: 120, title: '璐d换宸ュ簭', sortable: true},
-    {field: 'responsibilityTeams',width: 120, title: '璐d换鐝粍', sortable: true},
-    {field: 'responsibilityPersonnel',width: 120, title: '璐d换浜哄憳', sortable: true},
-    {field: 'qualityInspector',width: 100, title: '璐ㄦ鍛�', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      reportingWorkTime:'2021-01-01',
-      salesOrderNo:'NG23010101',
-      processCardNo:'NG23010101A01',
-      entryName:'xxxx',
-      productName:"xxxxxxxxx",
-      reportingWorkNo:"BG2301010001",
-      floorNumber:"D4-010-01",
-      area:'23.11',
-      reportingProcess:'閽㈠寲',
-      qualityInspector:"寮犱笁",
-      serialNumber:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '12',
-      completedQuantity: '1',
-      numberBroken:'2',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      reportingWorkTime:'2021-01-01',
-      salesOrderNo:'NG23010101',
-      processCardNo:'NG23010101A01',
-      entryName:'xxxx',
-      productName:"xxxxxxxxx",
-      reportingWorkNo:"BG2301010001",
-      floorNumber:"D4-010-01",
-      area:'23.11',
-      reportingProcess:'閽㈠寲',
-      qualityInspector:"寮犱笁",
-      serialNumber:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '12',
-      completedQuantity: '1',
-      numberBroken:'2',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      reportingWorkTime:'2021-01-01',
-      salesOrderNo:'NG23010101',
-      processCardNo:'NG23010101A01',
-      entryName:'xxxx',
-      productName:"xxxxxxxxx",
-      reportingWorkNo:"BG2301010001",
-      floorNumber:"D4-010-01",
-      area:'23.11',
-      reportingProcess:'閽㈠寲',
-      qualityInspector:"寮犱笁",
-      serialNumber:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '12',
-      completedQuantity: '1',
-      numberBroken:'2',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      reportingWorkTime:'2021-01-01',
-      salesOrderNo:'NG23010101',
-      processCardNo:'NG23010101A01',
-      entryName:'xxxx',
-      productName:"xxxxxxxxx",
-      reportingWorkNo:"BG2301010001",
-      floorNumber:"D4-010-01",
-      area:'23.11',
-      reportingProcess:'閽㈠寲',
-      qualityInspector:"寮犱笁",
-      serialNumber:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '12',
-      completedQuantity: '1',
-      numberBroken:'2',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['processCardNumber','numberBroken']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="head" >
-      <el-row :gutter="0">
-      <el-date-picker
-          v-model="value"
-          type="daterange"
-          start-placeholder="鎶ュ伐寮�濮嬫椂闂�"
-          end-placeholder="缁撴潫鏃堕棿"
-      />
-      &nbsp;
-      <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-    </div>
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#head{
-  width:40%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/machine/AddMachine.vue b/UI-Project/src/views/pp/machine/AddMachine.vue
deleted file mode 100644
index a1aa829..0000000
--- a/UI-Project/src/views/pp/machine/AddMachine.vue
+++ /dev/null
@@ -1,214 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-
-    {field: 'standardName', title: '鏍囧噯鍚嶇О',editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'deviceName', title: '璁惧鍚嶇О',editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'buyingTime', title: '璐拱鏃堕棿',editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'installationTime',title: '瀹夎鏃堕棿',editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'serviceInterval', title: '淇濆吇鍛ㄦ湡',editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'process', title: '鎵�鍦ㄥ伐鑹�', editRender: { name: 'input', attrs: { placeholder: '' } }},
-  ],
-  //琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['maintenanceFrequency','MaintenancesFrequency']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const size = ref<'default' | 'large' | 'small'>('default')
-
-const value1 = ref('')
-const dialogFormVisible = ref(false)
-const formLabelWidth = '140px'
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="dialogFormVisible = true" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/machine/AddMaintenanceAndRepair.vue b/UI-Project/src/views/pp/machine/AddMaintenanceAndRepair.vue
deleted file mode 100644
index 9855cd1..0000000
--- a/UI-Project/src/views/pp/machine/AddMaintenanceAndRepair.vue
+++ /dev/null
@@ -1,243 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: 'deviceName', width: 100,title: '璁惧鍚嶇О', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'types',width: 80, title: '绫诲瀷',editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'faultDate', width: 100,title: '鏁呴殰鏃ユ湡',editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'failureCause', width: 100,title: '鏁呴殰鍘熷洜', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'maintenanceDate',width: 100, title: '淇濆吇鏃ユ湡', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'maintenanceInstructions',width: 110, title: '淇濆吇璇存槑', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'RepairMaintenanceStartTime', width: 160,title: '缁翠慨/淇濆吇寮�濮嬫椂闂�', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'RepairMaintenanceEndTime',width: 160, title: '缁翠慨/淇濆吇缁撴潫鏃堕棿', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'process',width: 100, title: '鎵�鍦ㄥ伐鑹�', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'RepairMaintenancePersonnel',width: 150, title: '缁翠慨/淇濆吇浜哄憳', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'cost', title: '璐圭敤', editRender: { name: 'input', attrs: { placeholder: '' } }},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    buttons: [
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      deviceName: '',
-      types: '',
-      faultDate: '',
-      failureCause: '',
-      maintenanceDate:'',
-      maintenanceInstructions:'',
-      RepairMaintenanceStartTime:'',
-      RepairMaintenanceEndTime:'',
-      process:'',
-      RepairMaintenancePersonnel:'',
-      cost:'',
-
-    },
-    {
-      deviceName: '',
-      types: '',
-      faultDate: '',
-      failureCause: '',
-      maintenanceDate:'',
-      maintenanceInstructions:'',
-      RepairMaintenanceStartTime:'',
-      RepairMaintenanceEndTime:'',
-      process:'',
-      RepairMaintenancePersonnel:'',
-      cost:'',
-
-    },
-    {
-      deviceName: '',
-      types: '',
-      faultDate: '',
-      failureCause: '',
-      maintenanceDate:'',
-      maintenanceInstructions:'',
-      RepairMaintenanceStartTime:'',
-      RepairMaintenanceEndTime:'',
-      process:'',
-      RepairMaintenancePersonnel:'',
-      cost:'',
-
-    },
-    {
-      deviceName: '',
-      types: '',
-      faultDate: '',
-      failureCause: '',
-      maintenanceDate:'',
-      maintenanceInstructions:'',
-      RepairMaintenanceStartTime:'',
-      RepairMaintenanceEndTime:'',
-      process:'',
-      RepairMaintenancePersonnel:'',
-      cost:'',
-
-    },
-    {
-      deviceName: '',
-      types: '',
-      faultDate: '',
-      failureCause: '',
-      maintenanceDate:'',
-      maintenanceInstructions:'',
-      RepairMaintenanceStartTime:'',
-      RepairMaintenanceEndTime:'',
-      process:'',
-      RepairMaintenancePersonnel:'',
-      cost:'',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['maintenanceFrequency','MaintenancesFrequency']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const size = ref<'default' | 'large' | 'small'>('default')
-
-const value1 = ref('')
-const dialogFormVisible = ref(false)
-const formLabelWidth = '140px'
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="dialogFormVisible = true" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/machine/Machine.vue b/UI-Project/src/views/pp/machine/Machine.vue
deleted file mode 100644
index 069dbcd..0000000
--- a/UI-Project/src/views/pp/machine/Machine.vue
+++ /dev/null
@@ -1,61 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/machine/SelectMachine' }">璁惧绠$悊</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/machine/AddMachine' }">璁惧鏂板</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/machine/MaintenanceAndRepair' }">淇濆吇涓庣淮淇�</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/machine/AddMaintenanceAndRepair' }">淇濆吇涓庣淮淇柊澧�</el-breadcrumb-item>
-        <el-breadcrumb-item :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">鎵撳嵃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/machine/MaintenanceAndRepair.vue b/UI-Project/src/views/pp/machine/MaintenanceAndRepair.vue
deleted file mode 100644
index 76916e1..0000000
--- a/UI-Project/src/views/pp/machine/MaintenanceAndRepair.vue
+++ /dev/null
@@ -1,316 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 140, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-
-    {field: '璁惧鍚嶇О', width: 130,title: '璁惧鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '绫诲瀷',width: 120, title: '绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '鏁呴殰鏃ユ湡', width: 100,title: '鏁呴殰鏃ユ湡', sortable: true,showOverflow:"ellipsis"},
-    {field: '鏁呴殰鍘熷洜', width: 100,title: '鏁呴殰鍘熷洜', sortable: true},
-    {field: '淇濆吇鏃ユ湡',width: 100, title: '淇濆吇鏃ユ湡', sortable: true},
-    {field: '淇濆吇璇存槑',width: 120, title: '淇濆吇璇存槑', sortable: true,showOverflow:"ellipsis"},
-    {field: '缁翠慨淇濆吇寮�濮嬫椂闂�', width: 160,title: '缁翠慨/淇濆吇寮�濮嬫椂闂�', sortable: true},
-    {field: '缁翠慨淇濆吇缁撴潫鏃堕棿',width: 160, title: '缁翠慨/淇濆吇缁撴潫鏃堕棿', sortable: true},
-    {field: '鎵�鍦ㄥ伐鑹�',width: 120, title: '鎵�鍦ㄥ伐鑹�', sortable: true},
-    {field: '缁翠慨淇濆吇浜哄憳',width: 150, title: '缁翠慨/淇濆吇浜哄憳', sortable: true},
-    {field: '璐圭敤',width: 120, title: '璐圭敤', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      璁惧鍚嶇О: '閽㈠寲鐐�(22E)',
-      绫诲瀷: '缁翠慨',
-      鏁呴殰鏃ユ湡: '2022-03-16',
-      鏁呴殰鍘熷洜: '鍧忎簡',
-      淇濆吇鏃ユ湡:'',
-      淇濆吇璇存槑:'',
-      缁翠慨淇濆吇寮�濮嬫椂闂�:'2022-03-16',
-      缁翠慨淇濆吇缁撴潫鏃堕棿:'2022-03-16',
-      鎵�鍦ㄥ伐鑹�:'閽㈠寲',
-      缁翠慨淇濆吇浜哄憳:'SSS',
-      璐圭敤:'112',
-    },
-    {
-      璁惧鍚嶇О: '閽㈠寲鐐�(22E)',
-      绫诲瀷: '缁翠慨',
-      鏁呴殰鏃ユ湡: '2022-03-16',
-      鏁呴殰鍘熷洜: '鍧忎簡',
-      淇濆吇鏃ユ湡:'',
-      淇濆吇璇存槑:'',
-      缁翠慨淇濆吇寮�濮嬫椂闂�:'2022-03-16',
-      缁翠慨淇濆吇缁撴潫鏃堕棿:'2022-03-16',
-      鎵�鍦ㄥ伐鑹�:'閽㈠寲',
-      缁翠慨淇濆吇浜哄憳:'SSS',
-      璐圭敤:'112',
-    },
-    {
-      璁惧鍚嶇О: '閽㈠寲鐐�(22E)',
-      绫诲瀷: '缁翠慨',
-      鏁呴殰鏃ユ湡: '2022-03-16',
-      鏁呴殰鍘熷洜: '鍧忎簡',
-      淇濆吇鏃ユ湡:'',
-      淇濆吇璇存槑:'',
-      缁翠慨淇濆吇寮�濮嬫椂闂�:'2022-03-16',
-      缁翠慨淇濆吇缁撴潫鏃堕棿:'2022-03-16',
-      鎵�鍦ㄥ伐鑹�:'閽㈠寲',
-      缁翠慨淇濆吇浜哄憳:'SSS',
-      璐圭敤:'112',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['璐圭敤']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const size = ref<'default' | 'large' | 'small'>('default')
-
-const value1 = ref('')
-const dialogFormVisible = ref(false)
-const formLabelWidth = '140px'
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="dialogFormVisible = true" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-
-    <el-dialog v-model="dialogFormVisible" title="淇濆吇涓庣淮淇紪杈�">
-
-      <el-form :model="form">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="璁惧鍚嶇О" :label-width="formLabelWidth">
-              <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="绫诲瀷" :label-width="formLabelWidth">
-              <el-select v-model="form.region" placeholder="缁翠慨" style="width: 220px">
-                <el-option label="淇濆吇" value="shanghai" />
-                <el-option label="缁翠慨" value="mobian" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="鏁呴殰鏃ユ湡" :label-width="formLabelWidth">
-              <el-date-picker
-                  v-model="value1"
-                  type="date"
-                  placeholder="2023-01-01"
-                  :size="size"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏁呴殰鍘熷洜" :label-width="formLabelWidth">
-              <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="淇濆吇鏃ユ湡" :label-width="formLabelWidth">
-              <el-date-picker
-                  v-model="value1"
-                  type="date"
-                  placeholder="2023-02-01"
-                  :size="size"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="淇濆吇璇存槑" :label-width="formLabelWidth">
-              <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="淇濆吇/缁翠慨寮�濮嬫椂闂�" :label-width="formLabelWidth">
-              <el-date-picker
-                  v-model="value1"
-                  type="date"
-                  placeholder="2023-02-01"
-                  :size="size"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="淇濆吇/缁翠慨瀹屾垚鏃堕棿" :label-width="formLabelWidth">
-              <el-date-picker
-                  v-model="value1"
-                  type="date"
-                  placeholder="2023-02-01"
-                  :size="size"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="鎵�鍦ㄥ伐鑹�" :label-width="formLabelWidth">
-              <el-select v-model="form.region" placeholder="閽㈠寲" style="width: 220px">
-                <el-option label="鍒囧壊" value="shanghai" />
-                <el-option label="纾ㄨ竟" value="mobian" />
-                <el-option label="閽㈠寲" value="ganghua" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12"><el-form-item label="淇濆吇/缁翠慨浜哄憳" :label-width="formLabelWidth">
-            <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
-          </el-form-item></el-col>
-        </el-row>
-        <el-form-item label="璐圭敤" :label-width="formLabelWidth">
-          <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-      <span class="dialog-footer">
-        <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="dialogFormVisible = false">
-          纭
-        </el-button>
-      </span>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/machine/SelectMachine.vue b/UI-Project/src/views/pp/machine/SelectMachine.vue
deleted file mode 100644
index 8583b81..0000000
--- a/UI-Project/src/views/pp/machine/SelectMachine.vue
+++ /dev/null
@@ -1,274 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 140, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '璁惧缂栧彿', width: 120, title: '璁惧缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '鏍囧噯鍚嶇О',width: 120, title: '鏍囧噯鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '璁惧鍚嶇О', width: 130,title: '璁惧鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '璐拱鏃堕棿',width: 120, title: '璐拱鏃堕棿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '瀹夎鏃堕棿', width: 100,title: '瀹夎鏃堕棿', sortable: true,showOverflow:"ellipsis"},
-    {field: '浣跨敤鍛ㄦ湡', width: 100,title: '浣跨敤鍛ㄦ湡(骞�)', sortable: true},
-    {field: '浣跨敤鐘舵��',width: 100, title: '浣跨敤鐘舵��', sortable: true},
-    {field: '缁翠慨娆℃暟',width: 120, title: '缁翠慨娆℃暟', sortable: true,showOverflow:"ellipsis"},
-    {field: '淇濆吇娆℃暟', width: 120,title: '淇濆吇娆℃暟', sortable: true},
-    {field: '鏈�鍚庣淮淇椂闂�',width: 120, title: '鏈�鍚庣淮淇椂闂�', sortable: true},
-    {field: '鏈�鍚庝繚鍏绘椂闂�',width: 120, title: '鏈�鍚庝繚鍏绘椂闂�', sortable: true},
-    {field: '缁翠慨璐圭敤',width: 120, title: '缁翠慨璐圭敤', sortable: true},
-    {field: '淇濆吇璐圭敤',width: 120, title: '淇濆吇璐圭敤', sortable: true},
-    {field: '鎵�鍦ㄥ伐鑹�',width: 120, title: '鎵�鍦ㄥ伐鑹�', sortable: true},
-    {field: '浣滃簾鐘舵��',width: 120, title: '浣滃簾鐘舵��', sortable: true},
-  ],
-  //琛ㄥご鎸夐挳
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      "璁惧缂栧彿": 'SB2209211',
-      '鏍囧噯鍚嶇О': '閽㈠寲鐐�(22E)',
-      '璁惧鍚嶇О': '閽㈠寲鐐�(22E)',
-      '璐拱鏃堕棿': '2022-03-16',
-      '瀹夎鏃堕棿':'2022-03-16',
-      '浣跨敤鍛ㄦ湡':'313',
-      '浣跨敤鐘舵��':'浣跨敤涓�',
-      '缁翠慨娆℃暟':'0',
-      '淇濆吇娆℃暟':'0',
-      '鏈�鍚庣淮淇椂闂�':'',
-      '鏈�鍚庝繚鍏绘椂闂�':'',
-      '缁翠慨璐圭敤':'',
-      '淇濆吇璐圭敤':'',
-      '鎵�鍦ㄥ伐鑹�':'閽㈠寲',
-      '浣滃簾鐘舵��':'姝e父',
-    },
-    {
-      "璁惧缂栧彿": 'SB2209211',
-      '鏍囧噯鍚嶇О': '閽㈠寲鐐�(22E)',
-      '璁惧鍚嶇О': '閽㈠寲鐐�(22E)',
-      '璐拱鏃堕棿': '2022-03-16',
-      '瀹夎鏃堕棿':'2022-03-16',
-      '浣跨敤鍛ㄦ湡':'313',
-      '浣跨敤鐘舵��':'浣跨敤涓�',
-      '缁翠慨娆℃暟':'0',
-      '淇濆吇娆℃暟':'0',
-      '鏈�鍚庣淮淇椂闂�':'',
-      '鏈�鍚庝繚鍏绘椂闂�':'',
-      '缁翠慨璐圭敤':'',
-      '淇濆吇璐圭敤':'',
-      '鎵�鍦ㄥ伐鑹�':'閽㈠寲',
-      '浣滃簾鐘舵��':'姝e父',
-    },
-    {
-      "璁惧缂栧彿": 'SB2209211',
-      '鏍囧噯鍚嶇О': '閽㈠寲鐐�(22E)',
-      '璁惧鍚嶇О': '閽㈠寲鐐�(22E)',
-      '璐拱鏃堕棿': '2022-03-16',
-      '瀹夎鏃堕棿':'2022-03-16',
-      '浣跨敤鍛ㄦ湡':'313',
-      '浣跨敤鐘舵��':'浣跨敤涓�',
-      '缁翠慨娆℃暟':'0',
-      '淇濆吇娆℃暟':'0',
-      '鏈�鍚庣淮淇椂闂�':'',
-      '鏈�鍚庝繚鍏绘椂闂�':'',
-      '缁翠慨璐圭敤':'',
-      '淇濆吇璐圭敤':'',
-      '鎵�鍦ㄥ伐鑹�':'閽㈠寲',
-      '浣滃簾鐘舵��':'姝e父',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['缁翠慨娆℃暟','淇濆吇娆℃暟','缁翠慨璐圭敤','淇濆吇璐圭敤']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const size = ref<'default' | 'large' | 'small'>('default')
-
-const value1 = ref('')
-const dialogFormVisible = ref(false)
-const formLabelWidth = '140px'
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="dialogFormVisible = true" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-
-    <el-dialog v-model="dialogFormVisible" title="璁惧缂栬緫">
-      <el-form :model="form">
-        <el-form-item label="鏍囧噯鍚嶇О" :label-width="formLabelWidth">
-          <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
-        </el-form-item>
-        <el-form-item label="璁惧鍚嶇О" :label-width="formLabelWidth">
-          <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
-        </el-form-item>
-        <el-form-item label="璐拱鏃堕棿" :label-width="formLabelWidth">
-          <el-date-picker
-              v-model="value1"
-              type="date"
-              placeholder="2023-01-01"
-              :size="size"
-          />
-        </el-form-item>
-        <el-form-item label="瀹夎鏃堕棿" :label-width="formLabelWidth">
-          <el-date-picker
-              v-model="value1"
-              type="date"
-              placeholder="2023-02-01"
-              :size="size"
-          />
-        </el-form-item>
-        <el-form-item label="淇濆吇鍛ㄦ湡" :label-width="formLabelWidth">
-          <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
-        </el-form-item>
-        <el-form-item label="鎵�鍦ㄥ伐鑹�" :label-width="formLabelWidth">
-          <el-select v-model="form.region" placeholder="閽㈠寲" style="width: 220px">
-            <el-option label="鍒囧壊" value="shanghai" />
-            <el-option label="纾ㄨ竟" value="mobian" />
-            <el-option label="閽㈠寲" value="ganghua" />
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-      <span class="dialog-footer">
-        <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="dialogFormVisible = false">
-          纭
-        </el-button>
-      </span>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/AddProcessCard.vue b/UI-Project/src/views/pp/processCard/AddProcessCard.vue
deleted file mode 100644
index 94408ab..0000000
--- a/UI-Project/src/views/pp/processCard/AddProcessCard.vue
+++ /dev/null
@@ -1,172 +0,0 @@
-<script setup>
-import {ArrowLeftBold} from "@element-plus/icons-vue";
-import {useRouter} from "vue-router";
-const router = useRouter()
-let flag = $ref(true)
-function intoCreateProduct(){
-  if(flag){
-    router.push('/main/processCard/SplittingDetails')
-  }else {
-    router.push('/main/processCard/SplittingDetails')
-  }
-  flag=!flag
-}
-const tableData = [
-  {
-    processCard: 'NG231201A01',
-    orderSequence: '1',
-    landingSequence: '1',
-    floorNumber: '14-BSGB05',
-    shape: '鏅舰',
-    longSide: '5000',
-    shortSide: '4400',
-    total: '24',
-    totalThickness: '26',
-  },
-  {
-    processCard: 'NG231201A01',
-    orderSequence: '2',
-    landingSequence: '2',
-    floorNumber: '15-BSGB05',
-    shape: '鏅舰',
-    longSide: '5000',
-    shortSide: '4400',
-    total: '24',
-    totalThickness: '26',
-  },
-  {
-    processCard: 'NG231201A02',
-    orderSequence: '3',
-    landingSequence: '3',
-    floorNumber: '16-BSGB05',
-    shape: '鏅舰',
-    longSide: '5000',
-    shortSide: '4400',
-    total: '24',
-    totalThickness: '26',
-  },
-]
-const tableData2 = [
-  {
-    orderSequence: '4',
-    floorNumber: '17-BSGB08',
-    shape: '鏅舰',
-    longSide: '4600',
-    shortSide: '3880',
-    undividedQuantity: '15',
-    undividedArea: '99.84',
-    totalThickness:'28',
-    glassThickness:'24',
-    undividedWeight:'111'
-  },
-  {
-    orderSequence: '5',
-    floorNumber: '18-BSGB08',
-    shape: '鏅舰',
-    longSide: '4600',
-    shortSide: '3880',
-    undividedQuantity: '15',
-    undividedArea: '99.84',
-    totalThickness:'28',
-    glassThickness:'24',
-    undividedWeight:'111'
-  },
-  {
-    orderSequence: '6',
-    floorNumber: '19-BSGB08',
-    shape: '鏅舰',
-    longSide: '4600',
-    shortSide: '3880',
-    undividedQuantity: '15',
-    undividedArea: '99.84',
-    totalThickness:'28',
-    glassThickness:'24',
-    undividedWeight:'111'
-  },
-]
-</script>
-
-<template>
-  <div>
-    <div class="header">
-
-      <el-button
-          style="float: left"
-          @click="intoCreateProduct"
-          id="searchButton1"
-          type="primary"
-          :icon="ArrowLeftBold"
-          round >
-        {{flag?'杩斿洖':'杩斿洖'}}
-      </el-button>
-      <el-button type="primary">淇濆瓨鍒嗘灦</el-button>
-      <el-button type="primary">鍒嗘灦姹囨��</el-button>
-      <el-button type="primary">宸︿晶鍏ㄩ��</el-button>
-      <el-button type="primary">鍙充晶鍏ㄩ��</el-button>
-    </div>
-    <div class="common-layout">
-      <el-container height="100%">
-        <el-aside width="44%" style="">
-          <el-table :data="tableData" border style="width: 100%" height="100%">
-            <el-table-column sortable prop="processCard" label="娴佺▼鍗″彿" width="120" />
-            <el-table-column prop="orderSequence" label="璁㈠簭" width="60" />
-            <el-table-column prop="landingSequence" label="钀芥灦椤哄簭" width="85" />
-            <el-table-column prop="floorNumber" label="妤煎眰缂栧彿" :show-overflow-tooltip='true' width="120" />
-            <el-table-column prop="shape" label="褰㈢姸" width="65" />
-            <el-table-column prop="longSide" label="闀胯竟" width="65" />
-            <el-table-column prop="shortSide" label="鐭竟" width="65" />
-            <el-table-column prop="total" label="鎬绘暟閲�" width="75" />
-            <el-table-column prop="totalThickness" label="鎬诲帤搴�" width="75" />
-          </el-table><!-- <h1>{{msg}}</h1> -->
-        </el-aside>
-
-        <el-main width="12%" style="">
-          <span>鏈垎鏁伴噺:45</span><br>
-          <span>鏈垎閲嶉噺:333</span><br>
-          <span>閫変腑鏁伴噺:</span><br>
-          <el-button type="primary"> 鈫� </el-button>
-          <br>
-          <br>
-          <el-button type="primary">  鈫� </el-button>
-          <br>
-          <br>
-          <el-button type="primary">寤虹珛娴佺▼鍗�</el-button>
-        </el-main>
-
-        <el-aside width="44%" style="">
-          <el-table :data="tableData2" border style="width: 100%" height="100%">
-            <el-table-column prop="orderSequence" label="璁㈠簭" width="60" />
-            <el-table-column prop="floorNumber" label="妤煎眰缂栧彿" :show-overflow-tooltip='true' width="100" />
-            <el-table-column prop="shape" label="褰㈢姸" width="65" />
-            <el-table-column prop="longSide" label="闀胯竟" width="60" />
-            <el-table-column prop="shortSide" label="鐭竟" width="60" />
-            <el-table-column prop="undividedQuantity" label="寰呭垎鏁伴噺" width="85" />
-            <el-table-column prop="undividedArea" label="寰呭垎闈㈢Н" width="85" />
-            <el-table-column prop="totalThickness" label="鎬诲帤搴�" width="75" />
-            <el-table-column prop="glassThickness" label="鐜荤拑鍘氬害" width="85" />
-            <el-table-column prop="undividedWeight" label="寰呭垎閲嶉噺" width="85" />
-
-          </el-table><!-- <h1>{{msg}}</h1> -->
-        </el-aside>
-      </el-container>
-    </div>
-  </div>
-</template>
-
-<style scoped>
-.common-layout{
-  height: 100%;
-}
-
-.el-aside{
-  height: 100%;
-}
-
-.el-main{
-  height: 100%;
-  text-align: center;
-}
-
-
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/PrintFlowCard.vue b/UI-Project/src/views/pp/processCard/PrintFlowCard.vue
deleted file mode 100644
index 7f5d48c..0000000
--- a/UI-Project/src/views/pp/processCard/PrintFlowCard.vue
+++ /dev/null
@@ -1,256 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/processCard/PrintFlowCard', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '閿�鍞崟鍙�',width: 120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '鐢熶骇璁㈠崟鍙�',width: 140, title: '鐢熶骇璁㈠崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '娴佺▼鍗″彿',width: 120, title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '瀹㈡埛鍚嶇О',width: 120, title: '瀹㈡埛鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '椤圭洰鍚嶇О',width: 120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '鐗囨爣璁�',width: 90, title: '鐗囨爣璁�', sortable: true,showOverflow:"ellipsis"},
-    {field: '鏍囪',width: 80, title: '鏍囪', sortable: true},
-    {field: '鐗囨暟',width: 80, title: '鐗囨暟', sortable: true},
-    {field: '闈㈢Н',width: 80, title: '闈㈢Н', sortable: true,showOverflow:"ellipsis"},
-    {field: '浜у搧鍚嶇О',width: 120, title: '浜у搧鍚嶇О', sortable: true},
-    {field: '鍗曠墖鍚嶇О',width: 120, title: '鍗曠墖鍚嶇О', sortable: true},
-    {field: '妤煎眰缂栧彿',width: 120, title: '妤煎眰缂栧彿', sortable: true},
-    {field: '鍒嗘灦鍛�', width: 120,title: '鍒嗘灦鍛�', sortable: true},
-    {field: '鍒嗘灦鏃堕棿',width: 120, title: '鍒嗘灦鏃堕棿', sortable: true},
-    {field: '澶囨敞',width: 120, title: '澶囨敞', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    buttons: [
-    {
-        name:'瀹ゅ唴闈�',
-        dropdowns: [
-          { code: 'other1', name: '瀹ゅ唴闈�', type: 'text', },
-          { code: 'other2', name: '瀹ゅ闈�', type: 'text',  },
-        ]
-      },
-      {
-        name:'鎴愬搧鏍囩',
-        dropdowns: [
-          { code: 'other1', name: '鎴愬搧鏍囩', type: 'text', },
-          { code: 'other2', name: '鍗曠墖鏍囩', type: 'text',},
-        ]
-      },
-      {code: 'print_lck', name: '鎵撳嵃娴佺▼鍗�',status:'primary' },
-      {code: 'print_bq', name: '鎵撳嵃鏍囩',status:'primary' }
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      鐢熶骇璁㈠崟鍙�:'NG231201A',
-      娴佺▼鍗″彿: 'NG231201A01',
-      瀹㈡埛鍚嶇О:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃',
-      椤圭洰鍚嶇О:'閾堕殕骞垮満',
-      鐗囨爣璁�:'(澶�)',
-      鏍囪:'1',
-      鐗囨暟:'16',
-      闈㈢Н:'24.14',
-      浜у搧鍚嶇О: '10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鍗曠墖鍚嶇О: '10mm瓒呯櫧UD60骞抽挗(澶�)',
-      妤煎眰缂栧彿: '16-BSGB05',
-      鍒嗘灦鍛�: '寮犱笁',
-      鍒嗘灦鏃堕棿: '2023-01-11',
-      澶囨敞: '',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      鐢熶骇璁㈠崟鍙�:'NG231201A',
-      娴佺▼鍗″彿: 'NG231201A01',
-      瀹㈡埛鍚嶇О:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃',
-      椤圭洰鍚嶇О:'閾堕殕骞垮満',
-      鐗囨爣璁�:'(澶�)',
-      鏍囪:'1',
-      鐗囨暟:'16',
-      闈㈢Н:'24.14',
-      浜у搧鍚嶇О: '10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鍗曠墖鍚嶇О: '10mm瓒呯櫧UD60骞抽挗(澶�)',
-      妤煎眰缂栧彿: '16-BSGB05',
-      鍒嗘灦鍛�: '寮犱笁',
-      鍒嗘灦鏃堕棿: '2023-01-11',
-      澶囨敞: '',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      鐢熶骇璁㈠崟鍙�:'NG231201A',
-      娴佺▼鍗″彿: 'NG231201A01',
-      瀹㈡埛鍚嶇О:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃',
-      椤圭洰鍚嶇О:'閾堕殕骞垮満',
-      鐗囨爣璁�:'(澶�)',
-      鏍囪:'1',
-      鐗囨暟:'16',
-      闈㈢Н:'24.14',
-      浜у搧鍚嶇О: '10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鍗曠墖鍚嶇О: '10mm瓒呯櫧UD60骞抽挗(澶�)',
-      妤煎眰缂栧彿: '16-BSGB05',
-      鍒嗘灦鍛�: '寮犱笁',
-      鍒嗘灦鏃堕棿: '2023-01-11',
-      澶囨敞: '',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      鐢熶骇璁㈠崟鍙�:'NG231201A',
-      娴佺▼鍗″彿: 'NG231201A01',
-      瀹㈡埛鍚嶇О:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃',
-      椤圭洰鍚嶇О:'閾堕殕骞垮満',
-      鐗囨爣璁�:'(澶�)',
-      鏍囪:'1',
-      鐗囨暟:'16',
-      闈㈢Н:'24.14',
-      浜у搧鍚嶇О: '10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      鍗曠墖鍚嶇О: '10mm瓒呯櫧UD60骞抽挗(澶�)',
-      妤煎眰缂栧彿: '16-BSGB05',
-      鍒嗘灦鍛�: '寮犱笁',
-      鍒嗘灦鏃堕棿: '2023-01-11',
-      澶囨敞: '',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['鐗囨暟','闈㈢Н']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">鎵撳嵃</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鎺掔増</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-
-.stnw{
-  height: 33px;
-  width: 80px;
-  background-color: #409eff;
-  color: white;
-  border: none;
-  border-radius: 5px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/PrintProcess.vue b/UI-Project/src/views/pp/processCard/PrintProcess.vue
deleted file mode 100644
index a52f279..0000000
--- a/UI-Project/src/views/pp/processCard/PrintProcess.vue
+++ /dev/null
@@ -1,954 +0,0 @@
-<script setup>
-
-</script>
-
-<template>
-  <div class="shu" style="height:0px;"></div>
-  <div id="big" class="big">
-    <div id="content">
-      <table id="tab" border="1">
-        <thead>
-        <tr>
-          <td colspan="22">
-            <div class="bj">1</div>
-            <h1>娲涢槼鍖楁柟鐜荤拑鎶�鏈偂浠芥湁闄愬叕鍙�</h1>
-            <h1>鐢熶骇娴佺▼鍗�</h1>
-            <div id="top">
-              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>鍖呰鏂瑰紡锛氶搧鏋�</span><span
-                style="float: right;position: relative;right: 5px;">娴佺▼鍗″彿锛�<label class="liuchengka"
-                                                                                    for="">NG23120401A01</label>/1鍏�2鏋�</span></div>
-          </td>
-        </tr>
-        <tr style="height:25px;">
-          <td style="min-width:70px;">瀹㈡埛鍚嶇О锛�</td>
-          <td style="min-width:200px;">閽㈠寲璁惧浜嬩笟閮�</td>
-          <td style="min-width:200px;" colspan="2">椤圭洰鍚嶇О锛氶挗鍖栬澶囦簨涓氶儴(23-12-1-01)</td>
-          <td style="min-width:75px;">宸ヨ壓娴佺▼锛�</td>
-          <td style="min-width:550px;" colspan="17">鍒囧壊-&gt;纾ㄨ竟-&gt;鎵撳瓟-&gt;閽㈠寲-&gt;鍖呰</td>
-        </tr>
-        <tr style="height:25px;">
-          <td>纾�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;杈癸細</td>
-          <td>绮炬姏</td>
-          <td colspan="2" style="word-wrap: break-word;">鍗曠墖鍚嶇О:<span class="dpmc">5mm娆ф床鐏板钩閽�</span></td>
-          <td>鎴愬搧鍚嶇О锛�</td>
-          <td class="chengpinmingcheng" colspan="17" style="word-wrap: break-word;">5mm娆ф床鐏板钩閽�</td>
-        </tr>
-        <tr>
-          <td colspan="22">
-            <table border="1" style="border-collapse: collapse;" frame="below">
-              <tbody>
-              <tr>
-                <td rowspan="2" style="min-width:70px;">搴忓彿</td>
-                <td rowspan="2" style="min-width:200px;">缂栧彿</td>
-                <td rowspan="2" style="min-width:100px;">瀹斤紙寮ч暱锛�*楂�</td>
-                <td rowspan="2" style="min-width:49px;">鏁伴噺</td>
-                <td rowspan="2" style="min-width:49px;">闈㈢Н</td>
-                <td rowspan="2" style="min-width:49px;">鍛ㄩ暱</td>
-                <td rowspan="2" style="min-width:73px;">鍗婂緞</td>
-                <td rowspan="2" style="min-width:73px;">澶囨敞</td>
-                <td style="min-width:59px;" colspan="2">鍒囧壊</td>
-                <td style="min-width:59px;" colspan="2">纾ㄨ竟</td>
-                <td style="min-width:59px;" colspan="2">鎵撳瓟</td>
-                <td style="min-width:59px;" colspan="2">閽㈠寲</td>
-                <td style="min-width:59px;" colspan="2">鍖呰</td>
-                <td style="min-width:59px;" colspan="2"></td>
-                <td style="min-width:59px;" colspan="2"></td>
-                <td style="min-width:59px;" colspan="2"></td>
-              </tr>
-              <tr>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-              </tr>
-              </tbody>
-            </table>
-          </td>
-        </tr>
-        </thead>
-        <tbody>
-        <tr>
-          <td colspan="22">
-            <table class="tab" border="1" frame="below">
-              <tbody>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">2</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-1瑙嗙獥鐜荤拑ACB50.10.02-003</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1698</span>*339</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">1.15</td>
-                <td style="min-width:49px;height:35.5px;">8.15</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">瑙佸浘A,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">1</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-1瑙嗙獥鐜荤拑ACB50.10.01-003</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1428</span>*339</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">3</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">1.45</td>
-                <td style="min-width:49px;height:35.5px;">10.6</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">瑙佸浘A,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">3</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-2瑙嗙獥鐜荤拑ACB50.10.01-003</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1428</span>*339</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">3</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">1.45</td>
-                <td style="min-width:49px;height:35.5px;">10.6</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">瑙佸浘A,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">5</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-3瑙嗙獥鐜荤拑ACB50.10.01-003</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1428</span>*339</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">3</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">1.45</td>
-                <td style="min-width:49px;height:35.5px;">10.6</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">瑙佸浘A,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">4</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-2瑙嗙獥鐜荤拑ACB50.10.03-003</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1338</span>*339</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.91</td>
-                <td style="min-width:49px;height:35.5px;">6.71</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">瑙佸浘A,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">6</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-3瑙嗙獥鐜荤拑ACB50.10.03-003</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1338</span>*339</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.91</td>
-                <td style="min-width:49px;height:35.5px;">6.71</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">瑙佸浘A,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              </tbody>
-            </table>
-          </td>
-        </tr>
-        </tbody>
-        <tfoot>
-        <tr style="height: 20px;line-height: 20px;">
-          <td colspan="22">鏁伴噺锛�<label class="zsl" for="">15鐗�</label>&nbsp;&nbsp;&nbsp;閲嶉噺锛�<label class="zzl"
-                                                                                                    for="">91.50kg</label>&nbsp;&nbsp;&nbsp;闈㈢Н锛�<label class="zmj" for="">7.32m虏</label></td>
-        </tr>
-        <tr>
-          <td width="50%" style="word-wrap: break-word;;" colspan="5" rowspan="7"><textarea
-              style="width: 100%; height: 90%; overflow: hidden; border: 0px;font-size:12px;">1)鎸変紒鏍囥��
-2)鍚勫伐搴忥細鎴愬搧鐜荤拑璐寸紪鍙峰強灏哄鏍囩銆�
-3)纾ㄨ竟锛氭鍗曞锛岄珮灏哄鍏樊鍧囦负锛�0~-1锛夈��
-4)閽㈠寲锛氬寳鐜诲晢鏍囷紝浣嶇疆濡傚浘銆�
-
-</textarea></td>
-        </tr>
-        <tr>
-          <td width="70px" height="23px;">瀹屽伐绛惧悕</td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-        </tr>
-        <tr>
-          <td>鎺ユ敹绛惧悕</td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-        </tr>
-        <tr>
-          <td>鐢熶骇鏃ユ湡</td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-        </tr>
-        <tr>
-          <td>璐ㄦ绛惧悕</td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-        </tr>
-        <tr>
-          <td>鏋跺瓙缂栧彿</td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-        </tr>
-        <tr height="65px">
-          <td colspan="22"><span id="qrcode1" class="qr" title="NG23120401A01/1"><canvas width="60" height="60"
-                                                                                         style="display: none;"></canvas><img alt="Scan me!"
-                                                                                                                              src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAulJREFUaEPtmuFywyAMg5P3f+jsmjU7cG1/AtLrErqfLSwIW5bsdF2WZVs6/rbtd9u6rtXu6PNj0fF9ttce53gG/W8FxuO0cwIubz67KXvbx9roc/X7MuJq9rSeeX/GEeHWzXb9ZQFbTlrutQKj9V5kVQ4Tp73vXyL8Bfy8bntbrbfrrScaqfVCDZLLYXXztICJby0VX+G7Us2junNKhC8PmNwKRSGiROa0IomzZ4nqiHrmU3XYGozoEJ61/AhguiX1tiPfm1VpdQ8VSgXDaV6aZOvfAN5IDJVrc7omcVu1rNWu9jxjnR6w2ntSR6PIFVX8qBBGSUnObK/SNsK3B2zbwxYdLV2Pp7NllJVotl62zQAl6+RuKQIUjXiUlKY15Ou7AB8prWph5lO9qpm5o955GHE10+s/Dk8HmNKD5JpSu4fDZFeJsx4l5Cp9G8DREI/4pVrJKHPKCk8emZqLlrOEU8vbAlaNB/nc1qL3iPAZ/W35fyKZq/zAdIB7ORzpMfGpvO1RbipDBusGuzn8Bfx8i3iZCFMzTemn7i+rP8lRa0MimRv1dentAKsS0WrcM4dGdjTKmpEWNmwPe6cK6sW19NKKvqrVH2daquMiDlMj4B2YOKmanWoWTkO82wEm43FWsfIiTO1dL4ezbEPjcTvAdsRDsysyFtQ3e7ev0qaHsy/WcjrANKZVU5pckxd5VYdJd2mwWFXp6QCTLJG+Eq+yEQ9VYdXEUKaU36PxuB1gtXmwwMl6Eq+UEU9v9c6s6PALcfK5WTGjlH0rYFU/Rznr9cMRz4mbkT/PLnL4x6Vqu5hZy48CjjSPHFbrjMtrD6M6oeowucT9maTDKhB1XWUCzK/pLwGYtDS69cxTUzapLwW8Zw9HeDrAxPmokpY6TNJGHkCdjLyFw0rhoDSnIkUpLRmPXh0eSWnKDlXyIm8gcTgCEGnlZQET0F4eZfyi1KXUVw1LefbTvLSaftXDQYe/gIM0JA6X234ACjSUFgdqRbsAAAAASUVORK5CYII="
-                                                                                                                              style="display: block;"><span class="ma">NG23120401A01/1</span></span></td>
-        </tr>
-        </tfoot>
-      </table>
-    </div>
-  </div>
-  <div class="shu" style="height:0px;"></div>
-  <div id="big" class="big">
-    <div id="content">
-      <table id="tab" border="1">
-        <thead>
-        <tr>
-          <td colspan="22">
-            <div class="bj">1</div>
-            <h1>娲涢槼鍖楁柟鐜荤拑鎶�鏈偂浠芥湁闄愬叕鍙�</h1>
-            <h1>鐢熶骇娴佺▼鍗�</h1>
-            <div id="top">
-              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>鍖呰鏂瑰紡锛氶搧鏋�</span><span
-                style="float: right;position: relative;right: 5px;">娴佺▼鍗″彿锛�<label class="liuchengka"
-                                                                                    for="">NG23120401B02</label>/1鍏�2鏋�</span></div>
-          </td>
-        </tr>
-        <tr style="height:25px;">
-          <td style="min-width:70px;">瀹㈡埛鍚嶇О锛�</td>
-          <td style="min-width:200px;">閽㈠寲璁惧浜嬩笟閮�</td>
-          <td style="min-width:200px;" colspan="2">椤圭洰鍚嶇О锛氶挗鍖栬澶囦簨涓氶儴(23-12-1-01)</td>
-          <td style="min-width:75px;">宸ヨ壓娴佺▼锛�</td>
-          <td style="min-width:550px;" colspan="17">鍒囧壊-&gt;纾ㄨ竟-&gt;閽㈠寲-&gt;鍖呰</td>
-        </tr>
-        <tr style="height:25px;">
-          <td>纾�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;杈癸細</td>
-          <td>绮炬姏</td>
-          <td colspan="2" style="word-wrap: break-word;">鍗曠墖鍚嶇О:<span class="dpmc">5mm娆ф床鐏板钩閽�</span></td>
-          <td>鎴愬搧鍚嶇О锛�</td>
-          <td class="chengpinmingcheng" colspan="17" style="word-wrap: break-word;">5mm娆ф床鐏板钩閽�</td>
-        </tr>
-        <tr>
-          <td colspan="22">
-            <table border="1" style="border-collapse: collapse;" frame="below">
-              <tbody>
-              <tr>
-                <td rowspan="2" style="min-width:70px;">搴忓彿</td>
-                <td rowspan="2" style="min-width:200px;">缂栧彿</td>
-                <td rowspan="2" style="min-width:100px;">瀹斤紙寮ч暱锛�*楂�</td>
-                <td rowspan="2" style="min-width:49px;">鏁伴噺</td>
-                <td rowspan="2" style="min-width:49px;">闈㈢Н</td>
-                <td rowspan="2" style="min-width:49px;">鍛ㄩ暱</td>
-                <td rowspan="2" style="min-width:73px;">鍗婂緞</td>
-                <td rowspan="2" style="min-width:73px;">澶囨敞</td>
-                <td style="min-width:59px;" colspan="2">鍒囧壊</td>
-                <td style="min-width:59px;" colspan="2">纾ㄨ竟</td>
-                <td style="min-width:59px;" colspan="2">閽㈠寲</td>
-                <td style="min-width:59px;" colspan="2">鍖呰</td>
-                <td style="min-width:59px;" colspan="2"></td>
-                <td style="min-width:59px;" colspan="2"></td>
-                <td style="min-width:59px;" colspan="2"></td>
-                <td style="min-width:59px;" colspan="2"></td>
-              </tr>
-              <tr>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-                <td>姝e搧</td>
-                <td>娆″搧</td>
-              </tr>
-              </tbody>
-            </table>
-          </td>
-        </tr>
-        </thead>
-        <tbody>
-        <tr>
-          <td colspan="22">
-            <table class="tab" border="1" frame="below">
-              <tbody>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">11</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-1閽㈠寲5</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1852</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.53</td>
-                <td style="min-width:49px;height:35.5px;">7.98</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">9</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-1閽㈠寲3</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1835</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">6</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">1.57</td>
-                <td style="min-width:49px;height:35.5px;">23.74</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">14</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-2閽㈠寲3</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1835</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">4</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">1.05</td>
-                <td style="min-width:49px;height:35.5px;">15.82</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">19</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-3閽㈠寲3</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1835</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">6</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">1.57</td>
-                <td style="min-width:49px;height:35.5px;">23.74</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">13</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-2閽㈠寲2</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1732</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.5</td>
-                <td style="min-width:49px;height:35.5px;">7.5</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">12</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-2閽㈠寲1</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1692</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.48</td>
-                <td style="min-width:49px;height:35.5px;">7.34</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">16</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-2閽㈠寲5</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1492</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.43</td>
-                <td style="min-width:49px;height:35.5px;">6.54</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">21</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-3閽㈠寲5</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1492</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.43</td>
-                <td style="min-width:49px;height:35.5px;">6.54</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">10</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-1閽㈠寲4</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1435</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">3</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.62</td>
-                <td style="min-width:49px;height:35.5px;">9.47</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">15</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-2閽㈠寲4</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1435</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">3</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.62</td>
-                <td style="min-width:49px;height:35.5px;">9.47</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">20</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-3閽㈠寲4</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1435</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">3</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.62</td>
-                <td style="min-width:49px;height:35.5px;">9.47</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">8</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-1閽㈠寲2</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1387</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.4</td>
-                <td style="min-width:49px;height:35.5px;">6.12</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">18</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-3閽㈠寲2</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1387</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.4</td>
-                <td style="min-width:49px;height:35.5px;">6.12</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">7</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-1閽㈠寲1</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1347</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.39</td>
-                <td style="min-width:49px;height:35.5px;">5.96</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              <tr class="tr">
-                <td style="min-width:70px;height:35.5px;" class="tab_td1">17</td>
-                <td style="min-width:200px;height:35.5px;" class="tab_td2">01-3閽㈠寲1</td>
-                <td style="min-width:100px;height:35.5px;" class="kg"><span class="kuan">1347</span>*143</td>
-                <td style="min-width:49px;height:35.5px;" class="sl">2</td>
-                <td style="min-width:49px;height:35.5px;" class="mj">0.39</td>
-                <td style="min-width:49px;height:35.5px;">5.96</td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3 banjin"></td>
-                <td style="min-width:73px;height:35.5px;" class="tab_td3">涓嶆墦鍟嗘爣,</td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td style="min-width:29px;height:35.5px;"></td>
-                <td class="xh" style="display:none;">1</td>
-              </tr>
-              </tbody>
-            </table>
-          </td>
-        </tr>
-        </tbody>
-        <tfoot>
-        <tr style="height: 20px;line-height: 20px;">
-          <td colspan="22">鏁伴噺锛�<label class="zsl" for="">43鐗�</label>&nbsp;&nbsp;&nbsp;閲嶉噺锛�<label class="zzl"
-                                                                                                    for="">125.00kg</label>&nbsp;&nbsp;&nbsp;闈㈢Н锛�<label class="zmj" for="">10.00m虏</label></td>
-        </tr>
-        <tr>
-          <td width="50%" style="word-wrap: break-word;;" colspan="5" rowspan="7">
-              <textarea style="width: 100%; height: 90%; overflow: hidden; border: 0px;font-size:12px;">1)鎸変紒鏍囥��
-2)鍚勫伐搴忥細鎴愬搧鐜荤拑璐寸紪鍙峰強灏哄鏍囩銆�
-3)纾ㄨ竟锛氭鍗曞锛岄珮灏哄鍏樊鍧囦负锛�0~-1锛夈��
-4)閽㈠寲锛氬寳鐜诲晢鏍囷紝浣嶇疆濡傚浘銆�
-</textarea>
-          </td>
-        </tr>
-        <tr>
-          <td width="70px" height="23px;">瀹屽伐绛惧悕</td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-          <td width="56px;" height="23px;" colspan="2"></td>
-        </tr>
-        <tr>
-          <td>鎺ユ敹绛惧悕</td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-        </tr>
-        <tr>
-          <td>鐢熶骇鏃ユ湡</td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-        </tr>
-        <tr>
-          <td>璐ㄦ绛惧悕</td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-        </tr>
-        <tr>
-          <td>鏋跺瓙缂栧彿</td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-          <td colspan="2"></td>
-        </tr>
-        <tr height="65px">
-          <td colspan="22"><span id="qrcode2" class="qr" title="NG23120401B02/1"><canvas width="60" height="60"
-                                                                                         style="display: none;"></canvas><img alt="Scan me!"
-                                                                                                                              src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAxBJREFUaEPtmuFyhDAIhPX9H9rO2dpJOOBboh2rXn9W47GBXZboPE3TMg38Lcv3snmeB1b7S7Zn2qvbbxzxm69onwk42l3a7Wp6vYqgzG6/YTNcjXmtyC3D1cXq/dGGtf8/FXDESdpdy7MNkMI/CzhaE8WgxuxmWF1MQd4WsLpBloetwlNJ0+ZWYnjjsLqYWkR0vQ0+okFUHZWqed3rxbAbsA3CilSUHU+0aAM+gMH8SBmmvkpZIIVtn2/pU6WJ2hrb3zm8D18GMGU24iYBzPow9VW6Xo2568PVxRQMXfdUlNZQySsY5kUlgvK05h7FYamKfmSIH8BqZqi8qDy9giHH5bk1T/Wz3v+W4dsDjg4AyBqq0xE5MUW8qlyP+nuq0o8FbHe3mtlM3OlZau+veOzwTIsEhEY2pYudAtj2YRItAlpZTyee1U5gVdx7flmlLw/YHuKNTjBUwjRleevVkqee3x06PB5wpMrkclQ1p0pQrmd9Npu3uz5MqnwbwJtKE8focC/qhVQxntOK1JZUO0pKd+LxAfxzMKZkps3O5TJMokMlP7JBZFJIN9TjpU7IohMPehipqcL5UwFXpZ4O2BXVjwzD6GYOiVa1jCx31fWeOqtnV6oH92ILvbTaGkbn5tUEiJ9LULWUrGU0Ld0WsPoFQJXjtGFthqtcVivD0wL5VcttAJPTOmpE88RMHUVVjiqx/ooW3ay2Ieqt3WxqRKsqgKpX6Lw0zcMRFyvtJxsQWp5RJqk/04atuvE4wHtfphEPFQWm0iQfT4LqjodULtH1ywHe+62lOmVVVJrsKlVENrnt/rj0soCrxl3hZuamVOX2VDzLIA0lstOyZXYbwDS4E39UEfOyT5uqCmv6Qny0D6smIasE1d1Vh4U/BVwVrYyT1epSK6L0qkUZ81oQ5KUvD1jNCnlvUnRlo+hkZJeXprcAipEfpQO9spWMx2gfHnVFlT5MAIlGKYdJ+klZifMtBahKIhqMtsaupAmovU4VQUFlnFVNjarSnagePTxQEN6JB/X00c31knj48PDfAX8Bd8KdHJuN7HEAAAAASUVORK5CYII="
-                                                                                                                              style="display: block;"><span class="ma">NG23120401B02/1</span></span></td>
-        </tr>
-        </tfoot>
-      </table>
-    </div>
-  </div>
-</template>
-
-<style scoped>
-.JColResizer {
-  table-layout: fixed;
-}
-
-.JColResizer>tbody>tr>td,
-.JColResizer>tbody>tr>th {
-  overflow: hidden;
-  padding-left: 0 !important;
-  padding-right: 0 !important;
-}
-
-.JCLRgrips {
-  height: 0px;
-  position: relative;
-}
-
-.JCLRgrip {
-  margin-left: -5px;
-  position: absolute;
-  z-index: 5;
-}
-
-.JCLRgrip .JColResizer {
-  position: absolute;
-  background-color: red;
-  filter: alpha(opacity=1);
-  opacity: 0;
-  width: 10px;
-  height: 100%;
-  cursor: e-resize;
-  top: 0px
-}
-
-.JCLRLastGrip {
-  position: absolute;
-  width: 1px;
-}
-
-.JCLRgripDrag {
-  border-left: 1px dotted black;
-}
-
-.JCLRFlex {
-  width: auto !important;
-}
-
-.JCLRgrip.JCLRdisabledGrip .JColResizer {
-  cursor: default;
-  display: none;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/ProcessCard.vue b/UI-Project/src/views/pp/processCard/ProcessCard.vue
deleted file mode 100644
index 08c3379..0000000
--- a/UI-Project/src/views/pp/processCard/ProcessCard.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/processCard/SelectProcessCard' }">娴佺▼鍗$鐞�</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/processCard/SelectAddProcess' }">鍒嗘灦</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/processCard/ProductionScheduling' }">鎺掍骇</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">鎵撳嵃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/ProcessCardDetails.vue b/UI-Project/src/views/pp/processCard/ProcessCardDetails.vue
deleted file mode 100644
index ba5cb98..0000000
--- a/UI-Project/src/views/pp/processCard/ProcessCardDetails.vue
+++ /dev/null
@@ -1,146 +0,0 @@
-<script lang="ts" setup>
-import {ref} from "vue";
-import { reactive } from 'vue'
-import {ArrowLeftBold} from "@element-plus/icons-vue";
-import {useRouter} from "vue-router";
-const router = useRouter()
-let flag = $ref(true)
-function intoCreateProduct(){
-  if(flag){
-    router.push('/main/processCard/SelectProcessCard')
-  }else {
-    router.push('/main/processCard/SelectProcessCard')
-  }
-  flag=!flag
-}
-// do not use same name with ref
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-const tableData = [
-  {
-    salesOrderNo: 'NG231207',
-    productionOrderNo: 'NG231207A',
-    processCard: 'NG231207A01',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-    productID:"9001010203000008",
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    Divider: 'xxx',
-    splittingTime: '2023-01-01',
-    notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231207',
-    productionOrderNo: 'NG231207A',
-    processCard: 'NG231207A02',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-    productID:"9001010203000008",
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    Divider: 'xxx',
-    splittingTime: '2023-01-01',
-    notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231207',
-    productionOrderNo: 'NG231207A',
-    processCard: 'NG231207A03',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-    productID:"9001010203000008",
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    Divider: 'xxx',
-    splittingTime: '2023-01-01',
-    notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231207',
-    productionOrderNo: 'NG231207A',
-    processCard: 'NG231207A04',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-    productID:"9001010203000008",
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    Divider: 'xxx',
-    splittingTime: '2023-01-01',
-    notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231207',
-    productionOrderNo: 'NG231207B',
-    processCard: 'NG231207B01',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-    productID:"9001010203000008",
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    Divider: 'xxx',
-    splittingTime: '2023-01-01',
-    notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231207',
-    productionOrderNo: 'NG231207B',
-    processCard: 'NG231207B02',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-    productID:"9001010203000008",
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    Divider: 'xxx',
-    splittingTime: '2023-01-01',
-    notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-]
-</script>
-
-<template>
-  <div>
-    <el-button
-        style="float: left"
-        @click="intoCreateProduct"
-        id="searchButton1"
-        type="primary"
-        :icon="ArrowLeftBold"
-        round >
-      {{flag?'杩斿洖':'杩斿洖'}}
-    </el-button>
-    <el-table :data="tableData" border style="width: 100%" height="100%">
-      <el-table-column fixed label="鎿嶄綔" width="100"  >
-        <el-button link type="primary" size="small">鍏抽棴</el-button>
-        <el-button link type="primary" size="small">淇敼</el-button>
-      </el-table-column>
-      <el-table-column sortable prop="salesOrderNo" label="閿�鍞崟鍙�" width="110" />
-      <el-table-column prop="productionOrderNo" label="鐢熶骇璁㈠崟鍙�" width="125" />
-      <el-table-column prop="processCard" label="娴佺▼鍗″彿" width="125" />
-      <el-table-column prop="entryName" label="椤圭洰鍚嶇О" width="155" />
-      <el-table-column prop="total" label="鎬绘暟閲�" width="80" />
-      <el-table-column prop="dowTotal" label="绂佺敤鏁伴噺" width="90">
-        <el-input></el-input>
-      </el-table-column>
-      <el-table-column prop="TotalArea" label="鎬婚潰绉�" width="80" />
-      <el-table-column prop="productID" label="浜у搧缂栧彿" width="155" />
-      <el-table-column prop="productName" label="浜у搧鍚嶇О" :show-overflow-tooltip='true' width="180" />
-      <el-table-column prop="divider" label="鍒嗘灦鍛�" width="70" />
-      <el-table-column prop="splittingTime" label="鍒嗘灦鏃堕棿" width="100" />
-      <el-table-column prop="notes" label="澶囨敞" :show-overflow-tooltip='true' width="350" />
-    </el-table><!-- <h1>{{msg}}</h1> -->
-  </div>
-</template>
-
-<style scoped>
-
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/ProductionScheduling.vue b/UI-Project/src/views/pp/processCard/ProductionScheduling.vue
deleted file mode 100644
index e5ca6ad..0000000
--- a/UI-Project/src/views/pp/processCard/ProductionScheduling.vue
+++ /dev/null
@@ -1,284 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/processCard/PrintFlowCard', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: 80 },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '鎺掍骇缂栧彿', title: '鎺掍骇缂栧彿', sortable: true, width: 120 },
-    {field: '閿�鍞崟鍙�', title: '閿�鍞崟鍙�',slots: { filter: 'num1_filter' }, sortable: true, width: 100 },
-    {field: '瀹㈡埛鍚嶇О', title: '瀹㈡埛鍚嶇О', sortable: true, width: 110},
-    {field: '椤圭洰鍚嶇О', title: '椤圭洰鍚嶇О', sortable: true , width: 100},
-    {field: '搴忓彿', title: '搴忓彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90},
-    {field: '浜у搧鍚嶇О', title: '浜у搧鍚嶇О', sortable: true, width: 140},
-    {field: '瀹�', title: '瀹�', sortable: true , width: 70},
-    {field: '楂�', title: '楂�', sortable: true , width: 70},
-    {field: '鏁伴噺', title: '鏁伴噺', sortable: true , width: 70},
-    {field: '闈㈢Н', title: '闈㈢Н', sortable: true , width: 90},
-    {field: '鎺掍骇鏁伴噺' , width: 120,editRender: { name: 'input', attrs: { placeholder: '' } }, title: '鎺掍骇鏁伴噺', sortable: true},
-    {field: '宸叉帓浜ф暟閲�', title: '宸叉帓浜ф暟閲�', sortable: true , width: 120},
-    {field: '宸叉帓浜ч潰绉�', title: '宸叉帓浜ч潰绉�', sortable: true , width: 120},
-    {field: '鏈帓浜ф暟閲�', title: '鏈帓浜ф暟閲�', sortable: true , width: 120},
-    {field: '鏈帓浜ч潰绉�', title: '鏈帓浜ч潰绉�', sortable: true , width: 120},
-    {field: '褰㈢姸', title: '褰㈢姸', sortable: true , width: 80},
-    {field: '澶囨敞', title: '澶囨敞', sortable: true , width: 120},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    buttons: [
-      {code: 'print_lck', name: '鍒犻櫎',status:'primary' },
-      {code: 'print_lck', name: '鎺掍骇',status:'primary' ,icon:'vxe-icon-save'},
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      鎺掍骇缂栧彿:"PC20230100001",
-      閿�鍞崟鍙�: 'NG231207',
-      瀹㈡埛鍚嶇О:'XXX鍏徃',
-      椤圭洰鍚嶇О:"XXXX鍏洯",
-      搴忓彿: '1',
-      浜у搧鍚嶇О: '6mm瓒呯櫧Low-E(澶�)+A12+6mm瓒呯櫧骞抽挗(鍐�)',
-      瀹�: '2000',
-      楂�: '1000',
-      鏁伴噺: '10',
-      闈㈢Н: '20000',
-      鎺掍骇鏁伴噺: '',
-      宸叉帓浜ф暟閲�: '10000',
-      宸叉帓浜ч潰绉�: '10000',
-      鏈帓浜ф暟閲�: '',
-      鏈帓浜ч潰绉�: '',
-      褰㈢姸: '鐭╁舰',
-      澶囨敞: '澶囨敞'
-    },
-    {
-      鎺掍骇缂栧彿:"PC20230100001",
-      閿�鍞崟鍙�: 'NG231207',
-      瀹㈡埛鍚嶇О:'XXX鍏徃',
-      椤圭洰鍚嶇О:"XXXX鍏洯",
-      搴忓彿: '1',
-      浜у搧鍚嶇О: '6mm瓒呯櫧Low-E(澶�)+A12+6mm瓒呯櫧骞抽挗(鍐�)',
-      瀹�: '2000',
-      楂�: '1000',
-      鏁伴噺: '10',
-      闈㈢Н: '20000',
-      鎺掍骇鏁伴噺: '',
-      宸叉帓浜ф暟閲�: '10000',
-      宸叉帓浜ч潰绉�: '10000',
-      鏈帓浜ф暟閲�: '',
-      鏈帓浜ч潰绉�: '',
-      褰㈢姸: '鐭╁舰',
-      澶囨敞: '澶囨敞'
-    },
-    {
-      鎺掍骇缂栧彿:"PC20230100001",
-      閿�鍞崟鍙�: 'NG231207',
-      瀹㈡埛鍚嶇О:'XXX鍏徃',
-      椤圭洰鍚嶇О:"XXXX鍏洯",
-      搴忓彿: '1',
-      浜у搧鍚嶇О: '6mm瓒呯櫧Low-E(澶�)+A12+6mm瓒呯櫧骞抽挗(鍐�)',
-      瀹�: '2000',
-      楂�: '1000',
-      鏁伴噺: '10',
-      闈㈢Н: '20000',
-      鎺掍骇鏁伴噺: '',
-      宸叉帓浜ф暟閲�: '10000',
-      宸叉帓浜ч潰绉�: '10000',
-      鏈帓浜ф暟閲�: '',
-      鏈帓浜ч潰绉�: '',
-      褰㈢姸: '鐭╁舰',
-      澶囨敞: '澶囨敞'
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['鏁伴噺','闈㈢Н','鎺掍骇鏁伴噺','宸叉帓浜ф暟閲�','宸叉帓浜ч潰绉�','鏈帓浜ф暟閲�','鏈帓浜ч潰绉�']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="宸ュ簭">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-select v-model="value" class="m-2" placeholder="鏄惁鎺掍骇">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">鎵撳嵃</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鎺掔増</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 70%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/SelectAddProcess.vue b/UI-Project/src/views/pp/processCard/SelectAddProcess.vue
deleted file mode 100644
index 756c9eb..0000000
--- a/UI-Project/src/views/pp/processCard/SelectAddProcess.vue
+++ /dev/null
@@ -1,249 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/processCard/SplittingDetails', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 80, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '閿�鍞崟鍙�',  title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '瀹㈡埛鍚嶇О', title: '瀹㈡埛鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '椤圭洰鍚嶇О', title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '鎵规', title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '鍘熺墖瑕佹眰', title: '鍘熺墖瑕佹眰', sortable: true,showOverflow:"ellipsis"},
-    {field: '鍟嗘爣閫夐」', title: '鍟嗘爣閫夐」', sortable: true},
-    {field: '璁㈠崟绫诲瀷', title: '璁㈠崟绫诲瀷', sortable: true},
-    {field: '涓氬姟鍛�', title: '涓氬姟鍛�', sortable: true},
-    {field: '鍔犲伐瑕佹眰', title: '鍔犲伐瑕佹眰', sortable: true,showOverflow:"ellipsis"},
-    {field: '閫佽揣鍦板潃', title: '閫佽揣鍦板潃', sortable: true},
-    {field: '浜よ揣鏃ユ湡', title: '浜よ揣鏃ユ湡', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      瀹㈡埛鍚嶇О:"鎱曞鍏徃",
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎵规: '23鎵�',
-      鍘熺墖瑕佹眰: '2022/5/24XFPO202205202',
-      鍟嗘爣閫夐」:'鍖楃幓鍟嗘爣',
-      璁㈠崟绫诲瀷: '鏅�氳鍗�',
-      涓氬姟鍛�: 'XXX',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-      閫佽揣鍦板潃:'宸ュ湴',
-      浜よ揣鏃ユ湡:'2024-01-12'
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      瀹㈡埛鍚嶇О:"鎱曞鍏徃",
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎵规: '23鎵�',
-      鍘熺墖瑕佹眰: '2022/5/24XFPO202205202',
-      鍟嗘爣閫夐」:'鍖楃幓鍟嗘爣',
-      璁㈠崟绫诲瀷: '鏅�氳鍗�',
-      涓氬姟鍛�: 'XXX',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-      閫佽揣鍦板潃:'宸ュ湴',
-      浜よ揣鏃ユ湡:'2024-01-12'
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      瀹㈡埛鍚嶇О:"鎱曞鍏徃",
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎵规: '23鎵�',
-      鍘熺墖瑕佹眰: '2022/5/24XFPO202205202',
-      鍟嗘爣閫夐」:'鍖楃幓鍟嗘爣',
-      璁㈠崟绫诲瀷: '鏅�氳鍗�',
-      涓氬姟鍛�: 'XXX',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-      閫佽揣鍦板潃:'宸ュ湴',
-      浜よ揣鏃ユ湡:'2024-01-12'
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      瀹㈡埛鍚嶇О:"鎱曞鍏徃",
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎵规: '23鎵�',
-      鍘熺墖瑕佹眰: '2022/5/24XFPO202205202',
-      鍟嗘爣閫夐」:'鍖楃幓鍟嗘爣',
-      璁㈠崟绫诲瀷: '鏅�氳鍗�',
-      涓氬姟鍛�: 'XXX',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-      閫佽揣鍦板潃:'宸ュ湴',
-      浜よ揣鏃ユ湡:'2024-01-12'
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      瀹㈡埛鍚嶇О:"鎱曞鍏徃",
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎵规: '23鎵�',
-      鍘熺墖瑕佹眰: '2022/5/24XFPO202205202',
-      鍟嗘爣閫夐」:'鍖楃幓鍟嗘爣',
-      璁㈠崟绫诲瀷: '鏅�氳鍗�',
-      涓氬姟鍛�: 'XXX',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-      閫佽揣鍦板潃:'宸ュ湴',
-      浜よ揣鏃ユ湡:'2024-01-12'
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      瀹㈡埛鍚嶇О:"鎱曞鍏徃",
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎵规: '23鎵�',
-      鍘熺墖瑕佹眰: '2022/5/24XFPO202205202',
-      鍟嗘爣閫夐」:'鍖楃幓鍟嗘爣',
-      璁㈠崟绫诲瀷: '鏅�氳鍗�',
-      涓氬姟鍛�: 'XXX',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-      閫佽揣鍦板潃:'宸ュ湴',
-      浜よ揣鏃ユ湡:'2024-01-12'
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      瀹㈡埛鍚嶇О:"鎱曞鍏徃",
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎵规: '23鎵�',
-      鍘熺墖瑕佹眰: '2022/5/24XFPO202205202',
-      鍟嗘爣閫夐」:'鍖楃幓鍟嗘爣',
-      璁㈠崟绫诲瀷: '鏅�氳鍗�',
-      涓氬姟鍛�: 'XXX',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-      閫佽揣鍦板潃:'宸ュ湴',
-      浜よ揣鏃ユ湡:'2024-01-12'
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['total','TotalArea','Cases']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/SelectPrintFlowCard.vue b/UI-Project/src/views/pp/processCard/SelectPrintFlowCard.vue
deleted file mode 100644
index 4f0ef09..0000000
--- a/UI-Project/src/views/pp/processCard/SelectPrintFlowCard.vue
+++ /dev/null
@@ -1,106 +0,0 @@
-<script lang="ts" setup>
-import {reactive, ref} from 'vue'
-
-// do not use same name with ref
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-const defaultTime = ref<[Date, Date]>([
-  new Date(2000, 1, 1, 0, 0, 0),
-  new Date(2000, 2, 1, 23, 59, 59),
-])
-const tableData = [
-  {
-    salesOrderNo: 'NG231201',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-  },
-  {
-    salesOrderNo: 'NG231202',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-  },
-  {
-    salesOrderNo: 'NG231203',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-  },
-  {
-    salesOrderNo: 'NG231204',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-  },
-  {
-    salesOrderNo: 'NG231205',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-  },
-  {
-    salesOrderNo: 'NG231206',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-  },
-  {
-    salesOrderNo: 'NG231207',
-    entryName: '淇″悎鏄ュぉ閲�',
-    total: '169',
-    TotalArea: '175.31',
-  },
-]
-</script>
-
-<template>
-  <div>
-    <div id="selectForm">
-      <el-row :gutter="0">
-<!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 200px"/>-->
-<!--        &nbsp;&nbsp;-->
-<!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.region" style="width: 200px"/>-->
-<!--        &nbsp;&nbsp;-->
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-        />
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <el-table :data="tableData" border style="width: 100%" height="100%">
-      <el-table-column sortable prop="salesOrderNo" label="閿�鍞崟鍙�" width="110" >
-        <template v-slot="scope">
-          <router-link :to="{path:'PrintFlowCard'}" >{{scope.row.salesOrderNo}}</router-link>
-        </template>
-      </el-table-column>
-      <el-table-column prop="entryName" label="椤圭洰鍚嶇О" width="155" />
-      <el-table-column prop="total" label="鎬荤墖鏁�" width="75" />
-      <el-table-column prop="TotalArea" label="鎬婚潰绉�" width="100" />
-    </el-table><!-- <h1>{{msg}}</h1> -->
-  </div>
-</template>
-
-<style scoped>
-#selectForm {
-  width: 40%;
-  height: 100%;
-  text-align: center;
-}
-
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/SelectProcessCard.vue b/UI-Project/src/views/pp/processCard/SelectProcessCard.vue
deleted file mode 100644
index f298d8b..0000000
--- a/UI-Project/src/views/pp/processCard/SelectProcessCard.vue
+++ /dev/null
@@ -1,270 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/processCard/PrintFlowCard', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 140, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '閿�鍞崟鍙�', title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '娴佺▼鍗″彿', width: 120, title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧缂栧彿', title: '浜у搧缂栧彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧鍚嶇О', title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '椤圭洰鍚嶇О', title: '椤圭洰鍚嶇О', sortable: true,showOverflow:"ellipsis"},
-    {field: '鎬绘暟閲�', title: '鎬绘暟閲�', sortable: true},
-    {field: '鎬婚潰绉�', title: '鎬婚潰绉�', sortable: true},
-    {field: '鍒嗙鏁�', title: '鍒嗙鏁�', sortable: true,showOverflow:"ellipsis"},
-    {field: '鍒嗘灦鍛�', title: '鍒嗘灦鍛�', sortable: true},
-    {field: '鍔犲伐瑕佹眰', title: '鍔犲伐瑕佹眰', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      娴佺▼鍗″彿: 'NG231201A01 ',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍒嗙鏁�: '3',
-      鍒嗘灦鍛�: 'xxx',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      娴佺▼鍗″彿: 'NG231201A01 ',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍒嗙鏁�: '3',
-      鍒嗘灦鍛�: 'xxx',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      娴佺▼鍗″彿: 'NG231201A01 ',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍒嗙鏁�: '3',
-      鍒嗘灦鍛�: 'xxx',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      娴佺▼鍗″彿: 'NG231201A01 ',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍒嗙鏁�: '3',
-      鍒嗘灦鍛�: 'xxx',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      娴佺▼鍗″彿: 'NG231201A01 ',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍒嗙鏁�: '3',
-      鍒嗘灦鍛�: 'xxx',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      娴佺▼鍗″彿: 'NG231201A01 ',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍒嗙鏁�: '3',
-      鍒嗘灦鍛�: 'xxx',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      娴佺▼鍗″彿: 'NG231201A01 ',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      椤圭洰鍚嶇О: '淇″悎鏄ュぉ閲�',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍒嗙鏁�: '3',
-      鍒嗘灦鍛�: 'xxx',
-      鍔犲伐瑕佹眰: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['鎬绘暟閲�','鎬婚潰绉�','鍒嗙鏁�']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-        />
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">鎵撳嵃</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鎺掔増</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 40%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/processCard/SplittingDetails.vue b/UI-Project/src/views/pp/processCard/SplittingDetails.vue
deleted file mode 100644
index 838d370..0000000
--- a/UI-Project/src/views/pp/processCard/SplittingDetails.vue
+++ /dev/null
@@ -1,191 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/processCard/AddProcessCard', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 80, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '閿�鍞崟鍙�',  title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '鐢熶骇璁㈠崟鍙�', title: '鐢熶骇璁㈠崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧缂栧彿', title: '浜у搧缂栧彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '浜у搧鍚嶇О', title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '鎬绘暟閲�', title: '鎬绘暟閲�', sortable: true,showOverflow:"ellipsis"},
-    {field: '鎬婚潰绉�', title: '鎬婚潰绉�', sortable: true},
-    {field: '鍛ㄩ暱', title: '鍛ㄩ暱', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      鐢熶骇璁㈠崟鍙�: 'NG231201A',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍛ㄩ暱: '99.84',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      鐢熶骇璁㈠崟鍙�: 'NG231201A',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍛ㄩ暱: '99.84',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      鐢熶骇璁㈠崟鍙�: 'NG231201A',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍛ㄩ暱: '99.84',
-    },
-    {
-      閿�鍞崟鍙�: 'NG231201',
-      鐢熶骇璁㈠崟鍙�: 'NG231201A',
-      浜у搧缂栧彿: '9001010203000008',
-      浜у搧鍚嶇О: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-      鎬绘暟閲�: '169',
-      鎬婚潰绉�: '175.31',
-      鍛ㄩ暱: '99.84',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['鎬绘暟閲�','鎬婚潰绉�']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row}">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,key,index) in row">
-            <span style="font-weight: bold">{{key+':  '}}</span>
-            <span>{{ item }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/DamageReport.vue b/UI-Project/src/views/pp/report/DamageReport.vue
deleted file mode 100644
index 108b31e..0000000
--- a/UI-Project/src/views/pp/report/DamageReport.vue
+++ /dev/null
@@ -1,281 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 120, title: '鎶ュ伐鏃堕棿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 120, title: '宸ュ簭', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 130,title: '璐d换鐝粍', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '璐d换璁惧',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '娆$牬鍘熷洜', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '娆$牬鏁伴噺', sortable: true},
-    {field: '7',width: 100, title: '娆$牬闈㈢Н', sortable: true},
-    {field: '8',width: 120, title: '鎴愬搧鐜�', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 120,title: '椤圭洰鍚嶇О', sortable: true},
-    {field: '10', width: 120,title: '鎵规', sortable: true},
-    {field: '11',width: 120, title: '閿�鍞崟鍙�', sortable: true},
-    {field: '12',width: 120, title: '鍗曞搧鍚嶇О', sortable: true},
-    {field: '13',width: 120, title: '浜у湴', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'2023-01-01',
-      2:'閽㈠寲',
-      3:'閽㈠寲涓�鐝�',
-      4:'榛戦噾鍒�',
-      5:'鏈哄櫒',
-      6:'1 ',
-      7:'3.14',
-      8:'89',
-      9:'濂斿悜骞曞',
-      10:'涓�鎵�',
-      11:'NG20010101',
-      12:'6mm瓒呯櫧骞抽挗',
-      13:'鍖楁柟',
-
-    },
-    {
-      1:'2023-01-01',
-      2:'閽㈠寲',
-      3:'閽㈠寲涓�鐝�',
-      4:'榛戦噾鍒�',
-      5:'鏈哄櫒',
-      6:'1 ',
-      7:'3.14',
-      8:'89',
-      9:'濂斿悜骞曞',
-      10:'涓�鎵�',
-      11:'NG20010101',
-      12:'6mm瓒呯櫧骞抽挗',
-      13:'鍖楁柟',
-
-    },
-    {
-      1:'2023-01-01',
-      2:'閽㈠寲',
-      3:'閽㈠寲涓�鐝�',
-      4:'榛戦噾鍒�',
-      5:'鏈哄櫒',
-      6:'1 ',
-      7:'3.14',
-      8:'89',
-      9:'濂斿悜骞曞',
-      10:'涓�鎵�',
-      11:'NG20010101',
-      12:'6mm瓒呯櫧骞抽挗',
-      13:'鍖楁柟',
-
-    },
-    {
-      1:'2023-01-01',
-      2:'閽㈠寲',
-      3:'閽㈠寲涓�鐝�',
-      4:'榛戦噾鍒�',
-      5:'鏈哄櫒',
-      6:'1 ',
-      7:'3.14',
-      8:'89',
-      9:'濂斿悜骞曞',
-      10:'涓�鎵�',
-      11:'NG20010101',
-      12:'6mm瓒呯櫧骞抽挗',
-      13:'鍖楁柟',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['6','7']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/EquipmentOutput.vue b/UI-Project/src/views/pp/report/EquipmentOutput.vue
deleted file mode 100644
index d310bed..0000000
--- a/UI-Project/src/views/pp/report/EquipmentOutput.vue
+++ /dev/null
@@ -1,256 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', title: '宸ュ簭',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2', title: '鍔犲伐璁惧', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', title: '閿�鍞崟鍙�', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4', title: '鐢熶骇璁㈠崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',title: '浜у搧鍚嶇О', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', title: '瀹屽伐鏁伴噺', sortable: true},
-    {field: '7', title: '瀹屽伐闈㈢Н', sortable: true},
-    {field: '8', title: '鎶ュ伐鏃堕棿', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'鍒囧壊',
-      2:'澶ф捣鍒╁畞',
-      3:'NG23010102',
-      4:'NG23010102A',
-      5:'6mm瓒呯櫧LYE-80骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      6:'133',
-      7:'123.14',
-      8:'2023-01-02',
-
-    },
-    {
-      1:'鍒囧壊',
-      2:'澶ф捣鍒╁畞',
-      3:'NG23010102',
-      4:'NG23010102A',
-      5:'6mm瓒呯櫧LYE-80骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      6:'133',
-      7:'123.14',
-      8:'2023-01-02',
-
-    },
-    {
-      1:'鍒囧壊',
-      2:'澶ф捣鍒╁畞',
-      3:'NG23010102',
-      4:'NG23010102A',
-      5:'6mm瓒呯櫧LYE-80骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      6:'133',
-      7:'123.14',
-      8:'2023-01-02',
-
-    },
-    {
-      1:'鍒囧壊',
-      2:'澶ф捣鍒╁畞',
-      3:'NG23010102',
-      4:'NG23010102A',
-      5:'6mm瓒呯櫧LYE-80骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      6:'133',
-      7:'123.14',
-      8:'2023-01-02',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['6','7']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/OrderBOMOutside.vue b/UI-Project/src/views/pp/report/OrderBOMOutside.vue
deleted file mode 100644
index 9244833..0000000
--- a/UI-Project/src/views/pp/report/OrderBOMOutside.vue
+++ /dev/null
@@ -1,277 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 120, title: '瀹㈡埛缂栫爜', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 130,title: '浜у搧缂栧彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '璁㈠崟鏁伴噺', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '棰嗘枡宸ュ簭', sortable: true},
-    {field: '7',width: 100, title: '鐗╂枡缂栫爜', sortable: true},
-    {field: '8',width: 120, title: '鐗╂枡鍚嶇О', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 120,title: '鍗曚綅', sortable: true},
-    {field: '10', width: 120,title: '浜у湴', sortable: true},
-    {field: '11',width: 120, title: '鐗╂枡鏁伴噺', sortable: true},
-    {field: '12',width: 120, title: '閲囪喘鏁伴噺', sortable: true},
-    {field: '13',width: 120, title: '鏄惁瀹℃牳', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'NG230101',
-      2:'24',
-      3:'06045001',
-      4:'3mm鐧藉潯/PE绮楃(/鍒囪9*9mm/TG/鎸夊浘[KD10059406-7-20002] 1011* 374(鍖呰 : 320鐗�/绠憋紝鐢ㄧ儹闅擣SC绾�)',
-      5:'1300',
-      6:'涓�绾胯绠�',
-      7:'70030201000010400410000002',
-      8:'FSC鏃犲皹绾�',
-      9:'寮�',
-      10:'涓滆帪甯傞敠鑽g焊涓�',
-      11:'1304.00',
-      12:'1000.0000',
-      13:'宸插鏍�',
-    },
-    {
-      1:'NG230101',
-      2:'24',
-      3:'06045001',
-      4:'3mm鐧藉潯/PE绮楃(/鍒囪9*9mm/TG/鎸夊浘[KD10059406-7-20002] 1011* 374(鍖呰 : 320鐗�/绠憋紝鐢ㄧ儹闅擣SC绾�)',
-      5:'1300',
-      6:'涓�绾胯绠�',
-      7:'70030201000010400410000002',
-      8:'FSC鏃犲皹绾�',
-      9:'寮�',
-      10:'涓滆帪甯傞敠鑽g焊涓�',
-      11:'1304.00',
-      12:'1000.0000',
-      13:'宸插鏍�',
-    },
-    {
-      1:'NG230101',
-      2:'24',
-      3:'06045001',
-      4:'3mm鐧藉潯/PE绮楃(/鍒囪9*9mm/TG/鎸夊浘[KD10059406-7-20002] 1011* 374(鍖呰 : 320鐗�/绠憋紝鐢ㄧ儹闅擣SC绾�)',
-      5:'1300',
-      6:'涓�绾胯绠�',
-      7:'70030201000010400410000002',
-      8:'FSC鏃犲皹绾�',
-      9:'寮�',
-      10:'涓滆帪甯傞敠鑽g焊涓�',
-      11:'1304.00',
-      12:'1000.0000',
-      13:'宸插鏍�',
-    },
-    {
-      1:'NG230101',
-      2:'24',
-      3:'06045001',
-      4:'3mm鐧藉潯/PE绮楃(/鍒囪9*9mm/TG/鎸夊浘[KD10059406-7-20002] 1011* 374(鍖呰 : 320鐗�/绠憋紝鐢ㄧ儹闅擣SC绾�)',
-      5:'1300',
-      6:'涓�绾胯绠�',
-      7:'70030201000010400410000002',
-      8:'FSC鏃犲皹绾�',
-      9:'寮�',
-      10:'涓滆帪甯傞敠鑽g焊涓�',
-      11:'1304.00',
-      12:'1000.0000',
-      13:'宸插鏍�',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['5','11','12']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/OrderPlanDecomposition.vue b/UI-Project/src/views/pp/report/OrderPlanDecomposition.vue
deleted file mode 100644
index 38a20fd..0000000
--- a/UI-Project/src/views/pp/report/OrderPlanDecomposition.vue
+++ /dev/null
@@ -1,282 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 120, title: '瀹㈡埛鎵规', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 130,title: '鎵规', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '闈㈢Н', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '璁㈠崟浜ゆ帴鏃堕棿', sortable: true},
-    {field: '7',width: 100, title: '閿�鍞崟鍙�', sortable: true},
-    {field: '8',width: 120, title: '寮�濮嬪垏鍓叉椂闂�', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 120,title: '娴佽浆宸ュ簭', sortable: true},
-    {field: '10', width: 120,title: '瀹屽伐鏁伴噺', sortable: true},
-    {field: '11',width: 120, title: '宸插叆搴撴暟閲�', sortable: true},
-    {field: '12',width: 120, title: '鏈叆搴撴暟閲�', sortable: true},
-    {field: '13',width: 120, title: '娓呭崟鏃堕棿', sortable: true},
-    {field: '14',width: 120, title: '鐢熶骇鐢ㄦ椂(澶�)', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'鏂板畨鍖楃幓浜т笟鍥�',
-      2:'1#瀹胯垗妤煎',
-      3:'1#琛ョ墖',
-      4:'8',
-      5:'9.82',
-      6:'2023-12-01 11:06:10',
-      7:'NG23113003',
-      8:'2023-12-03 23:19:11',
-      9:'鍒囧壊',
-      10:'2',
-      11:'0',
-      12:'9',
-      13:'宸插鏍�',
-      14:'4',
-    },
-    {
-      1:'鏂板畨鍖楃幓浜т笟鍥�',
-      2:'1#瀹胯垗妤煎',
-      3:'1#琛ョ墖',
-      4:'8',
-      5:'9.82',
-      6:'2023-12-01 11:06:10',
-      7:'NG23113003',
-      8:'2023-12-03 23:19:11',
-      9:'鍒囧壊',
-      10:'2',
-      11:'0',
-      12:'9',
-      13:'宸插鏍�',
-      14:'4',
-    },
-    {
-      1:'鏂板畨鍖楃幓浜т笟鍥�',
-      2:'1#瀹胯垗妤煎',
-      3:'1#琛ョ墖',
-      4:'8',
-      5:'9.82',
-      6:'2023-12-01 11:06:10',
-      7:'NG23113003',
-      8:'2023-12-03 23:19:11',
-      9:'鍒囧壊',
-      10:'2',
-      11:'0',
-      12:'9',
-      13:'宸插鏍�',
-      14:'4',
-    },
-    {
-      1:'鏂板畨鍖楃幓浜т笟鍥�',
-      2:'1#瀹胯垗妤煎',
-      3:'1#琛ョ墖',
-      4:'8',
-      5:'9.82',
-      6:'2023-12-01 11:06:10',
-      7:'NG23113003',
-      8:'2023-12-03 23:19:11',
-      9:'鍒囧壊',
-      10:'2',
-      11:'0',
-      12:'9',
-      13:'宸插鏍�',
-      14:'4',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['4','5','10','11','12']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/ProcessCardProgress.vue b/UI-Project/src/views/pp/report/ProcessCardProgress.vue
deleted file mode 100644
index f2b4c5b..0000000
--- a/UI-Project/src/views/pp/report/ProcessCardProgress.vue
+++ /dev/null
@@ -1,245 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {field: '1', width: 150, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 130, title: '鍗曠墖鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 120,title: '璁㈠崟绫诲瀷', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 110, title: '娴佺▼鍗″彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 90,title: '鏍囪', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 90,title: '鏁伴噺', sortable: true},
-    {field: '7',width: 90, title: '娆$牬鏁伴噺', sortable: true},
-    {field: '8',width: 120, title: '鍒囧壊', sortable: true},
-    {field: '9',width: 120, title: '纾ㄨ竟', sortable: true},
-    {field: '10',width: 120, title: '閽㈠寲', sortable: true},
-    {field: '11',width: 120, title: '鍏ュ簱闈㈢Н', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      2:'10mm瓒呯櫧UD60骞抽挗(澶�)',
-      3:'鏅�氳鍗�',
-      4:'NG23052602A01/1',
-      5:'1',
-      6:'33',
-      7:'1',
-      8:'22',
-      9:'22',
-      10:'22',
-      11:'314.13',
-    },
-    {
-      1:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      2:'10mm瓒呯櫧骞抽挗+12Ar(缁�)',
-      3:'鏅�氳鍗�',
-      4:'NG23052602A01/2',
-      5:'2',
-      6:'33',
-      7:'1',
-      8:'22',
-      9:'22',
-      10:'22',
-      11:'314.13',
-    },
-    {
-      1:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      2:'10mm瓒呯櫧骞抽挗(鍐�)',
-      3:'鏅�氳鍗�',
-      4:'NG23052602A01/3',
-      5:'3',
-      6:'33',
-      7:'1',
-      8:'22',
-      9:'22',
-      10:'22',
-      11:'314.13',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  // footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-  //   let footList=['7','8','9','10']
-  //   return[
-  //     columns.map((column, columnIndex) => {
-  //       if (columnIndex === 0) {
-  //         return '鍚堣:'
-  //       }
-  //       if (footList.includes(column.field)) {
-  //         return sumNum(data, column.field)
-  //       }
-  //       return ''
-  //     })
-  //   ]
-  // }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-const mergeCells = ref([
-  { row: 0, col: 1, rowspan: 3, colspan: 0},
-  { row: 3, col: 1, rowspan: 3, colspan: 0},
-
-  { row: 0, col: 6, rowspan: 3, colspan: 0},
-  { row: 3, col: 6, rowspan: 3, colspan: 0},
-
-])
-
-</script>
-
-<template>
-  <div class="main-div-customer" >
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" value="NG23110102" style="width: 150px"/>
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-       height="400px"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        :merge-cells="mergeCells"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/ProcessToBeCompleted.vue b/UI-Project/src/views/pp/report/ProcessToBeCompleted.vue
deleted file mode 100644
index 556f38a..0000000
--- a/UI-Project/src/views/pp/report/ProcessToBeCompleted.vue
+++ /dev/null
@@ -1,233 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1',  title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2', title: '鍗曠墖鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3',title: '鏈畬鏁�', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4', title: '鏈畬闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'鏂板畨鍖楃幓浜т笟鍥�',
-      2:'19mm瓒呯櫧骞抽挗',
-      3:'1',
-      4:'3.11',
-    },
-    {
-      1:'鏂板畨鍖楃幓浜т笟鍥�',
-      2:'19mm瓒呯櫧骞抽挗',
-      3:'1',
-      4:'3.11',
-    },
-    {
-      1:'鏂板畨鍖楃幓浜т笟鍥�',
-      2:'19mm瓒呯櫧骞抽挗',
-      3:'1',
-      4:'3.11',
-    },
-    {
-      1:'鏂板畨鍖楃幓浜т笟鍥�',
-      2:'19mm瓒呯櫧骞抽挗',
-      3:'1',
-      4:'3.11',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['finishedNumber','finishedArea','wornNumber','wornArea']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/ProductionSchedule.vue b/UI-Project/src/views/pp/report/ProductionSchedule.vue
deleted file mode 100644
index 051e8c4..0000000
--- a/UI-Project/src/views/pp/report/ProductionSchedule.vue
+++ /dev/null
@@ -1,341 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {field: '1', width: 100, title: '搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 120, title: '妤煎眰缂栧彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 100,title: '褰㈢姸', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '鎴愬搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 90,title: '瀹�', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 90,title: '楂�', sortable: true},
-    {field: '7',width: 90, title: '鏁伴噺', sortable: true},
-    {field: '8',width: 90, title: '鐗囨爣璁�', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 80,title: '鏍囪', sortable: true},
-    {field: '10', width: 120,title: '鍗曠墖鍚嶇О', sortable: true},
-    {field: '11',width: 120, title: '鍒囧壊', sortable: true},
-    {field: '12',width: 120, title: '纾ㄨ竟', sortable: true},
-    {field: '13',width: 120, title: '閽㈠寲', sortable: true},
-    {field: '14',width: 120, title: '鍏ュ簱鏁伴噺', sortable: true},
-    {field: '15',width: 120, title: '鍏ュ簱闈㈢Н', sortable: true},
-    {field: '16',width: 120, title: '鍙戣揣鏁伴噺', sortable: true},
-    {field: '17',width: 120, title: '鍙戣揣闈㈢Н', sortable: true},
-    {field: '17',width: 120, title: '缁撶畻鎬婚潰绉�', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'1',
-      2:'J8-B1-BD-BL1-001',
-      3:'鏅舰',
-      4:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      5:'1114',
-      6:'1445',
-      7:'3',
-      8:'(澶�)',
-      9:'1',
-      10:'10mm瓒呯櫧UD60骞抽挗(澶�)',
-      11:'1',
-      12:'1',
-      13:'1',
-      14:'0',
-      15:'0',
-      16:'0',
-      17:'0',
-      18:'4.11',
-    },
-    {
-      1:'1',
-      2:'J8-B1-BD-BL1-001',
-      3:'鏅舰',
-      4:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      5:'1114',
-      6:'1445',
-      7:'3',
-      8:'(涓�)',
-      9:'2',
-      10:'10mm瓒呯櫧UD60骞抽挗(澶�)',
-      11:'1',
-      12:'1',
-      13:'1',
-      14:'0',
-      15:'0',
-      16:'0',
-      17:'0',
-      18:'4.11',
-    },
-    {
-      1:'1',
-      2:'J8-B1-BD-BL1-001',
-      3:'鏅舰',
-      4:'10mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+10mm瓒呯櫧骞抽挗+12Ar(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      5:'1114',
-      6:'1445',
-      7:'3',
-      8:'(鍐�)',
-      9:'3',
-      10:'10mm瓒呯櫧UD60骞抽挗(澶�)',
-      11:'1',
-      12:'1',
-      13:'1',
-      14:'0',
-      15:'0',
-      16:'0',
-      17:'0',
-      18:'4.11',
-    },
-    {
-      1:'2',
-      2:'J8-B1-BD-BL1-001',
-      3:'鏅舰',
-      4:'6mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      5:'1114',
-      6:'1445',
-      7:'3',
-      8:'(澶�)',
-      9:'1',
-      10:'6mm瓒呯櫧UD60骞抽挗(澶�)',
-      11:'1',
-      12:'1',
-      13:'1',
-      14:'0',
-      15:'0',
-      16:'0',
-      17:'0',
-      18:'4.11',
-    },
-    {
-      1:'2',
-      2:'J8-B1-BD-BL1-001',
-      3:'鏅舰',
-      4:'6mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      5:'1114',
-      6:'1445',
-      7:'3',
-      8:'(涓�)',
-      9:'2',
-      10:'6mm瓒呯櫧UD60骞抽挗(澶�)',
-      11:'1',
-      12:'1',
-      13:'1',
-      14:'0',
-      15:'0',
-      16:'0',
-      17:'0',
-      18:'4.11',
-    },
-    {
-      1:'2',
-      2:'J8-B1-BD-BL1-001',
-      3:'鏅舰',
-      4:'6mm瓒呯櫧UD60骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      5:'1114',
-      6:'1445',
-      7:'3',
-      8:'(鍐�)',
-      9:'3',
-      10:'6mm瓒呯櫧UD60骞抽挗(澶�)',
-      11:'1',
-      12:'1',
-      13:'1',
-      14:'0',
-      15:'0',
-      16:'0',
-      17:'0',
-      18:'4.11',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['11','12','13','14','15','16','17','18']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-const mergeCells = ref([
-  { row: 0, col: 1, rowspan: 3, colspan: 0},
-  { row: 3, col: 1, rowspan: 3, colspan: 0},
-
-  { row: 0, col: 2, rowspan: 3, colspan: 0},
-  { row: 3, col: 2, rowspan: 3, colspan: 0},
-
-  { row: 0, col: 3, rowspan: 3, colspan: 0},
-  { row: 3, col: 3, rowspan: 3, colspan: 0},
-
-  { row: 0, col: 4, rowspan: 3, colspan: 0},
-  { row: 3, col: 4, rowspan: 3, colspan: 0},
-
-
-])
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        :merge-cells="mergeCells"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/QualityReport.vue b/UI-Project/src/views/pp/report/QualityReport.vue
deleted file mode 100644
index 3fdbd62..0000000
--- a/UI-Project/src/views/pp/report/QualityReport.vue
+++ /dev/null
@@ -1,268 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 120, title: '瀹㈡埛缂栫爜', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 130,title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '璁㈠崟搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '浜у搧鍚嶇О', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '璁㈠崟鏁伴噺', sortable: true},
-    {field: '7',width: 100, title: '澶囩敤浠�', sortable: true},
-    {field: '8',width: 120, title: '鎶曞叆鏁伴噺', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 120,title: '娆$牬鏁伴噺', sortable: true},
-    {field: '10', width: 120,title: '琛ョ墖鏁伴噺', sortable: true},
-    {field: '11',width: 120, title: '鍏ュ簱鏁伴噺', sortable: true},
-    {field: '12',width: 120, title: '鎶ュ簾鐜�', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'NG23022706',
-      2:'45',
-      3:'澶ф澘闀�',
-      4:'1',
-      5:'3mm 楂樻�ц兘鐜繚闀� 3660*2440',
-      6:'180 ',
-      7:'0',
-      8:'186',
-      9:'3',
-      10:'3',
-      11:'180',
-      12:'1.6129%',
-
-    },
-    {
-      1:'NG23022706',
-      2:'45',
-      3:'澶ф澘闀�',
-      4:'1',
-      5:'3mm 楂樻�ц兘鐜繚闀� 3660*2440',
-      6:'180 ',
-      7:'0',
-      8:'186',
-      9:'3',
-      10:'3',
-      11:'180',
-      12:'1.6129%',
-
-    },
-    {
-      1:'NG23022706',
-      2:'45',
-      3:'澶ф澘闀�',
-      4:'1',
-      5:'3mm 楂樻�ц兘鐜繚闀� 3660*2440',
-      6:'180 ',
-      7:'0',
-      8:'186',
-      9:'3',
-      10:'3',
-      11:'180',
-      12:'1.6129%',
-
-    },
-    {
-      1:'NG23022706',
-      2:'45',
-      3:'澶ф澘闀�',
-      4:'1',
-      5:'3mm 楂樻�ц兘鐜繚闀� 3660*2440',
-      6:'180 ',
-      7:'0',
-      8:'186',
-      9:'3',
-      10:'3',
-      11:'180',
-      12:'1.6129%',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['6','7','8','9','10','11']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 50%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/RawMaterialRequisition.vue b/UI-Project/src/views/pp/report/RawMaterialRequisition.vue
deleted file mode 100644
index c039857..0000000
--- a/UI-Project/src/views/pp/report/RawMaterialRequisition.vue
+++ /dev/null
@@ -1,264 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 100, title: '鎵规', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 130,title: '閿�鍞崟鍙�', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '浜у搧绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '鐗╂枡鍚嶇О', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '鍘熺墖浜у湴', sortable: true},
-    {field: '7',width: 90, title: '瀹�', sortable: true},
-    {field: '8',width: 90, title: '楂�', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 120,title: '宸查鏁伴噺', sortable: true},
-    {field: '10', width: 120,title: '宸查闈㈢Н', sortable: true},
-    {field: '11',width: 120, title: '鍘熺墖鐢熶骇鏃ユ湡', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'姝︽眽瀹夐摥鍗庝鲸鍩�',
-      2:'23绗�1鎵�',
-      3:'N0231210',
-      4:'骞抽挗',
-      5:'10mm瓒呯櫧UD60',
-      6:'灞变笢鍏ㄥ搧',
-      7:'3360',
-      8:'4567',
-      9:'6',
-      10:'22.76',
-      11:'2023-10-22',
-
-    },
-    {
-      1:'姝︽眽瀹夐摥鍗庝鲸鍩�',
-      2:'23绗�1鎵�',
-      3:'N0231210',
-      4:'骞抽挗',
-      5:'10mm瓒呯櫧UD60',
-      6:'灞变笢鍏ㄥ搧',
-      7:'3360',
-      8:'4567',
-      9:'6',
-      10:'22.76',
-      11:'2023-10-22',
-
-    },
-    {
-      1:'姝︽眽瀹夐摥鍗庝鲸鍩�',
-      2:'23绗�1鎵�',
-      3:'N0231210',
-      4:'骞抽挗',
-      5:'10mm瓒呯櫧UD60',
-      6:'灞变笢鍏ㄥ搧',
-      7:'3360',
-      8:'4567',
-      9:'6',
-      10:'22.76',
-      11:'2023-10-22',
-
-    },
-    {
-      1:'姝︽眽瀹夐摥鍗庝鲸鍩�',
-      2:'23绗�1鎵�',
-      3:'N0231210',
-      4:'骞抽挗',
-      5:'10mm瓒呯櫧UD60',
-      6:'灞变笢鍏ㄥ搧',
-      7:'3360',
-      8:'4567',
-      9:'6',
-      10:'22.76',
-      11:'2023-10-22',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['9','10']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/Report.vue b/UI-Project/src/views/pp/report/Report.vue
deleted file mode 100644
index c5dc4ba..0000000
--- a/UI-Project/src/views/pp/report/Report.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-
-const router = useRouter()
-let flag = $ref(true)
-let flag1 = $ref(true)
-function intoRelease(){
-  if(flag){
-    router.push('/main/Replenish/AddReplenish')
-  }else {
-    router.push('/main/Replenish/SelectReplenish')
-  }
-  flag=!flag
-}
-function intoAddWorkOrder(){
-  if(flag1){
-    router.push('/main/Replenish/PrintReplenishFlowCard')
-  }else {
-    router.push('/main/Replenish/SelectReplenish')
-  }
-  flag1=!flag1
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-menu
-          class="el-menu-demo"
-          mode="horizontal"
-          :default-active="$route.path"
-          router
-          background-color="#5CADFE"
-          text-color="#000000"
-          active-text-color="#ffffff"
-
-      >
-
-        <el-sub-menu index="1" >
-          <template #title >鐢熶骇鎶ヨ〃</template>
-          <el-menu-item index="/main/report/WorkInProgress">鍦ㄥ埗鍝佹姤琛�</el-menu-item>
-          <el-menu-item index="/main/report/ProcessToBeCompleted">宸ュ簭寰呭畬鎴�</el-menu-item>
-          <el-menu-item index="/main/report/ProductionSchedule">鐢熶骇鍙戣揣杩涘害</el-menu-item>
-          <el-menu-item index="/main/report/ProcessCardProgress">娴佺▼鍗¤繘搴�</el-menu-item>
-          <el-menu-item index="/main/report/OrderPlanDecomposition">璁㈠崟璁″垝鍒嗚В</el-menu-item>
-        </el-sub-menu>
-        <el-sub-menu  index="2" popper-class="test">
-          <template #title>浜ч噺鎶ヨ〃</template>
-          <el-menu-item index="/main/report/TeamOutput">鐝粍浜ч噺</el-menu-item>
-          <el-menu-item index="/main/report/EquipmentOutput">璁惧浜ч噺</el-menu-item>
-        </el-sub-menu>
-        <el-menu-item  index="/main/report/DamageReport">娆$牬鎶ヨ〃</el-menu-item>
-        <el-menu-item  index="/main/report/SplittingDetailsOutside">鍒嗘灦鏄庣粏</el-menu-item>
-        <el-menu-item  index="/main/report/TaskCompletionStatus">浠诲姟瀹屾垚鎯呭喌</el-menu-item>
-        <el-menu-item  index="/main/report/RawMaterialRequisition">鍘熺墖棰嗘枡</el-menu-item>
-        <el-menu-item  index="/main/report/QualityReport">鍝佽川鎶ヨ〃</el-menu-item>
-        <el-menu-item  index="/main/report/Yield">鎴愬搧鐜囨姤琛�</el-menu-item>
-        <el-menu-item  index="/main/report/OrderBOMOutside">BOM鎶ヨ〃</el-menu-item>
-      </el-menu>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-/*main-body鏍峰紡*/
-.el-menu-demo{
-  height: 40px;
-}
-
-#div-title{
-  height: 5%;
-  width: 100%;
-  //color: #ffd04b;
-}
-
-
-
-
-
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/SplittingDetailsOutside.vue b/UI-Project/src/views/pp/report/SplittingDetailsOutside.vue
deleted file mode 100644
index a675c4a..0000000
--- a/UI-Project/src/views/pp/report/SplittingDetailsOutside.vue
+++ /dev/null
@@ -1,258 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 130, title: '娴佺▼鍗″彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 100, title: '搴忓彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 100,title: '钀芥灦椤哄簭', sortable: true,},
-    {field: '4',width: 120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '鎵规', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '妤煎眰缂栧彿', sortable: true},
-    {field: '7',width: 90, title: '瀹�', sortable: true},
-    {field: '8',width: 90, title: '楂�', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 90,title: '鏁伴噺', sortable: true},
-    {field: '10', width: 90,title: '闈㈢Н', sortable: true},
-    {field: '11',width: 90, title: '褰㈢姸', sortable: true},
-    {field: '12',width: 120, title: '澶囨敞', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'NG23120702A01',
-      2:'8',
-      3:'1',
-      4:'閾堕殕骞垮満',
-      5:'琛�8',
-      6:'J8-B1-BD-BL1-009 ',
-      7:'1764',
-      8:'2466',
-      9:'5',
-      10:'23.13',
-      11:'鏅舰',
-      12:'',
-
-    },
-    {
-      1:'NG23120702A01',
-      2:'8',
-      3:'1',
-      4:'閾堕殕骞垮満',
-      5:'琛�8',
-      6:'J8-B1-BD-BL1-009 ',
-      7:'1764',
-      8:'2466',
-      9:'5',
-      10:'23.13',
-      11:'鏅舰',
-      12:'',
-
-    },
-    {
-      1:'NG23120702A01',
-      2:'8',
-      3:'1',
-      4:'閾堕殕骞垮満',
-      5:'琛�8',
-      6:'J8-B1-BD-BL1-009 ',
-      7:'1764',
-      8:'2466',
-      9:'5',
-      10:'23.13',
-      11:'鏅舰',
-      12:'',
-
-    },
-    {
-      1:'NG23120702A01',
-      2:'8',
-      3:'1',
-      4:'閾堕殕骞垮満',
-      5:'琛�8',
-      6:'J8-B1-BD-BL1-009 ',
-      7:'1764',
-      8:'2466',
-      9:'5',
-      10:'23.13',
-      11:'鏅舰',
-      12:'',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['9','10']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 200px"/>
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/TaskCompletionStatus.vue b/UI-Project/src/views/pp/report/TaskCompletionStatus.vue
deleted file mode 100644
index 0bc7cea..0000000
--- a/UI-Project/src/views/pp/report/TaskCompletionStatus.vue
+++ /dev/null
@@ -1,286 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 120, title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 120, title: '椤圭洰鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 100,title: '鎵规', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '浜у搧澶х被', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '浜у搧灏忕被', sortable: true},
-    {field: '7',width: 100, title: '璁㈠崟鏁�', sortable: true},
-    {field: '8',width: 100, title: '鎬婚潰绉�', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 120,title: '鍙戣揣鏁伴噺', sortable: true},
-    {field: '10', width: 120,title: '鍙戣揣闈㈢Н', sortable: true},
-    {field: '11',width: 120, title: '鎶ヨ〃鏃ユ湡', sortable: true},
-    {field: '12',width: 90, title: '鍒囧壊', sortable: true},
-    {field: '13',width: 90, title: '纾ㄨ竟', sortable: true},
-    {field: '14',width: 90, title: '閽㈠寲', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃   ',
-      2:'閾堕殕骞垮満',
-      3:'琛�8',
-      4:'NG23120702',
-      5:'涓┖鐜荤拑',
-      6:'鍙屽钩閽腑绌�',
-      7:'1',
-      8:'1.88',
-      9:'',
-      10:'',
-      11:'2023-12-17',
-      12:'5',
-      13:'5',
-      14:'5',
-
-    },
-    {
-      1:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃   ',
-      2:'閾堕殕骞垮満',
-      3:'琛�8',
-      4:'NG23120702',
-      5:'涓┖鐜荤拑',
-      6:'鍙屽钩閽腑绌�',
-      7:'1',
-      8:'1.88',
-      9:'',
-      10:'',
-      11:'2023-12-17',
-      12:'5',
-      13:'5',
-      14:'5',
-
-    },
-    {
-      1:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃   ',
-      2:'閾堕殕骞垮満',
-      3:'琛�8',
-      4:'NG23120702',
-      5:'涓┖鐜荤拑',
-      6:'鍙屽钩閽腑绌�',
-      7:'1',
-      8:'1.88',
-      9:'',
-      10:'',
-      11:'2023-12-17',
-      12:'5',
-      13:'5',
-      14:'5',
-
-    },
-    {
-      1:'瑗垮畨楂樼骞曞闂ㄧ獥鏈夐檺鍏徃   ',
-      2:'閾堕殕骞垮満',
-      3:'琛�8',
-      4:'NG23120702',
-      5:'涓┖鐜荤拑',
-      6:'鍙屽钩閽腑绌�',
-      7:'1',
-      8:'1.88',
-      9:'',
-      10:'',
-      11:'2023-12-17',
-      12:'5',
-      13:'5',
-      14:'5',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['7','8','9','10']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/TeamOutput.vue b/UI-Project/src/views/pp/report/TeamOutput.vue
deleted file mode 100644
index e07d22a..0000000
--- a/UI-Project/src/views/pp/report/TeamOutput.vue
+++ /dev/null
@@ -1,291 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 120, title: '鎶ュ伐鏃堕棿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 120, title: '宸ュ簭', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 130,title: '鐝粍鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '浜у搧澶х被', sortable: true},
-    {field: '7',width: 100, title: '浜у搧灏忕被', sortable: true},
-    {field: '8',width: 120, title: '鍦ㄥ埗鍝佸悕绉�', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 110,title: '纾ㄨ竟绫诲瀷', sortable: true},
-    {field: '10', width: 100,title: '褰㈢姸', sortable: true},
-    {field: '11',width: 100, title: '鍘氬害', sortable: true},
-    {field: '12',width: 110, title: '瀹屽伐鏁伴噺', sortable: true},
-    {field: '13',width: 110, title: '瀹屽伐闈㈢Н', sortable: true},
-    {field: '14',width: 110, title: '骞虫柟姣背(澶�)', sortable: true},
-    {field: '15',width: 110, title: '鍖呰鏂瑰紡', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'2023-01-01',
-      2:'閽㈠寲',
-      3:'閽㈠寲涓�鐝�',
-      4:'閾跺窛澶фゼ',
-      5:'NG23010121A01',
-      6:'涓┖鐜荤拑',
-      7:'骞充腑绌哄す鑳�',
-      8:'5mmLYE-70骞抽挗(澶�)+20mmA(瀵�)+5mm瓒呯櫧骞抽挗(鍐�)',
-      9:'绮剧(',
-      10:'鏅瀷',
-      11:'5',
-      12:'11',
-      13:'41.14',
-      14:'123.33',
-      15:'',
-
-    },
-    {
-      1:'2023-01-01',
-      2:'閽㈠寲',
-      3:'閽㈠寲涓�鐝�',
-      4:'閾跺窛澶фゼ',
-      5:'NG23010121A01',
-      6:'涓┖鐜荤拑',
-      7:'骞充腑绌哄す鑳�',
-      8:'5mmLYE-70骞抽挗(澶�)+20mmA(瀵�)+5mm瓒呯櫧骞抽挗(鍐�)',
-      9:'绮剧(',
-      10:'鏅瀷',
-      11:'5',
-      12:'11',
-      13:'41.14',
-      14:'123.33',
-      15:'',
-
-    },
-    {
-      1:'2023-01-01',
-      2:'閽㈠寲',
-      3:'閽㈠寲涓�鐝�',
-      4:'閾跺窛澶фゼ',
-      5:'NG23010121A01',
-      6:'涓┖鐜荤拑',
-      7:'骞充腑绌哄す鑳�',
-      8:'5mmLYE-70骞抽挗(澶�)+20mmA(瀵�)+5mm瓒呯櫧骞抽挗(鍐�)',
-      9:'绮剧(',
-      10:'鏅瀷',
-      11:'5',
-      12:'11',
-      13:'41.14',
-      14:'123.33',
-      15:'',
-
-    },
-    {
-      1:'2023-01-01',
-      2:'閽㈠寲',
-      3:'閽㈠寲涓�鐝�',
-      4:'閾跺窛澶фゼ',
-      5:'NG23010121A01',
-      6:'涓┖鐜荤拑',
-      7:'骞充腑绌哄す鑳�',
-      8:'5mmLYE-70骞抽挗(澶�)+20mmA(瀵�)+5mm瓒呯櫧骞抽挗(鍐�)',
-      9:'绮剧(',
-      10:'鏅瀷',
-      11:'5',
-      12:'11',
-      13:'41.14',
-      14:'123.33',
-      15:'',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['12','13','14']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/WorkInProgress.vue b/UI-Project/src/views/pp/report/WorkInProgress.vue
deleted file mode 100644
index 710fd3c..0000000
--- a/UI-Project/src/views/pp/report/WorkInProgress.vue
+++ /dev/null
@@ -1,281 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1', width: 120, title: '宸ュ簭',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2',width: 120, title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3', width: 130,title: '瀹㈡埛鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4',width: 120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5', width: 100,title: '鎵规', sortable: true,showOverflow:"ellipsis"},
-    {field: '6', width: 100,title: '搴忓彿', sortable: true},
-    {field: '7',width: 100, title: '褰㈢姸', sortable: true},
-    {field: '8',width: 120, title: '妤煎眰缂栧彿', sortable: true,showOverflow:"ellipsis"},
-    {field: '9', width: 120,title: '宸ヨ壓娴佺▼', sortable: true},
-    {field: '10', width: 120,title: '璁㈠崟鏁�', sortable: true},
-    {field: '11',width: 120, title: '瀹�', sortable: true},
-    {field: '12',width: 120, title: '楂�', sortable: true},
-    {field: '13',width: 120, title: '搴撳瓨鏁�', sortable: true},
-    {field: '14',width: 120, title: '搴撳瓨闈㈢Н', sortable: true},
-    {field: '15',width: 120, title: '鎴愬搧鍚嶇О', sortable: true},
-    {field: '16',width: 120, title: '鍦ㄥ埗鍝佸悕绉�', sortable: true},
-    {field: '17',width: 120, title: '寮挗鍗婂緞', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'纾ㄨ竟',
-      2:'NG22091906A02/1',
-      3:'涓浗寤虹瓚瑁呴グ闆嗗洟鏈夐檺鍏徃',
-      4:'閾跺窛缁垮湴涓績鍗楀(25鎵�2)',
-      5:'25鎵�2',
-      6:'褰㈢姸',
-      7:'2',
-      8:'25-BL19',
-      9:'鍒囧壊->闀�鑶�->纾ㄨ竟->閽㈠寲->鍖呰',
-      10:'40',
-      11:'1345',
-      12:'1556',
-      13:'1',
-      14:'1.99',
-      15:'8mm瓒呯櫧銆怢YTM-46銆戝钩閽�',
-      16:'8mm瓒呯櫧銆怢YTM-46銆戝钩閽�',
-      17:'0',
-
-    },
-    {
-      1:'纾ㄨ竟',
-      2:'NG22091906A02/1',
-      3:'涓浗寤虹瓚瑁呴グ闆嗗洟鏈夐檺鍏徃',
-      4:'閾跺窛缁垮湴涓績鍗楀(25鎵�2)',
-      5:'25鎵�2',
-      6:'褰㈢姸',
-      7:'2',
-      8:'25-BL19',
-      9:'鍒囧壊->闀�鑶�->纾ㄨ竟->閽㈠寲->鍖呰',
-      10:'40',
-      11:'1345',
-      12:'1556',
-      13:'1',
-      14:'1.99',
-      15:'8mm瓒呯櫧銆怢YTM-46銆戝钩閽�',
-      16:'8mm瓒呯櫧銆怢YTM-46銆戝钩閽�',
-      17:'0',
-
-    },
-    {
-      1:'纾ㄨ竟',
-      2:'NG22091906A02/1',
-      3:'涓浗寤虹瓚瑁呴グ闆嗗洟鏈夐檺鍏徃',
-      4:'閾跺窛缁垮湴涓績鍗楀(25鎵�2)',
-      5:'25鎵�2',
-      6:'褰㈢姸',
-      7:'2',
-      8:'25-BL19',
-      9:'鍒囧壊->闀�鑶�->纾ㄨ竟->閽㈠寲->鍖呰',
-      10:'40',
-      11:'1345',
-      12:'1556',
-      13:'1',
-      14:'1.99',
-      15:'8mm瓒呯櫧銆怢YTM-46銆戝钩閽�',
-      16:'8mm瓒呯櫧銆怢YTM-46銆戝钩閽�',
-      17:'0',
-
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['finishedNumber','finishedArea','wornNumber','wornArea']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/report/Yield.vue b/UI-Project/src/views/pp/report/Yield.vue
deleted file mode 100644
index 4952152..0000000
--- a/UI-Project/src/views/pp/report/Yield.vue
+++ /dev/null
@@ -1,257 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: '1',  title: '宸ュ簭',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: '2', title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '3',title: '瀹㈡埛鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: '4', title: '鎴愬搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',title: '瀹屽伐闈㈢Н', sortable: true,showOverflow:"ellipsis"},
-    {field: '6',title: '娆$牬闈㈢Н', sortable: true},
-    {field: '7', title: '鎬婚潰绉�', sortable: true},
-    {field: '8', title: '鎴愬搧鐜�', sortable: true,},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      1:'澶瑰眰',
-      2:'NG23103001',
-      3:'鎱曢潚鏂囧寲',
-      4:'10mmLYTM-140寮挗鍖�(澶�)+2.28PVB閫忔槑+10mm鐧界幓寮挗鍖�(鍐�)',
-      5:'256.67',
-      6:'7.94',
-      7:'264.61',
-      8:'97.0%',
-
-    },
-    {
-      1:'澶瑰眰',
-      2:'NG23103001',
-      3:'鎱曢潚鏂囧寲',
-      4:'10mmLYTM-140寮挗鍖�(澶�)+2.28PVB閫忔槑+10mm鐧界幓寮挗鍖�(鍐�)',
-      5:'256.67',
-      6:'7.94',
-      7:'264.61',
-      8:'97.0%',
-
-    },
-    {
-      1:'澶瑰眰',
-      2:'NG23103001',
-      3:'鎱曢潚鏂囧寲',
-      4:'10mmLYTM-140寮挗鍖�(澶�)+2.28PVB閫忔槑+10mm鐧界幓寮挗鍖�(鍐�)',
-      5:'256.67',
-      6:'7.94',
-      7:'264.61',
-      8:'97.0%',
-
-    },
-    {
-      1:'澶瑰眰',
-      2:'NG23103001',
-      3:'鎱曢潚鏂囧寲',
-      4:'10mmLYTM-140寮挗鍖�(澶�)+2.28PVB閫忔槑+10mm鐧界幓寮挗鍖�(鍐�)',
-      5:'256.67',
-      6:'7.94',
-      7:'264.61',
-      8:'97.0%',
-
-    },
-
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['5','6','7']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-
-})
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 150px"/>-->
-        <!--        <el-input placeholder="椤圭洰鍚嶇О" v-model="form.name" style="width: 150px"/>-->
-
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-            style="width: 100px"
-        />
-        &nbsp;&nbsp;
-        <el-select v-model="value" class="m-2" placeholder="鏌ヨ绫诲瀷">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 60%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/reportingWorks/AddReportingWork.vue b/UI-Project/src/views/pp/reportingWorks/AddReportingWork.vue
deleted file mode 100644
index f181f30..0000000
--- a/UI-Project/src/views/pp/reportingWorks/AddReportingWork.vue
+++ /dev/null
@@ -1,395 +0,0 @@
-<script setup>
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/processCard/PrintFlowCard', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-const form = reactive({
-  lckh: 'NG23120801A01/1'
-})
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-  //  {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {field: 'serialNumber',width:90, title: '搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: 'singlePieceName',width:120, title: '鍗曠墖鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'marking',width:90, title: '鏍囪', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'pieces',width:100, title: '鐗囨爣璁�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'processCardNumber',width:110, title: '娴佺▼鍗℃暟閲�', sortable: true,showOverflow:"ellipsis"},
-    {field: 'width',width:70, title: '瀹�', sortable: true},
-    {field: 'height',width:70, title: '楂�', sortable: true},
-    {field: 'shape',width:70, title: '褰㈢姸', sortable: true,showOverflow:"ellipsis"},
-    {field: 'upCompletedQuantity',width:120, title: '涓婂伐瀹屽伐鏁伴噺', sortable: true},
-    {field: 'completedQuantity',width:100, title: '瀹屽伐鏁伴噺', sortable: true},
-    {field: 'numberBroken',width:100, title: '娆$牬鏁伴噺', sortable: true},
-    {field: 'availableUse',width:80, title: '鍙埄鐢�', sortable: true},
-    {field: 'returnProcess',width:100, title: '閫�鍥炲伐搴�', sortable: true},
-    {field: 'reasonType',width:100, title: '娆$牬绫诲瀷', sortable: true},
-    {field: 'reasonDamage',width:100, title: '娆$牬鍘熷洜', sortable: true},
-    {field: 'responsibilityDevice',width:100, title: '璐d换璁惧', sortable: true},
-    {field: 'responsibilityProcess',width:100, title: '璐d换宸ュ簭', sortable: true},
-    {field: 'responsibilityTeams',width:100, title: '璐d换鐝粍', sortable: true},
-    {field: 'responsibilityPersonnel',width:100, title: '璐d换浜哄憳', sortable: true},
-    {field: 'completed', width:90,title: '宸插畬宸�', sortable: true},
-    {field: 'onceBroken', width:90,title: '宸叉鐮�', sortable: true}
-
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    buttons: [
-      { code: 'empty', name: '娓呯┖鎶ュ伐鏁伴噺'  },
-      { code: 'sameCompletion', name: '瀹屽伐鐩稿悓'  },
-      { code: 'sameDamage', name: '娆$牬鐩稿悓'  },
-      { code: 'sameOneCompletion', name: '瀹屽伐涓�鍒楃浉鍚�'  },
-      { code: 'sameOneDamage', name: '娆$牬涓�鍒楃浉鍚�'  },
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
-      {code: 'print_lck', name: '淇濆瓨骞跺鏍�',status:'primary' ,icon:'vxe-icon-save'},
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      serialNumber:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '11',
-      completedQuantity: '1',
-      numberBroken:'',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      serialNumber:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(鍐�)',
-      marking: '2',
-      pieces: '(鍐�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '11',
-      completedQuantity: '1',
-      numberBroken:'',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      serialNumber:'2',
-      singlePieceName: '8mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '11',
-      completedQuantity: '1',
-      numberBroken:'',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      serialNumber:'2',
-      singlePieceName: '8mm鐧界幓骞抽挗(鍐�)',
-      marking: '2',
-      pieces: '(鍐�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '11',
-      completedQuantity: '1',
-      numberBroken:'',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['processCardNumber','upCompletedQuantity','completedQuantity','numberBroken','']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-</script>
-
-<template>
-<div>
-  <div id="head">
-    <el-input placeholder="娴佺▼鍗″彿" v-model="form.lckh" style="width: 200px"/>
-    &nbsp;
-
-    <select class="processesSt">
-      <option>鎶ュ伐宸ュ簭</option>
-      <option value="鍒囧壊">鍒囧壊</option>
-      <option value="纾ㄨ竟">纾ㄨ竟</option>
-      <option value="閽㈠寲">閽㈠寲</option>
-    </select>
-    &nbsp;
-    <el-button type="primary">瀹℃牳閫氳繃</el-button>
-    <el-button type="primary">瀹℃牳涓嶉�氳繃</el-button>
-    &nbsp;
-    <label>娴佺▼鍗¢潰绉細xxx骞虫柟绫�</label>
-  </div>
-  <div>
-    <table id="titleTable" style="border: 1px solid black;">
-      <tr>
-        <td>閿�鍞崟鍙�</td>
-        <td>NG23120801</td>
-        <td>鐢熶骇璁㈠崟鍙�</td>
-        <td>NG23120801A</td>
-        <td>瀹㈡埛缂栫爜</td>
-        <td>123213</td>
-        <td>瀹㈡埛鍚嶇О</td>
-        <td>xxxx</td>
-        <td>椤圭洰鍚嶇О</td>
-        <td>xxxxxxx</td>
-      </tr>
-      <tr>
-        <td>鎶ュ伐璁惧</td>
-        <td>涓┖涓�绾�</td>
-        <td>涓婂伐搴�</td>
-        <td>閽㈠寲</td>
-        <td>鍙姤宸ユ暟閲�</td>
-        <td>12</td>
-        <td>鏈伐搴忓畬宸�</td>
-        <td>11</td>
-        <td>鏈伐搴忔鐮�</td>
-        <td>1</td>
-      </tr>
-      <tr>
-        <td>鎶ュ伐鐝粍</td>
-        <td>涓┖涓�鐝�</td>
-        <td>鐝</td>
-        <td>鏃╃彮</td>
-        <td>涓嬪伐搴�</td>
-        <td>鍖呰</td>
-        <td>鎶ュ伐鏃堕棿</td>
-        <td><input class="chaxun" id="bgsj" maxlength="255"  type="datetime-local" name="bgsj"></td>
-        <td>澶囨敞</td>
-        <td>1</td>
-      </tr>
-      <tr>
-        <td>鍗曠墖娆$牬</td>
-        <td>
-          <el-select v-model="value" placeholder="鍏佽" >
-            <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-            </el-option>
-          </el-select>
-        </td>
-
-        <td></td>
-        <td></td>
-        <td></td>
-
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-      </tr>
-    </table>
-  </div>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        min-height="100px"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        size="small"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">鎵撳嵃</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鎺掔増</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</div>
-</template>
-
-<style scoped>
-
-
-.processCard{
-  width: 140px;
-}
-.processesSt{
-  height: 33px;
-  width: 80px;
-  background-color: #409eff;
-  color: white;
-  border: none;
-  border-radius: 5px;
-}
-#titleTable tr,#titleTable td{
-  border: 1px solid #000;
-}
-#titleTable{
-  border-collapse: collapse;
-  text-align: center;
-  width: 100%;
-  height: 100%;
-}
-#titleTable td{
-  width: 100px;
-  height: 30px;
-}
-#titleTable td:nth-child(1){
-  width: 100px;
-  height: 30px;
-}
-#titleTable td:nth-child(2){
-  width: 100px;
-}
-.chaxun{
-  background-color:#D5EAFF;
-  border: none;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/reportingWorks/QualityInReviewDetail.vue b/UI-Project/src/views/pp/reportingWorks/QualityInReviewDetail.vue
deleted file mode 100644
index 16af99f..0000000
--- a/UI-Project/src/views/pp/reportingWorks/QualityInReviewDetail.vue
+++ /dev/null
@@ -1,274 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: 'serialNumber', width: 120, title: '搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: 'singlePieceName',width: 120, title: '鍗曠墖鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'marking', width: 130,title: '鏍囪', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'pieces',width: 120, title: '鐗囨爣璁�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'processCardNumber', width: 100,title: '娴佺▼鍗℃暟閲�', sortable: true,showOverflow:"ellipsis"},
-    {field: 'width', width: 100,title: '瀹�', sortable: true},
-    {field: 'height',width: 100, title: '楂�', sortable: true},
-    {field: 'shape',width: 120, title: '褰㈢姸', sortable: true,showOverflow:"ellipsis"},
-    {field: 'upCompletedQuantity', width: 120,title: '涓婂伐瀹屽伐鏁伴噺', sortable: true},
-    {field: 'completedQuantity',width: 120, title: '瀹屽伐鏁伴噺', sortable: true},
-    {field: 'numberBroken',width: 120, title: '娆$牬鏁伴噺', sortable: true},
-    {field: 'availableUse',width: 120, title: '鍙埄鐢�', sortable: true},
-    {field: 'returnProcess',width: 120, title: '閫�鍥炲伐搴�', sortable: true},
-    {field: 'reasonType',width: 120, title: '娆$牬绫诲瀷', sortable: true},
-    {field: 'reasonDamage',width: 120, title: '娆$牬鍘熷洜', sortable: true},
-    {field: 'responsibilityDevice',width: 120, title: '璐d换璁惧', sortable: true},
-    {field: 'responsibilityProcess',width: 120, title: '璐d换宸ュ簭', sortable: true},
-    {field: 'responsibilityTeams',width: 120, title: '璐d换鐝粍', sortable: true},
-    {field: 'responsibilityPersonnel',width: 120, title: '璐d换浜哄憳', sortable: true},
-    {field: 'completed',width: 90, title: '宸插畬宸�', sortable: true},
-    {field: 'onceBroken',width: 90, title: '宸叉鐮�', sortable: true},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    buttons: [
-      {code: 'print_lck', name: '瀹℃牳閫氳繃',status:'primary' },
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      serialNumber:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '12',
-      completedQuantity: '1',
-      numberBroken:'',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      serialNumber:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(鍐�)',
-      marking: '2',
-      pieces: '(鍐�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '12',
-      completedQuantity: '1',
-      numberBroken:'',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      serialNumber:'2',
-      singlePieceName: '8mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '12',
-      completedQuantity: '1',
-      numberBroken:'',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-    {
-      serialNumber:'2',
-      singlePieceName: '8mm鐧界幓骞抽挗(鍐�)',
-      marking: '2',
-      pieces: '(鍐�)',
-      processCardNumber: '11',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      upCompletedQuantity: '12',
-      completedQuantity: '1',
-      numberBroken:'',
-      availableUse:'',
-      returnProcess:'',
-
-      reasonType: '鏈哄櫒',
-      reasonDamage:'姘旀场瓒呮爣',
-      available:'',
-      reworkProcess:'',
-      responsibilityProcess:'涓┖',
-      responsibilityTeams:'涓┖涓�鐝�',
-      responsibilityPersonnel:'',
-      responsibilityDevice:'涓┖3#绾�',
-      completed:'',
-      onceBroken:'',
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['processCardNumber','upCompletedQuantity','completedQuantity','numberBroken','completed','onceBroken']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/reportingWorks/QualityInspectionReview.vue b/UI-Project/src/views/pp/reportingWorks/QualityInspectionReview.vue
deleted file mode 100644
index 51bcbe8..0000000
--- a/UI-Project/src/views/pp/reportingWorks/QualityInspectionReview.vue
+++ /dev/null
@@ -1,253 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/QualityInReviewDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑瀹℃牳鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 120, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-
-    {field: 'reportingWorkNo',width: 120,  title: '鎶ュ伐缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: 'reportingWorkTime',width: 120, title: '鎶ュ伐鏃堕棿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'entryName',width: 120, title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'customerName',width: 120, title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'thisProcess',width: 100, title: '鏈伐搴�', sortable: true,showOverflow:"ellipsis"},
-    {field: 'teamName',width: 110, title: '鎶ュ伐鐝粍', sortable: true},
-    {field: 'finishedNumber',width: 100, title: '瀹屽伐鏁伴噺', sortable: true},
-    {field: 'wornNumber', width: 100,title: '娆$牬鏁伴噺', sortable: true},
-    {field: 'responsibilityProcess',width: 100, title: '璐d换宸ュ簭', sortable: true},
-    {field: 'previousProcess', width: 100,title: '涓婂伐搴�', sortable: true},
-    {field: 'nextProcess',width: 100, title: '涓嬪伐搴�', sortable: true},
-    {field: 'qualityInspector',width: 120, title: '璐ㄦ鍛�', sortable: true},
-    {field: 'qualityState',width: 120, title: '璐ㄦ鐘舵��', sortable: true},
-    {field: 'notes',width: 120, title: '澶囨敞', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      reportingWorkNo: 'BG2312070001',
-      reportingWorkTime: '2023-12-01 08:01:22',
-      processCard: 'NG231207A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      customerName: 'XXXX',
-      thisProcess: '涓┖',
-      teamName:"涓┖涓�鐝�",
-      finishedNumber: '11',
-      wornNumber: '1',
-      responsibilityProcess: '閽㈠寲',
-      previousProcess:'閽㈠寲',
-      nextProcess:'鍖呰',
-      qualityInspector: 'XXX',
-      qualityState: '1',
-      notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      reportingWorkNo: 'BG2312070002',
-      reportingWorkTime: '2023-12-01 08:01:22',
-      processCard: 'NG231207A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      customerName: 'XXXX',
-      thisProcess: '涓┖',
-      teamName:"涓┖涓�鐝�",
-      finishedNumber: '11',
-      wornNumber: '1',
-      responsibilityProcess: '閽㈠寲',
-      previousProcess:'閽㈠寲',
-      nextProcess:'鍖呰',
-      qualityInspector: 'XXX',
-      qualityState: '1',
-      notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      reportingWorkNo: 'BG2312070003',
-      reportingWorkTime: '2023-12-01 08:01:22',
-      processCard: 'NG231207A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      customerName: 'XXXX',
-      thisProcess: '涓┖',
-      teamName:"涓┖涓�鐝�",
-      finishedNumber: '11',
-      wornNumber: '1',
-      responsibilityProcess: '閽㈠寲',
-      previousProcess:'閽㈠寲',
-      nextProcess:'鍖呰',
-      qualityInspector: 'XXX',
-      qualityState: '1',
-      notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-    {
-      reportingWorkNo: 'BG2312070004',
-      reportingWorkTime: '2023-12-01 08:01:22',
-      processCard: 'NG231207A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      customerName: 'XXXX',
-      thisProcess: '涓┖',
-      teamName:"涓┖涓�鐝�",
-      finishedNumber: '11',
-      wornNumber: '1',
-      responsibilityProcess: '閽㈠寲',
-      previousProcess:'閽㈠寲',
-      nextProcess:'鍖呰',
-      qualityInspector: 'XXX',
-      qualityState: '1',
-      notes: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    },
-
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['finishedNumber','wornNumber']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div style="width: 600px">
-      <el-row :gutter="0">
-        <!--        <el-input placeholder="娴佺▼鍗″彿" v-model="form.name" style="width: 200px"/>-->
-        <!--        &nbsp;&nbsp;-->
-<!--        <select class="processesSt">-->
-<!--          <option value="鏈鏍�">鏈鏍�</option>-->
-<!--          <option value="宸插鏍�">宸插鏍�</option>-->
-<!--        </select>-->
-
-        <el-date-picker
-            v-model="value"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-
-        />
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">瀹℃牳</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/reportingWorks/ReportingWorkDetail.vue b/UI-Project/src/views/pp/reportingWorks/ReportingWorkDetail.vue
deleted file mode 100644
index b23fd28..0000000
--- a/UI-Project/src/views/pp/reportingWorks/ReportingWorkDetail.vue
+++ /dev/null
@@ -1,164 +0,0 @@
-<script lang="ts" setup>
-import { reactive } from 'vue'
-import {ArrowLeftBold} from "@element-plus/icons-vue";
-import {useRouter} from "vue-router";
-const router = useRouter()
-let flag = $ref(true)
-function intoCreateProduct(){
-  if(flag){
-    router.push('/main/reportingWorks/SelectReportingWorks')
-  }else {
-    router.push('/main/reportingWorks/SelectReportingWorks')
-  }
-  flag=!flag
-}
-// do not use same name with ref
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-const tableData = [
-
-  {
-    serialNumber:'1',
-    reportingWorkNo: 'BG23100112',
-    singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-    marking: '1',
-    pieces: '(澶�)',
-    floorNumber: '3#1灞�-4鎵嘙LC2025-10',
-    width: '575',
-    height:"2241",
-    shape: '鏅舰',
-    finishedNumber: '11',
-    wornNumber: '1',
-    reasonType: '鏈哄櫒',
-    reasonDamage:'姘旀场瓒呮爣',
-    available:'',
-    reworkProcess:'',
-    responsibilityProcess:'涓┖',
-    responsibilityTeams:'涓┖涓�鐝�',
-    responsibilityPersonnel:'',
-    responsibilityDevice:'涓┖3#绾�',
-    qualityInspectionStatus:'',
-    patchStatus:''
-  },
-  {
-    serialNumber:'1',
-    reportingWorkNo: 'BG23100112',
-    singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-    marking: '2',
-    pieces: '(鍐�)',
-    floorNumber: '3#1灞�-4鎵嘙LC2025-10',
-    width: '575',
-    height:"2241",
-    shape: '鏅舰',
-    finishedNumber: '11',
-    wornNumber: '1',
-    reasonType: '鏈哄櫒',
-    reasonDamage:'姘旀场瓒呮爣',
-    available:'',
-    reworkProcess:'',
-    responsibilityProcess:'涓┖',
-    responsibilityTeams:'涓┖涓�鐝�',
-    responsibilityPersonnel:'',
-    responsibilityDevice:'涓┖3#绾�',
-    qualityInspectionStatus:'',
-    patchStatus:''
-  },
-  {
-    serialNumber:'2',
-    reportingWorkNo: 'BG23100112',
-    singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-    marking: '1',
-    pieces: '(澶�)',
-    floorNumber: '3#1灞�-4鎵嘙LC2025-10',
-    width: '575',
-    height:"2241",
-    shape: '鏅舰',
-    finishedNumber: '6',
-    wornNumber: '',
-    reasonType: '',
-    reasonDamage:'',
-    available:'',
-    reworkProcess:'',
-    responsibilityProcess:'',
-    responsibilityTeams:'',
-    responsibilityPersonnel:'',
-    responsibilityDevice:'',
-    qualityInspectionStatus:'',
-    patchStatus:''
-  },
-  {
-    serialNumber:'2',
-    reportingWorkNo: 'BG23100112',
-    singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-    marking: '2',
-    pieces: '(鍐�)',
-    floorNumber: '3#1灞�-4鎵嘙LC2025-10',
-    width: '575',
-    height:"2241",
-    shape: '鏅舰',
-    finishedNumber: '6',
-    wornNumber: '',
-    reasonType: '',
-    reasonDamage:'',
-    available:'',
-    reworkProcess:'',
-    responsibilityProcess:'',
-    responsibilityTeams:'',
-    responsibilityPersonnel:'',
-    responsibilityDevice:'',
-    qualityInspectionStatus:'',
-    patchStatus:''
-  },
-]
-</script>
-
-<template>
-  <div>
-<!--    <el-button-->
-<!--        style="float: left"-->
-<!--        @click="intoCreateProduct"-->
-<!--        id="searchButton1"-->
-<!--        type="primary"-->
-<!--        :icon="ArrowLeftBold"-->
-<!--        round >-->
-<!--      {{flag?'杩斿洖':'杩斿洖'}}-->
-<!--    </el-button>-->
-    <el-table :data="tableData" border style="width: 100%" height="100%">
-      <el-table-column  prop="serialNumber" label="搴忓彿" width="70" />
-      <el-table-column sortable prop="reportingWorkNo" label="鎶ュ伐缂栧彿" width="120" />
-      <el-table-column prop="singlePieceName" label="鍗曠墖鍚嶇О" width="150" />
-      <el-table-column prop="marking" label="鏍囪" width="60" />
-      <el-table-column prop="pieces" label="鐗囨爣璁�" width="70" />
-      <el-table-column prop="floorNumber" label="妤煎眰缂栧彿" width="200" />
-      <el-table-column prop="width" label="瀹�" width="80" />
-      <el-table-column prop="height" label="楂�" width="155" />
-      <el-table-column prop="shape" label="褰㈢姸" :show-overflow-tooltip='true' width="180" />
-      <el-table-column prop="finishedNumber" label="瀹屽伐鏁伴噺" width="90" />
-      <el-table-column prop="wornNumber" label="娆$牬鏁伴噺" width="100" />
-      <el-table-column prop="reasonType" label="娆$牬绫诲瀷" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="reasonDamage" label="娆$牬鍘熷洜" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="available" label="鍙埄鐢�" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="reworkProcess" label="杩斿伐宸ュ簭" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="responsibilityProcess" label="璐d换宸ュ簭" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="responsibilityTeams" label="璐d换鐝粍" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="responsibilityPersonnel" label="璐d换浜哄憳" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="responsibilityDevice" label="璐d换璁惧" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="qualityInspectionStatus" label="璐ㄦ鐘舵��" :show-overflow-tooltip='true' width="125" />
-      <el-table-column prop="patchStatus" label="琛ョ墖鐘舵��" :show-overflow-tooltip='true' width="125" />
-
-    </el-table><!-- <h1>{{msg}}</h1> -->
-  </div>
-</template>
-
-<style scoped>
-
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/reportingWorks/ReportingWorks.vue b/UI-Project/src/views/pp/reportingWorks/ReportingWorks.vue
deleted file mode 100644
index 78ed72d..0000000
--- a/UI-Project/src/views/pp/reportingWorks/ReportingWorks.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/reportingWorks/SelectReportingWorks' }">鎶ュ伐绠$悊</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/reportingWorks/AddReportingWork' }">鎶ュ伐鏂板</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/reportingWorks/QualityInspectionReview' }">璐ㄦ瀹℃牳</el-breadcrumb-item>
-        <el-breadcrumb-item :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">鎵撳嵃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-  margin-top: 1%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/reportingWorks/SelectReportingWorks.vue b/UI-Project/src/views/pp/reportingWorks/SelectReportingWorks.vue
deleted file mode 100644
index 3d58161..0000000
--- a/UI-Project/src/views/pp/reportingWorks/SelectReportingWorks.vue
+++ /dev/null
@@ -1,272 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/AddReportingWork', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 140, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: 'reportingWorkNo', width: 120, title: '鎶ュ伐缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: 'reportingWorkTime',width: 120, title: '鎶ュ伐鏃堕棿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'processCard', width: 130,title: '娴佺▼鍗″彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'entryName',width: 120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'batch', width: 100,title: '鎵规', sortable: true,showOverflow:"ellipsis"},
-    {field: 'device', width: 100,title: '璁惧', sortable: true},
-    {field: 'thisProcess',width: 100, title: '鏈伐搴�', sortable: true},
-    {field: 'finishedNumber',width: 120, title: '鏈伐搴忓畬宸�', sortable: true,showOverflow:"ellipsis"},
-    {field: 'finishedArea', width: 120,title: '瀹屽伐闈㈢Н', sortable: true},
-    {field: 'wornNumber',width: 120, title: '鏈伐搴忔鐮�', sortable: true},
-    {field: 'wornArea',width: 120, title: '娆$牬闈㈢Н', sortable: true},
-    {field: 'teamName',width: 120, title: '鐝粍鍚嶇О', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      reportingWorkNo: 'BG2312080011',
-      reportingWorkTime: '2023-12-08 09:05:58',
-      processCard: 'NG23120801A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      batch: '鍥涙壒浜�',
-      device:'澶ф捣鍒╁畞',
-      thisProcess: '鍒囧壊',
-      finishedNumber: '13',
-      finishedArea: '44.22',
-      wornNumber: '',
-      wornArea: '',
-      teamName:'鍒囧壊涓�鐝�'
-    },
-    {
-      reportingWorkNo: 'BG2312080013',
-      reportingWorkTime: '2023-12-08 09:05:58',
-      processCard: 'NG23120801A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      batch: '涓�鎵逛簩',
-      device:'澶ф捣鍒╁畞',
-      thisProcess: '鍒囧壊',
-      finishedNumber: '13',
-      finishedArea: '44.22',
-      wornNumber: '',
-      wornArea: '',
-      teamName:'鍒囧壊涓�鐝�'
-    },
-    {
-      reportingWorkNo: 'BG2311080025',
-      reportingWorkTime: '2023-12-08 09:05:58',
-      processCard: 'NG23120801A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      batch: '涓�鎵逛簩',
-      device:'澶ф捣鍒╁畞',
-      thisProcess: '鍒囧壊',
-      finishedNumber: '13',
-      finishedArea: '44.22',
-      wornNumber: '',
-      wornArea: '',
-      teamName:'鍒囧壊涓�鐝�'
-    },
-    {
-      reportingWorkNo: 'BG2303080025',
-      reportingWorkTime: '2023-12-08 09:05:58',
-      processCard: 'NG23120801A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      batch: '涓�鎵逛簩',
-      device:'澶ф捣鍒╁畞',
-      thisProcess: '鍒囧壊',
-      finishedNumber: '13',
-      finishedArea: '44.22',
-      wornNumber: '',
-      wornArea: '',
-      teamName:'鍒囧壊涓�鐝�'
-    },
-    {
-      reportingWorkNo: 'BG2312080001',
-      reportingWorkTime: '2023-12-08 09:05:58',
-      processCard: 'NG23120801A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      batch: '涓�鎵逛簩',
-      device:'澶ф捣鍒╁畞',
-      thisProcess: '鍒囧壊',
-      finishedNumber: '13',
-      finishedArea: '44.22',
-      wornNumber: '',
-      wornArea: '',
-      teamName:'鍒囧壊涓�鐝�'
-    },
-    {
-      reportingWorkNo: 'BG2312080015',
-      reportingWorkTime: '2023-12-08 09:05:58',
-      processCard: 'NG23120801A01',
-      entryName: '淇″悎鏄ュぉ閲�',
-      batch: '涓�鎵逛簩',
-      device:'澶ф捣鍒╁畞',
-      thisProcess: '鍒囧壊',
-      finishedNumber: '13',
-      finishedArea: '44.22',
-      wornNumber: '',
-      wornArea: '',
-      teamName:'鍒囧壊涓�鐝�'
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['finishedNumber','finishedArea','wornNumber','wornArea']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-        />
-        &nbsp;&nbsp;
-        <el-button type="primary">鏌ヨ</el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">鍙嶅</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-#selectForm {
-  width: 40%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/rework/AddRework.vue b/UI-Project/src/views/pp/rework/AddRework.vue
deleted file mode 100644
index 9dc6fe7..0000000
--- a/UI-Project/src/views/pp/rework/AddRework.vue
+++ /dev/null
@@ -1,213 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      //router.push({path: '/main/processCard/AddProcessCard', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 70, slots: { default: 'button_slot' },fixed:"left"},
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-
-    {field: 'reworkTeams',width: 90, title: '杩斿伐鐝粍', editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'salesOrderNo',width: 120, title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'processCardNo',width: 120, title: '娴佺▼鍗″彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'entryName', width: 120,title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'batch',width: 80, title: '鎵规', sortable: true,showOverflow:"ellipsis"},
-    {field: 'serialNumber',width: 80, title: '搴忓彿', sortable: true},
-    {field: 'singlePieceName',width: 120, title: '鍗曠墖鍚嶇О', sortable: true},
-    {field: 'marking',width: 80, title: '鏍囪', sortable: true,showOverflow:"ellipsis"},
-    {field: 'pieces',width: 90, title: '鐗囨爣璁�', sortable: true},
-    {field: 'number',width: 80, title: '鏁伴噺', sortable: true},
-    {field: 'width',width: 80, title: '瀹�', sortable: true},
-    {field: 'height',width: 80, title: '楂�', sortable: true},
-    {field: 'shape',width: 80, title: '褰㈢姸', sortable: true},
-    {field: 'type',width: 100, title: '杩斿伐宸ュ簭', sortable: true},
-    {field: 'type',width: 100, title: '杩斿伐绫诲瀷', sortable: true},
-    {field: 'damage',width: 120, title: '杩斿伐鍘熷洜', sortable: true},
-    {field: 'device',width: 120, title: '璐d换璁惧', sortable: true},
-    {field: 'teams',width: 120, title: '璐d换鐝粍', sortable: true},
-    {field: 'area',width: 120, title: '杩斿伐闈㈢Н', sortable: true},
-    {field: 'qualityInspector',width: 100, title: '璐ㄦ鍛�', sortable: true}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-     // buttons: [{
-     //   name:'淇濆瓨'
-     // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-
-      reworkNumber:'FG20202020',
-      salesOrderNo:'NG23010101',
-      processCardNo:'NG23010101A01',
-      entryName:'xxxx',
-      batch:'浜屾壒涓�',
-      serialNumber:'1',
-      area:'23.11',
-      qualityInspector:"寮犱笁",
-      number:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      type: '鏈哄櫒',
-      damage:'姘旀场瓒呮爣',
-      device:'XXX',
-      reworkProcess:'鍒囧壊',
-    },
-    {
-
-      reworkNumber:'FG20203333',
-      salesOrderNo:'NG23010101',
-      processCardNo:'NG23010101A01',
-      entryName:'xxxx',
-      batch:'浜屾壒涓�',
-      serialNumber:'1',
-      area:'23.11',
-      qualityInspector:"寮犱笁",
-      number:'1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      width: '575',
-      height:"2241",
-      shape: '鏅舰',
-      type: '鏈哄櫒',
-      damage:'姘旀场瓒呮爣',
-      reworkProcess:'纾ㄨ竟',
-      device:'XXX'
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['total','TotalArea']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">淇濆瓨</el-button>
-
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/rework/Rework.vue b/UI-Project/src/views/pp/rework/Rework.vue
deleted file mode 100644
index 1a1bea4..0000000
--- a/UI-Project/src/views/pp/rework/Rework.vue
+++ /dev/null
@@ -1,58 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/rework/SelectRework' }">杩斿伐绠$悊</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/rework/AddRework' }">杩斿伐鏂板</el-breadcrumb-item>
-        <el-breadcrumb-item :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">鎵撳嵃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 95%;
-  /*margin-top: 1%;*/
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/rework/SelectRework.vue b/UI-Project/src/views/pp/rework/SelectRework.vue
deleted file mode 100644
index f2a2195..0000000
--- a/UI-Project/src/views/pp/rework/SelectRework.vue
+++ /dev/null
@@ -1,436 +0,0 @@
-<script setup>
-
-import {reactive, ref} from "vue";
-import {useRouter} from 'vue-router'
-import request from "@/utils/request";
-import {ElMessage} from "element-plus";
-
-let router = useRouter()
-const dateValue = ref("");//鏌ヨ鏃ユ湡
-const dialogFormVisible = ref(false)
-const formLabelWidth = '140px'
-
-const form = reactive({
-  name: 'FG20202020',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      console.log(type)
-
-      // router.push({path: '/main/Rework/SelectRework', query: { id: row.id }})
-      break
-    }
-    case 'delete': {
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType': {
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns: [
-    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
-    {title: '鎿嶄綔', width: 110, slots: {default: 'button_slot'}, fixed: "left"},
-    {type: 'seq', fixed: "left", title: '鑷簭', width: 50},
-    {
-      field: 'reworkNumber',
-      width: 120,
-      title: '杩斿伐缂栧彿',
-      filters: [{data: ''}],/*slots: { filter: 'num1_filter' } ,*/
-    },
-    {
-      field: 'salesOrderNo',
-      width: 120,
-      title: '閿�鍞崟鍙�',
-      showOverflow: "ellipsis",
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'}
-    },
-    {field: 'processCardNo', width: 120, title: '娴佺▼鍗″彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}},
-    {field: 'entryName', width: 120, title: '椤圭洰鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}},
-    {field: 'batch', width: 80, title: '鎵规', showOverflow: "ellipsis"},
-    {field: 'serialNumber', width: 80, title: '搴忓彿'},
-    {field: 'singlePieceName', width: 120, title: '鍗曠墖鍚嶇О'},
-    {field: 'marking', width: 80, title: '鏍囪', showOverflow: "ellipsis"},
-    {field: 'pieces', width: 90, title: '鐗囨爣璁�'},
-    {field: 'number', width: 80, title: '鏁伴噺'},
-    {field: 'width', width: 80, title: '瀹�'},
-    {field: 'height', width: 80, title: '楂�'},
-    {field: 'shape', width: 80, title: '褰㈢姸'},
-    {field: 'type', width: 100, title: '杩斿伐绫诲瀷'},
-    {field: 'damage', width: 120, title: '杩斿伐鍘熷洜'},
-    {field: 'device', width: 120, title: '璐d换璁惧'},
-    {field: 'teams', width: 120, title: '璐d换鐝粍'},
-    {field: 'area', width: 120, title: '杩斿伐闈㈢Н'},
-    {field: 'reworkProcess', width: 120, title: '杩斿伐宸ュ簭'},
-    {field: 'reworkTeams', width: 120, title: '杩斿伐鐝粍'},
-    {field: 'qualityInspector', width: 100, title: '璐ㄦ鍛�'}
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data: [
-    {
-
-      reworkNumber: 'FG20202020',
-      salesOrderNo: 'NG23010101',
-      processCardNo: 'NG23010101A01',
-      entryName: 'xxxx',
-      batch: '浜屾壒涓�',
-      serialNumber: '1',
-      area: '23.11',
-      qualityInspector: "寮犱笁",
-      number: '1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      width: '575',
-      height: "2241",
-      shape: '鏅舰',
-      reworkTeams: 'XX浜岀彮',
-      type: '鏈哄櫒',
-      damage: '姘旀场瓒呮爣',
-      reworkProcess: 'XXXX',
-      device: 'XXX'
-    },
-    {
-
-      reworkNumber: 'FG20203333',
-      salesOrderNo: 'NG23010101',
-      processCardNo: 'NG23010101A01',
-      entryName: 'xxxx',
-      batch: '浜屾壒涓�',
-      serialNumber: '1',
-      area: '23.11',
-      qualityInspector: "寮犱笁",
-      number: '1',
-      singlePieceName: '6mm鐧界幓骞抽挗(澶�)',
-      marking: '1',
-      pieces: '(澶�)',
-      width: '575',
-      height: "2241",
-      shape: '鏅舰',
-      reworkTeams: 'XX浜岀彮',
-      type: '鏈哄櫒',
-      damage: '姘旀场瓒呮爣',
-      reworkProcess: 'XXXX',
-      device: 'XXX'
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    let footList = ['number', 'area']
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }, mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 2}
-  ],//鍚堝苟鑴�
-
-})
-
-
-/*鏌ヨ*/
-const queryData=()=>{
-
-/*  if(dateValue.value===""){
-    MessageShow("鏈�夋嫨鏃堕棿锛岃閫夋嫨鏃堕棿鍚庡啀娆¤繘琛屾煡璇�","warning");
-    return;
-  }*/
-
-
-  /*else{
-
-    MessageShow(dateValue);
-  }
-
-
-  console.log(filterData.value);*/
-  //MessageShow(`/Rework/1/100/`+dateValue.value[0]+"/"+dateValue.value[1]+"\r\n"+filterData.value);
-  /*console.log(`/Rework/1/100/`+dateValue.value);
-  debugger*/
-  request.post(`/rework/query/1/100/${dateValue.value[0]}/${dateValue.value[1]}`).then((res) => {
-
-
-    console.log(res);
-    MessageShow(res);
-    if(res.code===200){
-      pageTotal.value=res.data.total
-      xGrid.value.loadData(res.data.data)
-
-
-
-      gridOptions.loading=false
-    }else{
-      ElMessage.warning(res.msg)
-    }
-  })
-
-}
-
-//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
-let filterData = ref({
-
-})
-
-//瀹氫箟椤甸潰鎬婚〉鏁�
-let pageTotal=ref('')
-//瀹氫箟鏁版嵁杩斿洖缁撴灉
-let produceList = ref([])
-//瀹氫箟褰撳墠椤垫暟
-let pageNum=$ref(1)
-let pageState = null
-
-//瀹氫箟婊氬姩鏉¢珮搴�
-let scrollTop =ref(null)
-let scrollHeight =ref(null)
-let clientHeight =ref(null)
-const  scrollEvnt = (row) => {
-  // 鍐呭楂樺害
-  scrollTop.value = row.$event.target.scrollTop
-  scrollHeight.value = row.$event.target.scrollHeight
-  clientHeight.value = row.$event.target.clientHeight
-}
-
-/*鏃堕棿妗嗗揩閫熼�夋嫨*/
-const shortcuts = [
-  {
-    text: '杩戜竴鍛�',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
-      return [start, end]
-    },
-  },
-  {
-    text: '杩戜竴涓湀',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
-      return [start, end]
-    },
-  },
-  {
-    text: '杩戜笁涓湀',
-    value: () => {
-      const end = new Date()
-      const start = new Date()
-      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
-      return [start, end]
-    },
-  },
-]
-
-const MessageShow = (content, type = 'success') => {
-  ElMessage({
-    message: content,
-    type: type,
-    showClose: true,
-  })
-}
-
-
-/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/
-const changeFilterEvent = (event, option, $panel,) => {
-  // 鎵嬪姩瑙﹀彂绛涢��
-  $panel.changeOption(event, !!option.data, option)
-}
-function filterChanged(column){
-  /*gridOptions.loading=true
- //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖�
- let value = column.datas[0]!=undefined?column.datas[0]:''
- value = value.trim()
- //鍒ゆ柇鏄惁瀛樺湪澶栭敭
- if (column.property.indexOf('.')>-1){
-   const  columnArr = column.property.split('.')
-   filterData.value[columnArr[0]] = {
-     [columnArr[1]]:value
-   }
- }else{
-   filterData.value[column.property] = value
- }
-request.post("/product/1/100/"+productGlassTypeStore.GlassType,filterData.value).then((res) => {
-   if(res.code==200){
-     pageTotal.value=res.data.total
-     pageNum=1
-     produceList = deepClone(res.data.data)
-     xGrid.value.loadData(produceList)
-     gridOptions.loading=false
-   }else{
-     ElMessage.warning(res.msg)
-   }
- })*/
-}
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <el-header height="auto" style="padding: 0;margin:0">
-      <el-row :gutter="0" style="margin-bottom: 5px">
-        <el-col :span="7">
-          <el-date-picker
-              v-model="dateValue"
-              type="daterange"
-              unlink-panels
-              range-separator="-"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              :shortcuts="shortcuts"
-              format="YYYY-MM-DD"
-              value-format="YYYY-MM-DD"
-              width:99%
-          />
-        </el-col>
-
-        <el-col :span="2">
-          <el-button type="primary" @click="queryData()">鏌ヨ</el-button>
-        </el-col>
-      </el-row>
-    </el-header>
-
-
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        @scroll ="scrollEvnt"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="dialogFormVisible = true" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'setType')" link type="primary" size="small">瀹℃牳</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-
-
-    <el-dialog v-model="dialogFormVisible" title="杩斿伐缂栬緫">
-      <el-form :model="form">
-        <el-form-item label="杩斿伐缂栧彿" :label-width="formLabelWidth">
-          <el-input v-model="form.name" disabled autocomplete="off" style="width: 200px"/>
-        </el-form-item>
-        <el-form-item label="杩斿伐鐝粍" :label-width="formLabelWidth">
-          <el-select v-model="form.region" placeholder="鐝粍涓�" style="width: 200px">
-            <el-option label="鐝粍涓�" value="shanghai"/>
-            <el-option label="鐝粍浜�" value="beijing"/>
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-      <span class="dialog-footer">
-        <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="dialogFormVisible = false">
-          纭
-        </el-button>
-      </span>
-      </template>
-    </el-dialog>
-  </div>
-
-</template>
-
-<style scoped>
-.main-div-customer {
-  width: 99%;
-  height: 98%;
-}
-
-:deep(.el-col div) {
-  font-weight: bold;
-  width: 99%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/workOrder/AddWorkOrder.vue b/UI-Project/src/views/pp/workOrder/AddWorkOrder.vue
deleted file mode 100644
index d6a2423..0000000
--- a/UI-Project/src/views/pp/workOrder/AddWorkOrder.vue
+++ /dev/null
@@ -1,166 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/workOrder/addWorkOrder', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: 80 },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: 'salesOrderNo', title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: 'productID', title: '浜у搧缂栧彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'productName', title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'total', title: '鎬绘暟閲�', sortable: true},
-    {field: 'totalArea', title: '鎬婚潰绉�', sortable: true},
-    {field: 'perimeter', title: '鍛ㄩ暱', sortable: true,showOverflow:"ellipsis"},
-  ],//琛ㄥご鎸夐挳
-
-  toolbarConfig: {
-    buttons: [
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      salesOrderNo: 'NG231201',
-      productID: '9001010208000021',
-      productName: '6mm瓒呯櫧UD60骞抽挗(澶�)+12A(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      total:"123",
-      totalArea:"1233.12",
-      perimeter:"133"
-    },
-    {
-      salesOrderNo: 'NG231201',
-      productID: '9001010203000008',
-      productName: '6mm瓒呯櫧LYDE-80骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      total:"123",
-      totalArea:"1233.12",
-      perimeter:"133"
-    },
-  ],//table body瀹為檯鏁版嵁
-  //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['total','totalArea']
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">杞伐鍗�</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/workOrder/ReleaseWorkOrder.vue b/UI-Project/src/views/pp/workOrder/ReleaseWorkOrder.vue
deleted file mode 100644
index aa83e63..0000000
--- a/UI-Project/src/views/pp/workOrder/ReleaseWorkOrder.vue
+++ /dev/null
@@ -1,146 +0,0 @@
-<script lang="ts" setup>
-import { reactive } from 'vue'
-
-// do not use same name with ref
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-const tableData = [
-  {
-    salesOrderNo: 'NG231201',
-    productionOrderNo: 'NG231201A',
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    monolithicTotalArea: '509.78',
-    total: '169',
-    productTotalArea: '175.31',
-    perimeter: '99.84',
-    radius: '0',
-    createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231201',
-    productionOrderNo: 'NG231201A',
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    monolithicTotalArea: '509.78',
-    total: '169',
-    productTotalArea: '175.31',
-    perimeter: '99.84',
-    radius: '0',
-    createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231201',
-    productionOrderNo: 'NG231201A',
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    monolithicTotalArea: '509.78',
-    total: '169',
-    productTotalArea: '175.31',
-    perimeter: '99.84',
-    radius: '0',
-    createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231201',
-    productionOrderNo: 'NG231201A',
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    monolithicTotalArea: '509.78',
-    total: '169',
-    productTotalArea: '175.31',
-    perimeter: '99.84',
-    radius: '0',
-    createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231201',
-    productionOrderNo: 'NG231201A',
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    monolithicTotalArea: '509.78',
-    total: '169',
-    productTotalArea: '175.31',
-    perimeter: '99.84',
-    radius: '0',
-    createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231201',
-    productionOrderNo: 'NG231201A',
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    monolithicTotalArea: '509.78',
-    total: '169',
-    productTotalArea: '175.31',
-    perimeter: '99.84',
-    radius: '0',
-    createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-  {
-    salesOrderNo: 'NG231201',
-    productionOrderNo: 'NG231201A',
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    productName: '5mm鐧界幓骞抽挗(澶�)+0.76PVB閫忔槑+5mm鐧界幓骞抽挗(鍐�)',
-    monolithicTotalArea: '509.78',
-    total: '169',
-    productTotalArea: '175.31',
-    perimeter: '99.84',
-    radius: '0',
-    createTime: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-  },
-]
-</script>
-
-<template>
-  <div>
-  <div id="selectForm">
-    <el-row :gutter="0">
-      <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 200px"/>
-      &nbsp;&nbsp;
-      <el-button type="primary">鏌ヨ</el-button>
-    </el-row>
-
-
-  </div>
-  <div>
-
-    <el-table :data="tableData" border style="width: 100%" height="100%">
-      <el-table-column fixed label="鎿嶄綔" width="100"  >
-        <el-button link type="primary" size="small">涓嬭揪</el-button>
-        <el-button link type="primary" size="small">鍙栨秷</el-button>
-      </el-table-column>
-      <el-table-column sortable prop="salesOrderNo" label="閿�鍞崟鍙�" width="110"  />
-      <el-table-column prop="productionOrderNo" label="鐢熶骇璁㈠崟鍙�" :show-overflow-tooltip='true' width="110" />
-      <el-table-column prop="entryName" label="椤圭洰鍚嶇О" width="155" />
-      <el-table-column prop="batch" label="鎵规" width="80" />
-      <el-table-column prop="productName" label="浜у搧鍚嶇О" :show-overflow-tooltip='true' width="180" />
-      <el-table-column prop="monolithicTotalArea" label="鍗曠墖鎬婚潰绉�" width="100" />
-      <el-table-column prop="total" label="鎬绘暟閲�" width="75" />
-      <el-table-column prop="productTotalArea" label="鎴愬搧鎬婚潰绉�" width="100" />
-      <el-table-column prop="perimeter" label="鍛ㄩ暱" width="100" />
-      <el-table-column prop="radius" label="鍗婂緞" width="70" />
-      <el-table-column prop="createTime" label="鍔犲伐瑕佹眰" :show-overflow-tooltip='true' width="350" />
-    </el-table><!-- <h1>{{msg}}</h1> -->
-  </div>
-  </div>
-</template>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/workOrder/SelectAddWorkOrder.vue b/UI-Project/src/views/pp/workOrder/SelectAddWorkOrder.vue
deleted file mode 100644
index 50318fa..0000000
--- a/UI-Project/src/views/pp/workOrder/SelectAddWorkOrder.vue
+++ /dev/null
@@ -1,136 +0,0 @@
-  <script lang="ts" setup>
-import { reactive } from 'vue'
-
-// do not use same name with ref
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
-const tableData = [
-  {
-    salesOrderNo: 'NG231201',
-    customerName:"鎱曞鍏徃",
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    originalFilmRequired: '2022/5/24XFPO202205202',
-    orderType: '鏅�氳鍗�',
-    salesman: 'XXX',
-    processRequirements: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    shipTo:'宸ュ湴',
-
-  },
-  {
-    salesOrderNo: 'NG231202',
-    customerName:"澶ц崚寤烘潗鏈夐檺鍏徃",
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    originalFilmRequired: '2022/5/24XFPO202205202',
-    orderType: '鏅�氳鍗�',
-    salesman: 'XXX',
-    processRequirements: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    shipTo:'宸ュ湴',
-
-  },
-  {
-    salesOrderNo: 'NG231203',
-    customerName:"寤虹瓚宸ョ▼闆嗗洟鏈夐檺鍏徃",
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    originalFilmRequired: '2022/5/24XFPO202205202',
-    orderType: '鏅�氳鍗�',
-    salesman: 'XXX',
-    processRequirements: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    shipTo:'宸ュ湴',
-
-  },
-  {
-    salesOrderNo: 'NG231204',
-    customerName:"鎱曞鍏徃",
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    originalFilmRequired: '2022/5/24XFPO202205202',
-    orderType: '鏅�氳鍗�',
-    salesman: 'XXX',
-    processRequirements: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    shipTo:'宸ュ湴',
-
-  },
-  {
-    salesOrderNo: 'NG231205',
-    customerName:"鎱曞鍏徃",
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    originalFilmRequired: '2022/5/24XFPO202205202',
-    orderType: '鏅�氳鍗�',
-    salesman: 'XXX',
-    processRequirements: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    shipTo:'宸ュ湴',
-
-  },
-  {
-    salesOrderNo: 'NG231206',
-    customerName:"鎱曞鍏徃",
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    originalFilmRequired: '2022/5/24XFPO202205202',
-    orderType: '鏅�氳鍗�',
-    salesman: 'XXX',
-    processRequirements: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    shipTo:'宸ュ湴',
-
-  },
-  {
-    salesOrderNo: 'NG231207',
-    customerName:"鎱曞鍏徃",
-    entryName: '淇″悎鏄ュぉ閲�',
-    batch: '23鎵�',
-    originalFilmRequired: '2022/5/24XFPO202205202',
-    orderType: '鏅�氳鍗�',
-    salesman: 'XXX',
-    processRequirements: '1)鎸変紒鏍�2)姣忕墖鐜荤拑鏍囩璐村澶栭潰銆傚唴鐗囩幓鐠冩墦鈥�3C鍟嗘爣鈥濓紝缁熶竴鎵撳湪鐜荤拑鈥滃搴︹�濇柟鍚戝彸涓嬭4)鎸夋壒娆″崟鐙惤鏋躲��',
-    shipTo:'宸ュ湴',
-
-  },
-]
-</script>
-
-<template>
-  <div>
-  <div id="selectForm">
-    <el-row :gutter="0">
-      <el-input placeholder="閿�鍞崟鍙�" v-model="form.name" style="width: 200px"/>
-      &nbsp;&nbsp;
-      <el-button type="primary">鏌ヨ</el-button>
-    </el-row>
-
-
-  </div>
-  <div>
-    <el-table :data="tableData" border style="width: 100%" height="100%">
-      <el-table-column sortable prop="salesOrderNo" label="閿�鍞崟鍙�" width="110" >
-        <template v-slot="scope">
-          <router-link :to="{path:'addWorkOrder'}" >{{scope.row.salesOrderNo}}</router-link>
-        </template>
-      </el-table-column>
-      <el-table-column prop="customerName" label="瀹㈡埛鍚嶇О" :show-overflow-tooltip='true' width="110" />
-      <el-table-column prop="entryName" label="椤圭洰鍚嶇О" width="135" />
-      <el-table-column prop="batch" label="鎵规" width="80" />
-      <el-table-column prop="originalFilmRequired" :show-overflow-tooltip='true' label="鍘熺墖瑕佹眰" width="200" />
-      <el-table-column prop="orderType" label="璁㈠崟绫诲瀷" width="100" />
-      <el-table-column prop="salesman" label="涓氬姟鍛�" width="75" />
-      <el-table-column prop="processRequirements" :show-overflow-tooltip='true' label="鍔犲伐瑕佹眰" width="400" />
-      <el-table-column prop="shipTo" label="閫佽揣鍦板潃" width="100" />
-    </el-table><!-- <h1>{{msg}}</h1> -->
-  </div>
-  </div>
-</template>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/workOrder/SelectWorkOrder.vue b/UI-Project/src/views/pp/workOrder/SelectWorkOrder.vue
deleted file mode 100644
index 6bd8678..0000000
--- a/UI-Project/src/views/pp/workOrder/SelectWorkOrder.vue
+++ /dev/null
@@ -1,366 +0,0 @@
-<script setup>
-import request from "@/utils/request"
-import deepClone from "@/utils/deepClone"
-import {ElDatePicker, ElMessage} from "element-plus"
-import useProductGlassTypeStore from "@/stores/sd/product/productGlassType"
-import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue"
-import {Search} from "@element-plus/icons-vue"
-import GlassType from "@/components/sd/product/GlassType.vue"
-import {useRouter} from 'vue-router'
-import Sortable from 'sortablejs'
-import BasicTable from '@/components/basic/BasicTable.vue'
-import {VXETable} from "vxe-table";
-
-
-let productGlassTypeStore = useProductGlassTypeStore()
-let router = useRouter()
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/workOrder/addWorkOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-function padLeftZero(str) {
-  return ('00' + str).substr(str.length)
-}
-
-//瀹氫箟鏃堕棿
-const form = reactive({
-  date1: '',
-})
-
-
-//瀹氫箟杞崟鐘舵��
-const optionVal = ref('0')
-const options = [
-  {
-    value: '0',
-    label: '宸茶浆',
-  },
-  {
-    value: '1',
-    label: '鏈浆',
-  },
-]
-
-
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
-
-//瀹氫箟婊氬姩鏉¢珮搴�
-let scrollTop = ref(null)
-let scrollHeight = ref(null)
-let clientHeight = ref(null)
-const scrollEvnt = (row) => {
-  // 鍐呭楂樺害
-  scrollTop.value = row.$event.target.scrollTop
-  scrollHeight.value = row.$event.target.scrollHeight
-  clientHeight.value = row.$event.target.clientHeight
-}
-//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
-let filterData = ref({
-  order: {
-    batch: ''
-  },
-    orderDetail: {
-    productName: '',
-    computeArea: '',
-    quantity: '',
-    computeGrossArea: '',
-    perimeter: '',
-    bendRadius: '',
-    processingNote: ''
-  }
-
-})
-//瀹氫箟椤甸潰鎬婚〉鏁�
-let pageTotal = ref('')
-//瀹氫箟鏁版嵁杩斿洖缁撴灉
-let produceList = ref([])
-//瀹氫箟褰撳墠椤垫暟
-let pageNum = $ref(1)
-let pageState = null
-
-//鑾峰彇涓冨ぉ鍓嶅埌褰撳墠鏃堕棿
-function getNowTime() {
-  const start = new Date(new Date().getTime()- 3600 * 1000 * 24 * 7)
-      .toISOString()
-      .replace('T', ' ')
-      .slice(0,10) //榛樿寮�濮嬫椂闂�7澶╁墠
-  const end = new Date(new Date().getTime())
-      .toISOString()
-      .replace('T', ' ')
-      .slice(0,10)//榛樿缁撴潫鏃堕棿褰撳墠鏃堕棿
-  return [start, end]
-}
-
-
-//绗竴娆″姞杞借幏鍙栬繎涓冨ぉ鏃堕棿鍜岄粯璁ょ姸鎬�
-form.date1=getNowTime()
-let startTime = form.date1[0]
-let endTime = form.date1[1]
-let state = optionVal.value
-
-//绗竴娆″姞杞芥暟鎹�
-
-request.post(`/workOrder/orderGlassDetail/${startTime}/${endTime}/${state}`, filterData.value).then((res) => {
-
-  if (res.code == 200) {
-    console.log(res.data.data)
-    pageTotal.value = res.data.total
-    produceList = produceList.value.concat(deepClone(res.data.data))
-    xGrid.value.reloadData(produceList)
-    gridOptions.loading = false
-  } else {
-    ElMessage.warning(res.msg)
-  }
-})
-
-//鐐瑰嚮鏌ヨ
-const getWorkOrder = () => {
-
-  let startTime = form.date1[0]
-  let endTime = form.date1[1]
-  let selectState=optionVal.value
-  request.post(`/workOrder/orderGlassDetail/${startTime}/${endTime}/${selectState}`, filterData.value).then((res) => {
-    if (res.code == 200) {
-
-      pageTotal.value = res.data.total
-      xGrid.value.loadData(res.data.data)
-      gridOptions.loading = false
-    } else {
-      ElMessage.warning(res.msg)
-    }
-  })
-}
-
-/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/
-const changeFilterEvent = (event, option, $panel,) => {
-  // 鎵嬪姩瑙﹀彂绛涢��
-  $panel.changeOption(event, !!option.data, option)
-}
-
-function filterChanged(column) {
-  gridOptions.loading = true
-  //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖�
-  let value = column.datas[0] != undefined ? column.datas[0] : ''
-  value = value.trim()
-  //鍒ゆ柇鏄惁瀛樺湪澶栭敭
-  if (column.property.indexOf('.') > -1) {
-    const columnArr = column.property.split('.')
-    filterData.value[columnArr[0]] = {
-      [columnArr[1]]: value
-    }
-  } else {
-    filterData.value[column.property] = value
-  }
-
-//鑾峰彇閫変腑鏃堕棿鍜屾槸鍚﹁浆鍗曠姸鎬�
-  let startTime = form.date1[0]
-  let endTime = form.date1[1]
-  let selectState=optionVal.value
-
-  request.post(`/workOrder/orderGlassDetail/${startTime}/${endTime}/${selectState}`, filterData.value).then((res) => {
-    if(res.code==200){
-      pageTotal.value=res.data.total
-
-      produceList = deepClone(res.data.data)
-      xGrid.value.loadData(produceList)
-      gridOptions.loading=false
-    }else{
-      ElMessage.warning(res.msg)
-    }
-  })
-}
-
-/*鍚庣杩斿洖缁撴灉澶氬眰宓屽灞曠ず*/
-const hasDecimal = (value) => {
-  const regex = /\./; // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐�
-  return regex.test(value); // 杩斿洖true/false
-}
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const xGrid = ref()
-const gridOptions = reactive({
-  loading: true,
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 60, useKey: true},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'demo_1',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollX: {enabled: true},
-  scrollY: {enabled: true, gt: 0},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns: [
-    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
-    {title: '鎿嶄綔', width: 110, slots: {default: 'button_slot'}, fixed: "left"},
-    {type: 'seq', fixed: "left", title: '鑷簭', width: 50},
-    {field: 'orderId', title: '閿�鍞崟鍙�', filters: [{data: ''}], slots: {filter: 'num1_filter'},},
-    {
-      field: 'productionId',
-      title: '鐢熶骇璁㈠崟鍙�',
-      showOverflow: "ellipsis",
-      filters: [{data: ''}],
-      slots: {filter: 'num1_filter'}
-    },
-    {field: 'order.batch', title: '鎵规', filters: [{data: ''}], slots: {filter: 'num1_filter'}},
-    {field: 'orderDetail.productName', title: '浜у搧鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'},},
-    {field: 'orderDetail.computeArea', title: '鍗曠墖鎬婚潰绉�', showOverflow: "ellipsis"},
-    {field: 'orderDetail.quantity', title: '鎬绘暟閲�',},
-    {field: 'orderDetail.computeGrossArea', title: '鎴愬搧鎬婚潰绉�',},
-    {field: 'orderDetail.perimeter', title: '鍛ㄩ暱', showOverflow: "ellipsis"},
-    {field: 'orderDetail.bendRadius', title: '鍗婂緞',},
-    {field: 'orderDetail.processingNote', title: '鍔犲伐瑕佹眰',}
-  ],//琛ㄥご鎸夐挳
-  data: null,//琛ㄦ牸鏁版嵁
-  toolbarConfig: {
-    // buttons: [{
-    //
-    // }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  //鑴氶儴姹傚拰
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    let footList = ['', '', '']
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
-        }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <div id="selectForm">
-      <el-row :gutter="0">
-        <el-date-picker
-            v-model="form.date1"
-            type="daterange"
-            format="YYYY/MM/DD"
-            value-format="YYYY-MM-DD"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            :default-time="defaultTime"
-
-        />
-        &nbsp;&nbsp;
-        <el-select :default-first-option="true" ref="getSelect" style="width: 120px" v-model="optionVal" class="m-2" placeholder="鏄惁杞伐鍗�">
-          <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-          />
-        </el-select>
-        &nbsp;&nbsp;
-        <el-button
-            @click="getWorkOrder"
-            id="select"
-            type="primary" :icon="Search">鏌ヨ
-        </el-button>
-      </el-row>
-
-    </div>
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span>
-            <span v-else>{{ row[item.field] }}</span>
-
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">杞伐鍗�</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer {
-  width: 99%;
-  height: 100%;
-}
-
-#selectForm {
-  width: 50%;
-  text-align: center;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/pp/workOrder/WorkOrder.vue b/UI-Project/src/views/pp/workOrder/WorkOrder.vue
deleted file mode 100644
index 80dfdc4..0000000
--- a/UI-Project/src/views/pp/workOrder/WorkOrder.vue
+++ /dev/null
@@ -1,56 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/basic/product/GlassType.vue'
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/workOrder/SelectWorkOrder' }">宸ュ崟绠$悊</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">鎵撳嵃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 5%;
-  width: 98%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 92%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/customer/CreateCustomer.vue b/UI-Project/src/views/sd/customer/CreateCustomer.vue
deleted file mode 100644
index 424bd72..0000000
--- a/UI-Project/src/views/sd/customer/CreateCustomer.vue
+++ /dev/null
@@ -1,132 +0,0 @@
-<script lang="ts" setup>
-import { reactive, ref } from 'vue'
-import type { FormInstance, FormRules } from 'element-plus'
-
-const ruleFormRef = ref<FormInstance>()
-
-const checkAge = (rule: any, value: any, callback: any) => {
-  if (!value) {
-    return callback(new Error('Please input the age'))
-  }
-  setTimeout(() => {
-    if (!Number.isInteger(value)) {
-      callback(new Error('Please input digits'))
-    } else {
-      if (value < 18) {
-        callback(new Error('Age must be greater than 18'))
-      } else {
-        callback()
-      }
-    }
-  }, 1000)
-}
-
-const validatePass = (rule: any, value: any, callback: any) => {
-  if (value === '') {
-    callback(new Error('Please input the password'))
-  } else {
-    if (ruleForm.checkPass !== '') {
-      if (!ruleFormRef.value) return
-      ruleFormRef.value.validateField('checkPass', () => null)
-    }
-    callback()
-  }
-}
-const validatePass2 = (rule: any, value: any, callback: any) => {
-  if (value === '') {
-    callback(new Error('Please input the password again'))
-  } else if (value !== ruleForm.pass) {
-    callback(new Error("Two inputs don't match!"))
-  } else {
-    callback()
-  }
-}
-
-const ruleForm = reactive({
-  pass: '',
-  checkPass: '',
-  age: '',
-})
-
-const rules = reactive<FormRules<typeof ruleForm>>({
-  pass: [{ validator: validatePass, trigger: 'blur' }],
-  checkPass: [{ validator: validatePass2, trigger: 'blur' }],
-  age: [{ validator: checkAge, trigger: 'blur' }],
-})
-
-const submitForm = (formEl: FormInstance | undefined) => {
-  if (!formEl) return
-  formEl.validate((valid) => {
-    if (valid) {
-      console.log('submit!')
-    } else {
-      console.log('error submit!')
-      return false
-    }
-  })
-}
-
-const resetForm = (formEl: FormInstance | undefined) => {
-  if (!formEl) return
-  formEl.resetFields()
-}
-</script>
-
-<template>
-  <div class="main-div">
-    <div class="div-form">
-      <el-form
-          ref="ruleFormRef"
-          :model="ruleForm"
-          status-icon
-          :rules="rules"
-          label-width="120px"
-          class="demo-ruleForm"
-      >
-        <el-form-item label="瀹㈡埛鍚嶇О" prop="pass">
-          <el-input  v-model="ruleForm.pass" type="text" autocomplete="off" />
-        </el-form-item>
-        <el-form-item label="瀹㈡埛绛夌骇" prop="checkPass">
-          <el-input
-              v-model="ruleForm.checkPass"
-              type="text"
-              autocomplete="off"
-          />
-        </el-form-item>
-        <el-form-item label="淇$敤棰濆害" prop="age">
-          <el-input v-model.number="ruleForm.age" />
-        </el-form-item>
-        <el-form-item label="鍦板潃" prop="age">
-          <el-input v-model.number="ruleForm.age" />
-        </el-form-item>
-        <el-form-item label="鑱旂郴浜�" prop="age">
-          <el-input v-model.number="ruleForm.age" />
-        </el-form-item>
-        <el-form-item label="鑱旂郴鐢佃瘽" prop="age">
-          <el-input v-model.number="ruleForm.age" />
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="submitForm(ruleFormRef)"
-          >淇濆瓨</el-button
-          >
-          <el-button @click="resetForm(ruleFormRef)">閲嶇疆</el-button>
-        </el-form-item>
-      </el-form>
-    </div>
-  </div>
-
-
-</template>
-
-
-<style scoped>
-.main-div{
-  width: 100%;
-  height: 100%;
-}
-
-.div-form{
-  height:70%;
-  width: 40%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/customer/SelectCustomer.vue b/UI-Project/src/views/sd/customer/SelectCustomer.vue
deleted file mode 100644
index 7ff59b8..0000000
--- a/UI-Project/src/views/sd/customer/SelectCustomer.vue
+++ /dev/null
@@ -1,159 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/customer/CreateCustomer', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-
-
-//瀛愮粍浠舵帴鏀跺弬鏁�
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-          {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-          {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
-          {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' },fixed:"left"},
-          {field: '0', title: '瀹㈡埛缂栫爜',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-          {field: '1', title: '鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-          {field: '2', title: '瀹㈡埛绛夌骇',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-          {field: '3', title: '淇$敤棰濆害',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-          {field: '4', title: '鍦板潃',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-          {field: '5', title: '鑱旂郴浜�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-          {field: '6', title: '鑱旂郴鐢佃瘽',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-      ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      '0':'1',
-      '1':'澶粨鍗撻珮鐜荤拑鍒跺搧鏈夐檺鍏徃',
-      '2':'A',
-      '3':'100000',
-      '4':'姹熻嫃澶粨xxxx琛楅亾',
-      '5':'寮犱笁',
-      '6':'139xxxxxxxx',
-
-    },
-    {
-      '0':'1',
-      '1':'灞辫タ鏌愭煇鍏徃',
-      '2':'A',
-      '3':'100000',
-      '4':'姹熻嫃澶粨xxxx琛楅亾',
-      '5':'寮犱笁',
-      '6':'139xxxxxxxx',
-
-    }
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-</script>
-
-<template>
-  <div class="main-div-customer">
-    <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-  </div>
-</template>
-
-<style scoped>
-.main-div-customer{
-  width: 99%;
-  height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/delivery/CreateDelivery.vue b/UI-Project/src/views/sd/delivery/CreateDelivery.vue
deleted file mode 100644
index a77362d..0000000
--- a/UI-Project/src/views/sd/delivery/CreateDelivery.vue
+++ /dev/null
@@ -1,254 +0,0 @@
-<script setup>
-
-import {reactive} from "vue";
-
-
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-
-    {type:'expand',slots: { content:'content' },width: 50,fixed:"left"},
-    {type:'checkbox',title: '閫夊垯', width: 80,fixed:"left"},
-    {type: 'seq', title: '鑷簭', width: 80 ,fixed:"left"},
-    {field: '0',width:120,  title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '1',width:120,  title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '2',width:120,  title: '搴撳瓨鍙彂',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '3',width:120,  title: '鏈彂鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '4',width:120,  title: '鎬绘暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',width:120,  title: '鍙戣揣鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '6',width:120,  title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '7',width:120,   title: '浜у搧缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '8',width:120,  title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '9',width:120,  title: '鍗曚环',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '10',width:120,  title: '搴撳尯',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '11',width:120,  title: '閲戦',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '12',width:120,  title: '瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '13',width:120,  title: '楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '14',width:120,  title: '褰㈢姸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '15',width:120,   title: '鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '16',width:120,   title: '鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '17',width:120,  title: '缁撶畻鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '18',width:120,  title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '19',width:120,  title: '鍔犲伐瑕佹眰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '20',width:120,  title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '21',width:120,  title: '纾ㄨ竟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '22',width:120,  title: '鍛ㄩ暱',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-
-
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-      {'code': 'add', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save'}
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      '0': 'NG23110102',
-      '1': '20鎵�1',
-      '2': '16',
-      '3': '18',
-      '4': '20',
-      '5': '20',
-      '6': 'A妤糱灞�',
-      '7': '101',
-      '8': '10mmLYTM-140寮挗鍖�',
-      '9': '1008.38',
-      '10': 'A鍙锋煴瀛�',
-      '11': '100',
-      '12': '3360',
-      '13': '2440',
-      '14': '鏅舰',
-      '15': '1.11',
-      '16': '100.1',
-      '17': '1.22',
-      '18': '11.11',
-      '19': '杩欐槸鍔犲伐瑕佹眰',
-      '20': '杩欐槸澶囨敞',
-      '21': '杩欐槸纾ㄨ竟绫诲瀷',
-      '22': '1.1'
-    },
-    {
-      '0': 'NG23110102',
-      '1': '20鎵�1',
-      '2': '16',
-      '3': '18',
-      '4': '20',
-      '5': '20',
-      '6': 'A妤糱灞�',
-      '7': '101',
-      '8': '10mmLYTM-140寮挗鍖�',
-      '9': '1008.38',
-      '10': 'A鍙锋煴瀛�',
-      '11': '100',
-      '12': '3360',
-      '13': '2440',
-      '14': '鏅舰',
-      '15': '1.11',
-      '16': '100.1',
-      '17': '1.22',
-      '18': '11.11',
-      '19': '杩欐槸鍔犲伐瑕佹眰',
-      '20': '杩欐槸澶囨敞',
-      '21': '杩欐槸纾ㄨ竟绫诲瀷',
-      '22': '1.1'
-    }
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-</script>
-
-<template>
-  <div class="main-div">
-    <div class="order-primary" style="background-color: white">
-      <el-row>
-        <el-col  :span="2"><el-text>瀹㈡埛缂栫爜:</el-text></el-col>
-        <el-col  :span="5"><el-text style="font-size: large;color: #181818">131</el-text></el-col>
-        <el-col  :span="2"><el-text>瀹㈡埛鍚嶇О:</el-text></el-col>
-        <el-col  :span="5"><el-text></el-text></el-col>
-        <el-col  :span="2"><el-text>椤圭洰鍚嶇О:</el-text></el-col>
-        <el-col  :span="5"><el-text></el-text></el-col>
-      </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>浠樻鏉′欢:</el-text></el-col>
-        <el-col  :span="5">
-          <el-select  clearable  >
-            <el-option/>
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>鏀舵鏂瑰紡:</el-text></el-col>
-        <el-col  :span="5"></el-col>
-        <el-col  :span="2"><el-text>鏀舵鏃ユ湡:</el-text></el-col>
-        <el-col  :span="5">
-          <el-date-picker
-              type="week"
-              format="[Week] ww"
-              placeholder="閫夋嫨鏃ユ湡"/>
-        </el-col>
-
-      </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>鑱旂郴浜�:</el-text></el-col>
-        <el-col  :span="5"><el-input/></el-col>
-        <el-col  :span="2"><el-text>鑱旂郴鐢佃瘽:</el-text></el-col>
-        <el-col  :span="5"><el-input/></el-col>
-        <el-col  :span="2"><el-text>閫佽揣鍦板潃:</el-text></el-col>
-        <el-col  :span="5"><el-input/></el-col>
-      </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>澶囨敞:</el-text></el-col>
-        <el-col  :span="5"><el-input/></el-col>
-        <el-col  :span="2"><el-text>鎶ヨ〃鏃ユ湡:</el-text></el-col>
-        <el-col  :span="5"></el-col>
-        <el-col  :span="2"><el-text>鍙戣揣鎶ヨ〃鏃ユ湡:</el-text></el-col>
-        <el-col  :span="5">
-          <el-date-picker
-              type="week"
-              format="[Week] ww"
-              placeholder="閫夋嫨鏃ユ湡"/>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>涓氬姟鍛�:</el-text></el-col>
-        <el-col  :span="5"><el-text style="font-size: large;color: #181818"></el-text></el-col>
-        <el-col  :span="2"><el-text>鍙戣揣鍛�:</el-text></el-col>
-        <el-col  :span="5"><el-text style="font-size: large;color: #181818"></el-text></el-col>
-      </el-row>
-    </div>
-    <div class="order-detail">
-      <vxe-grid
-          max-height="97%"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-
-      >
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li  v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{key+':  '}}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-      </vxe-grid>
-    </div>
-  </div>
-
-</template>
-
-<style scoped>
-.main-div {
-  width: 100%;
-  height: 100%;
-  text-align: center;
-}
-.el-col{
-  border: #181818 1px solid;
-}
-:deep(.el-input__wrapper) {
-  box-shadow: 0 0 0 0 var(--el-input-border-color, var(--el-border-color)) inset;
-  cursor: default;
-  border: none !important;
-  background-color: transparent;
-}
-.order-primary{
-  width: 100%;
-}
-.order-detail{
-  width: 100%;
-  height: 70%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/delivery/Delivery.vue b/UI-Project/src/views/sd/delivery/Delivery.vue
deleted file mode 100644
index 21d677e..0000000
--- a/UI-Project/src/views/sd/delivery/Delivery.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-<script setup>
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
-import {useRouter} from "vue-router";
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main-div">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/delivery/selectDelivery' }">鍙戣揣棣栭〉</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/delivery/selectOrderList' }">璁㈠崟鍙戣揣</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/delivery/deliveryReport' }">鎶ヨ〃</el-breadcrumb-item>
-        <el-breadcrumb-item v-show="false" :to="{ path: '/main/delivery/deliveryReport' }">鎶ヨ〃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main-div{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 2%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 95%;
-  margin-top: 1%;
-}
-#select{
-  margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/delivery/DeliveryReport.vue b/UI-Project/src/views/sd/delivery/DeliveryReport.vue
deleted file mode 100644
index 7219aea..0000000
--- a/UI-Project/src/views/sd/delivery/DeliveryReport.vue
+++ /dev/null
@@ -1,149 +0,0 @@
-<script setup>
-
-import {Folder, Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-
-
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-
-    {type:'expand',slots: { content:'content' },width: 50,fixed:"left"},
-    {type: 'seq', title: '鑷簭', width: 80 ,fixed:"left"},
-    {field: '0',width:120,  title: '鍙戣揣鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '1',width:120,  title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '2',width:120,  title: '瀹㈡埛鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '3',width:120,  title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '4',width:120,  title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',width:120,  title: '涓氬姟鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '6',width:120,  title: '閫佽揣鍦板潃',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '7',width:120,   title: '鍙戣揣鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '8',width:120,  title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '9',width:120,  title: '浜у搧缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '10',width:120,  title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '11',width:120,  title: '鍙戣揣鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '12',width:120,  title: '鍛ㄩ暱',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '13',width:120,  title: '瀹為檯闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '14',width:120,  title: '鍙戣揣闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '15',width:120,   title: '鍗曚环',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '16',width:120,   title: '鍙戣揣閲戦',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '17',width:120,  title: '瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '18',width:120,  title: '楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '19',width:120,  title: '褰㈢姸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '20',width:120,  title: '纾ㄨ竟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '21',width:120,  title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '22',width:120,  title: '鍔犲伐瑕佹眰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '22',width:120,  title: '寤虹珛鏃堕棿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-
-
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-</script>
-
-<template>
-  <div class="main-div">
-    <el-date-picker
-        v-model="value1"
-        type="daterange"
-        start-placeholder="寮�濮嬫椂闂�"
-        end-placeholder="缁撴潫鏃堕棿"
-    />
-    <el-button style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-    <div class="order-detail">
-      <vxe-grid
-          max-height="97%"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-
-      >
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li  v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{key+':  '}}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-      </vxe-grid>
-    </div>
-  </div>
-</template>
-
-<style scoped>
-.main-div {
-  width: 100%;
-  height: 100%;
-}
-.el-col{
-  border: #181818 1px solid;
-}
-.order-primary{
-  width: 100%;
-}
-.order-detail{
-  width: 100%;
-  height: 80%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/delivery/SelectDelivery.vue b/UI-Project/src/views/sd/delivery/SelectDelivery.vue
deleted file mode 100644
index a3bdd65..0000000
--- a/UI-Project/src/views/sd/delivery/SelectDelivery.vue
+++ /dev/null
@@ -1,164 +0,0 @@
-<script setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-import {useRouter} from "vue-router"
-const router = useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/delivery/createDelivery', query: { deliveryID: 'JG24010101' }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' }},
-    {type: 'seq', title: '鑷簭', width: 80 },
-
-    {title: '瀹℃牳', width: 40, slots: { default: 'state' }},
-    {title: '鍑哄簱', width: 40, slots: { default: 'state' }},
-    {field: '3',width:120,  title: '鍙戣揣鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '4',width:120,  title: '鍙戣揣鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',width:120,  title: '鍙戣揣鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '6',width:120,  title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '7',width:120,  title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '8',width:120,  title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '9',width:120,  title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '10',width:120,   title: '璁㈠崟缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '11',width:120,  title: '浠樻鏉′欢',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '12',width:120,  title: '浠樻鏂瑰紡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '13',width:120,  title: '鎬绘暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '14',width:120,  title: '鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-
-
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [{
-    '3': 'JG23120801',
-    '4': '閮戠強鐝�',
-    '5': '2023-12-08',
-    '6': '310',
-    '7': '涓婃捣閲岃寤虹瓚宸ョ▼鏈夐檺鍏徃',
-    '8': '琛�1-2',
-    '9': '瀹胯縼鏌愭煇椤圭洰',
-    '10': 'NG23112304',
-    '11': '鎸夊悎鍚�',
-    '12': '',
-    '13': '8',
-    '14': '15.68',
-    '15': '11912.05',
-    '16': '2023-11-24',
-    '17': '鐜嬮緳',
-    '18': '瀹胯縼鏌愭煇鍦板潃',
-    '19': '2023-12-08'
-  }
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-</script>
-
-<template>
-  <div style="width: 100%;height: 100%">
-    <el-date-picker
-        v-model="value1"
-        type="daterange"
-        start-placeholder="寮�濮嬫椂闂�"
-        end-placeholder="缁撴潫鏃堕棿"
-    />
-    <el-button style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-    <vxe-grid
-        max-height="97%"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-    </vxe-grid>
-  </div>
-
-</template>
-
-<style scoped>
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/delivery/SelectOrderList.vue b/UI-Project/src/views/sd/delivery/SelectOrderList.vue
deleted file mode 100644
index 25cb3da..0000000
--- a/UI-Project/src/views/sd/delivery/SelectOrderList.vue
+++ /dev/null
@@ -1,213 +0,0 @@
-<script setup>
-import {Search} from "@element-plus/icons-vue"
-import {useRouter} from "vue-router"
-import {reactive, ref} from "vue";
-const router = useRouter()
-
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/delivery/createDelivery', query: { deliveryID: 'JG24010101' }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-const xGrid = ref()
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-
-    {type:'expand',slots: { content:'content' },width: 50,fixed:"left"},
-    {type:'checkbox',title: '閫夊垯', width: 80,fixed:"left"},
-    {type: 'seq', title: '鑷簭', width: 80 ,fixed:"left"},
-
-    {title: '涓嬪崟', width: 40, slots: { default: 'state' }},
-    {title: '宸ヨ壓', width: 40, slots: { default: 'state' }},
-    {title: '瀹℃牳', width: 40, slots: { default: 'state' }},
-    {title: '鐢熶骇', width: 40, slots: { default: 'state' }},
-    {title: '浜ゆ帴', width: 40, slots: { default: 'state' }},
-    {title: '涓嬭揪', width: 40, slots: { default: 'state' }},
-    {title: '鍏ュ簱', width: 40, slots: { default: 'state' }},
-    {title: '鍙戣揣', width: 40, slots: { default: 'state' }},
-
-    {field: '1',width:120,  title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '2',width:120,  title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '3',width:120,  title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '4',width:120,  title: '鎬绘暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',width:120,  title: '鍙敤搴撳瓨',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '6',width:120,  title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '7',width:120,  title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '8',width:120,   title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '9',width:120,  title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '10',width:120,  title: '鎶ヨ〃鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '11',width:120,  title: '鍖呰鏂瑰紡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '12',width:120,  title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '13',width:120,  title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '14',width:120,  title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-
-
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [
-      {'code': 'add', 'name': '鍙戣揣',status: 'primary',icon: 'vxe-icon-add'}
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      '0': '1',
-      '1': 'NG23110102',
-      '2': '11',
-      '3': '涓缓',
-      '4': '534',
-      '5': '116',
-      '6': '榛勭煶鏈夎建鐢佃溅',
-      '7': '20鎵�',
-      '8': '111100.02',
-      '9': '1008.38',
-      '10': '2023-10-30',
-      '11': '鍙夎溅鏈ㄧ',
-      '12': '鏅�氳鍗�',
-      '13': '',
-      '14': '鐜嬮緳'
-    },
-    {
-      '0': '1',
-      '1': 'NG23110101',
-      '2': '11',
-      '3': '涓缓',
-      '4': '534',
-      '5': '116',
-      '6': '榛勭煶鏈夎建鐢佃溅',
-      '7': '20鎵�',
-      '8': '111100.02',
-      '9': '1008.38',
-      '10': '2023-10-30',
-      '11': '鍙夎溅鏈ㄧ',
-      '12': '鏅�氳鍗�',
-      '13': '',
-      '14': '鐜嬮緳'
-    }
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-const gridEvents = {
-  toolbarButtonClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'add': {
-          router.push({path: '/main/delivery/createDelivery', params: { orderID: 'NG24010101' }})
-          break
-        }
-      }
-    }
-  }
-}
-
-
-
-
-</script>
-
-<template>
-  <div  style="width: 100%;height: 100%">
-    <el-date-picker
-        v-model="value1"
-        type="daterange"
-        start-placeholder="寮�濮嬫椂闂�"
-        end-placeholder="缁撴潫鏃堕棿"
-    />
-    <el-button style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-    <vxe-grid
-        max-height="97%"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-
-    >
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-    </vxe-grid>
-
-
-  </div>
-</template>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/order/CreateOrder.vue b/UI-Project/src/views/sd/order/CreateOrder.vue
deleted file mode 100644
index 84117ac..0000000
--- a/UI-Project/src/views/sd/order/CreateOrder.vue
+++ /dev/null
@@ -1,483 +0,0 @@
-<script lang="ts"  setup>
-import {reactive, ref} from "vue"
-import {useRouter} from "vue-router"
-import * as XLXS from "xlsx"
-import {ElMessage} from "element-plus"
-import request from "@/utils/request"
-import deepClone from "@/utils/deepClone"
-
-const router = useRouter()
-const xGrid = ref()
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  menuConfig: {
-    body: {
-      options: [
-        [
-          { code: 'addRow', name: '娣诲姞', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false }
-        ]
-      ]
-    }
-  },
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'cell',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    // {title: '鎿嶄綔', width: 110,fixed:"left",slots: { default: 'openProductList' }},
-    {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
-    {field: 'buildingNumber',width:120,  title: '妤煎彿',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'productId',width:140,  title: '浜у搧ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'productName',width:120,  title: '浜у搧',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'price',width:140,  title: '鍗曚环',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'quantity',width:120,  title: '鏁伴噺',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'grossAmount',width:120,  title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'width',width:120,  title: '瀹�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'height',width:120,  title: '楂�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'area',width:150,  title: '瀹為檯鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true},
-    {field: 'grossArea',width:140,  title: '瀹為檯鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true},
-    {field: 'computeArea',width:180,  title: '缁撶畻鍗曠墖闈㈢Н',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'computeGrossArea',width:140,  title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'shape',width:120,  title: '褰㈢姸',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'bendRadius',width:140,  title: '寮挗寮у害',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'edgingType',width:140,  title: '纾ㄨ竟绫诲瀷',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'processingNote',width:140,  title: '鍔犲伐瑕佹眰',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'remarks',width:120,  title: '澶囨敞',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-
-
-  ],
-  //琛ㄥ崟楠岃瘉
-  editRules: {
-    buildingNumber: [
-      { required: false},
-      { min: 0, max: 255, message: '鍚嶇О闀垮害鍦� 0 鍒� 255 涓瓧绗�' }
-    ],
-    productId: [
-      { required: true, message: '璇烽�夋嫨浜у搧' }
-    ],
-    price: [
-      {
-        validator ({ cellValue }) {
-          const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
-          if (cellValue && !regex.test(cellValue)) {
-            return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
-          }
-        }
-      }
-    ],
-    computeArea: [
-      {
-        validator ({ cellValue }) {
-          const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
-          if (cellValue && !regex.test(cellValue)) {
-            return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
-          }
-        }
-      }
-    ],
-    quantity: [
-      { type: 'number', min: 0, message: '璇疯緭鍏ュぇ浜庣瓑浜�0鐨勬暟鍊�' }
-    ],
-    width:[
-      {
-        validator ({ cellValue }) {
-          const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
-          if (cellValue && !regex.test(cellValue)) {
-            return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
-          }
-        }
-      }
-    ],
-    height:[
-      {
-        validator ({ cellValue }) {
-          const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
-          if (cellValue && !regex.test(cellValue)) {
-            return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
-          }
-        }
-      }
-    ]
-  },
-  toolbarConfig: {
-    buttons: [
-      {'code': 'remarks', 'name': '鍔犲伐瑕佹眰'},
-      {'code': 'Craft', 'name': '宸ヨ壓',status: 'primary'},
-      {'code': 'add', 'name': '瀹℃牳',status: 'primary',disabled: true},
-      {'code': 'saveOrder', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save'}
-    ],
-    slots: {
-      tools: 'toolbar_buttons'
-    },
-    // import: false,
-    // export: true,
-    // print: true,
-    zoom: true,
-    custom: true
-  }
-  ,
-  //table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-const gridEvents = {
-  async toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'Craft': {
-          await router.push({path: '/main/order/updateOrderCraft', query: {orderID: 12123}})
-          break
-        }
-        case 'saveOrder': {
-          if ($grid.getTableData().tableData.length === 0){
-            ElMessage.error('娌℃湁琛ㄦ牸鏁版嵁锛�')
-            return
-          }
-          console.log($grid.getTableData().tableData)
-          if ($grid) {
-            const errMap = await $grid.validate(true)
-            if (errMap) {
-              ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
-              return
-            }
-            let order ={
-              title:titleUploadData.value,
-              detail:$grid.getTableData().tableData
-            }
-            saveOrder(order)
-          }
-          break
-        }
-      }
-    }
-  },//澶撮儴鎸夐挳浜嬩欢
-  menuClick ({ menu, row, column }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (menu.code) {
-        case 'deleteList': {
-          $grid.removeCheckboxRow()
-          break
-        }
-        case 'addRow': {
-          if ($grid.getTableData().tableData.length >=240){
-            ElMessage.error('琛ㄦ牸鏁版嵁宸茶揪鍒版渶澶у�硷紒')
-            return
-          }
-          $grid.insert({})
-          //console.log($grid.getRecordset().insertRecords)
-          break
-        }
-      }
-    }
-  },
-  cellDblclick (params) {//琛ㄦ牸鍐呭鍙屽嚮鎵撳紑浜у搧鐣岄潰
-    const { row } = params
-    //alert("鎴戞墦寮�浜嗕骇鍝佺晫闈�")
-  }
-}
-
-// 瀹氫箟琛ㄥご涓婁紶鏁版嵁
-const titleUploadData = ref({
-  project:'',
-  orderType:'',
-  alType:'',
-  icon:'',
-  orderClassify:'',
-  packType:'',
-  deliveryDate:''
-})
-
-//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
-const titleSelectJson = ref({
-  orderType:[],
-  alType:[],
-  icon:[],
-  orderClassify:[],
-  packType:[],
-})
-//椤甸潰绗竴娆″姞杞芥墽琛�
-request.get(`/basicData/orderBasicData`).then((res) => {
-  if(res.code==200){
-    titleSelectJson.value=deepClone(res.data)
-    titleUploadData.value.orderType = titleSelectJson.value.orderType[0].id
-    titleUploadData.value.orderClassify = titleSelectJson.value.orderClassify[0].id
-    titleUploadData.value.icon = titleSelectJson.value.icon[0].id
-    titleUploadData.value.packType = titleSelectJson.value.packType[0].id
-    titleUploadData.value.alType = titleSelectJson.value.alType[0].id
-    const today = new Date
-    today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
-    titleUploadData.value.deliveryDate = today.getFullYear() +
-        '-' + ("0" + (today.getMonth() + 1)).slice(-2)
-        + '-' + ("0" + today.getDate()).slice(-2)
-  }else{
-    ElMessage.warning(res.msg)
-  }
-})
-
-const saveOrder = (order) => {
-  request.post(`/order/saveOrder`,order).then((res) => {
-    if(res.code==200){
-      ElMessage.success('淇濆瓨鎴愬姛')
-    }else {
-      ElMessage.warning(res.msg)
-    }
-  })
-}
-
-
-
-
-const countAmount = (row) => {
-  return
-}
-const area = (row) => {
-  return parseFloat((row.width * row.height/1000000).toFixed(2))
-}
-const countArea = (row) => {
-  return parseFloat((row.width * row.height/1000000).toFixed(2))*row.quantity
-}
-
-
-//瀵煎叆鍔熻兘
-const impotEvent = async () => {
-  const $grid = xGrid.value
-  const { files } = await $grid.readFile({
-    types: ['xls', 'xlsx']
-  })
-  const fileReader = new FileReader()
-  fileReader.onload = (event) => {
-    const data = event.target ? event.target.result : ''
-    const workbook = XLXS.read(data, { type: 'binary' })
-    let jsonData = XLXS.utils.sheet_to_json(workbook.Sheets.Sheet1).slice(1)
-    if(jsonData.length>240){
-      ElMessage.error('瀵煎叆鏁版嵁涓嶈兘瓒呰繃240鏉�,璇峰垎璁㈠崟瀵煎叆')
-      return
-    }
-    jsonData.forEach((item,index) => {
-      //item.computeArea
-      //console.log()
-      if(item.computeArea === undefined){
-        item.computeArea = area(item)
-      }
-      item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toString())
-    })
-
-    xGrid.value.loadData(jsonData)
-  }
-  fileReader.readAsBinaryString(files[0])
-}
-
-//琛屽崟鍏冩牸淇敼淇敼瑙﹀彂姝や簨浠�
-const editClosedEvent = ({ row, column }) => {
-  //鍒ゆ柇淇敼鐩稿簲鐨勬暟鍊间慨鏀归潰绉笌閲戦
-   if (['width', 'height', 'quantity', 'price'].includes(column.property)) {
-      row.area = area(row)
-      row.grossArea = countArea(row)
-      row.computeArea = row.area
-      row.computeGrossArea = row.grossArea
-      row.grossAmount=row.price * row.computeGrossArea
-   }else if(column.property === 'computeArea'){
-     row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toString())
-     row.grossAmount=row.price * row.computeGrossArea
-   }
-}
-</script>
-
-<template>
-  <div class="main-div">
-    <div class="order-primary" style="background-color: white">
-      <el-row>
-        <el-col  :span="2"><el-text>*椤圭洰鍚嶇О锛�</el-text></el-col>
-        <el-col  :span="2"><el-input/></el-col>
-        <el-col  :span="2"><el-text>*瀹㈡埛閫夋嫨锛�</el-text></el-col>
-        <el-col  :span="2">
-          <el-select  clearable placeholder=" " >
-            <el-option/>
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>*璁㈠崟绫诲瀷锛�</el-text></el-col>
-        <el-col  :span="2">
-          <el-select v-model="titleUploadData.orderType"  clearable placeholder=""  >
-            <el-option
-                v-for="item in titleSelectJson['orderType']"
-                :key="item.id"
-                :label="item.basicName"
-                :value="item.id"
-            />
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>璁㈠崟鍒嗙被锛�</el-text></el-col>
-        <el-col  :span="2">
-          <el-select v-model="titleUploadData.orderClassify" clearable placeholder=" " >
-            <el-option
-                v-for="item in titleSelectJson['orderClassify']"
-                :key="item.id"
-                :label="item.basicName"
-                :value="item.id"
-            />
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>鍟嗘爣閫夐」锛�</el-text></el-col>
-        <el-col  :span="2">
-          <el-select v-model="titleUploadData.icon" clearable placeholder=" " >
-            <el-option  v-for="item in titleSelectJson['icon']"
-                       :key="item.id"
-                       :label="item.basicName"
-                       :value="item.id"/>
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>鍖呰鏂瑰紡锛�</el-text></el-col>
-        <el-col  :span="2">
-          <el-select v-model="titleUploadData.packType" clearable placeholder=" " >
-            <el-option v-for="item in titleSelectJson['packType']"
-                       :key="item.id"
-                       :label="item.basicName"
-                       :value="item.id"/>
-          </el-select>
-        </el-col>
-        <!--      <el-col :span="2"><el-text  /></el-col>-->
-      </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>閿�鍞崟鍙凤細</el-text></el-col>
-        <el-col  :span="2"><el-text  /></el-col>
-        <el-col  :span="2"><el-text>浜よ揣鏃ユ湡锛�</el-text></el-col>
-        <el-col  :span="2">
-          <el-date-picker
-              v-model="titleUploadData.deliveryDate"
-              type="date"
-              placeholder="Pick a day"
-              />
-        </el-col>
-        <el-col  :span="2"><el-text>鎵规锛�</el-text></el-col>
-        <el-col  :span="2"><el-input/></el-col>
-        <el-col  :span="2"><el-text>璁$畻鏂瑰紡锛�</el-text></el-col>
-        <el-col  :span="2">
-          <el-select  clearable placeholder=" " >
-            <el-option/>
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>*涓氬姟鍛橈細</el-text></el-col>
-        <el-col  :span="2">
-          <el-select  clearable placeholder=" " >
-            <el-option/>
-          </el-select>
-        </el-col>
-        <el-col  :span="2"><el-text>閾濇潯鏂瑰紡锛�</el-text></el-col>
-        <el-col  :span="2">
-          <el-select v-model="titleUploadData.alType" clearable placeholder=" " >
-            <el-option v-for="item in titleSelectJson['alType']"
-                       :key="item.id"
-                       :label="item.basicName"
-                       :value="item.id"/>
-          </el-select>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>鎬婚噾棰濓細</el-text></el-col>
-        <el-col  :span="2"><el-text /></el-col>
-
-        <el-col  :span="2"><el-text>鍚堝悓缂栧彿锛�</el-text></el-col>
-        <el-col  :span="2"><el-input/></el-col>
-        <el-col  :span="2"><el-text>瀹㈡埛鎵规锛�</el-text></el-col>
-        <el-col  :span="2"><el-text /></el-col>
-        <el-col  :span="2"><el-text>鑱旂郴浜猴細</el-text></el-col>
-        <el-col  :span="2"><el-input/></el-col>
-        <el-col  :span="2"><el-text>鑱旂郴鐢佃瘽锛�</el-text></el-col>
-        <el-col  :span="2"><el-input/></el-col>
-        <el-col  :span="2"><el-text>閫佽揣鍦板潃锛�</el-text></el-col>
-        <el-col  :span="2"><el-input/></el-col>
-      </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>鍏朵粬閲戦锛�</el-text></el-col>
-        <el-col  :span="2"><el-text /></el-col>
-        <el-col  :span="2"><el-text>鍏朵粬閲戦澶囨敞锛�</el-text></el-col>
-        <el-col  :span="2"><el-text /></el-col>
-
-      </el-row>
-    </div>
-    <div class="order-detail">
-      <vxe-grid
-          max-height="97%"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          v-on="gridEvents"
-          @edit-closed="editClosedEvent"
-      >
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-        <template #toolbar_buttons>
-          <vxe-button  @click="impotEvent">瀵煎叆</vxe-button>
-        </template>
-
-
-      </vxe-grid>
-    </div>
-  </div>
-</template>
-
-<style scoped>
-  .main-div {
-    width: 100%;
-    height: 100%;
-    text-align: center;
-  }
-  .el-col{
-    border: #181818 1px solid;
-  }
-  :deep(.el-input__wrapper) {
-    box-shadow: 0 0 0 0 var(--el-input-border-color, var(--el-border-color)) inset;
-    cursor: default;
-    border: none !important;
-    background-color: transparent;
-  }
-  .order-primary{
-    width: 100%;
-  }
-  .order-detail{
-    width: 100%;
-    height: 80%;
-  }
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/order/Order.vue b/UI-Project/src/views/sd/order/Order.vue
deleted file mode 100644
index 78000a9..0000000
--- a/UI-Project/src/views/sd/order/Order.vue
+++ /dev/null
@@ -1,57 +0,0 @@
-<script setup>
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
-import {useRouter} from "vue-router";
-
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main-div">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/order/selectOrder' }">璁㈠崟棣栭〉</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/order/createOrder' }">鍒涘缓</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
-        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main-div{
-  width: 99%;
-  height: 100%;
-}
-#div-title{
-  height: 2%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 100%;
-  height: 95%;
-  margin-top: 1%;
-}
-#select{
-  margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/order/OrderReport.vue b/UI-Project/src/views/sd/order/OrderReport.vue
deleted file mode 100644
index 51c8978..0000000
--- a/UI-Project/src/views/sd/order/OrderReport.vue
+++ /dev/null
@@ -1,179 +0,0 @@
-<script setup>
-
-import {Folder, Search} from "@element-plus/icons-vue";
-import BasicTable from "@/components/basic/BasicTable.vue";
-import {reactive} from "vue";
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderReport',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
-    {field: '1',width:120, title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '2',width:120, title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '3',width:120, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '4',width:120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',width:120, title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '6',width:120, title: '浜у搧缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '7',width:120, title: '浜у搧缂栫爜',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '8',width:120, title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '9',width:120, title: '璁㈠崟搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鍗婂緞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '瀹為檯闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '褰㈢姸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '纾ㄨ竟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '涓诲姞宸ヨ姹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鍔犲伐瑕佹眰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鍟嗘爣閫夐」',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鍖呰鏂瑰紡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '宸ヨ壓娴佺▼',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鍛ㄩ暱',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鍗曚环',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '閲戦',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '閾濇潯鏂瑰紡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '涓氬姟鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '閫佽揣鍦板潃',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鍒跺崟鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '寤虹珛鏃堕棿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '鎬诲帤搴�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '浜у搧澶х被',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '浜у搧灏忕被',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'prodID',width:120, title: '瀹㈡埛鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-
-
-
-
-
-
-</script>
-
-<template>
-  <div class="main-div">
-    <el-date-picker
-        v-model="value1"
-        type="daterange"
-        start-placeholder="寮�濮嬫椂闂�"
-        end-placeholder="缁撴潫鏃堕棿"
-    />
-    <el-button style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-    <div class="order-detail">
-      <vxe-grid
-          max-height="97%"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-      ></vxe-grid>
-<!--      <el-table
-          :data="dataList"
-          :header-cell-style="{ 'text-align': 'center' }"
-          :cell-style="{ 'text-align': 'center' }"
-          border
-      >
-
-        <el-table-column type="expand" fixed>
-          <template #default="props" >
-            <div m="4">
-              <p m="t-0 b-2">: {{ props.row['2'] }}</p>
-            </div>
-          </template>
-        </el-table-column>
-
-
-        <el-table-column
-            :prop="index.toString()"
-            :show-overflow-tooltip='true'
-            width="100" v-for="(item,index) in titleList"
-            :label="item"    />
-      </el-table>-->
-    </div>
-  </div>
-</template>
-
-<style scoped>
-.main-div {
-  width: 100%;
-  height: 100%;
-}
-.el-col{
-  border: #181818 1px solid;
-}
-:deep(.el-table .el-input__wrapper) {
-  box-shadow: 0 0 0 0 var(--el-input-border-color, var(--el-border-color)) inset;
-  cursor: default;
-  border: none !important;
-  background-color: transparent;
-}
-.order-primary{
-  width: 100%;
-}
-.order-detail{
-  width: 100%;
-  height: 90%;
-
-}
-
-
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/order/SelectOrder.vue b/UI-Project/src/views/sd/order/SelectOrder.vue
deleted file mode 100644
index 201e2c6..0000000
--- a/UI-Project/src/views/sd/order/SelectOrder.vue
+++ /dev/null
@@ -1,206 +0,0 @@
-<script setup>
-  import {Search} from "@element-plus/icons-vue"
-  import {useRouter} from "vue-router"
-  import {reactive, ref} from "vue";
-  const router = useRouter()
-  import ProcessCardProgress from '@/views/pp/report/ProcessCardProgress.vue'
-
-  const getTableRow = (row,type) =>{
-    switch (type) {
-      case 'edit' :{
-        //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-        router.push({path: '/main/order/createOrder', query: { orderID: 'NG24010101' }})
-        break
-      }
-      case 'delete':{
-        alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-        break
-      }
-    }
-  }
-
-  const gridOptions = reactive({
-    border:  "full",//琛ㄦ牸鍔犺竟妗�
-    keepSource: true,//淇濇寔婧愭暟鎹�
-    align: 'center',//鏂囧瓧灞呬腑
-    stripe:true,//鏂戦┈绾�
-    rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-    id: 'OrderList',
-    showFooter: true,//鏄剧ず鑴�
-    printConfig: {},
-    importConfig: {},
-    exportConfig: {},
-    scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-    showOverflow:true,
-    columnConfig: {
-      resizable: true,
-      useKey: true
-    },
-    filterConfig: {   //绛涢�夐厤缃」
-      remote: true
-    },
-    customConfig: {
-      storage: true
-    },
-    editConfig: {
-      trigger: 'click',
-      mode: 'row',
-      showStatus: true
-    },//琛ㄥご鍙傛暟
-    columns:[
-      {type:'expand',slots: { content:'content' },width: 50,fixed:"left",},
-      {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' },fixed:"left",},
-      {type: 'seq', title: '鑷簭', width: 80 ,fixed:"left",},
-
-      {title: '涓嬪崟', width: 40, slots: { default: 'state' }},
-      {title: '宸ヨ壓', width: 40, slots: { default: 'state' }},
-      {title: '瀹℃牳', width: 40, slots: { default: 'state' }},
-      {title: '鐢熶骇', width: 40, slots: { default: 'state' }},
-      {title: '浜ゆ帴', width: 40, slots: { default: 'state' }},
-      {title: '涓嬭揪', width: 40, slots: { default: 'state' }},
-      {title: '鍏ュ簱', width: 40, slots: { default: 'state' }},
-      {title: '鍙戣揣', width: 40, slots: { default: 'state' }},
-
-      {field: '1',width:120,  title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '2',width:120,  title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '3',width:120,  title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '4',width:120,  title: '鎬绘暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '5',width:120,  title: '鍙敤搴撳瓨',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '6',width:120,  title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '7',width:120,  title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '8',width:120,   title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '9',width:120,  title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '10',width:120,  title: '鎶ヨ〃鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '11',width:120,  title: '鍖呰鏂瑰紡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '12',width:120,  title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '13',width:120,  title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '14',width:120,  title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-
-
-    ],//琛ㄥご鎸夐挳
-    toolbarConfig: {
-      buttons: [
-
-      ],
-      import: false,
-      export: true,
-      print: true,
-      zoom: true,
-      custom: true
-    },
-    data:  [
-      {
-        '0': '1',
-        '1': 'NG23110102',
-        '2': '11',
-        '3': '涓缓',
-        '4': '534',
-        '5': '116',
-        '6': '榛勭煶鏈夎建鐢佃溅',
-        '7': '20鎵�',
-        '8': '111100.02',
-        '9': '1008.38',
-        '10': '2023-10-30',
-        '11': '鍙夎溅鏈ㄧ',
-        '12': '鏅�氳鍗�',
-        '13': '',
-        '14': '鐜嬮緳'
-      },
-      {
-        '0': '1',
-        '1': 'NG23110101',
-        '2': '11',
-        '3': '涓缓',
-        '4': '534',
-        '5': '116',
-        '6': '榛勭煶鏈夎建鐢佃溅',
-        '7': '20鎵�',
-        '8': '111100.02',
-        '9': '1008.38',
-        '10': '2023-10-30',
-        '11': '鍙夎溅鏈ㄧ',
-        '12': '鏅�氳鍗�',
-        '13': '',
-        '14': '鐜嬮緳'
-      }
-    ],//table body瀹為檯鏁版嵁
-    footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-      return[
-        columns.map((column, columnIndex) => {
-          if (columnIndex === 0) {
-            return '鍚堣:'
-          }
-          // if (props.tableProp.footList.includes(column.field)) {
-          //   return sumNum(data, column.field)
-          // }
-          return ''
-        })
-      ]
-    }
-
-  })
-  const dialogTableVisible = ref(false)
-
-const cellClickEvent =()=>{
-    dialogTableVisible.value = true
-}
-
-
-
-</script>
-
-<template>
-  <div  style="width: 100%;height: 100%">
-    <el-date-picker
-        v-model="value1"
-        type="daterange"
-        start-placeholder="寮�濮嬫椂闂�"
-        end-placeholder="缁撴潫鏃堕棿"
-    />
-    <el-button style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-    <vxe-grid
-        @cell-dblclick="cellClickEvent"
-        max-height="97%"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-    </vxe-grid>
-
-    <el-dialog v-model="dialogTableVisible" title="娴佺▼鍗¤繘搴�" style="width: 80%;height:75% ">
-      <ProcessCardProgress style="width: 100%;height: 100%" />
-    </el-dialog>
-  </div>
-</template>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/order/UpdateOrderCraft.vue b/UI-Project/src/views/sd/order/UpdateOrderCraft.vue
deleted file mode 100644
index a290769..0000000
--- a/UI-Project/src/views/sd/order/UpdateOrderCraft.vue
+++ /dev/null
@@ -1,233 +0,0 @@
-<script setup>
-import {reactive, ref} from "vue"
-import {useRouter} from "vue-router"
-const router = useRouter()
-
-
-const xGrid = ref()
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾规ゼ鍙�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' },fixed:"left",},
-    {field: '0',width:120,  title: '搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '1',width:120,  title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '2',width:120,  title: '鎴愬搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '3',width:120,  title: '鏍囪',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '4',width:120,  title: '瀛愪骇鍝�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',width:120,  title: '鎴愬搧瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '6',width:120,  title: '鎴愬搧楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '7',width:120,  title: '褰㈢姸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '8',width:120,  title: '鎴愬搧灏哄',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '9',width:120,  title: '纾ㄨ竟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '10',width:120,  title: '鍗曠墖瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '11',width:120,  title: '鍗曠墖楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '12',width:120,  title: '鍗曠墖灏哄',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '13',width:120,  title: '鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '14',width:120,  title: '宸ヨ壓娴佺▼',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '15',width:120,  title: '鍔犲伐瑕佹眰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '16',width:120,  title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-  ],//琛ㄥご鎸夐挳
-  mergeCells: [
-    { row: 0, col: 1, rowspan: 2, colspan: 1 },
-    { row: 0, col: 2, rowspan: 2, colspan: 1 },
-    { row: 0, col: 3, rowspan: 2, colspan: 1 },
-    { row: 0, col: 6, rowspan: 2, colspan: 1 },
-    { row: 0, col: 7, rowspan: 2, colspan: 1 },
-  ],
-  toolbarConfig: {
-    buttons: [
-      {'code': 'remarks', 'name': '鍔犲伐瑕佹眰'},
-      {'code': 'Craft', 'name': '璁㈠崟璇︽儏',status: 'primary'},
-      {'code': 'Craft', 'name': '瀹℃牳',status: 'primary'},
-    ],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      '0' : '1',
-      '1' : 'JHH-T33-G-07A-01',
-      '2' : '10mm瓒呯櫧UD60骞抽挗(澶�)+12A鏆�(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      '3' : '(澶�)',
-      '4' : '10mm瓒呯櫧UD60骞抽挗(澶�)',
-      '5' : '1427',
-      '6' : '2696',
-      '7' : '鏅舰',
-      '8' : '42.32',
-      '9' : '绮剧(',
-      '10' : '1427',
-      '11' : '1427',
-      '12' : '42.32',
-      '13' : '11',
-      '14' : '鍒囧壊->纾ㄨ竟->閽㈠寲->鍧囪川->涓┖->鍖呰',
-      '15' : '',
-      '16' : '',
-      '17':2
-    },
-    {
-      '0' : '1',
-      '1' : 'JHH-T33-G-07A-01',
-      '2' : '10mm瓒呯櫧UD60骞抽挗(澶�)+12A鏆�(缁�)+10mm瓒呯櫧骞抽挗(鍐�)',
-      '3' : '(鍐�)',
-      '4' : '10mm瓒呯櫧骞抽挗(鍐�)',
-      '5' : '1427',
-      '6' : '2696',
-      '7' : '鏅舰',
-      '8' : '42.32',
-      '9' : '绮剧(',
-      '10' : '1427',
-      '11' : '1427',
-      '12' : '42.32',
-      '13' : '11',
-      '14' : '鍒囧壊->纾ㄨ竟->閽㈠寲->鍧囪川->涓┖->鍖呰',
-      '15' : '',
-      '16' : '',
-      '17' : 0,
-    }
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-
-})
-
-const gridEvents = {
-  toolbarButtonClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'Craft': {
-          router.push({path: '/main/order/createOrder', query: { orderID: 12123 }})
-          break
-        }
-      }
-    }
-  }
-}
-
-
-
-</script>
-
-<template>
-  <div class="main-div">
-
-    <div class="order-primary" style="background-color: white">
-      <el-row>
-        <el-col  :span="4"><el-text>閿�鍞崟鍙凤細</el-text></el-col>
-        <el-col  :span="4"><el-text>NG23120704</el-text></el-col>
-        <el-col  :span="4"><el-text>瀹㈡埛鍚嶇О锛�</el-text></el-col>
-        <el-col  :span="4"><el-text>澶粨楂樼幓鐠冨埗鍝佹湁闄愬叕鍙�</el-text></el-col>
-        <el-col  :span="4"><el-text>椤圭洰鍚嶇О锛�</el-text></el-col>
-        <el-col  :span="4"><el-text>澶粨鍗撻珮</el-text></el-col>
-      </el-row>
-      <el-row>
-        <el-col  :span="4"><el-text>璁㈠崟鎵规锛�</el-text></el-col>
-        <el-col  :span="4"><el-text>1鎵�1</el-text></el-col>
-        <el-col  :span="4"><el-text>璁㈠崟绫诲瀷锛�</el-text></el-col>
-        <el-col  :span="4"><el-text>鏅�氳鍗�</el-text></el-col>
-        <el-col  :span="4"><el-text>涓氬姟鍛�</el-text></el-col>
-        <el-col  :span="4"><el-text>寮犱笁</el-text></el-col>
-      </el-row>
-      <el-row>
-        <el-col  :span="4"><el-text>鍖呰鏂瑰紡锛�</el-text></el-col>
-        <el-col  :span="4"><el-text>鏈ㄧ</el-text></el-col>
-        <el-col  :span="4"><el-text>浜よ揣鏃ユ湡锛�</el-text></el-col>
-        <el-col  :span="4"><el-text>2023-11-11</el-text></el-col>
-      </el-row>
-    </div>
-    <div class="order-detail">
-
-      <vxe-grid
-          max-height="97%"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          v-on="gridEvents"
-
-      >
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li  v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{key+':  '}}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">淇敼宸ヨ壓</el-button>
-        </template>
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-
-    </div>
-  </div>
-</template>
-
-<style scoped>
-.main-div {
-  width: 100%;
-  height: 100%;
-  text-align: center;
-}
-.el-col{
-  border: #181818 1px solid;
-}
-.order-primary{
-  width: 100%;
-}
-.order-detail{
-  width: 100%;
-  height: 80%;
-}
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/product/CreateProduct.vue b/UI-Project/src/views/sd/product/CreateProduct.vue
deleted file mode 100644
index 8d8982b..0000000
--- a/UI-Project/src/views/sd/product/CreateProduct.vue
+++ /dev/null
@@ -1,435 +0,0 @@
-<script setup>
-const disposeList = $ref([
-  '褰╅噳',
-  '钂欑爞',
-  '闀�鑶�',
-  '璐磋啘',
-  '鍠风爞',
-  '纾ㄨ竟'
-])
-let processList = $ref([
-    '纾ㄨ竟',
-    '闀�鑶�',
-    '鍊掕',
-    '娓呮礂',
-    '鎵撳瓟',
-    '鎸栫己',
-    '鎸栨Ы',
-    '姘村垏鍓�',
-    '涓濆嵃',
-    '鍗婇挗鍖�',
-    '閽㈠寲',
-    '澶瑰眰',
-    '涓┖',
-    '鍖呰'
-])
-
-</script>
-
-<template>
-  <div id="main-div">
-    <div class="glass-param inline-flex"
-         :style="{
-          boxShadow: `var(--el-box-shadow-lighter)`,
-        }"
-    >
-      <div class="glass-type">
-        <h5>鏉愭枡灞炴��</h5>
-        <el-row :gutter="50">
-<!--          <el-col :span="6"></el-col>-->
-          <el-col :span="4">
-            <div class="grid-content ep-bg-purple" >
-              <el-select size="small" clearable placeholder="*鍘氬害:" />
-            </div>
-          </el-col>
-          <el-col :span="4">
-            <div class="grid-content ep-bg-purple" >
-              <el-select size="small" clearable placeholder="*棰滆壊:" />
-            </div>
-          </el-col>
-          <el-col :span="6">
-            <div class="grid-content ep-bg-purple" >
-              <el-select size="small" clearable placeholder="*宸ヨ壓灞炴��:" />
-            </div>
-          </el-col>
-          <el-col :span="4">
-            <div class="grid-content ep-bg-purple" >
-              <el-select size="small"  clearable placeholder="浣嶇疆:" />
-            </div>
-          </el-col>
-          <el-col :span="6">
-            <div class="grid-content ep-bg-purple" >
-              <el-select size="small"  clearable placeholder="LOW-E闈�:" />
-            </div>
-          </el-col>
-        </el-row>
-      </div>
-      <div class="line"/>
-      <div class="glass-dispose">
-        <h5>琛ㄩ潰澶勭悊</h5>
-        <div class="glass-dispose-detail">
-          <div v-for="n in 2" class="glass-dispose-detail-1">
-            <p style="writing-mode: vertical-rl;">
-              {{n===1?'绗竴闈�':'绗簩闈�'}}
-            </p>
-            <div class="glass-dispose-detail-list"
-                 v-for="(item,index) in disposeList"
-            >
-              <el-checkbox
-                  :label="item" size="large" />
-              <el-input
-                  v-if="index==0 && n==1"
-                  class="dispose-input"
-                  size="small"
-                  clearable />
-            </div>
-
-          </div>
-        </div>
-
-      </div>
-      <div class="line"/>
-      <div class="glass-process">
-        <h5>鏉愭枡灞炴��</h5>
-        <el-checkbox
-            v-for="item in processList"
-            :label="item"
-            class="glass-process-checkbox"
-             size="small" />
-      </div>
-      <div class="line"/>
-      <div class="glass-spacer">
-        <div class="glass-spacer-jc">
-          <el-select
-              size="small"
-              style="width: 100px"
-              clearable placeholder="*涓┖鍘氬害:" />
-          <el-select
-              size="small"
-              style="width: 100px"
-              clearable placeholder="*鍏呮皵鏂瑰紡:" />
-          <el-select
-              size="small"
-              style="width: 100px"
-              clearable placeholder="*灏佽兌:" />
-          <el-select
-              size="small"
-              style="width: 100px"
-              clearable placeholder="*榛樿鑳舵繁:" />
-          <el-button
-              size="small"
-              type="primary"
-              round>涓┖闂撮殧鐗�</el-button>
-
-        </div>
-        <div class="glass-spacer-zk">
-          <el-select
-              size="small"
-              style="width: 100px"
-              clearable placeholder="*澶瑰眰鍘氬害:" />
-          <el-select
-              size="small"
-              style="width: 100px"
-              clearable placeholder="*绫诲瀷:" />
-          <el-select
-              size="small"
-              style="width: 100px"
-              clearable placeholder="*棰滆壊:" />
-          <el-button
-              size="small"
-              type="primary"
-              style="margin-left: 100px"
-              round>澶瑰眰闂撮殧鐗�</el-button>
-        </div>
-      </div>
-      <div class="line"/>
-      <div class="glass-oneSlice">
-        <div class="glass-oneSlice-type">
-          <el-row :gutter="20">
-            <el-col :span="5">
-              <div class="grid-content ep-bg-purple" >
-                <el-text class="mx-1"  style="margin-left: 0.5rem" >鍗曠墖鐜荤拑灞炴�э細</el-text>
-              </div>
-            </el-col>
-            <el-col :span="13">
-              <div class="grid-content ep-bg-purple" >
-                <el-input size="small" disabled  />
-              </div>
-            </el-col>
-            <el-col :span="3">
-              <div class="grid-content ep-bg-purple" >
-                <el-button
-                    size="small"
-                    type="primary"
-                    round>閲嶇疆</el-button>
-              </div>
-            </el-col>
-          </el-row>
-        </div>
-        <div class="glass-oneSlice-type">
-          <el-row :gutter="20">
-            <el-col :span="5">
-              <div class="grid-content ep-bg-purple" >
-                <el-text class="mx-1"  style="margin-left: 0.5rem"  >宸ヨ壓娴佺▼灞炴�э細</el-text>
-              </div>
-            </el-col>
-            <el-col :span="13">
-              <div class="grid-content ep-bg-purple" >
-                <el-input size="small" disabled  />
-              </div>
-            </el-col>
-            <el-col :span="3">
-              <div class="grid-content ep-bg-purple" >
-                <el-button
-                    size="small"
-                    type="primary"
-                    round>纭</el-button>
-              </div>
-            </el-col>
-          </el-row>
-        </div>
-      </div>
-      <div class="glass-other">
-        <el-row :gutter="20">
-          <el-col :span="5">
-            <div class="grid-content ep-bg-purple" >
-              <el-text class="mx-1"
-                       style="margin-left: 0.5rem;text-align: center">
-                蹇�熸煡璇細
-              </el-text>
-              <el-input size="small" disabled  />
-            </div>
-          </el-col>
-          <el-col :span="5">
-            <div class="grid-content ep-bg-purple" >
-              <el-text class="mx-1"
-                       style="margin-left: 0.5rem;text-align: center">
-                璁¢噸鍘氬害锛�
-              </el-text>
-              <el-input size="small" disabled  />
-            </div>
-          </el-col>
-          <el-col :span="5">
-            <div class="grid-content ep-bg-purple" >
-              <el-text class="mx-1"
-                       style="margin-left: 0.5rem;text-align: center">
-                鍘氬害锛�
-              </el-text>
-              <el-input size="small" disabled  />
-            </div>
-          </el-col>
-          <el-col :span="5">
-            <div class="grid-content ep-bg-purple" >
-              <el-text class="mx-1"
-                       style="margin-left: 0.5rem;text-align: center">
-                澶囨敞锛�
-              </el-text>
-              <el-input size="small" disabled  />
-            </div>
-          </el-col>
-        </el-row>
-
-      </div>
-    </div>
-
-
-    <div class="glass-part inline-flex"
-         :style="{
-          boxShadow: `var(--el-box-shadow-lighter)`,
-        }">
-      <div class="glass-part-all">
-        <el-row >
-          <el-col :span="4">
-            <div class="grid-content ep-bg-purple" >
-              <el-text class="mx-1" size="large"  >浜у搧鍚嶇О锛�</el-text>
-            </div>
-          </el-col>
-          <el-col :span="20">
-            <div class="grid-content ep-bg-purple" >
-              <el-input size="large" disabled  />
-            </div>
-          </el-col>
-        </el-row>
-      </div>
-
-      <div class="glass-part-detail">
-        <el-row style="width: 90%" >
-          <el-col :span="4">
-            <el-button
-                size="small"
-                type="primary"
-                round>淇敼鐜荤拑</el-button>
-          </el-col>
-          <el-col :span="16">
-            <el-input
-                value="5mm鐧界幓"
-                size="small"
-                disabled  />
-          </el-col>
-        </el-row>
-        <el-row style="width: 90%" >
-          <el-col :span="4">
-            <el-button
-                size="small"
-                type="primary"
-                round>淇敼澶瑰眰</el-button>
-          </el-col>
-          <el-col :span="16">
-            <el-input
-                value="5mmPVB閫忔槑"
-                size="small"
-                disabled  />
-          </el-col>
-        </el-row>
-        <el-row style="width: 90%" >
-          <el-col :span="4">
-            <el-button
-                size="small"
-                type="primary"
-                round>淇敼鐜荤拑</el-button>
-          </el-col>
-          <el-col :span="16">
-            <el-input
-                value="5mm鐧界幓"
-                size="small"
-                disabled  />
-          </el-col>
-        </el-row>
-
-      </div>
-      <el-button
-          style="float: right;
-          margin-right: 0.5rem;"
-
-          size="large"
-          type="primary"
-          round>閲嶇疆</el-button>
-    </div>
-  </div>
-</template>
-
-<style scoped >
-  #main-div{
-    width: 100%;
-    height: 100%;
-  }
-  .glass-param{
-    height: 100%;
-    width: 59.5%;
-    float: left;
-  }
-  .glass-part{
-    height: 100%;
-    width: 39.5%;
-    float: right;
-  }
-  .glass-type{
-    width: 100%;
-    height: 12%;
-
-  }
-  .glass-dispose{
-    width: 100%;
-    height: 20%;
-  }
-  .glass-dispose-detail{
-    margin-top: 0.5rem;
-    margin-left: 0.5rem;
-
-  }
-  .glass-dispose-detail-1{
-    width:50%;
-    height: 15vh;
-    float: left;
-  }
-  .glass-dispose-detail-1 p{
-    height: 80%;
-    float: left;
-    margin-top: 2%;
-  }
-  .glass-dispose-detail-list{
-    width: 45%;
-    float: left;
-    height: 25px;
-  }
-  .dispose-input{
-    width:70px;
-    margin-left: 1rem;
-  }
-  .glass-process{
-    width: 100%;
-    height: 25%;
-  }
-  .glass-process-checkbox{
-    margin-left: 0.5rem;
-    float: left;
-  }
-  .glass-spacer{
-    width: 100%;
-    height: 15%;
-    margin-bottom: 0;
-  }
-  .glass-spacer div{
-    width: 100%;
-    height: 50%;
-  }
-  .glass-oneSlice{
-    width: 100%;
-    height: 10%;
-    //background-color: #1890FF;
-  }
-  .glass-oneSlice-type{
-    width: 100%;
-    height: 20%;
-  }
-  .glass-other{
-    width: 100%;
-    height: 10%;
-  }
-  .glass-part-all{
-    margin-left: 2%;
-    margin-top: 2%;
-    width: 96%;
-    height: 10%;
-  }
-  .glass-part-detail{
-    margin-left: 2%;
-    margin-top: 2%;
-    width: 96%;
-    height: 75%;
-  }
-
-
-
-  /*鐜荤拑缁勫悎鏄庣粏 glass-part*/
-
-  h5{
-    margin-top: 0.5rem;
-    margin-left: 0.5rem;
-  }
-/*甯冨眬css*/
-  .el-row {
-    margin-bottom: 20px;
-    margin-top: 1rem;
-  }
-  .el-row:last-child {
-    margin-bottom: 0;
-  }
-  .el-col {
-    border-radius: 4px;
-  }
-
-  .grid-content {
-    border-radius: 4px;
-    min-height: 36px;
-  }
-/*  .el-col{
-    background-color: #1890FF;
-  }*/
-  .line {
-    width: 100%;
-    height: 0;
-    border-top: 2px solid var(--el-border-color);
-  }
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/product/Product.vue b/UI-Project/src/views/sd/product/Product.vue
deleted file mode 100644
index 95552b9..0000000
--- a/UI-Project/src/views/sd/product/Product.vue
+++ /dev/null
@@ -1,64 +0,0 @@
-<script setup>
-import {ref} from "vue";
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue";
-import request from "@/utils/request";
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import {useRouter} from "vue-router";
-import  GlassType from '@/components/sd/product/GlassType.vue'
-const router = useRouter()
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-
-</script>
-
-<template>
-  <div id="main">
-   <div id="div-title">
-     <el-breadcrumb :separator-icon="ArrowRight">
-       <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/product/selectProduct' }">浜у搧棣栭〉</el-breadcrumb-item>
-       <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/product/createProduct' }">鍒涘缓</el-breadcrumb-item>
-<!--       <el-breadcrumb-item :to="{ path: '/main/product/test' }">娴嬭瘯</el-breadcrumb-item>-->
-<!--       <el-breadcrumb-item :to="{ path: '/main/product/testSort' }">娴嬭瘯</el-breadcrumb-item>-->
-       <el-breadcrumb-item v-show="false" :to="{ path: '/main/product/test1' }">娴嬭瘯</el-breadcrumb-item>
-     </el-breadcrumb>
-
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 2%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-  //margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 95%;
-  margin-top: 1%;
-}
-#select{
-  margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/product/SelectProduct.vue b/UI-Project/src/views/sd/product/SelectProduct.vue
deleted file mode 100644
index 06789e7..0000000
--- a/UI-Project/src/views/sd/product/SelectProduct.vue
+++ /dev/null
@@ -1,421 +0,0 @@
-<script lang="ts" setup>
-import request from "@/utils/request"
-import deepClone from "@/utils/deepClone"
-import {ElDatePicker, ElMessage} from "element-plus"
-import useProductGlassTypeStore from "@/stores/sd/product/productGlassType"
-import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue"
-import {Search} from "@element-plus/icons-vue"
-import GlassType from "@/components/sd/product/GlassType.vue"
-import {useRouter} from  'vue-router'
-import Sortable from 'sortablejs'
-import BasicTable from '@/components/basic/BasicTable.vue'
-import {VXETable} from "vxe-table";
-let productGlassTypeStore = useProductGlassTypeStore()
-let router=useRouter()
-//鐩戝惉鐜荤拑绫诲瀷鏀瑰彉
-let productList = ref([])
-let date=ref(['',''])
-
-
-
-let glassType = ref([])
-watch(productGlassTypeStore,(newVal,oldVal) => {
-
-
-})
-const getProduct = () => {
-  request.post(`/product/1/100/${productGlassTypeStore.GlassType}`,filterData.value).then((res) => {
-    if(res.code==200){
-      pageTotal.value=res.data.total
-      xGrid.value.loadData(res.data.data)
-      gridOptions.loading=false
-    }else{
-      ElMessage.warning(res.msg)
-    }
-  })
-}
-
-
-
-
-
-//瀹氫箟婊氬姩鏉¢珮搴�
-let scrollTop =ref(null)
-let scrollHeight =ref(null)
-let clientHeight =ref(null)
-const  scrollEvnt = (row) => {
-  // 鍐呭楂樺害
-  scrollTop.value = row.$event.target.scrollTop
-  scrollHeight.value = row.$event.target.scrollHeight
-  clientHeight.value = row.$event.target.clientHeight
-}
-//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
-let filterData = ref({
-  basicGlassType:{
-    typeName:''
-  }
-})
-//瀹氫箟椤甸潰鎬婚〉鏁�
-let pageTotal=ref('')
-//瀹氫箟鏁版嵁杩斿洖缁撴灉
-let produceList = ref([])
-//瀹氫箟褰撳墠椤垫暟
-let pageNum=$ref(1)
-let pageState = null
-//鐩戝惉浜у搧婊氬姩鏉$姸鎬侊紝婊氬姩鍒板簳閮ㄥ悜鍚庣璇锋眰鏁版嵁
-watch(scrollTop,(newVal,oldVal) => {
-  //鍒ゆ柇褰撳墠鐘舵�佹煡璇㈢姸鎬�
-  if(pageState!==null){
-    return;
-  }
-  //鍒ゆ柇婊氬姩鏉′笂涓嬫粴鍔ㄤ笉鏄乏鍙虫粴鍔紝褰撳乏鍙虫粴鍔ㄧ洿鎺ヨ繑鍥�
-  if((newVal === oldVal && newVal===0) || oldVal===null){
-    return;
-  }
-  //鍒ゆ柇鏄惁婊氬埌搴曢儴
-  if ((Math.round(scrollTop.value + clientHeight.value)+5 >= scrollHeight.value ) ) {
-    if(newVal>oldVal){
-      //鍒ゆ柇褰撳墠瀹瑰櫒闀垮害鏄惁涓�500锛屽苟涓斿綋鍓嶉〉灏忎簬瀹瑰櫒鎬绘暟閲�
-      if(produceList.length===500 && pageNum<(produceList.length/100)){
-        pageNum=pageNum+5
-      }else{
-        //鍒ゆ柇鏄惁鏄渶澶ч〉闈�
-        if (pageNum>=pageTotal.value){
-          //ElMessage.warning("娌℃湁鏇村鏁版嵁浜�")
-          return
-        }
-        pageNum=pageNum+1
-
-      }
-      pageState=true
-    }
-  }else if(newVal===0 && oldVal>0 && pageNum>1  ){  //鍒ゆ柇鏄惁婊氬埌椤堕儴骞朵笖澶т簬瀹瑰櫒鏁伴噺
-    //鍒ゆ柇鍚戜笂婊氬姩褰撳墠椤垫暟鏄惁澶т簬瀹瑰櫒鏁板��
-    if(pageNum>5){
-      pageNum=pageNum-5
-    }else if((produceList.length/100)>=5) {
-      pageNum=pageNum-1
-    }else{
-      return
-    }
-    pageState =false
-  }
-  if(pageState!==null){
-    gridOptions.loading=true
-    request.post(`/product/${pageNum}/100/${productGlassTypeStore.GlassType}`,filterData.value).then((res) => {
-      try{
-        if(res.code==200){
-          if(pageState){
-            produceList = produceList.concat(res.data.data)
-            if(produceList.length>500){
-              produceList=produceList.slice(100,600)
-            }
-          }else{
-            produceList = res.data.data.concat(produceList)
-            if(produceList.length>500){
-              produceList=produceList.slice(0,500)
-            }
-          }
-          xGrid.value.reloadData(produceList)
-          pageState=null
-        }else{
-          ElMessage.warning(res.msg)
-        }
-      }finally {
-        gridOptions.loading=false
-      }
-    })
-  }
-
-
-
-
-})
-
-
-//绗竴娆″姞杞芥暟鎹�
-request.post(`/product/1/100/${productGlassTypeStore.GlassType}`,filterData.value).then((res) => {
-  if(res.code==200){
-    pageTotal.value=res.data.total
-    produceList = produceList.value.concat(deepClone(res.data.data))
-    xGrid.value.reloadData(produceList)
-    gridOptions.loading=false
-  }else{
-    ElMessage.warning(res.msg)
-  }
-})
-
-
-
-
-
-/*const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' : {
-      router.push({path: '/main/product/createProduct', query: { id: row.id }})
-      break
-    }
-    case 'delete': {
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}*/
-
-// const getCheckList = (row) =>{
-//   alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑纭澶嶉�夋淇℃伅鍙湪鎺у埗鍙版煡鐪�')
-// }
-
-
-const xGrid = ref()
-const gridOptions = reactive({
-  loading: true,
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 60, useKey: true},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'demo_1',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollX:{enabled: true},
-  scrollY:{ enabled: true ,gt:0},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 60},
-    {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
-    {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'id', title: '缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: false},
-    {field: 'productName', title: '鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: false},
-    {field: 'basicGlassType.typeName', title: '鎵�灞炵被鍒�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: false},
-    {field: 'query', title: '蹇�熸煡璇�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: false},
-    {field: 'remarks', title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: false},
-    {field: 'creator', title: '鍒涘缓浜�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: false},
-    {field: 'createTime', title: '鍒涘缓鏃堕棿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: false}
-  ],//琛ㄥご鍙傛暟
-  data:null,//琛ㄦ牸鏁版嵁
-  toolbarConfig: {
-    buttons: [],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return `椤垫暟:${pageNum}/${pageTotal.value}`
-        }
-
-        return ''
-      })
-    ]
-  }
-
-})
-
-
-/*浣跨敤绛涢�夛紝鍚庣鑾峰彇鏁版嵁*/
-const changeFilterEvent = (event, option, $panel,) => {
-  // 鎵嬪姩瑙﹀彂绛涢��
-  $panel.changeOption(event, !!option.data, option)
-}
-function filterChanged(column){
-  gridOptions.loading=true
-  //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖�
-  let value = column.datas[0]!=undefined?column.datas[0]:''
-  value = value.trim()
-  //鍒ゆ柇鏄惁瀛樺湪澶栭敭
-  if (column.property.indexOf('.')>-1){
-    const  columnArr = column.property.split('.')
-    filterData.value[columnArr[0]] = {
-      [columnArr[1]]:value
-    }
-  }else{
-    filterData.value[column.property] = value
-  }
-  request.post("/product/1/100/"+productGlassTypeStore.GlassType,filterData.value).then((res) => {
-    if(res.code==200){
-      pageTotal.value=res.data.total
-      pageNum=1
-      produceList = deepClone(res.data.data)
-      xGrid.value.loadData(produceList)
-      gridOptions.loading=false
-    }else{
-      ElMessage.warning(res.msg)
-    }
-  })
-}
-
-
-
-
-
-/*鍚庣杩斿洖缁撴灉澶氬眰宓屽灞曠ず*/
-const hasDecimal = (value) => {
-  const regex = /\./; // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐�
-  return regex.test(value); // 杩斿洖true/false
-}
-
-/*琛ㄦ牸鎷栨嫿*/
-let sortable2: any
-
-const columnDrop2 = () => {
-  const $grid = xGrid.value
-  sortable2 = Sortable.create($grid.$el.querySelector('.body--wrapper>.vxe-table--header .vxe-header--row'), {
-    handle: '.vxe-header--column',
-    onEnd: (sortableEvent) => {
-      const targetThElem = sortableEvent.item
-      const newIndex = sortableEvent.newIndex
-      const oldIndex = sortableEvent.oldIndex
-      const { fullColumn, tableColumn } = $grid.getTableColumn()
-      const wrapperElem = targetThElem.parentNode
-      const newColumn = fullColumn[newIndex]
-      if (newColumn.fixed) {
-        // 閿欒鐨勭Щ鍔�
-        const oldThElem = wrapperElem.children[oldIndex]
-        if (newIndex > oldIndex) {
-          wrapperElem.insertBefore(targetThElem, oldThElem)
-        } else {
-          wrapperElem.insertBefore(targetThElem, oldThElem ? oldThElem.nextElementSibling : oldThElem)
-        }
-        VXETable.modal.message({ content: '鍥哄畾鍒椾笉鍏佽鎷栧姩锛�', status: 'error' })
-        return
-      }
-      // 鑾峰彇鍒楃储寮� columnIndex > fullColumn
-      const oldColumnIndex = $grid.getColumnIndex(tableColumn[oldIndex])
-      const newColumnIndex = $grid.getColumnIndex(tableColumn[newIndex])
-      // 绉诲姩鍒扮洰鏍囧垪
-      const currRow = fullColumn.splice(oldColumnIndex, 1)[0]
-      fullColumn.splice(newColumnIndex, 0, currRow)
-      $grid.loadColumn(fullColumn)
-    }
-  })
-}
-
-let initTime: any
-nextTick(() => {
-  // 鍔犺浇瀹屾垚涔嬪悗鍦ㄧ粦瀹氭嫋鍔ㄤ簨浠�
-  initTime = setTimeout(() => {
-    columnDrop2()
-  }, 500)
-})
-
-onUnmounted(() => {
-  clearTimeout(initTime)
-  if (sortable2) {
-    sortable2.destroy()
-  }
-})
-
-
-</script>
-
-<template>
-
-  <div style="width: 100%;height: 100%">
-      <glass-type   style="float: left" />
-      <el-button
-          @click="getProduct"
-          id="select"
-          type="primary" :icon="Search">鏌ヨ</el-button>
-
-
-
-    <vxe-grid
-        @filter-change="filterChanged"
-        max-height="100%"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-        v-on="gridEvents"
-        @scroll ="scrollEvnt"
-
-    >
-      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span>
-            <span v-else>{{ row[item.field] }}</span>
-
-          </li>
-        </ul>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-
-
-    </vxe-grid>
-
-
-<!--      <basic-table-->
-<!--           style="height: 97%" v-if="flag"-->
-<!--          :tableProp="tableProp"-->
-<!--          @getCheckList="getCheckList"-->
-<!--          @getChildren="getChildren"-->
-<!--      ></basic-table>-->
-  </div>
-</template>
-
-<style scoped>
-/*婊氬姩鏉℃暣浣撻儴鍒�*/
-.mytable-scrollbar ::-webkit-scrollbar {
-  width: 10px;
-  height: 10px;
-}
-/*婊氬姩鏉$殑杞ㄩ亾*/
-.mytable-scrollbar ::-webkit-scrollbar-track {
-  background-color: #FFFFFF;
-}
-/*婊氬姩鏉¢噷闈㈢殑灏忔柟鍧楋紝鑳藉悜涓婂悜涓嬬Щ鍔�*/
-.mytable-scrollbar ::-webkit-scrollbar-thumb {
-  background-color: transparent;
-  border-radius: 5px;
-  border: 1px solid #F1F1F1;
-  box-shadow: inset 0 0 6px rgba(0,0,0,.3);
-}
-.mytable-scrollbar ::-webkit-scrollbar-thumb:hover {
-  background-color: #ffffff;
-}
-.mytable-scrollbar ::-webkit-scrollbar-thumb:active {
-  background-color: white;
-}
-/*杈硅锛屽嵆涓や釜婊氬姩鏉$殑浜ゆ眹澶�*/
-.mytable-scrollbar ::-webkit-scrollbar-corner {
-  background-color: #FFFFFF;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/product/Test.vue b/UI-Project/src/views/sd/product/Test.vue
deleted file mode 100644
index 83a0971..0000000
--- a/UI-Project/src/views/sd/product/Test.vue
+++ /dev/null
@@ -1,112 +0,0 @@
-<script setup>
-import BasicTable from '@/components/basic/BasicTable.vue'
-import request from "@/utils/request"
-import deepClone from "@/utils/deepClone";
-import {ElMessage} from "element-plus";
-import router from "@/router";
-import {onMounted, ref} from "vue";
-
-
-
-
-
-/*title閲岀殑鍙傛暟璁剧疆
- * {
- *    type:{expand,checkbox} 绫诲瀷
- *    field: 鏁版嵁鎸囧悜浣嶇疆
- *    title: 鏍囬
- *    sortable: 鏄惁鍙帓搴�
- *    editRender: 鏄惁鍙紪杈�
- *    showOverflow: 鏄惁鏄剧ず鐪佺暐鍙�
- *    width: 瀹藉害
- *    fixed: left,right鏄惁鍥哄畾鍒�
- *    slots锛氭彃妲界被鍨�
- *    filters:[{ data: '' }],slots: { filter: 'num1_filter' }} 琛ㄥご绛涢�夋
- *    editRender: { name: 'input', attrs: { placeholder: '' } } 鏁版嵁鍒楁槸鍚﹀彲缂栬緫
- * }
- *
- * */
-
-let tableProp = $ref({
-  title:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    {type: 'checkbox',fixed:"left", title: '閫夋嫨', width: 80 },
-    {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
-    {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' },fixed:"left"},
-    {field: 'prodID', title: '缂栧彿', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'product', title: '鍚嶇О', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'typeName', title: '鎵�灞炵被鍒�', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'query', title: '蹇�熸煡璇�', sortable: true},
-    {field: 'remarks', title: '澶囨敞', sortable: true,showOverflow:"ellipsis"},
-    {field: 'creator', title: '鍒涘缓浜�', sortable: true},
-    {field: 'createTime', title: '鍒涘缓鏃堕棿', sortable: true}
-  ],
-  datas:null,
-//鑴氶儴姹傚拰
-  footList:['remarks'],
-  //绛涢�夋潯浠跺垪
-  filter:{
-    product:'n*'
-  },
-  buttons: [
-     //{ code: 'myInsert', name: '鏂板' },
-    // { code: 'deleteList', name: '鍒犻櫎' },
-    { code: 'checkList', name: '鎻愪氦'  }
-  ],
-
-})
-let flag = $ref(false)
-request.get("/product").then((res) => {
-  if(res.code==200){
-    tableProp.datas= res.data
-    flag = true
-    //console.log(res.data)
-  }else{
-    ElMessage.warning(res.msg)
-  }
-})
-
-//鎺ユ敹瀛愮粍浠朵紶杩囨潵鐨勯�変腑澶嶉�夋鏁版嵁
-const getCheckList = (row) =>{
-  alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑纭澶嶉�夋淇℃伅鍙湪鎺у埗鍙版煡鐪�')
-  console.log(row)
-}
-
-
-const getChildren = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-const getFilterChildren = (param) =>{
-
-
-}
-
-
-</script>
-
-<template>
-
-  <div style="width: 100%;height: 100%;">
-<!--    <el-input   v-model="tableProp.filter.product"/>-->
-    <basic-table v-if="flag"
-                 :tableProp="tableProp"
-                 @getCheckList="getCheckList"
-                 @getChildren="getChildren"
-                 @getFilterChildren="getFilterChildren"
-    ></basic-table>
-  </div>
-</template>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/product/Test11.vue b/UI-Project/src/views/sd/product/Test11.vue
deleted file mode 100644
index df9c840..0000000
--- a/UI-Project/src/views/sd/product/Test11.vue
+++ /dev/null
@@ -1,520 +0,0 @@
-<template>
-  <div>
-    <!-- 姝e父鍖哄煙鐨勬 -->
-    <div class="vxe-table--cell-area" ref="cellarea">
-      <span class="vxe-table--cell-main-area"></span>
-      <span class="vxe-table--cell-active-area"></span>
-    </div>
-    <!-- 宸︿晶fixed鍖哄煙鐨勬 -->
-    <div class="vxe-table--cell-area" ref="leftfixedcellarea">
-      <span class="vxe-table--cell-main-area"></span>
-      <span class="vxe-table--cell-active-area"></span>
-    </div>
-    <!-- 鍙充晶fixed鍖哄煙鐨勬 -->
-    <div class="vxe-table--cell-area" ref="rightfixedcellarea">
-      <span class="vxe-table--cell-main-area"></span>
-      <span class="vxe-table--cell-active-area"></span>
-    </div>
-
-    <vxe-grid ref='xGrid' v-bind="gridOptions" height="500px"
-              @toolbar-button-click="toolbarButtonClickEvent">
-    </vxe-grid>
-  </div>
-</template>
-
-<script lang="ts" setup>
-import { VxeGridProps } from 'vxe-table'
-import {nextTick, onMounted, reactive, ref} from "vue";
-
-let title = [//鍒楁�诲搴︿负1500
-  { width: 100, field: "id", title: "#", align: "left", fixed: 'left' },
-  { width: 100, field: "name", title: "濮撳悕", align: "left", fixed: 'left' },
-  { width: 400, field: "age", title: "骞撮緞", align: "left" },
-  { width: 400, field: "sex", title: "鎬у埆", align: "left" },
-  { width: 100, field: "job", title: "宀椾綅", align: "left", fixed: 'right' },
-  { width: 100, field: "address", title: "鍦板潃", align: "left", fixed: 'right' }
-]
-let tableDate = [
-  { id: 1, name: "寮犱笁", age: 30, sex: "鐢�", job: "鍓嶇", address: "涓浗xxxxxxxxxx" },
-  { id: 2, name: "鏉庡洓", age: 30, sex: "鐢�", job: "鍚庣", address: "涓浗xxxxxxxxxx" },
-  { id: 3, name: "鐜嬩簲", age: 30, sex: "濂�", job: "杩愮淮", address: "涓浗xxxxxxxxxx" },
-  { id: 4, name: "璧靛叚", age: 30, sex: "鐢�", job: "缇庡伐", address: "涓浗xxxxxxxxxx" },
-  { id: 5, name: "鑰佸叓", age: 30, sex: "鐢�", job: "椤圭洰缁忕悊", address: "涓浗xxxxxxxxxx" },
-  { id: 6, name: "妗�妗�", age: 30, sex: "濂�", job: "鍞悗", address: "涓浗xxxxxxxxxx" },
-  { id: 7, name: "寮犱笁", age: 30, sex: "鐢�", job: "鍓嶇", address: "涓浗xxxxxxxxxx" },
-  { id: 8, name: "鏉庡洓", age: 30, sex: "鐢�", job: "鍚庣", address: "涓浗xxxxxxxxxx" },
-  { id: 9, name: "鐜嬩簲", age: 30, sex: "濂�", job: "杩愮淮", address: "涓浗xxxxxxxxxx" },
-  { id: 10, name: "璧靛叚", age: 30, sex: "鐢�", job: "缇庡伐", address: "涓浗xxxxxxxxxx" },
-  { id: 11, name: "鑰佸叓", age: 30, sex: "鐢�", job: "椤圭洰缁忕悊", address: "涓浗xxxxxxxxxx" },
-  { id: 12, name: "妗�妗�", age: 30, sex: "濂�", job: "鍞悗", address: "涓浗xxxxxxxxxx" },
-  { id: 13, name: "寮犱笁", age: 30, sex: "鐢�", job: "鍓嶇", address: "涓浗xxxxxxxxxx" },
-  { id: 14, name: "鏉庡洓", age: 30, sex: "鐢�", job: "鍚庣", address: "涓浗xxxxxxxxxx" },
-  { id: 15, name: "鐜嬩簲", age: 30, sex: "濂�", job: "杩愮淮", address: "涓浗xxxxxxxxxx" },
-  { id: 16, name: "璧靛叚", age: 30, sex: "鐢�", job: "缇庡伐", address: "涓浗xxxxxxxxxx" },
-  { id: 17, name: "鑰佸叓", age: 30, sex: "鐢�", job: "椤圭洰缁忕悊", address: "涓浗xxxxxxxxxx" },
-  { id: 18, name: "妗�妗�", age: 30, sex: "濂�", job: "鍞悗", address: "涓浗xxxxxxxxxx" },
-  { id: 19, name: "寮犱笁", age: 30, sex: "鐢�", job: "鍓嶇", address: "涓浗xxxxxxxxxx" },
-  { id: 20, name: "鏉庡洓", age: 30, sex: "鐢�", job: "鍚庣", address: "涓浗xxxxxxxxxx" },
-  { id: 21, name: "鐜嬩簲", age: 30, sex: "濂�", job: "杩愮淮", address: "涓浗xxxxxxxxxx" },
-  { id: 22, name: "璧靛叚", age: 30, sex: "鐢�", job: "缇庡伐", address: "涓浗xxxxxxxxxx" },
-  { id: 23, name: "鑰佸叓", age: 30, sex: "鐢�", job: "椤圭洰缁忕悊", address: "涓浗xxxxxxxxxx" },
-  { id: 24, name: "妗�妗�", age: 30, sex: "濂�", job: "鍞悗", address: "涓浗xxxxxxxxxx" },
-]
-
-let gridOptions = reactive<VxeGridProps<any>>({
-  //宸︿笂瑙掓寜閽�
-  toolbarConfig: {
-    perfect: true,
-    enabled: true,
-    size: "mini",
-    buttons: [
-      {
-        code: 'getcellselctdata', type: "text", name: '鑾峰彇閫変腑鏁版嵁'
-      }
-    ],
-  },
-  //鍒楅厤缃� (浣跨敤鍒楁嫋鎷藉姛鑳�,蹇呴』閰嶇疆useKey涓簍rue)
-  columnConfig: { resizable: true, useKey: true },
-  //杈规
-  border: "full",
-  //鏂戦┈绾�
-  stripe: true,
-  //鍒椾俊鎭�
-  columns: title,
-  //鏁版嵁
-  data: tableDate,
-  //杩欓噷涓�瀹氳鎸囧畾true锛屽惁鍒檙owConfig鐨刪eight娌$敤
-  showOverflow: true,
-  //琛岄厤缃�,杩欓噷鐨勮楂樹竴瀹氶渶瑕佹寚瀹�
-  rowConfig: { isCurrent: true, height: 35, isHover: true },
-})
-//#region 浠ヤ笅鏄紶鏍囬�変腑鍔熻兘
-
-
-//榧犳爣婊戝姩閫変腑
-let isSelecting = ref(false) // 鏄惁姝e湪杩涜閫夋嫨鎿嶄綔,榛樿涓篺alse
-let selectionStart = reactive({ rowIndex: -1, cellIndex: -1 }) // 閫夋嫨鎿嶄綔璧峰鍗曞厓鏍间綅缃�
-let selectionEnd = reactive({ rowIndex: -1, cellIndex: -1 }) // 閫夋嫨鎿嶄綔缁撴潫鍗曞厓鏍间綅缃�
-
-onMounted(() => {
-  addListener()
-})
-//鑾峰彇椤甸潰ref鑺傜偣
-//鑾峰彇vxetable琛ㄦ牸鑺傜偣
-let xGrid = ref()
-let cellarea = ref()
-let leftfixedcellarea = ref()
-let rightfixedcellarea = ref()
-
-//杩斿洖table鐨剅ef鍚嶇О
-const getTablexGrid = () => {
-  return xGrid.value
-}
-
-//娣诲姞浜嬩欢
-const addListener = () => {
-  //娣诲姞澶氶�夊垪
-  nextTick(() => {
-    window.addEventListener("mousedown", tableOutDestroyAreaBox)//缁檞indow娣诲姞榧犳爣鎸変笅浜嬩欢,鍒ゆ柇鏄惁鍦ㄨ〃鏍煎,鏄攢姣�
-    window.addEventListener("mouseup", tbodymouseup)//缁檞indow娣诲姞榧犳爣鏉惧紑浜嬩欢
-    let tbody = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper table tbody")//鑾峰彇tbody鍖哄煙
-
-    if (tbody) {
-      tbody.addEventListener("mousedown", tbodymousedown)//缁欒〃鏍间腑鐨則body娣诲姞榧犳爣鎸変笅浜嬩欢
-      tbody.addEventListener("mousemove", tbodymousemove)//缁欒〃鏍间腑鐨則body娣诲姞榧犳爣绉诲姩浜嬩欢
-      tbody.addEventListener("mouseout", throttle(tbodymouseout, 50))//缁欒〃鏍间腑鐨則body娣诲姞榧犳爣绉诲嚭浜嬩欢
-      tbody.addEventListener("click", tableCellClick)//娣诲姞宸﹂敭鍗曞嚮浜嬩欢
-      tbody.oncontextmenu = tableCellMenuClick//娣诲姞鍙抽敭鑿滃崟浜嬩欢
-    }
-
-    let bodyWrapper = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper")//鑾峰彇姝e父鍖哄煙鐨刡ody
-    if (bodyWrapper) {
-      //娉ㄦ剰杩欓噷鐨剅ef鍚嶇О锛岃繖閲屾槸闈瀎ixed鍖哄煙鐨勬鐨勫悕绉�
-      bodyWrapper.appendChild(cellarea.value)//娣诲姞鑼冨洿妗嗗厓绱�
-    }
-    setTimeout(() => {
-      //#region 宸︿晶鍥哄畾鍒�
-      let leftfixedtbody = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper table tbody")//鑾峰彇fixedtbody鍖哄煙
-
-      if (leftfixedtbody) {
-        leftfixedtbody.addEventListener("mousedown", tbodymousedown)//缁欒〃鏍间腑鐨刲eftfixedtbody娣诲姞榧犳爣鎸変笅浜嬩欢
-        leftfixedtbody.addEventListener("mousemove", tbodymousemove)//缁欒〃鏍间腑鐨刲eftfixedtbody娣诲姞榧犳爣绉诲姩浜嬩欢
-        leftfixedtbody.addEventListener("mouseout", throttle(tbodymouseout, 50))//缁欒〃鏍间腑鐨刲eftfixedtbody娣诲姞榧犳爣绉诲嚭浜嬩欢
-        leftfixedtbody.addEventListener("click", tableCellClick)//娣诲姞鍗曞嚮浜嬩欢
-        leftfixedtbody.oncontextmenu = tableCellMenuClick//娣诲姞鍙抽敭鑿滃崟浜嬩欢
-      }
-
-      let leftFixedBodyWrapper = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper")
-      if (leftFixedBodyWrapper) {
-        //娉ㄦ剰杩欓噷鐨剅ef鍚嶇О锛岃繖閲屾槸fixed鍖哄煙鐨勬鐨勫悕绉�
-        leftFixedBodyWrapper.appendChild(leftfixedcellarea.value)
-      }
-      //#endregion
-
-      //#region 鍙充晶鍥哄畾鍒�
-      let rightfixedtbody = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper table tbody")//鑾峰彇fixedtbody鍖哄煙
-
-      if (rightfixedtbody) {
-        rightfixedtbody.addEventListener("mousedown", tbodymousedown)//缁欒〃鏍间腑鐨剅ightfixedtbody娣诲姞榧犳爣鎸変笅浜嬩欢
-        rightfixedtbody.addEventListener("mousemove", tbodymousemove)//缁欒〃鏍间腑鐨剅ightfixedtbody娣诲姞榧犳爣绉诲姩浜嬩欢
-        rightfixedtbody.addEventListener("mouseout", throttle(tbodymouseout, 50))//缁欒〃鏍间腑鐨剅ightfixedtbody娣诲姞榧犳爣绉诲嚭浜嬩欢
-        rightfixedtbody.addEventListener("click", tableCellClick)//娣诲姞鍗曞嚮浜嬩欢
-        rightfixedtbody.oncontextmenu = tableCellMenuClick//娣诲姞鍙抽敭鑿滃崟浜嬩欢
-      }
-
-      let rightFixedBodyWrapper = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper")
-      if (rightFixedBodyWrapper) {
-        //娉ㄦ剰杩欓噷鐨剅ef鍚嶇О锛岃繖閲屾槸fixed鍖哄煙鐨勬鐨勫悕绉�
-        rightFixedBodyWrapper.appendChild(rightfixedcellarea.value)
-      }
-      //#endregion
-
-    }, 100)
-
-  })
-}
-
-//榧犳爣鎸変笅浜嬩欢
-const tbodymousedown = (event: MouseEvent) => {
-  event.stopPropagation()//闃绘鍐掓场
-  getTablexGrid().closeMenu()//鎵嬪姩鍏抽棴鍙抽敭鑿滃崟
-  //宸﹂敭0,涓敭1,鍙抽敭2
-  if (event.button === 0) {//宸﹂敭鎸変笅
-    // 璁板綍閫夋嫨鎿嶄綔璧峰浣嶇疆
-    selectionStart = getCellPosition(event.target)//璁剧疆閫夋嫨鎿嶄綔璧峰鍗曞厓鏍间綅缃�
-
-    isSelecting.value = true//鏍囪涓烘鍦ㄩ�夋嫨鎿嶄綔
-  }
-}
-
-
-//榧犳爣绉诲姩浜嬩欢
-//todo 杩欓噷瑕佽妭娴佹搷浣�,鍙湪缁撴潫鏃惰Е鍙戜竴娆�
-const tbodymousemove = (event: MouseEvent) => {
-  if (event.button === 0) {//宸﹂敭绉诲姩
-    if (!isSelecting.value) return//濡傛灉褰撳墠闈炴鍦ㄩ�夋嫨鎿嶄綔,鐩存帴閫�鍑�
-    //璁板綍閫夋嫨鎿嶄綔缁撴潫浣嶇疆
-    selectionEnd = getCellPosition(event.target)
-
-    //璁剧疆鏍峰紡,骞舵樉绀鸿寖鍥存
-    setselectedCellArea()
-
-  }
-}
-
-//榧犳爣鎸夐敭缁撴潫浜嬩欢,娣诲姞鍦ㄤ簡window涓�
-const tbodymouseup = (event: MouseEvent) => {
-  if (event.button === 0) {//宸﹂敭鏉惧紑
-    isSelecting.value = false//鏍囪涓哄仠姝㈤�夋嫨鎿嶄綔
-  }
-}
-
-let outevent = ref()//绉诲姩浜嬩欢,涓嶄繚瀛�,寰幆瀹氭椂鍣ㄥ唴鏃犳硶鐩戝惉鍒版柊鐨勪簨浠�
-
-//榧犳爣绉诲嚭琛ㄦ牸浜嬩欢,鍙湪绉诲姩鐨勬椂鍊欎細瑙﹀彂,鏆傚仠绉诲姩涓嶈Е鍙�
-const tbodymouseout = (event: MouseEvent) => {
-  outevent.value = event//淇濆瓨绉诲姩浜嬩欢
-
-  if (isSelecting.value) {//濡傛灉姝e湪鎵ц閫変腑鎿嶄綔
-    const timer = setInterval(() => {//寮�鍚惊鐜畾鏃跺櫒
-      if (isSelecting.value) {//鍒ゆ柇褰撳墠鏄惁姝e湪閫夋嫨
-        //鑾峰彇琛ㄦ牸鍏冪礌
-        var table = getTablexGrid().$el.querySelector(".vxe-table--body-wrapper table")//鑾峰彇闈炲浐瀹氬垪(鍜屽浐瀹氬垪)鐨則able鍏冪礌
-        if (outevent.value.clientX > table.parentElement.getBoundingClientRect().right - 30) {//鍒ゆ柇榧犳爣x杞存槸鍚﹁秴鍑鸿〃鏍煎彸渚�,鍚戝彸婊氬姩
-          var maxScrollPosition = table.parentElement.scrollWidth - table.parentElement.clientWidth//鑾峰彇婊氬姩鏉℃渶澶т綅缃�
-          if (table.parentElement.scrollLeft < maxScrollPosition) {//濡傛灉娌″埌婊氬姩鏉℃渶澶т綅缃�,鎵ц婊氬姩
-            table.parentElement.scrollLeft += 10//鎵ц姘村钩婊氬姩鏉″悜鍙虫粴鍔�
-          }
-        } else if (outevent.value.clientX < table.parentElement.getBoundingClientRect().left + 30) {//鍒ゆ柇榧犳爣x杞存槸鍚﹁秴鍑鸿〃鏍煎乏渚�,鍚戝乏婊氬姩
-          if (table.parentElement.scrollLeft > 0) {//濡傛灉娌″埌婊氬姩鏉℃渶澶т綅缃�,鎵ц婊氬姩
-            //榧犳爣绉诲嚭琛ㄦ牸锛屾粴鍔ㄦ按骞虫粴鍔ㄦ潯
-            table.parentElement.scrollLeft -= 10//鎵ц姘村钩婊氬姩鏉″悜鍙虫粴鍔�
-          }
-        }
-
-
-      } else {
-        clearInterval(timer)//娓呴櫎寰幆瀹氭椂鍣�
-      }
-    }, 200)//杩欓噷璁剧疆婊戝姩閫熷害
-
-  }
-
-}
-
-//鑺傛祦鍑芥暟,todo//鏀逛负鍏ㄥ眬
-const throttle = (fn: Function, delay: number) => {
-  const canRun = ref(true)
-  return (...args: any[]) => {
-    if (!canRun.value) return
-    canRun.value = false
-    setTimeout(() => {
-      fn(...args)
-      canRun.value = true
-    }, delay)
-  }
-}
-
-// 鑾峰彇鍗曞厓鏍间綅缃�(rowIndex, cellIndex)
-const getCellPosition = (cell: any) => {
-
-
-  while (cell.tagName !== 'TD') {//灏哻ell鎸囧悜TD鍏冪礌
-    cell = cell.parentElement
-  }
-
-  let visibleColumn = getTablexGrid().getTableColumn().visibleColumn//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃澶村垪
-  const cellIndex = visibleColumn.findIndex((col: { id: any; }) => {//杩斿洖colid鐩哥瓑鐨剉isibleColumn鍏ㄩ噺琛ㄥご鍒楃殑绱㈠紩
-    return col.id == cell.getAttribute("colid")
-  })
-
-  let visibleData = getTablexGrid().getTableData().visibleData//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃浣撴暟鎹�
-
-  const rowIndex = visibleData.findIndex((row: { _X_ROW_KEY: any; }) => {//杩斿洖rowid鐩哥瓑鐨剉isibleData鍏ㄩ噺琛ㄤ綋鏁版嵁
-    return row._X_ROW_KEY == cell.parentElement.getAttribute("rowid")//杩斿洖rowid鐩哥瓑鐨剉isibleData鍏ㄩ噺琛ㄤ綋鏁版嵁鐨勭储寮�
-  })
-  return { rowIndex, cellIndex }
-
-}
-
-//璁剧疆妗嗘墦寮�
-const setselectedCellArea = () => {
-
-
-
-  var activeElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-active-area")//姝e父鍖哄煙閫変腑杈规婵�娲荤殑鍏冪礌(浠呮槸杈规)
-  var mainElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area")//姝e父鍖哄煙閫変腑杈规鍐呮暣涓寖鍥寸殑鍏冪礌
-
-  var leftFixedActiveElement = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-active-area")//宸︿晶鍥哄畾鍒楅�変腑杈规婵�娲荤殑鍏冪礌(浠呮槸杈规)
-  var leftFixedMainElement = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area")//宸︿晶鍥哄畾鍒楅�変腑杈规鍐呮暣涓寖鍥寸殑鍏冪礌
-
-  var rightFixedActiveElement = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper .vxe-table--cell-active-area")//鍙充晶鍥哄畾鍒楅�変腑杈规婵�娲荤殑鍏冪礌(浠呮槸杈规)
-  var rightFixedMainElement = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area")//鍙充晶鍥哄畾鍒楅�変腑杈规鍐呮暣涓寖鍥寸殑鍏冪礌
-
-
-  var elements = [activeElement, mainElement, leftFixedActiveElement, leftFixedMainElement, rightFixedActiveElement, rightFixedMainElement]
-  let area = getAreaBoxPosition()
-  if (area) {
-    var { width, height, left, top, right } = area
-  } else {
-    return
-  }
-  elements.forEach((element, index) => {
-    if (element) {//璁剧疆鏄剧ず鑼冨洿妗嗙殑鍐呴儴鍏冪礌鐨勬牱寮�
-      element.style.width = `${width}px`
-      element.style.height = `${height}px`
-      element.style.top = `${top}px`
-      element.style.display = "block"
-      if (index <= elements.length - 1 - 2) {//濡傛灉涓嶆槸rightFixedActiveElement鎴杛ightFixedMainElement
-        element.style.left = `${left}px`
-      } else {
-        element.style.right = `${right}px`
-      }
-    }
-  })
-
-  //鏄剧ず鑼冨洿妗�
-  openAreaBox()
-}
-
-//鏍规嵁寮�濮嬩綅缃拰缁撴潫浣嶇疆鐨勭储寮曡绠楁鐨剋idth,height,left,top(宸︿晶鍥哄畾鍒楀拰姝e父鍖哄煙鍜屽彸渚у浐瀹氬垪浣跨敤)
-const getAreaBoxPosition = () => {
-  let startRowIndex = selectionStart.rowIndex//鑾峰彇閫変腑璧峰琛岀储寮�
-  let endRowIndex = selectionEnd.rowIndex//鑾峰彇閫変腑缁撴潫琛岀储寮�
-  let startColumnIndex = selectionStart.cellIndex//鑾峰彇閫変腑璧峰鍒楃储寮�
-  let endColumnIndex = selectionEnd.cellIndex//鑾峰彇閫変腑缁撴潫鍒楃储寮�
-  let visibleColumn = getTablexGrid().getTableColumn().visibleColumn//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃澶村垪
-  let visibleData = getTablexGrid().getTableData().visibleData//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃浣撴暟鎹�
-  if (startColumnIndex < 0 || endColumnIndex < 0 || startRowIndex < 0 || endRowIndex < 0) return
-  var maxColumnIndex = visibleColumn.length - 1//鏈�澶у垪绱㈠紩
-  var maxRowIndex = visibleData.length - 1//鏈�澶ц绱㈠紩
-  if (endColumnIndex > maxColumnIndex) {//鍒版渶鍚庝竴鍒�,鎸囧悜鏈�鍚庝竴鍒�
-    endColumnIndex = maxColumnIndex
-  }
-  if (endRowIndex > maxRowIndex) {//鍒版渶鍚庝竴琛�,鎸囧悜鏈�鍚庝竴琛�
-    endRowIndex = maxRowIndex
-  }
-  let width = 0, height = 0, left = 0, top = 0, right = 0
-  visibleColumn.forEach((col: { renderWidth: number; }, index: number) => {
-    if (startColumnIndex <= endColumnIndex) {//寮�濮嬪垪绱㈠紩灏忎簬缁撴潫鍒楃储寮�,鍗充粠宸﹀線鍙抽�夋嫨
-      if (index < startColumnIndex) {
-        left += col.renderWidth//璺濈琛ㄦ牸鏁翠綋宸︿晶杈规璺濈
-      }
-      if (index > endColumnIndex) {//鏁版嵁绱㈠紩澶т簬缁撴潫鍒�,杩欓噷鑾峰彇璺濈鍚庨潰鏁版嵁鐨勫搴�
-        right += col.renderWidth//璺濈琛ㄦ牸鏁翠綋鍙充晶杈规璺濈,鍔犱笂褰撳墠鍒�
-      }
-      if (startColumnIndex <= index && index <= endColumnIndex) {//寮�濮嬪垪绱㈠紩澶т簬鏁版嵁绱㈠紩 鍜� 缁撴潫鍒楃储寮曞皬浜庢暟鎹储寮�,杩欓噷鑾峰彇閫変腑鍖哄煙鐨勫搴�
-        width += col.renderWidth//閫変腑鍖哄煙鐨勫搴�
-      }
-    } else {//浠庡彸寰�宸﹂�夋嫨
-      if (index < endColumnIndex) {
-        left += col.renderWidth//璺濈琛ㄦ牸鏁翠綋宸︿晶杈规璺濈
-      }
-      if (index > startColumnIndex) {//鏁版嵁绱㈠紩澶т簬寮�濮嬪垪,杩欓噷鑾峰彇璺濈鍚庨潰鏁版嵁鐨勫搴�
-        right += col.renderWidth//璺濈琛ㄦ牸鏁翠綋鍙充晶杈规璺濈,鍔犱笂褰撳墠鍒�
-      }
-      if (startColumnIndex >= index && index >= endColumnIndex) {//寮�濮嬪垪绱㈠紩澶т簬鏁版嵁绱㈠紩 鍜� 缁撴潫鍒楃储寮曞皬浜庢暟鎹储寮�,杩欓噷鑾峰彇閫変腑鍖哄煙鐨勫搴�
-        width += col.renderWidth//閫変腑鍖哄煙鐨勫搴�
-      }
-    }
-
-  })
-  if (startRowIndex <= endRowIndex) {//寮�濮嬭绱㈠紩灏忎簬缁撴潫琛岀储寮�,鍗充粠涓婂線涓嬮�夋嫨
-    height = (endRowIndex - startRowIndex + 1) * gridOptions.rowConfig!.height!//閫変腑鍖哄煙鐨勯珮搴�
-    top = startRowIndex * gridOptions.rowConfig!.height!//璺濈琛ㄦ牸鏁翠綋椤堕儴杈规璺濈
-  } else {
-    height = (startRowIndex - endRowIndex + 1) * gridOptions.rowConfig!.height!//閫変腑鍖哄煙鐨勯珮搴�
-    top = endRowIndex * gridOptions.rowConfig!.height!//璺濈琛ㄦ牸鏁翠綋椤堕儴杈规璺濈
-  }
-
-
-
-  return { width, height, left, top, right }
-
-}
-
-//鏄剧ず鑼冨洿妗�
-const openAreaBox = () => {
-  var element = xGrid.value.$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "block"
-  }
-  element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "block"
-  }
-  element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "block"
-  }
-}
-
-//琛ㄦ牸澶栭攢姣佽寖鍥存
-const tableOutDestroyAreaBox = (event: MouseEvent) => {
-  var element = getTablexGrid().$el.querySelector(".vxe-table--render-wrapper")
-  if (element) {
-    if (event.clientX < element.getBoundingClientRect().left || event.clientX > element.getBoundingClientRect().right
-        || event.clientY > element.getBoundingClientRect().top || event.clientY < element.getBoundingClientRect().bottom
-    ) {
-      destroyAreaBox()
-    }
-  }
-
-
-}
-
-//閿�姣佽寖鍥存
-const destroyAreaBox = () => {
-  var element = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "none"
-  }
-  element = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "none"
-  }
-  element = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper .vxe-table--cell-area")
-  if (element) {
-    element.style.display = "none"
-  }
-}
-
-//琛ㄦ牸鍗曞厓鏍肩偣鍑讳簨浠�
-const tableCellClick = (e: MouseEvent) => {
-
-  if (!isSelecting.value) {//闈為�変腑鐘舵��
-    try {
-      selectionStart = getCellPosition(e.target)//鑾峰彇鍗曞厓鏍间綅缃�
-      selectionEnd = selectionStart//缁撴潫浣嶇疆涔熸槸鑷繁
-      //璁剧疆鏍峰紡
-      setselectedCellArea()
-    } catch (error) {
-
-    }
-
-  }
-}
-
-//琛ㄦ牸鍙抽敭鐐瑰嚮浜嬩欢
-const tableCellMenuClick = (e: MouseEvent) => {
-  if (!isSelecting.value) {//闈為�変腑鐘舵��
-    let currentCellPosition = getCellPosition(e.target)//鑾峰彇鍗曞厓鏍间綅缃�
-    var horizontalFlag//鏄惁鍦ㄨ寖鍥存鐨勬按骞冲垽鏂爣璁�
-    var verticalFlag//鏄惁鍦ㄨ寖鍥存鐨勫瀭鐩村垽鏂爣璁�
-    if (selectionStart.cellIndex <= selectionEnd.cellIndex) {//濡傛灉鏄粠宸﹀線鍙抽�夊彇
-      horizontalFlag = selectionStart.cellIndex <= currentCellPosition.cellIndex && currentCellPosition.cellIndex <= selectionEnd.cellIndex
-    } else {//浠庡彸寰�宸﹂�夊彇
-      horizontalFlag = selectionEnd.cellIndex <= currentCellPosition.cellIndex && currentCellPosition.cellIndex <= selectionStart.cellIndex
-    }
-    if (selectionStart.rowIndex <= selectionEnd.rowIndex) {//濡傛灉鏄粠涓婂線涓嬮�夊彇
-      verticalFlag = selectionStart.rowIndex <= currentCellPosition.rowIndex && currentCellPosition.rowIndex <= selectionEnd.rowIndex
-    } else {//浠庝笅寰�涓婇�夊彇
-      verticalFlag = selectionEnd.rowIndex <= currentCellPosition.rowIndex && currentCellPosition.rowIndex <= selectionStart.rowIndex
-    }
-
-    if (horizontalFlag && verticalFlag) { //鍒ゆ柇濡傛灉涓嶅湪閫変腑鍖哄煙鍐�,瑙﹀彂琛ㄦ牸宸﹂敭鍗曞嚮浜嬩欢,鏇存柊鎴彇鍗曞厓鏍�,鍚﹀垯濡傛灉鍦ㄦ甯歌Е鍙戝彸閿彍鍗�
-
-    } else {
-      selectionStart = getCellPosition(e.target)//鑾峰彇鍗曞厓鏍间綅缃�
-      selectionEnd = selectionStart//缁撴潫浣嶇疆涔熸槸鑷繁
-      //璁剧疆鏍峰紡
-      setselectedCellArea()
-    }
-
-  }
-
-}
-
-const toolbarButtonClickEvent = ({ code }: { code: any }) => {
-  switch (code) {
-    case "getcellselctdata":
-      //鎴戠粰澶у鎵撳嵃澶勭悊:
-      console.log("鏄惁姝e湪杩涜婊戝姩閫変腑鎿嶄綔锛�", isSelecting.value)
-      //宸︿笂瑙掑潗鏍�
-      console.log("鍗曞厓鏍艰捣濮嬩綅缃細绱㈠紩:", selectionStart)
-      //鍙充笅瑙掑潗鏍�
-      console.log("鍗曞厓鏍肩粨鏉熶綅缃細绱㈠紩:", selectionEnd)
-
-      //杩欓噷闇�瑕佹槸visibleData
-      let tableData = getTablexGrid().getTableData().visibleData//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃浣撴暟鎹�
-      let rowStart = selectionStart.rowIndex//鑾峰彇閫変腑璧峰琛岀储寮�
-      let rowEnd = selectionEnd.rowIndex//鑾峰彇閫変腑缁撴潫琛岀储寮�
-      let selectRows = tableData.filter((col, index: number) => {//col鍙傛暟涓嶈兘鏀瑰惁鍒欎細鑾峰彇涓嶅埌鏁版嵁
-        //杩欓噷淇敼浠庡彸涓嬪線宸︿笂鎷栧姩鐨勬暟鎹樉绀�
-        if (rowStart <= rowEnd) {
-          return rowStart <= index && rowEnd >= index
-        } else {
-          return rowStart >= index && rowEnd <= index
-        }
-      })
-      console.log("榧犳爣閫変腑琛�:", JSON.stringify(selectRows))
-
-      //杩欓噷闇�瑕佹槸visibleColumn
-      let colStart = selectionStart.cellIndex//鑾峰彇閫変腑璧峰鍒楃储寮�
-      let colEnd = selectionEnd.cellIndex//鑾峰彇閫変腑缁撴潫鍒楃储寮�
-      let tableColumn = getTablexGrid().getTableColumn().visibleColumn//鑾峰彇澶勭悊鏉′欢涔嬪悗鐨勫叏閲忚〃澶村垪
-      let selectCols = tableColumn.filter((col, index: number) => {//col鍙傛暟涓嶈兘鏀瑰惁鍒欎細鑾峰彇涓嶅埌鏁版嵁
-        //杩欓噷淇敼浠庡彸涓嬪線宸︿笂鎷栧姩鐨勬暟鎹樉绀�
-        if (colStart <= colEnd) {
-          return colStart <= index && colEnd >= index
-        } else {
-          return colStart >= index && colEnd <= index
-        }
-
-      })
-      console.log("榧犳爣閫変腑鍒�:", JSON.stringify(selectCols))
-      break
-  }
-}
-//#endregion
-</script>
-
-<style  scoped>
-.vxe-grid {
-  /* 绂佺敤娴忚鍣ㄩ粯璁ら�変腑 */
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/product/testSort.vue b/UI-Project/src/views/sd/product/testSort.vue
deleted file mode 100644
index 4d635a3..0000000
--- a/UI-Project/src/views/sd/product/testSort.vue
+++ /dev/null
@@ -1,141 +0,0 @@
-<script lang="ts" setup>
-import { defineComponent, reactive, ref, onUnmounted, nextTick } from 'vue'
-import { VXETable, VxeGridInstance, VxeGridProps } from 'vxe-table'
-import Sortable from 'sortablejs'
-const xGrid2 = ref({} as VxeGridInstance)
-
-const meanNum = (list: any[], field: string) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count / list.length
-}
-
-const sumNum = (list: any[], field: string) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count
-}
-
-const gridOptions2 = reactive({
-  border: true,
-  showFooter: true,
-  class: 'sortable-column-demo',
-  columnConfig: {
-    useKey: true
-  },
-  scrollX: {
-    enabled: false
-  },
-  toolbarConfig: {
-    custom: true
-  },
-  columns: [
-    { field: 'name', title: 'Name', fixed: 'left', width: 300 },
-    { field: 'nickname', title: 'Nickname' },
-    { field: 'role', title: 'Role' },
-    { field: 'sex', title: 'Sex' },
-    { field: 'age', title: 'Age' },
-    { field: 'date3', title: 'Date' },
-    { field: 'address', title: 'Address', width: 200, fixed: 'right', showOverflow: true }
-  ],
-  data: [
-    { id: 10001, name: 'Test1', nickname: 'T1', role: 'Develop', sex: 'Man', age: 28, address: 'Shenzhen' },
-    { id: 10002, name: 'Test2', nickname: 'T2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },
-    { id: 10003, name: 'Test3', nickname: 'T3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },
-    { id: 10004, name: 'Test4', nickname: 'T4', role: 'Designer', sex: 'Women', age: 23, address: 'Shenzhen' },
-    { id: 10005, name: 'Test5', nickname: 'T5', role: 'Develop', sex: 'Women', age: 30, address: 'Shanghai' }
-  ],
-  footerMethod ({ columns, data }) {
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '骞冲潎'
-        }
-        if (['age', 'sex'].includes(column.property)) {
-          return meanNum(data, column.property)
-        }
-        return null
-      }),
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍜屽��'
-        }
-        if (['age', 'sex'].includes(column.property)) {
-          return sumNum(data, column.property)
-        }
-        return null
-      })
-    ]
-  }
-} as VxeGridProps)
-
-let sortable2: any
-
-const columnDrop2 = () => {
-  const $grid = xGrid2.value
-  sortable2 = Sortable.create($grid.$el.querySelector('.body--wrapper>.vxe-table--header .vxe-header--row'), {
-    handle: '.vxe-header--column',
-    onEnd: (sortableEvent) => {
-      const targetThElem = sortableEvent.item
-      const newIndex = sortableEvent.newIndex as number
-      const oldIndex = sortableEvent.oldIndex as number
-      const { fullColumn, tableColumn } = $grid.getTableColumn()
-      const wrapperElem = targetThElem.parentNode as HTMLElement
-      const newColumn = fullColumn[newIndex]
-      if (newColumn.fixed) {
-        // 閿欒鐨勭Щ鍔�
-        const oldThElem = wrapperElem.children[oldIndex] as HTMLElement
-        if (newIndex > oldIndex) {
-          wrapperElem.insertBefore(targetThElem, oldThElem)
-        } else {
-          wrapperElem.insertBefore(targetThElem, oldThElem ? oldThElem.nextElementSibling : oldThElem)
-        }
-        VXETable.modal.message({ content: '鍥哄畾鍒椾笉鍏佽鎷栧姩锛�', status: 'error' })
-        return
-      }
-      // 鑾峰彇鍒楃储寮� columnIndex > fullColumn
-      const oldColumnIndex = $grid.getColumnIndex(tableColumn[oldIndex])
-      const newColumnIndex = $grid.getColumnIndex(tableColumn[newIndex])
-      // 绉诲姩鍒扮洰鏍囧垪
-      const currRow = fullColumn.splice(oldColumnIndex, 1)[0]
-      fullColumn.splice(newColumnIndex, 0, currRow)
-      $grid.loadColumn(fullColumn)
-    }
-  })
-}
-
-let initTime: any
-nextTick(() => {
-  // 鍔犺浇瀹屾垚涔嬪悗鍦ㄧ粦瀹氭嫋鍔ㄤ簨浠�
-  initTime = setTimeout(() => {
-    columnDrop2()
-  }, 500)
-})
-
-onUnmounted(() => {
-  clearTimeout(initTime)
-  if (sortable2) {
-    sortable2.destroy()
-  }
-})
-
-
-</script>
-
-<template>
-  <vxe-grid ref="xGrid2" v-bind="gridOptions2"></vxe-grid>
-</template>
-
-<style scoped>
-.sortable-column-demo .vxe-header--row .vxe-header--column.sortable-ghost,
-.sortable-column-demo .vxe-header--row .vxe-header--column.sortable-chosen {
-  background-color: #dfecfb;
-}
-.sortable-column-demo .vxe-header--row .vxe-header--column.col--fixed {
-  cursor: no-drop;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/returns/Returns.vue b/UI-Project/src/views/sd/returns/Returns.vue
deleted file mode 100644
index cfa6d0c..0000000
--- a/UI-Project/src/views/sd/returns/Returns.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-<script setup>
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
-import {useRouter} from "vue-router";
-let indexFlag=$ref(1)
-function changeRouter(index){
-  indexFlag=index
-}
-</script>
-
-<template>
-  <div id="main-div">
-    <div id="div-title">
-      <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/returns/selectReturns' }">閫�璐ч椤�</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/returns/selectDeliveryList' }">鍙戣揣閫�璐�</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/returns/returnsReport' }">鎶ヨ〃</el-breadcrumb-item>
-        <el-breadcrumb-item v-show="false" :to="{ path: '/main/product/test1' }">娴嬭瘯</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-
-    <div id="main-body">
-      <router-view  />
-    </div>
-  </div>
-</template>
-
-<style scoped>
-#main-div{
-  width: 100%;
-  height: 100%;
-}
-#div-title{
-  height: 2%;
-  width: 100%;
-}
-#searchButton{
-  margin-top: -5px;
-  margin-left: 1rem;
-}
-#searchButton1{
-//margin-left: 10rem;
-}
-/*main-body鏍峰紡*/
-#main-body{
-  width: 99%;
-  height: 95%;
-  margin-top: 1%;
-}
-#select{
-  margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
-  color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/sd/returns/SelectReturns.vue b/UI-Project/src/views/sd/returns/SelectReturns.vue
deleted file mode 100644
index 6870fce..0000000
--- a/UI-Project/src/views/sd/returns/SelectReturns.vue
+++ /dev/null
@@ -1,171 +0,0 @@
-<script setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-import {useRouter} from "vue-router"
-const router = useRouter()
-
-
-
-
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',slots: { content:'content' },width: 50},
-    {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' }},
-    {type: 'seq', title: '鑷簭', width: 80 },
-
-    {title: '瀹℃牳', width: 40, slots: { default: 'state' }},
-    {title: '鍏ュ簱', width: 40, slots: { default: 'state' }},
-
-    {field: '3',width:120,  title: '閫�璐у崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '4',width:120,  title: '閫�璐у憳',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '5',width:120,  title: '閫�璐ф棩鏈�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '6',width:120,  title: '瀹㈡埛缂栫爜',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '7',width:120,  title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '8',width:120,  title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '9',width:120,  title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '10',width:120,   title: '鍙戣揣鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '11',width:120,  title: '閫�璐ф柟寮�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '12',width:120,  title: '鎬绘暟閲�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '13',width:120,  title: '鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '14',width:120,  title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '15',width:120,  title: '鎶ヨ〃鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: '16',width:120,  title: '涓氬姟鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
-  ],//琛ㄥご鎸夐挳
-  toolbarConfig: {
-    buttons: [],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true
-  },
-  data:  [
-    {
-      '0': '1',
-      '1': '',
-      '2': '',
-      '3': 'TH23120801',
-      '4': '閮戠強鐝�',
-      '5': '2023-12-08',
-      '6': '310',
-      '7': '涓婃捣閲岃寤虹瓚宸ョ▼鏈夐檺鍏徃',
-      '8': '琛�1-2',
-      '9': '瀹胯縼鏌愭煇椤圭洰',
-      '10': 'JG23112304',
-      '11': '瀹炵墿閫�璐�',
-      '12': '8',
-      '13': '15.68',
-      '14': '11912.05',
-      '15': '2023-11-24',
-      '16': '鐜嬮緳'
-    }
-  ],//table body瀹為檯鏁版嵁
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    return[
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        // if (props.tableProp.footList.includes(column.field)) {
-        //   return sumNum(data, column.field)
-        // }
-        return ''
-      })
-    ]
-  }
-})
-</script>
-
-<template>
-  <div>
-    <el-date-picker
-        v-model="value1"
-        type="daterange"
-        start-placeholder="寮�濮嬫椂闂�"
-        end-placeholder="缁撴潫鏃堕棿"
-    />
-    <el-button style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
-
-
-    <vxe-grid
-        max-height="97%"
-        class="mytable-scrollbar"
-        ref="xGrid"
-        v-bind="gridOptions"
-
-    >
-      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-      <template #content="{ row }">
-        <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
-            <span>{{ row[item.field] }}</span>
-          </li>
-        </ul>
-      </template>
-
-      <template #state="{ row}">
-        <el-checkbox checked/>
-      </template>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
-
-      <template #num1_filter="{ column, $panel }">
-        <div>
-          <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-          </div>
-        </div>
-      </template>
-    </vxe-grid>
-  </div>
-
-</template>
-
-<style scoped>
-</style>
\ No newline at end of file
diff --git a/UI-Project/vite.config.js b/UI-Project/vite.config.js
index c5cc368..b0685b2 100644
--- a/UI-Project/vite.config.js
+++ b/UI-Project/vite.config.js
@@ -33,7 +33,7 @@
       '/api2': {
         target: 'localhost:8080/mesModuleTools',
         changeOrigin: true,
-        rewrite: (path) => path.replace(/^\/api2/, ""),
+        rewrite: (path) => path.replace(/^\/api2/, "mesModuleTools"),
       },
     }
   }
diff --git a/UnLoadGlassModule/mockPLCData.properties b/UnLoadGlassModule/mockPLCData.properties
new file mode 100644
index 0000000..56514ef
--- /dev/null
+++ b/UnLoadGlassModule/mockPLCData.properties
@@ -0,0 +1,13 @@
+#Mock S7 PLC Data
+#Wed Mar 27 10:21:54 CST 2024
+DB4.0.0=false
+DB4.1.1=false
+DB4.1.0=false
+DB4.0.7=false
+DB4.0.6=false
+DB4.0.5=true
+DB4.0.4=true
+DB4.0.3=true
+DB4.0.2=true
+DB4.0.1=true
+DB101.0=1
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java
new file mode 100644
index 0000000..86d7a0b
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLC.java
@@ -0,0 +1,96 @@
+package com.mes.common.PlcTools;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 妯℃嫙S7 PLC鐨勭畝鍗曞疄鐜帮紝鐢ㄤ簬娴嬭瘯鍜屽紑鍙戦樁娈�
+ */
+public class MockS7PLC {
+    // 浣跨敤Map妯℃嫙PLC鐨勫唴瀛樺瓨鍌紝閿槸鍦板潃锛屽�兼槸瀛樺偍鐨勬暟鎹�
+    private Map<String, byte[]> memory = new HashMap<>();
+
+    private static volatile MockS7PLC instance; // 鍗曚緥瀹炰緥
+    public static MockS7PLC getInstance() {
+        if (instance == null) {
+            synchronized (MockS7PLC.class) {
+                if (instance == null)
+                    instance = new MockS7PLC();
+            }
+        }
+        return instance;
+    }
+    /**
+     * 妯℃嫙鍐欏叆涓�涓垨澶氫釜瀛楄妭鍒版寚瀹氬湴鍧�
+     *
+     * @param address 鍦板潃
+     * @param data    瑕佸啓鍏ョ殑鏁版嵁
+     */
+    public void writeByte(String address, byte[] data) {
+        memory.put(address, data);
+    }
+
+    /**
+     * 妯℃嫙浠庢寚瀹氬湴鍧�璇诲彇涓�瀹氭暟閲忕殑瀛楄妭
+     *
+     * @param address 鍦板潃
+     * @param count   瑕佽鍙栫殑瀛楄妭鏁�
+     * @return 璇诲彇鍒扮殑鏁版嵁
+     */
+    public byte[] readByte(String address, int count) {
+        byte[] bytes = memory.getOrDefault(address, new byte[0]);
+
+        if (count >= 0 && count <= bytes.length) {
+            byte[] result = new byte[count];
+            System.arraycopy(bytes, 0, result, 0, count);
+            return result;
+        } else {
+            // 濡傛灉璇锋眰鐨勫瓧鑺傛暟瓒呭嚭浜嗗疄闄呭彲鐢ㄧ殑瀛楄妭鏁帮紝鍒欒繑鍥炲叏閮ㄥ彲鐢ㄧ殑瀛楄妭
+            return bytes;
+        }
+    }
+
+
+    /**
+     * 妯℃嫙鍐欏叆涓�涓�16浣嶆暣鏁板埌鎸囧畾鍦板潃
+     *
+     * @param address 鍦板潃
+     * @param data    瑕佸啓鍏ョ殑鏁版嵁
+     */
+    public void writeInt16(String address, short data) {
+        memory.put(address, new byte[]{(byte) (data >> 8), (byte) data});
+    }
+
+    /**
+     * 妯℃嫙浠庢寚瀹氬湴鍧�璇诲彇涓�涓�16浣嶆暣鏁�
+     *
+     * @param address 鍦板潃
+     * @return 璇诲彇鍒扮殑鏁版嵁
+     */
+    public short readInt16(String address) {
+        byte[] data = memory.getOrDefault(address, new byte[]{0, 0});
+        return (short) ((data[0] << 8) | (data[1] & 0xFF));
+    }
+
+    /**
+     * 妯℃嫙鍐欏叆涓�涓竷灏斿�煎埌鎸囧畾鍦板潃
+     *
+     * @param address 鍦板潃
+     * @param data    瑕佸啓鍏ョ殑鏁版嵁
+     */
+    public void writeBoolean(String address, boolean data) {
+        memory.put(address, new byte[]{(byte) (data ? 1 : 0)});
+    }
+
+    /**
+     * 妯℃嫙浠庢寚瀹氬湴鍧�璇诲彇涓�涓竷灏斿��
+     *
+     * @param address 鍦板潃
+     * @return 璇诲彇鍒扮殑鏁版嵁
+     */
+    public boolean readBoolean(String address) {
+        return memory.getOrDefault(address, new byte[]{0})[0] != 0;
+    }
+
+    // 鏍规嵁闇�瑕侊紝鎮ㄥ彲浠ユ坊鍔犳洿澶氭ā鎷烶LC鎿嶄綔鐨勬柟娉�
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java
new file mode 100644
index 0000000..2d0905d
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/common/PlcTools/MockS7PLCtwo.java
@@ -0,0 +1,276 @@
+package com.mes.common.PlcTools;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class MockS7PLCtwo {
+    private static volatile MockS7PLCtwo instance; // 鍗曚緥瀹炰緥
+    private ConcurrentHashMap<String, String> memory = new ConcurrentHashMap<>();
+    private String storageFilePath = "mockPLCData.properties";
+
+    // 绉佹湁鍖栨瀯閫犲嚱鏁�
+    private MockS7PLCtwo() {
+        // 鍦ㄦ瀯閫犲嚱鏁颁腑灏濊瘯鍔犺浇鐜版湁鐨勬ā鎷熸暟鎹�
+        try (FileInputStream fis = new FileInputStream(storageFilePath)) {
+            Properties properties = new Properties();
+            properties.load(fis);
+            properties.forEach((key, value) -> memory.put(String.valueOf(key), String.valueOf(value)));
+        } catch (IOException e) {
+            System.out.println("娌℃湁鎵惧埌鐜版湁鐨勬ā鎷熸暟鎹枃浠讹紝灏嗗垱寤轰竴涓柊鐨勩��");
+        }
+    }
+
+    // 鍏叡闈欐�佹柟娉曡幏鍙栫被鐨勫敮涓�瀹炰緥
+    public static MockS7PLCtwo getInstance() {
+        if (instance == null) {
+            synchronized (MockS7PLCtwo.class) {
+                if (instance == null)
+                    instance = new MockS7PLCtwo();
+            }
+        }
+        return instance;
+    }
+
+    // 淇敼鍐欏叆鏂规硶浠ユ寔涔呭寲鏁版嵁
+    public void writeByte(String address, byte[] data) {
+        memory.put(address, new String(data, StandardCharsets.ISO_8859_1));
+        saveMemory();
+    }
+
+    // 淇敼璇诲彇鏂规硶浠ヤ粠鎸佷箙鍖栫殑鏁版嵁涓鍙�
+    public byte[] readByte(String address,int count) {
+        String value = memory.getOrDefault(address, "");
+        byte[] bytes = value.getBytes(StandardCharsets.ISO_8859_1);
+        if (count >= 0 && count <= bytes.length) {
+            byte[] result = new byte[count];
+            System.arraycopy(bytes, 0, result, 0, count);
+            return result;
+        } else {
+            // 濡傛灉璇锋眰鐨勫瓧鑺傛暟瓒呭嚭浜嗗疄闄呭彲鐢ㄧ殑瀛楄妭鏁帮紝鍒欒繑鍥炲叏閮ㄥ彲鐢ㄧ殑瀛楄妭
+            return bytes;
+        }
+    }
+
+
+
+
+
+
+    public void writeInt16(String address, short data) {
+        memory.put(address, Short.toString(data));
+        saveMemory();
+    }
+
+    public Short readInt16(String address) {
+        String value = memory.get(address);
+        return value != null ? Short.parseShort(value) : null;
+    }
+
+    public void writeBoolean(String address, boolean data) {
+        memory.put(address, Boolean.toString(data));
+        saveMemory();
+    }
+
+    public Boolean readBoolean(String address) {
+        String value = memory.get(address);
+        return value != null ? Boolean.parseBoolean(value) : null;
+    }
+
+    public void writeString(String address, String data) {
+        memory.put(address, data);
+        saveMemory();
+    }
+
+    public String readString(String address) {
+        return memory.getOrDefault(address, "");
+    }
+
+    public void writeTime(String address, long data) {
+        memory.put(address, Long.toString(data));
+        saveMemory();
+    }
+
+    public Long readTime(String address) {
+        String value = memory.get(address);
+        return value != null ? Long.parseLong(value) : null;
+    }
+
+    // 娣诲姞涓�涓柟娉曟潵淇濆瓨鏁版嵁鍒版枃浠�
+    private void saveMemory() {
+        Properties properties = new Properties();
+        properties.putAll(memory);
+        try (FileOutputStream fos = new FileOutputStream(storageFilePath)) {
+            properties.store(fos, "Mock S7 PLC Data");
+        } catch (IOException e) {
+            System.out.println("淇濆瓨妯℃嫙鏁版嵁澶辫触锛�" + e.getMessage());
+        }
+    }
+
+    // 杩炵画鍐欏叆澶氫釜Word
+    public void writeword(String address, List<Short> data) {
+        for (int i = 0; i < data.size(); i++) {
+            String addr = calculateAddress(address, i * 2); // 鍋囪姣忎釜word鍗犱袱涓湴鍧�鍗曚綅
+            memory.put(addr, Short.toString(data.get(i)));
+
+        }
+        saveMemory();
+    }
+
+    // 涓嶈繛缁湴鍧�word鍐欏叆澶氫釜Word
+    public void WriteWords(List<String> addresses, List<Short> datas) {
+        if (addresses.size() != datas.size()) {
+            throw new IllegalArgumentException("鍦板潃鍒楄〃鍜屾暟鎹垪琛ㄧ殑澶у皬蹇呴』鐩稿悓銆�");
+        }
+
+        for (int i = 0; i < addresses.size(); i++) {
+            String addr = addresses.get(i);
+            short data = datas.get(i);
+            // 鍋囪杩欓噷浣跨敤鍐呭瓨鏄犲皠鏉ユā鎷烶LC鍐欏叆鎿嶄綔
+            memory.put(addr, Short.toString(data));
+        }
+        saveMemory(); // 鍦ㄦ墍鏈夋暟鎹啓鍏ュ悗淇濆瓨鏇存敼
+    }
+
+    // 杩炵画璇诲彇澶氫釜Word
+    public List<Short> readwords(String address, int count) {
+        List<Short> result = new ArrayList<>();
+        for (int i = 0; i < count; i++) {
+            String addr = calculateAddress(address, i * 2); // 鍚屼笂锛屾瘡涓獁ord鍗犱袱涓湴鍧�鍗曚綅
+
+            //System.out.println(addr);
+
+            String value = memory.get(addr);
+            if (value != null) {
+                result.add(Short.parseShort(value));
+            } else {
+                result.add(null); // 鎴栬�呰�冭檻鎶涘嚭寮傚父鎴栧叾浠栭敊璇鐞�
+            }
+        }
+        return result;
+    }
+
+
+    public List<Short> ReadWords(List<String> addresses) {
+        List<Short> datas = new ArrayList<>();
+
+        for (String addr : addresses) {
+            // 浠庡唴瀛樻槧灏勪腑鑾峰彇鏁版嵁
+            String dataStr = memory.get(addr);
+
+            // 灏嗗瓧绗︿覆杞崲鎴恠hort绫诲瀷锛屽苟娣诲姞鍒扮粨鏋滃垪琛ㄤ腑
+            // 杩欓噷鍋囪鏁版嵁宸茬粡浠ラ�傚綋鐨勬柟寮忓瓨鍌紙渚嬪锛屼綔涓虹煭鏁村瀷鐨勫瓧绗︿覆琛ㄧず锛�
+            // 濡傛灉璇诲彇鐨勬暟鎹负绌烘垨杞崲澶辫触锛屼綘鍙兘闇�瑕佸鐞嗚繖浜涙儏鍐�
+            try {
+                short data = Short.parseShort(dataStr);
+                datas.add(data);
+            } catch (NumberFormatException e) {
+                System.err.println("璇诲彇鍦板潃 " + addr + " 鐨勬暟鎹椂鍑洪敊: " + e.getMessage());
+
+            }
+        }
+
+        return datas;
+    }
+
+
+
+
+
+    // 杩炵画鍐欏叆澶氫釜Bit
+    public void writebits(String address, List<Boolean> data) {
+        for (int i = 0; i < data.size(); i++) {
+            String addr = calculateAddress(address, i); // 鍋囪姣忎釜bit鍗犱竴涓湴鍧�鍗曚綅
+            memory.put(addr, Boolean.toString(data.get(i)));
+        }
+        saveMemory();
+    }
+
+//bit鍒嗘暎鍦板潃璇诲彇
+    public List<Boolean> readBits(List<String> addresses) {
+        List<Boolean> results = new ArrayList<>();
+        for (String address : addresses) {
+            // 瀵逛簬姣忎釜鍦板潃锛岀洿鎺ヤ娇鐢� calculateAddress 鏉ュ鐞嗗彲鑳界殑浣嶅亸绉�
+            // 杩欓噷鍋囪 calculateAddress 宸茬粡瓒冲鏅鸿兘浠ュ鐞嗗崟涓綅鐨勫亸绉�
+            // 鐢变簬鎴戜滑鏄�愪釜璇诲彇锛屾瘡娆″亸绉婚噺閮芥槸0
+            String addr = calculateAddress(address, 0);
+            String value = memory.get(addr);
+            if (value != null) {
+                results.add(Boolean.parseBoolean(value));
+            } else {
+                // 濡傛灉鍦板潃瀵瑰簲鐨勫�间笉瀛樺湪浜庡唴瀛樹腑锛屽彲浠ラ�夋嫨娣诲姞 null 鎴栨姏鍑哄紓甯�
+                // 杩欓噷閫夋嫨娣诲姞 null锛屼絾鍦ㄥ疄闄呭簲鐢ㄤ腑搴旀牴鎹叿浣撻渶姹傚喅瀹�
+                results.add(null);
+            }
+        }
+        return results;
+    }
+
+    // 杩炵画璇诲彇澶氫釜Bit
+    public List<Boolean> readbits(String address, int count) {
+        List<Boolean> result = new ArrayList<>();
+        for (int i = 0; i < count; i++) {
+            String addr = calculateAddress(address, i); // 鍚屼笂锛屾瘡涓猙it鍗犱竴涓湴鍧�鍗曚綅
+            String value = memory.get(addr);
+            if (value != null) {
+                result.add(Boolean.parseBoolean(value));
+            } else {
+                result.add(null); // 鎴栬�呰�冭檻鎶涘嚭寮傚父鎴栧叾浠栭敊璇鐞�
+            }
+        }
+        return result;
+    }
+
+    // 璁$畻杩炵画鍦板潃
+//    private String calculateAddress(String baseAddress, int offset) {
+//        // 鏀寔甯﹀瓧姣嶇殑鍦板潃鏍煎紡
+//        Pattern pattern = Pattern.compile("(\\D*)(\\d+)");
+//        Matcher matcher = pattern.matcher(baseAddress);
+//        if (matcher.find()) {
+//            String prefix = matcher.group(1);
+//            int address = Integer.parseInt(matcher.group(2));
+//            return prefix + (address + offset);
+//        } else {
+//            throw new IllegalArgumentException("Invalid address format: " + baseAddress);
+//        }
+//    }
+
+    private String calculateAddress(String baseAddress, int offset) {
+        // 鍒嗗壊鍦板潃涓烘暟鎹潡銆佸瓧鍋忕Щ鍜屼綅鍋忕Щ锛堝鏋滄湁锛�
+        Pattern pattern = Pattern.compile("(DB\\d+)\\.(\\d+)(?:\\.(\\d+))?");
+        Matcher matcher = pattern.matcher(baseAddress);
+        if (matcher.find()) {
+            String dbNumber = matcher.group(1); // 鏁版嵁鍧楃紪鍙凤紝濡� "DB100"
+            int wordOffset = Integer.parseInt(matcher.group(2)); // 瀛楀亸绉�
+            String bitOffsetStr = matcher.group(3); // 浣嶅亸绉伙紝鍙兘涓虹┖
+
+            if (bitOffsetStr != null) {
+                // 瀛樺湪浣嶅亸绉伙紝杩涜浣嶆搷浣�
+                int bitOffset = Integer.parseInt(bitOffsetStr);
+                int totalBitOffset = bitOffset + offset;
+                // 璁$畻鏂扮殑瀛楀亸绉诲拰浣嶅亸绉�
+                int newWordOffset = wordOffset + (totalBitOffset / 8);
+                int newBitOffset = totalBitOffset % 8;
+                return String.format("%s.%d.%d", dbNumber, newWordOffset, newBitOffset);
+            } else {
+                // 浠呭瓨鍦ㄥ瓧鍋忕Щ锛岃繘琛屽瓧鎿嶄綔
+                // 娉ㄦ剰锛氬亣璁炬瘡涓瓧鍗犵敤2涓瓧鑺�
+                int newWordOffset = wordOffset + (offset );
+                return String.format("%s.%d", dbNumber, newWordOffset);
+            }
+        } else {
+            throw new IllegalArgumentException("Invalid address format: " + baseAddress);
+        }
+    }
+
+
+
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java b/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java
index 1da8717..f381270 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/common/RabbitMQUtils.java
@@ -106,6 +106,25 @@
     }
 
 
+//鎺ユ敹闃熷垪涓墍鏈夋秷鎭紝涓嶆秷璐�
+    public static List<String> browseMessages(String queueName) throws Exception {
+        ConnectionFactory factory = new ConnectionFactory();
+        factory.setHost(host);
+        List<String> messages = new ArrayList<>();
+        try (Connection connection = factory.newConnection();
+             Channel channel = connection.createChannel()) {
+            channel.queueDeclare(queueName, false, false, false, args);
+            // 鑾峰彇闃熷垪涓殑娑堟伅
+            GetResponse response;
+            while ((response = channel.basicGet(queueName, false)) != null) {
+                String message = new String(response.getBody(), "UTF-8");
+                messages.add(message);
+            }
+        }
+        return messages;
+    }
+
+
 
     private static Set<String> sentMessageIds = new HashSet<>();
 //鏍规嵁id鍙戦�佹秷鎭�
@@ -137,32 +156,32 @@
         }
     }
 //鏍规嵁id娑堣垂娑堟伅
-    public static String consumeMessageById( String messageId,String queueName) throws Exception {
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
+public static String consumeMessageById(String messageId, String queueName) throws Exception {
+    ConnectionFactory factory = new ConnectionFactory();
+    factory.setHost(host);
 
-        try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
-            channel.queueDeclare(queueName, false, false, false, args);
+    try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
+        channel.queueDeclare(queueName, false, false, false, args);
 
-            GetResponse response;
-            while ((response = channel.basicGet(queueName, false)) != null) {
-                String receivedMessage = new String(response.getBody(), "UTF-8");
-                if (response.getProps().getMessageId().equals(messageId)) {
-                    long deliveryTag = response.getEnvelope().getDeliveryTag();
-                    channel.basicAck(deliveryTag, false);
-                    System.out.println("Selected message: "+messageId+ receivedMessage);
-                    return receivedMessage; // 杩斿洖閫夊畾鐨勬秷鎭唴瀹�
-                } else {
-                    // 瀵逛簬涓嶇鍚堟潯浠剁殑娑堟伅锛岃繘琛� Nack 鎿嶄綔
-//                    long deliveryTag = response.getEnvelope().getDeliveryTag();
-//                    channel.basicNack(deliveryTag, false, true);
-                    return "Specified message not found in the queue.";
-                }
+        GetResponse response;
+        boolean found = false;
+
+        while ((response = channel.basicGet(queueName, false)) != null) {
+            String receivedMessage = new String(response.getBody(), "UTF-8");
+            if (response.getProps().getMessageId().equals(messageId)) {
+                long deliveryTag = response.getEnvelope().getDeliveryTag();
+                channel.basicAck(deliveryTag, false);
+                System.out.println("Selected message: " + messageId + " " + receivedMessage);
+                return receivedMessage;
+            } else {
+                // 鏈壘鍒版寚瀹氭秷鎭紝缁х画鏌ユ壘
+                channel.basicReject(response.getEnvelope().getDeliveryTag(), false);
             }
-
-            return "Specified message not found in the queue.";
         }
+
+        return "Specified message not found in the queue.";
     }
+}
 
 //娑堣垂鎸囧畾娑堟伅
     public static String consumeSelectedMessage(int messageToConsume, String queueName) throws Exception {
diff --git a/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java b/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
index f6ecf3f..ab753f3 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
@@ -1,23 +1,51 @@
 package com.mes.config;
 
-import com.mes.service.Plcaction;
-import com.mes.service.DownGlassInfoService;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.event.ContextRefreshedEvent;
+import com.mes.service.PLCAutoMes;
+import com.mes.service.Plchome;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
 @Component
-class AppStartup implements ApplicationListener<ContextRefreshedEvent> {
+@Order(1)
 
-    private final DownGlassInfoService downGlassInfoService;
-
-    public AppStartup(DownGlassInfoService downGlassInfoService) {
-        this.downGlassInfoService = downGlassInfoService;
-    }
+public class AppRunnerConfig implements ApplicationRunner {
 
     @Override
-    public void onApplicationEvent(ContextRefreshedEvent event) {
-        Plcaction.setDownGlassInfoService(downGlassInfoService);
-        new Plcaction().start();
+    public void run(ApplicationArguments args) throws Exception {
+        // TODO Auto-generated method stub
+        //
+        System.out.println("鍚姩瀹屾垚");
+
+
+
+
+        //  new PlcHold().start();
+       new PLCAutoMes().start();
+
+    new Plchome().start();
+        //  new PlcLayout().start();
+        //  new Plcalarm().start();
+
+        //  new Plcsign().start();
+
+        //  new Plcstate().start();
+        //  new PlcPositioning1().start();
+
+        //  new PlcParameter2().start();
+        //  new PLCAutomaticParameterSetting().start();
+
+        //  new PlcManualonePosition().start();
+        //  new PlcManualonePosition2().start();
+        //  new PlcServoManualone().start();
+        //  new PLCManualJog().start();
+        //  new Plclog().start();
+
+        //  new PlcInteractionState().start();
+        //new PlcParameter1Review().start();
+        //new PLCAutomaticParameterSettingReview2().start();
+
+    // new PLCManualJogReview().start();
     }
-}
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java b/UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java
new file mode 100644
index 0000000..085e400
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/controller/DownGlassInfoController.java
@@ -0,0 +1,40 @@
+package com.mes.controller;
+
+import com.mes.entity.DownGlassInfo;
+import com.mes.service.DownGlassInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/downGlassInfo")
+public class DownGlassInfoController {
+
+    @Autowired
+    private DownGlassInfoService downGlassInfoService;
+
+    // 鑾峰彇鎸囧畾ID鐨凞ownGlassInfo淇℃伅
+    @GetMapping("/{id}")
+    public DownGlassInfo getDownGlassInfoById(@PathVariable Integer id) {
+        return downGlassInfoService.getDownGlassInfoById(id);
+    }
+
+
+
+//    @GetMapping("/messages")
+//    public String getMessages() throws IOException, TimeoutException {
+//        List<String> messages = new ArrayList<>();
+//        try {
+//            messages = RabbitMQUtils.browseMessages("hangzhou2");
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        return messages.toString();  // 杩斿洖娑堟伅鍒楄〃鐨勫瓧绗︿覆琛ㄧず褰㈠紡
+//    }
+
+
+
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java b/UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java
index 9a8eea0..e3be9dc 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/controller/userInfo/UserController.java
@@ -3,7 +3,6 @@
 import com.mes.common.CacheUtil;
 import com.mes.common.Constants;
 import com.mes.common.Result;
-import com.mes.controller.dto.UserDTO;
 import com.mes.entity.userInfo.User;
 import com.mes.exception.ServiceException;
 import com.mes.mapper.userInfo.UserMapper;
@@ -31,18 +30,18 @@
         System.out.println(cacheUtil.getCacheData("admin"));
         return userMapper.findAll();
     }
-    @ApiOperation("鐧诲綍")
-    @PostMapping("/login")
-    public Result login(@RequestBody UserDTO userDTO){
-        //UserDTO getUserCacheDTO = cacheUtil.getCacheData(userDTO.getUserId());
-        userService.deleteCache(userDTO.getUserId());
-        UserDTO getUserDTO=userService.login(userDTO);
-        if(getUserDTO!=null){
-            return Result.seccess(userDTO);
-        }else{
-            throw new ServiceException(Constants.Code_600,"鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
-        }
-    }
+    //@ApiOperation("鐧诲綍")
+   // @PostMapping("/login")
+//    public Result login(@RequestBody UserDTO userDTO){
+//        //UserDTO getUserCacheDTO = cacheUtil.getCacheData(userDTO.getUserId());
+//        userService.deleteCache(userDTO.getUserId());
+//        UserDTO getUserDTO=userService.login(userDTO);
+//        if(getUserDTO!=null){
+//            return Result.seccess(userDTO);
+//        }else{
+//            throw new ServiceException(Constants.Code_600,"鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+//        }
+//    }
     @ApiOperation("娉ㄥ唽")
     @PostMapping("/register")
     public Result register(@RequestBody User user){
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
index 6630735..206e72d 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
@@ -15,5 +15,7 @@
     private Double width; // 瀹�
     private Double height; // 楂�
     private Double thickness; // 鍘氬害
+    private String filmsid;//鑶滅郴
+
 
 }
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
index d9a2dfd..524d865 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
@@ -14,4 +14,7 @@
     private Integer deviceId; // 璁惧id
     private Integer enableState; // 鍚敤鐘舵��
     private Integer workState; // 宸ヤ綔鐘舵��
+    private Integer racks_number; // 宸茶惤鏋舵暟閲�
+    private Integer total_quantity; // 鎬绘暟閲�
+
 }
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
index 5355db5..af3536c 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
@@ -15,6 +15,8 @@
     private int plcAddressLength;
     private ArrayList<PlcParameterInfo> plcParameterList;
 
+
+
     /**
      * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
      */
@@ -199,4 +201,5 @@
     }
 
 
+
 }
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java
index 95ef927..dbd519c 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownGlassInfoMapper.java
@@ -4,12 +4,27 @@
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.entity.DownGlassInfo;
-import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.*;
 import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 @Mapper
 @Repository
 @InterceptorIgnore(tenantLine = "true")
 @DS("hangzhoumes") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
 public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo> {
+
+    // 鏌ヨ涓嬬墖浠诲姟琛ㄤ腑鐘舵�佷负1鐨勪笅鐗囦俊鎭�
+    @Select("SELECT flow_card_id,filmsid,width,height,thickness FROM down_glass_task WHERE state = 1;")
+    List<DownGlassInfo> selectunloadingtaskstate();
+
+    @Update("UPDATE down_glass_task SET state = 0 WHERE flow_card_id = #{flowCardId}")
+    void updateTaskStateToZero(@Param("flowCardId") String flowCardId);
+
+    @Select("SELECT MAX(sequence) FROM down_glass_info WHERE flow_card_id = #{flowCardId} LIMIT 1")
+    Integer getMaxSequenceByFlowCardId(@Param("flowCardId") String flowCardId);
+
+    @Delete("delete  from down_glass_task where flow_card_id = #{flowCardId}")
+    void deletetask(@Param("flowCardId") String flowCardId);
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
index c48a549..163348d 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
@@ -3,14 +3,57 @@
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.entity.DownGlassInfo;
 import com.mes.entity.DownWorkstation;
-import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Mapper
+@Component
 @Repository
 @InterceptorIgnore(tenantLine = "true")
 @DS("hangzhoumes") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
 public interface DownWorkstationMapper extends BaseMapper<DownWorkstation> {
+//鏍规嵁宸ヤ綅ID鍜岃澶嘔D鏇存柊宸ヤ綅鐘舵��
+    @Update("UPDATE down_workstation SET work_state = #{workState} " +
+            "WHERE workstation_id = #{workstationId} AND device_id = #{deviceId}")
+    void updateWorkStateByWorkstationIdAndDeviceId(@Param("workstationId") Integer workstationId,
+                                                   @Param("deviceId") Integer deviceId,
+                                                   @Param("workState") Integer workState);
+//宸ヤ綅ID鍒犻櫎淇℃伅
+    @Delete("DELETE FROM down_workstation WHERE workstation_id = #{workstationId}")
+    void deleteByWorkstationId(@Param("workstationId") Integer workstationId);
+
+//钀芥灦
+    @Insert("INSERT INTO down_workstation (workstation_id, flow_card_id, device_id, enable_state, work_state) " +
+            "VALUES (#{workstationId}, #{flowCardId}, #{deviceId}, #{enableState}, #{workState})")
+    void insertDownWorkstation(DownWorkstation downWorkstation);
+
+//鏍规嵁璁惧ID鏌ヨ宸ヤ綅淇℃伅
+    @Select("SELECT * FROM down_workstation WHERE device_id = #{deviceId}")
+    List<DownWorkstation> selectByDeviceId(@Param("deviceId") Integer deviceId);
+//浠庢満姊版墜浠诲姟琛ㄦ煡璇㈢姸鎬佷负1鐨勬祦绋嬪崱鍙�
+//    @Select("SELECT *  FROM down_workstation_task WHERE state = 1")
+//    List<DownWorkstation> selectdownWorkstationstate();
+
+    @Select("SELECT dw.flow_card_id,dw.racks_number FROM down_workstation_task dwt JOIN down_workstation dw ON dwt.flow_card_id = dw.flow_card_id WHERE dwt.state = 1 LIMIT 1")
+    List<DownWorkstation> selectdownWorkstationstate();
+
+    @Update("UPDATE down_workstation SET racks_number = #{racksNumber} " +
+            "WHERE flow_card_id = #{flowCardId}")
+    void  update_racks_number(@Param("flowCardId") String flowCardId,
+                                   @Param("racksNumber") Integer racksNumber);
+
+
+    @Insert("INSERT INTO down_workstation_task (flow_card_id, width, height, thickness, filmsid,state) " +
+            "VALUES (#{flowCardId}, #{width}, #{height}, #{thickness}, #{filmsid},1)")
+    void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
+
+
+
+
 
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
index 0bf0923..bdb183e 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/userInfo/SysMenuItemMapper.java
@@ -2,11 +2,12 @@
 
 import com.mes.entity.userInfo.SysMenuItem;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
 @Mapper
 public interface SysMenuItemMapper {
-
+     @Select("select  * from sys_menu_item as a where a.state=1 order by a.listSort")
      List<SysMenuItem> findAll() ;
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java b/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java
index 5f69be8..2cf4210 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassInfoService.java
@@ -13,7 +13,10 @@
     @Autowired
     private DownGlassInfoMapper downGlassInfoMapper;
 
+
     public DownGlassInfo getDownGlassInfoById(Integer id) {
         return downGlassInfoMapper.selectById(id);
     }
+
+
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java b/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java
deleted file mode 100644
index 0909523..0000000
--- a/UnLoadGlassModule/src/main/java/com/mes/service/GlassHandler.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.mes.service;
-
-import com.mes.entity.DownGlassInfo;
-import com.mes.entity.DownStorageCageDetails;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class GlassHandler {
-
-    private List<DownGlassInfo> glassList; // 瀛樻斁寰呭鐞嗙殑鐜荤拑淇℃伅
-    private List<DownStorageCageDetails> cageDetailsList; // 瀛樻斁鐜荤拑鏀剧疆鍦ㄧ紦瀛樼涓殑璇︾粏淇℃伅
-
-    public void processGlass() {
-        // 鍒濆鍖栦袱涓満鍣ㄦ墜
-        MachineHand hand1 = new MachineHand();
-        MachineHand hand2 = new MachineHand();
-
-        for (DownGlassInfo glass : glassList) {
-            // 鏍规嵁鐜荤拑瑙勬牸鎵惧埌瀵瑰簲鐨勭紦瀛樼瀛愯鎯�
-            DownStorageCageDetails cageDetails = findCageDetailsByGlassSpec(glass);
-
-            if (cageDetails != null) {
-                // 浠庣紦瀛樼涓彇鍑虹幓鐠冩斁鍒版満鍣ㄦ墜涓�
-                hand1.placeGlass(cageDetails);
-                hand2.placeGlass(cageDetails);
-            }
-
-            // 鍒ゆ柇涓や釜鏈哄櫒鎵嬫槸鍚﹂兘宸茬粡鎽嗘弧
-            if (hand1.isFull() && hand2.isFull()) {
-                // 鎵ц鍏朵粬鎿嶄綔锛屾瘮濡傚彂閫佹寚浠ょ瓑
-                break;
-            }
-        }
-    }
-
-    private DownStorageCageDetails findCageDetailsByGlassSpec(DownGlassInfo glass) {
-        // 鏍规嵁鐜荤拑瑙勬牸鎵惧埌瀵瑰簲鐨勭紦瀛樼瀛愯鎯�
-        for (DownStorageCageDetails details : cageDetailsList) {
-            if (details.getWidth() == glass.getWidth() &&
-                    details.getHeight() == glass.getHeight() &&
-                    details.getThickness() == glass.getThickness()) {
-                return details;
-            }
-        }
-        return null;
-    }
-
-    private class MachineHand {
-        private List<DownStorageCageDetails> rack; // 瀛樻斁鐜荤拑鐨勬灦瀛�
-
-        public MachineHand() {
-            rack = new ArrayList<>();
-        }
-
-        public void placeGlass(DownStorageCageDetails details) {
-            rack.add(details);
-        }
-
-        public boolean isFull() {
-            return rack.size() >= 50; // 鍒ゆ柇鏋跺瓙鏄惁宸茬粡鏀炬弧
-        }
-    }
-}
-
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
index 889bd32..40af511 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleA.java
@@ -18,7 +18,10 @@
 //        receiver.sendMessageWithId(QUEUE_NAME, message, messageId); // 璋冪敤 sendMessageWithId 鏂规硶鍙戦�佹秷鎭�
         receiver.sendMessageWithId("hangzhou2", "Hello RabbitMQ!", "1");
         receiver.sendMessageWithId("hangzhou2", "Another message", "2");
-        receiver.sendMessageWithId("hangzhou2", "Yet another message", "1"); // 杩欐潯娑堟伅浼氭墦鍗伴噸澶嶆秷鎭殑閿欒淇℃伅
+        receiver.sendMessageWithId("hangzhou2", "Another message", "3");
+        receiver.sendMessageWithId("hangzhou2", "Another message", "4");
+        receiver.sendMessageWithId("hangzhou2", "Another message", "5");
+      //  receiver.sendMessageWithId("hangzhou2", "Yet another message", "1"); // 杩欐潯娑堟伅浼氭墦鍗伴噸澶嶆秷鎭殑閿欒淇℃伅
 
     }
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
index 75c2e16..2cd57e4 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/ModuleB.java
@@ -2,6 +2,8 @@
 
 import com.mes.common.RabbitMQUtils;
 
+import java.util.List;
+
 public class ModuleB {
     private final static String QUEUE_NAME = "hangzhou2";
 
@@ -13,10 +15,11 @@
 
         try {
 
-            receiver.consumeMessageById("2",QUEUE_NAME);
+            //receiver.consumeMessageById("5",QUEUE_NAME);
+
            // String receivedMessage = receiver.consumeSelectedMessage(1,QUEUE_NAME);
-//            String receivedMessage = String.valueOf(receiver.readMessages(QUEUE_NAME,false));
-          // System.out.println("Received message: " + receivedMessage);
+        List<String> receivedMessage = receiver.browseMessages(QUEUE_NAME);
+          System.out.println("Received message: " + receivedMessage);
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java b/UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java
new file mode 100644
index 0000000..66e4cc9
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/PLCAutoMes.java
@@ -0,0 +1,91 @@
+package com.mes.service;
+
+import com.mes.entity.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import org.springframework.context.annotation.Configuration;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.mes.tools.InitUtil.readAndUpdateWordValues;
+
+public class PLCAutoMes extends Thread {
+
+    // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+    private Configuration config;
+    private static InitUtil initUtil;
+
+
+    // 鍗曚緥瀹炰緥
+    private static PLCAutoMes instance;
+    private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
+    private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
+    private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
+//    private static String PlcParameter = PLCAutomaticParameterSettingReview2.class
+//            .getResource("/JsonFile/PlcParameter.json").getPath();
+//    private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json")
+//            .getPath();
+//    private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json")
+//            .getPath();
+    private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
+   // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
+
+    // 璋冪敤initword鏂规硶
+
+//
+   // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+    public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
+    public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+    public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
+
+    // 绉佹湁鏋勯�犲嚱鏁�
+    public PLCAutoMes() throws IOException {
+
+        initUtil = new InitUtil();
+    }
+
+    // 鑾峰彇鍗曚緥瀹炰緥
+    public static synchronized PLCAutoMes getInstance() throws IOException {
+        if (instance == null) {
+            instance = new PLCAutoMes();
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            // System.out.println(jsonFilePath);
+
+          // readAndUpdateWordValues(PlcReadObject);
+            readAndUpdateWordValues(PlcMesObject);
+//      readAndUpdateWordValues(PlcframeObject);
+            // readAndUpdateWordValues(PlcframeObject);
+
+            // readAndUpdateWordValues(plcStateObject);
+          //  int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
+            // System.out.println(index);
+          //  PlcMesObject.getPlcParameter("AddStart").getAddress(index);
+            // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
+            List<String> addresses = new ArrayList<>();
+            addresses.add("FeedID");
+            addresses.add("AddStart");
+            // System.out.println(addresses);
+            // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
+            List<String> addresses2 = new ArrayList<>();
+            addresses2.add("FeedID");
+            addresses2.add("FeedCarStatus");
+
+         //   System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
+
+        }
+    }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java b/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java
new file mode 100644
index 0000000..581cfe8
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java
@@ -0,0 +1,139 @@
+package com.mes.service;
+
+import com.mes.entity.DownGlassInfo;
+import com.mes.entity.DownStorageCageDetails;
+import com.mes.entity.DownWorkstation;
+import com.mes.entity.device.PlcParameterObject;
+import com.mes.mapper.DownGlassInfoMapper;
+import com.mes.mapper.DownWorkstationMapper;
+import com.mes.tools.WebSocketServer;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+@Data
+@Service
+public class PlcService {
+
+    @Autowired
+    private DownWorkstationMapper downWorkstationMapper;
+    private DownGlassInfo downGlassInfo;
+    private DownWorkstation downWorkstation;
+    private DownGlassInfoMapper downGlassInfoMapper;
+
+    private DownGlassInfoService downGlassInfoService;
+
+
+
+
+
+    private List<DownGlassInfo> glassList; // 瀛樻斁寰呭鐞嗙殑鐜荤拑淇℃伅
+    private List<DownStorageCageDetails> cageDetailsList; // 瀛樻斁鐜荤拑鏀剧疆鍦ㄧ紦瀛樼涓殑璇︾粏淇℃伅
+    PlcParameterObject plcread=PLCAutoMes.PlcReadObject;
+    String Robot1PLCrequestword=plcread.getPlcParameter("A01Position").getValue();// 鏈烘鎵�1PLC璇锋眰瀛�
+    String Robot2PLCrequestword=plcread.getPlcParameter("A01Position").getValue();// 鏈烘鎵�2PLC璇锋眰瀛�
+    String GlassID=plcread.getPlcParameter("A01Position").getValue();// 鐜荤拑id
+    String Glasswidth=plcread.getPlcParameter("A01Position").getValue();//鐜荤拑瀹藉害
+    String Glassheight=plcread.getPlcParameter("A01Position").getValue();//鐜荤拑楂樺害
+    String Glassthickness=plcread.getPlcParameter("A01Position").getValue();//鍘氬害
+    String PLCwancheng = plcread.getPlcParameter("A01Position").getValue();// plc瀹屾垚瀛�
+
+
+    //褰撲笅鐗囦换鍔¤〃鐘舵�佷负1鏃跺�欏皢鏁版嵁鎻掑叆鍒颁笅鐗囩幓鐠冧俊鎭〃
+    public void insertdownglassinfo() {
+
+
+        downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
+        downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
+        downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
+        List<DownGlassInfo> taskdownGlassInf = downGlassInfoMapper.selectunloadingtaskstate();
+//
+        if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
+
+
+
+
+            for (DownGlassInfo downGlassInfo : taskdownGlassInf) {
+                // 鍒涘缓鏂扮殑 DownGlassInfo 瀵硅薄骞惰缃浉鍏冲睘鎬�
+                DownGlassInfo newdownGlassInfo = new DownGlassInfo();
+
+                newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId());
+                Integer maxSequence = downGlassInfoMapper.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
+                int sequence = maxSequence != null ? maxSequence + 1 : 1; // 鍒濆鍖栭『搴忓瓧娈靛��
+
+                newdownGlassInfo.setWidth(downGlassInfo.getWidth());
+                newdownGlassInfo.setHeight(downGlassInfo.getHeight());
+                newdownGlassInfo.setThickness(downGlassInfo.getThickness());
+                newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
+                newdownGlassInfo.setSequence(sequence); // 璁剧疆椤哄簭瀛楁鍊�
+
+                // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃
+                downGlassInfoMapper.insert(newdownGlassInfo);
+                //鎻掑叆鏁版嵁鍒版満姊版墜浠诲姟琛�
+                downWorkstationMapper.insertdownWorkstationtask(newdownGlassInfo);
+                //鏇存柊浠诲姟琛ㄧ姸鎬佷负0
+                downGlassInfoMapper.updateTaskStateToZero(downGlassInfo.getFlowCardId());
+
+                sequence++; // 閫掑椤哄簭瀛楁鍊�
+
+
+
+
+            }
+        }
+    }
+
+
+    //褰撴満姊版墜浠诲姟琛ㄤ腑鐘舵�佷负1锛屽伐浣嶈〃娴佺▼鍗$粦瀹氫簡鏋跺瓙 鏇存柊宸茬粡钀芥灦鏁伴噺锛屽苟涓旀妸涓嬬墖浠诲姟琛ㄧ殑瀵瑰簲璁板綍鍒犳帀
+    public void down_workstation(){
+
+        //downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
+        //downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
+        try {
+            List<DownWorkstation> taskdownWorkstation = downWorkstationMapper.selectdownWorkstationstate();
+            if (taskdownWorkstation != null && !taskdownWorkstation.isEmpty()) {
+                //鏌ヨ涓嬬墖宸ヤ綅琛ㄤ腑鏄惁缁戝畾浜嗘灦瀛愭槸鍚︾粦瀹氫簡娴佺▼鍗″彿锛屽鏋滃凡缁忕粦瀹氬垯鏇存柊宸茶惤鏋舵暟閲�,骞朵笖鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
+                for (DownWorkstation downWorkstation : taskdownWorkstation) {
+                    downWorkstationMapper.update_racks_number(downWorkstation.getFlowCardId(),6 );
+                    downGlassInfoMapper.deletetask(downWorkstation.getFlowCardId());
+
+                }
+            }
+        } catch (Exception e) {
+            // 鎵撳嵃寮傚父淇℃伅
+            e.printStackTrace();
+            // 鎴栬�呭彲浠ヨ繘琛屽叾浠栧紓甯稿鐞嗭紝姣斿璁板綍鏃ュ織鎴栬�呰繑鍥炵壒瀹氱殑閿欒淇℃伅
+        }
+
+
+    }
+
+
+
+    //缁戝畾娴佺▼鍗″彿鏋跺瓙
+    public void bindingshelf(DownWorkstation downWorkstation){
+
+        String FlowCardId=downWorkstation.getFlowCardId();
+        int WorkstationId=downWorkstation.getWorkstationId();
+
+
+
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java b/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
index 5c39775..4268c38 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
@@ -1,20 +1,25 @@
 package com.mes.service;
 
+import com.mes.common.PlcTools.MockS7PLCtwo;
 import com.mes.entity.DownGlassInfo;
+import com.mes.mapper.DownWorkstationMapper;
+import com.mes.tools.WebSocketServer;
+import org.springframework.beans.factory.annotation.Autowired;
 
-import java.util.Collections;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class Plcaction extends Thread {
 
-  private static DownGlassInfoService downGlassInfoService; // 闈欐�佸彉閲�
 
-  public static void setDownGlassInfoService(DownGlassInfoService service) {
-    downGlassInfoService = service;
-  }
-
-  private List<DownGlassInfo> downGlassInfo; //
+  @Autowired
+  private DownWorkstationMapper downWorkstationMapper;
+  private DownGlassInfo downGlassInfo; //
+  private DownGlassInfoService downGlassInfoService;
   private int i =1; //
+
+    //MockS7PLC mockS7PLC=new MockS7PLC();
   @Override
   public void run() {
     while (!Thread.currentThread().isInterrupted()) {
@@ -25,11 +30,74 @@
         Thread.currentThread().interrupt();
         e.printStackTrace();
       }
+      downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
+      downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
+      int workstationId = 1;
+      int deviceId = 2;
+      int newWorkState = 9;
+
+      downWorkstationMapper.updateWorkStateByWorkstationIdAndDeviceId(workstationId, deviceId, newWorkState);
+      downGlassInfo  = downGlassInfoService.getDownGlassInfoById(1); // 璁剧疆闇�瑕佹煡璇㈢殑id
+//   System.out.println("Down Glass Info in new thread: "+i + downGlassInfo);
+      Boolean[] value4 = { false, true, true, true, true, true, false, false, false,
+              false};
+     List<Boolean> booldata2 = new ArrayList<>(Arrays.asList(value4));
+       // MockS7PLCtwo.getInstance().writeBoolean("DB1.DBX0.0", false);
+       // MockS7PLCtwo.getInstance().writebits("DB4.0.0",booldata2);
+// 浠庣浉鍚岀殑鍦板潃璇诲彇甯冨皵鍊�
+      boolean value = MockS7PLCtwo.getInstance().readBoolean("DB1.DBX0.0");
+      Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
+      Short[] values2 = { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
+
+   List<Short> data = new ArrayList<>(Arrays.asList(values1));
+      List<Short> data2 = new ArrayList<>(Arrays.asList(values2));
+        List<String> addresses3 = new ArrayList<>();
+        addresses3.add("DB1.0.0");
+        addresses3.add("DB1.0.3");
+        addresses3.add("DB1.0.5");
+      List<String> addresses = new ArrayList<>();
+      addresses.add("DB100.0");
+      addresses.add("DB100.2");
+      addresses.add("DB100.4");
+      addresses.add("DB100.6");
+      addresses.add("DB100.26");
+      addresses.add("DB100.28");
+      addresses.add("DB100.30");
+      addresses.add("DB100.32");
+      addresses.add("DB100.34");
+      addresses.add("DB100.36");
 
 
 
-      downGlassInfo  = Collections.singletonList(downGlassInfoService.getDownGlassInfoById(1)); // 璁剧疆闇�瑕佹煡璇㈢殑id
-   System.out.println("Down Glass Info in new thread: "+i + downGlassInfo);
+      List<String> addresses2 = new ArrayList<>();
+      addresses2.add("DB101.0");
+      addresses2.add("DB101.2");
+      addresses2.add("DB101.4");
+      addresses2.add("DB101.6");
+      addresses2.add("DB101.8");
+      addresses2.add("DB101.10");
+      addresses2.add("DB101.12");
+      addresses2.add("DB101.14");
+      addresses2.add("DB101.16");
+      addresses2.add("DB101.18");
+//      mockPLC.writeword("DB100.2",data );
+        MockS7PLCtwo.getInstance().WriteWords(addresses, data);
+        MockS7PLCtwo.getInstance().WriteWords(addresses2, data2);
+  //DB100.2,DB100.4,DB100.6,DB100.28,DB100.30,DB100.32,DB100.36,DB100.38,DB100.40
+
+  List<Short> data5= MockS7PLCtwo.getInstance().readwords("DB104.0", 9);
+      List<Short> data3= MockS7PLCtwo.getInstance().ReadWords(addresses);
+      List<Boolean> data4= MockS7PLCtwo.getInstance().readbits("DB4.0.0",10);
+
+        List<Boolean> data6= MockS7PLCtwo.getInstance().readBits(addresses3);
+    //  System.out.println("璇诲彇鐨勫竷灏斿��: " + value); // 搴旇杈撳嚭 true
+     // System.out.println("璇诲彇鐨剋ord鍊�: " + data3);
+      System.out.println("璇诲彇鐨剋ord鍊�: " + data4);
+//        System.out.println("璇诲彇鐨刡it鍊�: " + data4);
+//        System.out.println("璇诲彇鐨刡it鍊�: " + data6);
+
+
+     //   System.out.println("璇诲彇鐨剋ord鍊�: " + MockS7PLCtwo.getInstance().readInt16("DB5.0.0"));
     }
   }
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java b/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java
new file mode 100644
index 0000000..eba16ae
--- /dev/null
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java
@@ -0,0 +1,44 @@
+package com.mes.service;
+
+import com.mes.tools.WebSocketServer;
+import org.springframework.stereotype.Component;
+
+import java.util.function.Supplier;
+
+@Component
+public class Plchome extends Thread {
+    private int i = 1;
+    private final Supplier<PlcService> plcServiceSupplier;
+
+    public Plchome() {
+        this.plcServiceSupplier = () -> WebSocketServer.applicationContext.getBean(PlcService.class);
+    }
+
+
+
+    @Override
+    public void run() {
+        while (!Thread.currentThread().isInterrupted()) {
+            try {
+                i++;
+                Thread.sleep(100);
+                PlcService plcService = plcServiceSupplier.get();
+               // plcService.performPlcActions();
+                //plcService.unloadpush();
+
+                //褰撲笅鐗囦换鍔¤〃鐘舵�佷负1鏃跺�欏皢鏁版嵁鎻掑叆鍒颁笅鐗囩幓鐠冧俊鎭〃
+                plcService.insertdownglassinfo();
+
+
+
+                //褰撴満姊版墜浠诲姟琛ㄤ腑鐘舵�佷负1 鏇存柊宸茬粡钀芥灦鏁伴噺锛屽苟涓旀妸涓嬬墖浠诲姟琛ㄧ殑閭f潯璁板綍鍒犳帀 宸ヤ綅琛ㄦ祦绋嬪崱缁戝畾浜嗘灦瀛�
+                plcService.down_workstation();
+
+
+            } catch (InterruptedException e) {
+                Thread.currentThread().interrupt();
+                e.printStackTrace();
+            }
+        }
+    }
+}
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
index 004399b..9940470 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysErrorService.java
@@ -7,7 +7,7 @@
 import org.springframework.stereotype.Service;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysErrorService {
     private final SysErrorMapper sysErrorMapper;
 
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
index 6efd838..ee38452 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuItemService.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysMenuItemService {
     @Autowired
     SysMenuItemMapper sysMenuItemMapper;
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
index 278b057..55f8fc6 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/SysMenuService.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class SysMenuService {
     @Autowired
     private SysMenuMapper sysMenuMapper;
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
index 08fb8dd..e172f10 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/userInfo/UserService.java
@@ -2,23 +2,18 @@
 
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.mes.common.CacheUtil;
-import com.mes.common.Result;
+import com.mes.controller.dto.UserDTO;
 import com.mes.entity.userInfo.User;
 import com.mes.mapper.userInfo.UserMapper;
-import com.mes.controller.dto.UserDTO;
 import com.mes.tools.TokenTools;
-import org.apache.ibatis.jdbc.Null;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
-
 @Service
-@DS("user_info")
+@DS("hangzhoumes")
 public class UserService {
 
     @Autowired
diff --git a/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java b/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
index 90c8a30..30d75ae 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
@@ -2,7 +2,6 @@
 
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
-import com.mes.common.PlcTools.S7control;
 import com.mes.entity.device.PlcBitInfo;
 import com.mes.entity.device.PlcBitObject;
 import com.mes.entity.device.PlcParameterInfo;
@@ -11,6 +10,8 @@
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class InitUtil {
@@ -107,18 +108,18 @@
 //
     public static void readAndUpdateBitValues(PlcBitObject plcBitObject) {
 
-//        Boolean[] values1 = { false, true, true, true, false, false, true, false,
-//          false, true ,true };
-//         List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
-        List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+        Boolean[] values1 = { false, true, true, true, false, false, true, false,
+          false, true ,true };
+         List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+        //List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
         plcBitObject.setPlcBitList(getplcvlues);
     }
 
 
     public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) {
 
-        // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
-        byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+         byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03,0x03};
+       // byte[] getplcvlues = MockS7PLC.getInstance().readByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
         plcParameterObject.setPlcParameterList(getplcvlues);
     }
 
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
new file mode 100644
index 0000000..a840092
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
@@ -0,0 +1,371 @@
+{
+  "plcAddressBegin": "DB104.0.0",
+  "plcAddressLenght": "91",
+  "dataType": "bit",
+  "parameteInfor": [
+    {
+      "codeId": "D01VFDerror",
+      "addressIndex": 0
+    },
+    {
+      "codeId": "D02VFDerror",
+      "addressIndex": 1
+    },
+    {
+      "codeId": "D03VFDerror",
+      "addressIndex": 2
+    },
+    {
+      "codeId": "D04VFDerror",
+      "addressIndex": 3
+    },
+    {
+      "codeId": "D05VFDerror",
+      "addressIndex": 4
+    },
+    {
+      "codeId": "D06VFDerror",
+      "addressIndex": 5
+    },
+    {
+      "codeId": "B01VFDerror",
+      "addressIndex": 6
+    },
+    {
+      "codeId": "B02VFDerror",
+      "addressIndex": 7
+    },
+    {
+      "codeId": "A01VFDerror",
+      "addressIndex": 8
+    },
+    {
+      "codeId": "A02VFDerror",
+      "addressIndex": 9
+    },
+    {
+      "codeId": "A01servoturnerror",
+      "addressIndex": 10
+    },
+    {
+      "codeId": "A02servoturnerror",
+      "addressIndex": 11
+    },
+    {
+      "codeId": "A01servotravelerror",
+      "addressIndex": 12
+    },
+    {
+      "codeId": "A02servotravelerror",
+      "addressIndex": 13
+    },
+    {
+      "codeId": "B01servotravelerror",
+      "addressIndex": 14
+    },
+    {
+      "codeId": "B02servotravelerror",
+      "addressIndex": 15
+    },
+    {
+      "codeId": "D01DECerror",
+      "addressIndex": 16
+    },
+    {
+      "codeId": "D01poserror",
+      "addressIndex": 17
+    },
+    {
+      "codeId": "D02DECerror",
+      "addressIndex": 18
+    },
+    {
+      "codeId": "D02poserror",
+      "addressIndex": 19
+    },
+    {
+      "codeId": "D03DECerror",
+      "addressIndex": 20
+    },
+    {
+      "codeId": "D03poserror",
+      "addressIndex": 21
+    },
+    {
+      "codeId": "D04DECerror",
+      "addressIndex": 22
+    },
+    {
+      "codeId": "D04poserror",
+      "addressIndex": 23
+    },
+    {
+      "codeId": "D05DECerror",
+      "addressIndex": 24
+    },
+    {
+      "codeId": "D05poserror",
+      "addressIndex": 25
+    },
+    {
+      "codeId": "D06DECerror",
+      "addressIndex": 26
+    },
+    {
+      "codeId": "D06poserror",
+      "addressIndex": 27
+    },
+    {
+      "codeId": "A01DECerror",
+      "addressIndex": 28
+    },
+    {
+      "codeId": "A01poserror",
+      "addressIndex": 29
+    },
+    {
+      "codeId": "A02DECerror",
+      "addressIndex": 30
+    },
+    {
+      "codeId": "A02poserror",
+      "addressIndex": 31
+    },
+    {
+      "codeId": "B01INDECerror",
+      "addressIndex": 32
+    },
+    {
+      "codeId": "B01INposerror",
+      "addressIndex": 33
+    },
+    {
+      "codeId": "B01OUTDECerror",
+      "addressIndex": 34
+    },
+    {
+      "codeId": "B01OUTposerror",
+      "addressIndex": 35
+    },
+    {
+      "codeId": "B02INDECerror",
+      "addressIndex": 36
+    },
+    {
+      "codeId": "B02INposerror",
+      "addressIndex": 37
+    },
+    {
+      "codeId": "B02OUTDECerror",
+      "addressIndex": 38
+    },
+    {
+      "codeId": "B02OUTposerror",
+      "addressIndex": 39
+    },
+    {
+      "codeId": "D01Scanglassexceedinglimit",
+      "addressIndex": 40
+    },
+    {
+      "codeId": "emergencystopalarm",
+      "addressIndex": 41
+    },
+    {
+      "codeId": "Moreglassthanknown",
+      "addressIndex": 42
+    },
+    {
+      "codeId": "lessglassthanknown",
+      "addressIndex": 43
+    },
+    {
+      "codeId": "D01conveyortimeoutalarm",
+      "addressIndex": 44
+    },
+    {
+      "codeId": "D02conveyortimeoutalarm",
+      "addressIndex": 45
+    },
+    {
+      "codeId": "D03conveyortimeoutalarm",
+      "addressIndex": 46
+    },
+    {
+      "codeId": "D04conveyortimeoutalarm",
+      "addressIndex": 47
+    },
+    {
+      "codeId": "D05conveyortimeoutalarm",
+      "addressIndex": 48
+    },
+    {
+      "codeId": "D06conveyortimeoutalarm",
+      "addressIndex": 49
+    },
+    {
+      "codeId": "A01conveyortimeoutalarm",
+      "addressIndex": 50
+    },
+    {
+      "codeId": "A02conveyortimeoutalarm",
+      "addressIndex": 51
+    },
+    {
+      "codeId": "B01conveyortimeoutalarm",
+      "addressIndex": 52
+    },
+    {
+      "codeId": "B02conveyortimeoutalarm",
+      "addressIndex": 53
+    },
+    {
+      "codeId": "A01conveyorLeftsafetyalarm",
+      "addressIndex": 54
+    },
+    {
+      "codeId": "A01conveyorrightsafetyalarm",
+      "addressIndex": 55
+    },
+    {
+      "codeId": "A02conveyorLeftsafetyalarm",
+      "addressIndex": 56
+    },
+    {
+      "codeId": "A02conveyorrightsafetyalarm",
+      "addressIndex": 57
+    },
+    {
+      "codeId": "1#buffersafetyalarm",
+      "addressIndex": 58
+    },
+    {
+      "codeId": "2#buffersafetyalarm",
+      "addressIndex": 59
+    },
+    {
+      "codeId": "3#buffersafetyalarm",
+      "addressIndex": 60
+    },
+    {
+      "codeId": "4#buffersafetyalarm",
+      "addressIndex": 61
+    },
+    {
+      "codeId": "A01.SRrightinposerror",
+      "addressIndex": 62
+    },
+    {
+      "codeId": "A02.SRleftinposerror",
+      "addressIndex": 63
+    },
+    {
+      "codeId": "B01.SRleftinposerror",
+      "addressIndex": 64
+    },
+    {
+      "codeId": "B01.SRleftdecerror",
+      "addressIndex": 65
+    },
+    {
+      "codeId": "B01.SRrightdecerror",
+      "addressIndex": 66
+    },
+    {
+      "codeId": "B01.SRrightinposerror",
+      "addressIndex": 67
+    },
+    {
+      "codeId": "B02.SRleftinposerror",
+      "addressIndex": 68
+    },
+    {
+      "codeId": "B02.SRleftdecerror",
+      "addressIndex": 69
+    },
+    {
+      "codeId": "B02.SRrightdecerror",
+      "addressIndex": 70
+    },
+    {
+      "codeId": "B02.SRrightinposerror",
+      "addressIndex": 71
+    },
+    {
+      "codeId": "A01servoturnhomed",
+      "addressIndex": 72
+    },
+    {
+      "codeId": "A02servoturnhomed",
+      "addressIndex": 73
+    },
+    {
+      "codeId": "A01servotravelhomed",
+      "addressIndex": 74
+    },
+    {
+      "codeId": "A02servotravelhomed",
+      "addressIndex": 75
+    },
+    {
+      "codeId": "B01servotravelhomed",
+      "addressIndex": 76
+    },
+    {
+      "codeId": "B02servotravelhomed",
+      "addressIndex": 77
+    },
+    {
+      "codeId": "resetDelay",
+      "addressIndex": 78
+    },
+    {
+      "codeId": "A01travelNegativelimit",
+      "addressIndex": 79
+    },
+    {
+      "codeId": "A01travelPositivelimit",
+      "addressIndex": 80
+    },
+    {
+      "codeId": "A01turnuplimit",
+      "addressIndex": 81
+    },
+    {
+      "codeId": "A01turndownlimit",
+      "addressIndex": 82
+    },
+    {
+      "codeId": "A02travelNegativelimit",
+      "addressIndex": 83
+    },
+    {
+      "codeId": "A02travelPositivelimit",
+      "addressIndex": 84
+    },
+    {
+      "codeId": "A02turnuplimit",
+      "addressIndex": 85
+    },
+    {
+      "codeId": "A02turndownlimit",
+      "addressIndex": 86
+    },
+    {
+      "codeId": "B01travelNegativelimit",
+      "addressIndex": 87
+    },
+    {
+      "codeId": "B01travelPositivelimit",
+      "addressIndex": 88
+    },
+    {
+      "codeId": "B02travelNegativelimit",
+      "addressIndex": 89
+    },
+    {
+      "codeId": "B02travelPositivelimit",
+      "addressIndex": 90
+    }
+  ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
new file mode 100644
index 0000000..ab5d4cd
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
@@ -0,0 +1,50 @@
+{
+   "plcAddressBegin":"DB105.0",
+   "plcAddressLenght":"12",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "OutActivate",
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "Addgoal",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "AddLength",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "AddWidth",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "AddCount",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "OutStart",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+
+   ]
+}
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
new file mode 100644
index 0000000..afbe090
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
@@ -0,0 +1,610 @@
+{
+   "plcAddressBegin":"DB100.0",
+   "plcAddressLenght":"198",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "conveyorVelocity(Max)",
+         "addressIndex":"0",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "conveyorVelocity(AutoFAST)",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "conveyorVelocity(AutoSLOW)",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "conveyorVelocity(Manual)",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "A01A02TURNJOGVelocity",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "A01A02TRAVELJOGVelocity",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "B01B02TRAVELJOGVelocity",
+          "addressIndex":"12",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "A01A02TURNPOSVelocityAUTO",
+          "addressIndex":"14",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "A01TURNPOSVelocitymanual",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+         "codeId": "A01A02TRAVELPOSVelocityAUTO",
+         "addressIndex":"18",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },
+     {
+       "codeId": "A01TRAVELPOSVelocitymanual",
+       "addressIndex":"20",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm/S"
+     },
+     {
+       "codeId": "B01B02TRAVELPOSVelocityAUTO",
+       "addressIndex":"22",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm/S"
+     },
+     {
+       "codeId": "B01TRAVELPOSVelocitymanual",
+       "addressIndex":"24",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm/S"
+     },
+     {
+       "codeId": "A01A02conveyorVelocity(Max)",
+       "addressIndex":"26",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "A01A02conveyorVelocity(AutoFAST)",
+       "addressIndex":"28",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "A01A02conveyorVelocity(AutoSLOW)",
+       "addressIndex":"30",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(Manual)",
+       "addressIndex":"32",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(Max)",
+       "addressIndex":"34",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(AutoFAST)",
+       "addressIndex":"36",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(AutoSLOW)",
+       "addressIndex":"38",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(Manual)",
+       "addressIndex":"40",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "gridspacing",
+       "addressIndex":"42",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01Spliceaddresssetting",
+       "addressIndex":"44",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02Spliceaddresssetting",
+       "addressIndex":"46",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A011#gridaddress",
+       "addressIndex":"48",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0122#gridaddress",
+       "addressIndex":"50",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0143#gridaddress",
+       "addressIndex":"52",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0164#gridaddress",
+       "addressIndex":"54",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0185#gridaddress",
+       "addressIndex":"56",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01106#gridaddress",
+       "addressIndex":"58",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01127#gridaddress",
+       "addressIndex":"60",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01148#gridaddress",
+       "addressIndex":"62",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01169#gridaddress",
+       "addressIndex":"64",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01190#gridaddress",
+       "addressIndex":"66",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A021#gridaddress",
+       "addressIndex":"68",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0222#gridaddress",
+       "addressIndex":"70",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0243#gridaddress",
+       "addressIndex":"72",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0264#gridaddress",
+       "addressIndex":"74",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0285#gridaddress",
+       "addressIndex":"76",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02106#gridaddress",
+       "addressIndex":"78",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02127#gridaddress",
+       "addressIndex":"80",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02148#gridaddress",
+       "addressIndex":"82",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02169#gridaddress",
+       "addressIndex":"84",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02190#gridaddress",
+       "addressIndex":"86",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B011#gridaddress",
+       "addressIndex":"88",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B0122#gridaddress",
+       "addressIndex":"90",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B0143#gridaddress",
+       "addressIndex":"92",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B0164#gridaddress",
+       "addressIndex":"94",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B0185#gridaddress",
+       "addressIndex":"96",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02106#gridaddress",
+       "addressIndex":"98",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02127#gridaddress",
+       "addressIndex":"100",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02148#gridaddress",
+       "addressIndex":"102",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02169#gridaddress",
+       "addressIndex":"104",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02190#gridaddress",
+       "addressIndex":"106",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01Targetgrid(Manual)",
+       "addressIndex":"108",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": " A02Targetgrid(Manual)",
+       "addressIndex":"110",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "B01Targetgrid(Manual)",
+       "addressIndex":"112",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "B02Targetgrid(Manual)",
+       "addressIndex":"114",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A01turnTargetAngle(Manual)",
+       "addressIndex":"116",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnTargetAngle(Manual)",
+       "addressIndex":"118",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A01turnAngle1",
+       "addressIndex":"120",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A01turnAngle2",
+       "addressIndex":"122",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A01turnAngle3",
+       "addressIndex":"124",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A01turnAngle4",
+       "addressIndex":"126",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnAngle1",
+       "addressIndex":"128",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnAngle2",
+       "addressIndex":"130",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnAngle3",
+       "addressIndex":"132",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnAngle4",
+       "addressIndex":"134",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "Minimumglasslength",
+       "addressIndex":"136",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Minimumglassheight",
+       "addressIndex":"138",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Maximumglasslength",
+       "addressIndex":"140",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Maximumglassheight",
+       "addressIndex":"142",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A01cellsGlassNum",
+       "addressIndex":"144",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A02cellsGlassNum",
+       "addressIndex":"146",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A01ID",
+       "addressIndex":"148",
+       "addressLenght":"14",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A02ID",
+       "addressIndex":"162",
+       "addressLenght":"14",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A02TRAVELPOSVelocitymanual",
+       "addressIndex":"176",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "B02TRAVELPOSVelocitymanual",
+       "addressIndex":"178",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Startingpositionofthefeedca",
+       "addressIndex":"180",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Targetpositionofthefeedcar",
+       "addressIndex":"182",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Lengthofincomingglass",
+       "addressIndex":"184",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Widthofincomingglass",
+       "addressIndex":"186",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Startingpositionoftheexitcar",
+       "addressIndex":"188",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     }, {
+       "codeId": "Exitcartargetposition",
+       "addressIndex":"190",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     }
+     , {
+       "codeId": "A02TURNPOSVelocitymanual",
+       "addressIndex":"192",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     }
+     , {
+       "codeId": "A01delayTime",
+       "addressIndex":"194",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     }
+
+
+   ]
+}
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
new file mode 100644
index 0000000..f3ebb33
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
@@ -0,0 +1,195 @@
+{
+   "plcAddressBegin": "DB106.0",
+   "plcAddressLenght": "66",
+   "dataType": "word",
+   "parameteInfor": [{
+         "codeId": "A01Position",
+         "addressIndex": "0",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A01FlipPosition",
+         "addressIndex": "2",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A01QuestStartPosition",
+         "addressIndex": "4",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A01EndPosition",
+         "addressIndex": "6",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "FeedCarStatus",
+         "addressIndex": "8",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02QuestOver",
+         "addressIndex": "10",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02Position",
+         "addressIndex": "12",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02FlipPosition",
+         "addressIndex": "14",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02QuestStartPosition",
+         "addressIndex": "16",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02EndPosition",
+         "addressIndex": "18",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "ExitCarStatus",
+         "addressIndex": "20",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02QuestOver",
+         "addressIndex": "22",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "FeedRequest",
+         "addressIndex": "24",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "FeedID",
+         "addressIndex": "26",
+         "addressLenght":"14", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01Position",
+         "addressIndex": "40",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01QuestPosition",
+         "addressIndex": "42",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01CurrentTaskMode",
+         "addressIndex": "44",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01CarStatus",
+         "addressIndex": "46",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01CarTaskStatus",
+         "addressIndex": "48",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02Position",
+         "addressIndex": "50",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CarCurrentTask",
+         "addressIndex": "52",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CurrentTaskMode",
+         "addressIndex": "54",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CarStatus",
+         "addressIndex": "56",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CarSaskStatus",
+         "addressIndex": "58",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01CompleteTheReport",
+         "addressIndex": "60",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CompleteTheReport",
+         "addressIndex": "62",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "OutRequest",
+         "addressIndex": "64",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      }
+   ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
new file mode 100644
index 0000000..8f9295a
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
@@ -0,0 +1,460 @@
+{
+  "plcAddressBegin": "DB102.0.0",
+  "plcAddressLenght": "112",
+  "dataType": "bit",
+  "parameteInfor": [
+    {
+      "codeId": "D01.SRdec",
+      "addressIndex": 0
+    },
+    {
+      "codeId": "D01.SRinpos",
+      "addressIndex": 1
+    },
+    {
+      "codeId": "D02.SRdec",
+      "addressIndex": 2
+    },
+    {
+      "codeId": "D02.SRinpos",
+      "addressIndex": 3
+    },
+    {
+      "codeId": "D03.SRinto",
+      "addressIndex": 4
+    },
+    {
+      "codeId": "D03.SRdec",
+      "addressIndex": 5
+    },
+    {
+      "codeId": "D03.SRinpos",
+      "addressIndex": 6
+    },
+    {
+      "codeId": "D04.SRdec",
+      "addressIndex": 7
+    },
+    {
+      "codeId": "D04.SRinpos",
+      "addressIndex": 8
+    },
+    {
+      "codeId": "D05.SRdec",
+      "addressIndex": 9
+    },
+    {
+      "codeId": "D05.SRinpos",
+      "addressIndex": 10
+    },
+    {
+      "codeId": "D06.SRdec",
+      "addressIndex": 11
+    },
+    {
+      "codeId": "D06.SRinpos",
+      "addressIndex": 12
+    },
+    {
+      "codeId": "B01.SRindec",
+      "addressIndex": 13
+    },
+    {
+      "codeId": "B01.SRininpos",
+      "addressIndex": 14
+    },
+    {
+      "codeId": "B01.SRoutdec",
+      "addressIndex": 15
+    },
+    {
+      "codeId": "B01.SRoutinpos",
+      "addressIndex": 16
+    },
+    {
+      "codeId": "B01.SRturnon",
+      "addressIndex": 17
+    },
+    {
+      "codeId": "B01.SRturnoff",
+      "addressIndex": 18
+    },
+    {
+      "codeId": "B01.SRup",
+      "addressIndex": 19
+    },
+    {
+      "codeId": "B01.SRdown",
+      "addressIndex": 20
+    },
+    {
+      "codeId": "B02.SRoutdec",
+      "addressIndex": 21
+    },
+    {
+      "codeId": "B02.SRoutinpos",
+      "addressIndex": 22
+    },
+    {
+      "codeId": "B02.SRindec",
+      "addressIndex": 23
+    },
+    {
+      "codeId": "B02.SRininpos",
+      "addressIndex": 24
+    },
+    {
+      "codeId": "B02.SRturnon",
+      "addressIndex": 25
+    },
+    {
+      "codeId": "B02.SRturnoff",
+      "addressIndex": 26
+    },
+    {
+      "codeId": "B02.SRup",
+      "addressIndex": 27
+    },
+    {
+      "codeId": "B02.SRdown",
+      "addressIndex": 28
+    },
+    {
+      "codeId": "B01.SRinsafety",
+      "addressIndex": 29
+    },
+    {
+      "codeId": "B01.SRoutsafety",
+      "addressIndex": 30
+    },
+    {
+      "codeId": "B02.SRinsafety",
+      "addressIndex": 31
+    },
+    {
+      "codeId": "SB.start(+)",
+      "addressIndex": 32
+    },
+    {
+      "codeId": "SB.stop(-)",
+      "addressIndex": 33
+    },
+    {
+      "codeId": "SB.reset",
+      "addressIndex": 34
+    },
+    {
+      "codeId": "SB.auto/manul",
+      "addressIndex": 35
+    },
+    {
+      "codeId": "D01.SB.confirm",
+      "addressIndex": 36
+    },
+    {
+      "codeId": "SB.emg",
+      "addressIndex": 37
+    },
+    {
+      "codeId": "D01.SB.start",
+      "addressIndex": 38
+    },
+    {
+      "codeId": "D06.SB.start",
+      "addressIndex": 39
+    },
+    {
+      "codeId": "B02.SRoutsafety",
+      "addressIndex": 40
+    },
+    {
+      "codeId": "SafetyDoor.requset",
+      "addressIndex": 41
+    },
+    {
+      "codeId": "SafetyDoor.confirm",
+      "addressIndex": 42
+    },
+    {
+      "codeId": "SafetyDoor.reset",
+      "addressIndex": 43
+    },
+    {
+      "codeId": "Sspce",
+      "addressIndex": 44
+    },
+    {
+      "codeId": "Sspce",
+      "addressIndex": 45
+    },
+    {
+      "codeId": "Sspce",
+      "addressIndex": 46
+    },
+    {
+      "codeId": "Sspce",
+      "addressIndex": 47
+    },
+    {
+      "codeId": "A01.SRleftdec",
+      "addressIndex": 48
+    },
+    {
+      "codeId": "A01.SRleftinpos",
+      "addressIndex": 49
+    },
+    {
+      "codeId": "A01.SRleftsafety",
+      "addressIndex": 50
+    },
+    {
+      "codeId": "A01.SRrightdec",
+      "addressIndex": 51
+    },
+    {
+      "codeId": "A01.SRrightinpos",
+      "addressIndex": 52
+    },
+    {
+      "codeId": "A01.SRrightsafety",
+      "addressIndex": 53
+    },
+    {
+      "codeId": "A01.SRturnhome",
+      "addressIndex": 54
+    },
+    {
+      "codeId": "A01.SRturnup",
+      "addressIndex": 55
+    },
+    {
+      "codeId": "A01.SRturndown",
+      "addressIndex": 56
+    },
+    {
+      "codeId": "A01.SRtravelhome",
+      "addressIndex": 57
+    },
+    {
+      "codeId": "A01.SRtravelleftdec",
+      "addressIndex": 58
+    },
+    {
+      "codeId": "A01.SRtravelleftlimit",
+      "addressIndex": 59
+    },
+    {
+      "codeId": "A01.SRtravelrightdec",
+      "addressIndex": 60
+    },
+    {
+      "codeId": "A01.SRtravelrightlimit",
+      "addressIndex": 61
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 62
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 63
+    },
+    {
+      "codeId": "A02.SRleftdec",
+      "addressIndex": 64
+    },
+    {
+      "codeId": "A02.SRleftinpos",
+      "addressIndex": 65
+    },
+    {
+      "codeId": "A02.SRleftsafety",
+      "addressIndex": 66
+    },
+    {
+      "codeId": "A02.SRrightdec",
+      "addressIndex": 67
+    },
+    {
+      "codeId": "A02.SRrightinpos",
+      "addressIndex": 68
+    },
+    {
+      "codeId": "A02.SRrightsafety",
+      "addressIndex": 69
+    },
+    {
+      "codeId": "A02.SRturnhome",
+      "addressIndex": 70
+    },
+    {
+      "codeId": "A02.SRturnup",
+      "addressIndex": 71
+    },
+    {
+      "codeId": "A02.SRturndown",
+      "addressIndex": 72
+    },
+    {
+      "codeId": "A02.SRtravelhome",
+      "addressIndex": 73
+    },
+    {
+      "codeId": "A02.SRtravelleftdec",
+      "addressIndex": 74
+    },
+    {
+      "codeId": "A02.SRtravelleftlimit",
+      "addressIndex": 75
+    },
+    {
+      "codeId": "A02.SRtravelrightdec",
+      "addressIndex": 76
+    },
+    {
+      "codeId": "A02.SRtravelrightlimit",
+      "addressIndex": 77
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 78
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 79
+    },
+    {
+      "codeId": "B01.SRorigin",
+      "addressIndex": 80
+    },
+    {
+      "codeId": "B01.SRleftlimit",
+      "addressIndex": 81
+    },
+    {
+      "codeId": "B01.SRrightlimit",
+      "addressIndex": 82
+    },
+    {
+      "codeId": "B02.SRorigin",
+      "addressIndex": 83
+    },
+    {
+      "codeId": "B02.SRleftlimit",
+      "addressIndex": 84
+    },
+    {
+      "codeId": "B02.SRrightlimit",
+      "addressIndex": 85
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 86
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 87
+    },
+    {
+      "codeId": "LED.red",
+      "addressIndex": 88
+    },
+    {
+      "codeId": "LED.green",
+      "addressIndex": 89
+    },
+    {
+      "codeId": "LED.yellow",
+      "addressIndex": 90
+    },
+    {
+      "codeId": "D01.LED.green",
+      "addressIndex": 91
+    },
+    {
+      "codeId": "D06.LED.green",
+      "addressIndex": 92
+    },
+    {
+      "codeId": "B01.YV.turn",
+      "addressIndex": 93
+    },
+    {
+      "codeId": "B01.YV.updown",
+      "addressIndex": 94
+    },
+    {
+      "codeId": "B01.YV.gassing",
+      "addressIndex": 95
+    },
+    {
+      "codeId": "B02.YV.turn",
+      "addressIndex": 96
+    },
+    {
+      "codeId": "B02.YV.updown",
+      "addressIndex": 97
+    },
+    {
+      "codeId": "B02.YV.gassing",
+      "addressIndex": 98
+    },
+    {
+      "codeId": "SafetyDoor.Led",
+      "addressIndex": 99
+    },
+    {
+      "codeId": "SafetyDoor.open",
+      "addressIndex": 100
+    },
+    {
+      "codeId": "D01SB.confirm",
+      "addressIndex": 101
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 102
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 103
+    },
+    {
+      "codeId": "A01oilPump",
+      "addressIndex": 104
+    },
+    {
+      "codeId": "A01motorCtr",
+      "addressIndex": 105
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 106
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 107
+    },
+    {
+      "codeId": "A02oilPump",
+      "addressIndex": 108
+    },
+    {
+      "codeId": "A02motorCtr",
+      "addressIndex": 109
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 110
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 111
+    }
+    ,
+    {
+      "codeId": "space",
+      "addressIndex": 111
+    }
+  ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
new file mode 100644
index 0000000..dfdbaec
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
@@ -0,0 +1,285 @@
+{
+  "plcAddressBegin": "DB103.0",
+  "plcAddressLenght": "258",
+  "dataType": "word",
+  "parameteInfor": [
+    {
+      "codeId": "D01.State",
+      "addressIndex": "0",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D02.State",
+      "addressIndex": "2",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01.State",
+      "addressIndex": "4",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02.State",
+      "addressIndex": "6",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01.State",
+      "addressIndex": "8",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02.State",
+      "addressIndex": "10",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D03.State",
+      "addressIndex": "12",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D04.State",
+      "addressIndex": "14",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D05.State",
+      "addressIndex": "16",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D06.State",
+      "addressIndex": "18",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01tavelActualPosition",
+      "addressIndex": "20",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01turnActualangle",
+      "addressIndex": "22",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02tavelActualPosition",
+      "addressIndex": "24",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02turnActualangle",
+      "addressIndex": "26",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01tavelActualPosition",
+      "addressIndex": "28",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02tavelActualPosition",
+      "addressIndex": "30",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01CurrentGrid",
+      "addressIndex": "32",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02CurrentGrid",
+      "addressIndex": "34",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01CurrentGrid",
+      "addressIndex": "36",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01TargetGrid",
+      "addressIndex": "38",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02CurrentGrid",
+      "addressIndex": "40",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02TargetGrid",
+      "addressIndex": "42",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D01ID",
+      "addressIndex": "44",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D02ID",
+      "addressIndex": "58",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D03ID",
+      "addressIndex": "72",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D04ID",
+      "addressIndex": "86",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D05ID",
+      "addressIndex": "100",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D06ID",
+      "addressIndex": "114",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A01ID1",
+      "addressIndex": "128",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A01ID2",
+      "addressIndex": "142",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A02ID1",
+      "addressIndex": "156",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A02ID2",
+      "addressIndex": "170",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "B01ID1",
+      "addressIndex": "184",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "B01ID2",
+      "addressIndex": "198",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "B02ID1",
+      "addressIndex": "212",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "B02ID2",
+      "addressIndex": "226",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A01conveyorFaultcodes",
+      "addressIndex": "240",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01turnservoFaultcodes",
+      "addressIndex": "242",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01travelservoFaultcodes",
+      "addressIndex": "244",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02conveyorFaultcodes",
+      "addressIndex": "246",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02turnservoFaultcodes",
+      "addressIndex": "248",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02travelservoFaultcodes",
+      "addressIndex": "250",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01travelservoFaultcodes",
+      "addressIndex": "252",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02travelservoFaultcodes",
+      "addressIndex": "254",
+      "addressLenght": "2",
+      "unit": ""
+    }
+    ,
+    {
+      "codeId": "Scanningguns",
+      "addressIndex": "256",
+      "addressLenght": "2",
+      "unit": ""
+    }
+    ,
+    {
+      "codeId": "Frameid",
+      "addressIndex": "270",
+      "addressLenght": "2",
+      "unit": ""
+    }
+  ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json b/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
new file mode 100644
index 0000000..263c782
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
@@ -0,0 +1,378 @@
+{
+  "plcAddressBegin": "DB101.0.0",
+  "plcAddressLenght": "93",
+  "dataType": "bit",
+  "parameteInfor": [
+    {
+      "codeId": "D01VFDconveyor",
+      "addressIndex": 0
+    },
+    {
+      "codeId": "D02VFDconveyor",
+      "addressIndex": 1
+    },
+    {
+      "codeId": "D03VFDconveyor",
+      "addressIndex": 2
+    },
+    {
+      "codeId": "D04VFDconveyor",
+      "addressIndex": 3
+    },
+    {
+      "codeId": "D05VFDconveyor",
+      "addressIndex": 4
+    },
+    {
+      "codeId": "D06VFDconveyor",
+      "addressIndex": 5
+    },
+    {
+      "codeId": "A01VFDconveyor",
+      "addressIndex": 6
+    },
+    {
+      "codeId": "A02VFDconveyor",
+      "addressIndex": 7
+    },
+    {
+      "codeId": "B01VFDconveyor",
+      "addressIndex": 8
+    },
+    {
+      "codeId": "B02VFDconveyor",
+      "addressIndex": 9
+    },
+    {
+      "codeId": "A01SERVETURN",
+      "addressIndex": 10
+    },
+    {
+      "codeId": "A02SERVETURN",
+      "addressIndex": 11
+    },
+    {
+      "codeId": "A01SERVETRAVEL",
+      "addressIndex": 12
+    },
+    {
+      "codeId": "A02SERVETRAVEL",
+      "addressIndex": 13
+    },
+    {
+      "codeId": "B01SERVETRAVEL",
+      "addressIndex": 14
+    },
+    {
+      "codeId": "B02SERVETRAVEL",
+      "addressIndex": 15
+    },
+    {
+      "codeId": "A01SERVETURNPOS",
+      "addressIndex": 16
+    },
+    {
+      "codeId": "A02SERVETURNPOS",
+      "addressIndex": 17
+    },
+    {
+      "codeId": "A01SERVETRAVELPOS",
+      "addressIndex": 18
+    },
+    {
+      "codeId": "A02SERVETRAVELPOS",
+      "addressIndex": 19
+    },
+    {
+      "codeId": "B01SERVETRAVELPOS",
+      "addressIndex": 20
+    },
+    {
+      "codeId": "B02SERVETRAVELPOS",
+      "addressIndex": 21
+    },
+    {
+      "codeId": "B01YVTURN",
+      "addressIndex": 22
+    },
+    {
+      "codeId": "B01YVUPDOWN",
+      "addressIndex": 23
+    },
+    {
+      "codeId": "B02YVTURN",
+      "addressIndex": 24
+    },
+    {
+      "codeId": "B02YVUPDOWN",
+      "addressIndex": 25
+    },
+    {
+      "codeId": "B01YVGassing",
+      "addressIndex": 26
+    },
+    {
+      "codeId": "B02YVGassing",
+      "addressIndex": 27
+    },
+    {
+      "codeId": "A01VFDconveyorreverse",
+      "addressIndex": 28
+    },
+    {
+      "codeId": "A02VFDconveyorreverse",
+      "addressIndex": 29
+    },
+    {
+      "codeId": "A01SERVETURNreset",
+      "addressIndex": 30
+    },
+    {
+      "codeId": "A01SERVETURNhome",
+      "addressIndex": 31
+    },
+    {
+      "codeId": "A01SERVETRAVELreset",
+      "addressIndex": 32
+    },
+    {
+      "codeId": "A02SERVETURNreset",
+      "addressIndex": 33
+    },
+    {
+      "codeId": "A02SERVETURNhome",
+      "addressIndex": 34
+    },
+    {
+      "codeId": "A02SERVETRAVELreset",
+      "addressIndex": 35
+    },
+    {
+      "codeId": "B01SERVETRAVELreset",
+      "addressIndex": 36
+    },
+    {
+      "codeId": "B01SERVETRAVELhome",
+      "addressIndex": 37
+    },
+    {
+      "codeId": "B02SERVETRAVELreset",
+      "addressIndex": 38
+    },
+    {
+      "codeId": "B02SERVETRAVELhome",
+      "addressIndex": 39
+    },
+    {
+      "codeId": "Manualstoragestartup",
+      "addressIndex": 40
+    },
+    {
+      "codeId": "Manualoutputstartup",
+      "addressIndex": 41
+    },
+    {
+      "codeId": "A01oilpump",
+      "addressIndex": 42
+    },
+    {
+      "codeId": "A02oilpump",
+      "addressIndex": 43
+    },
+    {
+      "codeId": "A01get1#gridaddress",
+      "addressIndex": 44
+    },
+    {
+      "codeId": "A01get22#gridaddress",
+      "addressIndex": 45
+    },
+    {
+      "codeId": "A01get43#gridaddress",
+      "addressIndex": 46
+    },
+    {
+      "codeId": "A01get64#gridaddress",
+      "addressIndex": 47
+    },
+    {
+      "codeId": "A01get85#gridaddress",
+      "addressIndex": 48
+    },
+    {
+      "codeId": "A01get106#gridaddress",
+      "addressIndex": 49
+    },
+    {
+      "codeId": "A01get127#gridaddress",
+      "addressIndex": 50
+    },
+    {
+      "codeId": "A01get148#gridaddress",
+      "addressIndex": 51
+    },
+    {
+      "codeId": "A01get169#gridaddress",
+      "addressIndex": 52
+    },
+    {
+      "codeId": "A02get190#gridaddress",
+      "addressIndex": 53
+    },
+    {
+      "codeId": "A02get1#gridaddress",
+      "addressIndex": 54
+    },
+    {
+      "codeId": "A02get22#gridaddress",
+      "addressIndex": 55
+    },
+    {
+      "codeId": "A02get43#gridaddress",
+      "addressIndex": 56
+    },
+    {
+      "codeId": "A02get64#gridaddress",
+      "addressIndex": 57
+    },
+    {
+      "codeId": "A02get85#gridaddress",
+      "addressIndex": 58
+    },
+    {
+      "codeId": "A02get106#gridaddress",
+      "addressIndex": 59
+    },
+    {
+      "codeId": "A02get127#gridaddress",
+      "addressIndex": 60
+    },
+    {
+      "codeId": "A02get148#gridaddress",
+      "addressIndex": 61
+    },
+    {
+      "codeId": "A02get169#gridaddress",
+      "addressIndex": 62
+    },
+    {
+      "codeId": "A02get190#gridaddress",
+      "addressIndex": 63
+    },
+    {
+      "codeId": "B01get1#gridaddress",
+      "addressIndex": 64
+    },
+    {
+      "codeId": "B01get22#gridaddress",
+      "addressIndex": 65
+    },
+    {
+      "codeId": "B01get43#gridaddress",
+      "addressIndex": 66
+    },
+    {
+      "codeId": "B01get64#gridaddress",
+      "addressIndex": 67
+    },
+    {
+      "codeId": "B01get85#gridaddress",
+      "addressIndex": 68
+    },
+    {
+      "codeId": "B02get106#gridaddress",
+      "addressIndex": 69
+    },
+    {
+      "codeId": "B02get127#gridaddress",
+      "addressIndex": 70
+    },
+    {
+      "codeId": "B02get148#gridaddress",
+      "addressIndex": 71
+    },
+    {
+      "codeId": "B02get169#gridaddress",
+      "addressIndex": 72
+    },
+    {
+      "codeId": "B02get190#gridaddress",
+      "addressIndex": 73
+    },
+    {
+      "codeId": "D01IDClean",
+      "addressIndex": 74
+    },
+    {
+      "codeId": "D02IDClean",
+      "addressIndex": 75
+    },
+    {
+      "codeId": "D03IDClean",
+      "addressIndex": 76
+    },
+    {
+      "codeId": "D04IDClean",
+      "addressIndex": 77
+    },
+    {
+      "codeId": "D05IDClean",
+      "addressIndex": 78
+    },
+    {
+      "codeId": "D06IDClean",
+      "addressIndex": 79
+    },
+    {
+      "codeId": "A01IDClean",
+      "addressIndex": 80
+    },
+    {
+      "codeId": "A02IDClean",
+      "addressIndex": 81
+    },
+    {
+      "codeId": "B01IDClean",
+      "addressIndex": 82
+    },
+    {
+      "codeId": "B02IDClean",
+      "addressIndex": 83
+    },
+    {
+      "codeId": "abort/resumeTasks",
+      "addressIndex": 84
+    },
+    {
+      "codeId": "A01SERVETRAVELhome",
+      "addressIndex": 85
+    },
+    {
+      "codeId": "A02SERVETRAVELhome",
+      "addressIndex": 86
+    },
+    {
+      "codeId": "A01A02travelHoming",
+      "addressIndex": 87
+    },
+    {
+      "codeId": "A01halfAutoSelect",
+      "addressIndex": 88
+    },
+    {
+      "codeId": "A02halfAutoSelect",
+      "addressIndex": 89
+    },
+    {
+      "codeId": "A02abortTasks",
+      "addressIndex": 90
+    },
+    {
+      "codeId": "emgHMI",
+      "addressIndex": 91
+    },
+    {
+      "codeId": "Scanningmethod",
+      "addressIndex": 92
+  ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json b/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
new file mode 100644
index 0000000..c270227
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
@@ -0,0 +1,51 @@
+{
+   "plcAddressBegin":"DB17.0",
+   "plcAddressLenght":"40",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "E01id",  
+         "addressIndex":"0",
+         "addressLenght":"14", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "E01Quest",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "E01Reply",
+          "addressIndex":"18",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "J01Quest",
+          "addressIndex":"20",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "J01id",
+          "addressIndex":"22",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "J01TurnGo",
+          "addressIndex":"38",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+
+
+   ]
+}
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx b/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
new file mode 100644
index 0000000..50b26dc
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx b/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
new file mode 100644
index 0000000..3922301
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx b/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
new file mode 100644
index 0000000..9862cf5
--- /dev/null
+++ b/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/src/main/resources/application.yml b/UnLoadGlassModule/src/main/resources/application.yml
index 7a2e2be..8ba75c8 100644
--- a/UnLoadGlassModule/src/main/resources/application.yml
+++ b/UnLoadGlassModule/src/main/resources/application.yml
@@ -1,20 +1,16 @@
 
 server:
-  port: 8080
+  port: 8081
   servlet:
    context-path: /mesModuleTools
 
 spring:
   datasource:
     dynamic:
-      primary: user_info #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
-        user_info:
-          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
+
         hangzhoumes:
             url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
             username: root
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json b/UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json
new file mode 100644
index 0000000..a840092
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcAlarm.json
@@ -0,0 +1,371 @@
+{
+  "plcAddressBegin": "DB104.0.0",
+  "plcAddressLenght": "91",
+  "dataType": "bit",
+  "parameteInfor": [
+    {
+      "codeId": "D01VFDerror",
+      "addressIndex": 0
+    },
+    {
+      "codeId": "D02VFDerror",
+      "addressIndex": 1
+    },
+    {
+      "codeId": "D03VFDerror",
+      "addressIndex": 2
+    },
+    {
+      "codeId": "D04VFDerror",
+      "addressIndex": 3
+    },
+    {
+      "codeId": "D05VFDerror",
+      "addressIndex": 4
+    },
+    {
+      "codeId": "D06VFDerror",
+      "addressIndex": 5
+    },
+    {
+      "codeId": "B01VFDerror",
+      "addressIndex": 6
+    },
+    {
+      "codeId": "B02VFDerror",
+      "addressIndex": 7
+    },
+    {
+      "codeId": "A01VFDerror",
+      "addressIndex": 8
+    },
+    {
+      "codeId": "A02VFDerror",
+      "addressIndex": 9
+    },
+    {
+      "codeId": "A01servoturnerror",
+      "addressIndex": 10
+    },
+    {
+      "codeId": "A02servoturnerror",
+      "addressIndex": 11
+    },
+    {
+      "codeId": "A01servotravelerror",
+      "addressIndex": 12
+    },
+    {
+      "codeId": "A02servotravelerror",
+      "addressIndex": 13
+    },
+    {
+      "codeId": "B01servotravelerror",
+      "addressIndex": 14
+    },
+    {
+      "codeId": "B02servotravelerror",
+      "addressIndex": 15
+    },
+    {
+      "codeId": "D01DECerror",
+      "addressIndex": 16
+    },
+    {
+      "codeId": "D01poserror",
+      "addressIndex": 17
+    },
+    {
+      "codeId": "D02DECerror",
+      "addressIndex": 18
+    },
+    {
+      "codeId": "D02poserror",
+      "addressIndex": 19
+    },
+    {
+      "codeId": "D03DECerror",
+      "addressIndex": 20
+    },
+    {
+      "codeId": "D03poserror",
+      "addressIndex": 21
+    },
+    {
+      "codeId": "D04DECerror",
+      "addressIndex": 22
+    },
+    {
+      "codeId": "D04poserror",
+      "addressIndex": 23
+    },
+    {
+      "codeId": "D05DECerror",
+      "addressIndex": 24
+    },
+    {
+      "codeId": "D05poserror",
+      "addressIndex": 25
+    },
+    {
+      "codeId": "D06DECerror",
+      "addressIndex": 26
+    },
+    {
+      "codeId": "D06poserror",
+      "addressIndex": 27
+    },
+    {
+      "codeId": "A01DECerror",
+      "addressIndex": 28
+    },
+    {
+      "codeId": "A01poserror",
+      "addressIndex": 29
+    },
+    {
+      "codeId": "A02DECerror",
+      "addressIndex": 30
+    },
+    {
+      "codeId": "A02poserror",
+      "addressIndex": 31
+    },
+    {
+      "codeId": "B01INDECerror",
+      "addressIndex": 32
+    },
+    {
+      "codeId": "B01INposerror",
+      "addressIndex": 33
+    },
+    {
+      "codeId": "B01OUTDECerror",
+      "addressIndex": 34
+    },
+    {
+      "codeId": "B01OUTposerror",
+      "addressIndex": 35
+    },
+    {
+      "codeId": "B02INDECerror",
+      "addressIndex": 36
+    },
+    {
+      "codeId": "B02INposerror",
+      "addressIndex": 37
+    },
+    {
+      "codeId": "B02OUTDECerror",
+      "addressIndex": 38
+    },
+    {
+      "codeId": "B02OUTposerror",
+      "addressIndex": 39
+    },
+    {
+      "codeId": "D01Scanglassexceedinglimit",
+      "addressIndex": 40
+    },
+    {
+      "codeId": "emergencystopalarm",
+      "addressIndex": 41
+    },
+    {
+      "codeId": "Moreglassthanknown",
+      "addressIndex": 42
+    },
+    {
+      "codeId": "lessglassthanknown",
+      "addressIndex": 43
+    },
+    {
+      "codeId": "D01conveyortimeoutalarm",
+      "addressIndex": 44
+    },
+    {
+      "codeId": "D02conveyortimeoutalarm",
+      "addressIndex": 45
+    },
+    {
+      "codeId": "D03conveyortimeoutalarm",
+      "addressIndex": 46
+    },
+    {
+      "codeId": "D04conveyortimeoutalarm",
+      "addressIndex": 47
+    },
+    {
+      "codeId": "D05conveyortimeoutalarm",
+      "addressIndex": 48
+    },
+    {
+      "codeId": "D06conveyortimeoutalarm",
+      "addressIndex": 49
+    },
+    {
+      "codeId": "A01conveyortimeoutalarm",
+      "addressIndex": 50
+    },
+    {
+      "codeId": "A02conveyortimeoutalarm",
+      "addressIndex": 51
+    },
+    {
+      "codeId": "B01conveyortimeoutalarm",
+      "addressIndex": 52
+    },
+    {
+      "codeId": "B02conveyortimeoutalarm",
+      "addressIndex": 53
+    },
+    {
+      "codeId": "A01conveyorLeftsafetyalarm",
+      "addressIndex": 54
+    },
+    {
+      "codeId": "A01conveyorrightsafetyalarm",
+      "addressIndex": 55
+    },
+    {
+      "codeId": "A02conveyorLeftsafetyalarm",
+      "addressIndex": 56
+    },
+    {
+      "codeId": "A02conveyorrightsafetyalarm",
+      "addressIndex": 57
+    },
+    {
+      "codeId": "1#buffersafetyalarm",
+      "addressIndex": 58
+    },
+    {
+      "codeId": "2#buffersafetyalarm",
+      "addressIndex": 59
+    },
+    {
+      "codeId": "3#buffersafetyalarm",
+      "addressIndex": 60
+    },
+    {
+      "codeId": "4#buffersafetyalarm",
+      "addressIndex": 61
+    },
+    {
+      "codeId": "A01.SRrightinposerror",
+      "addressIndex": 62
+    },
+    {
+      "codeId": "A02.SRleftinposerror",
+      "addressIndex": 63
+    },
+    {
+      "codeId": "B01.SRleftinposerror",
+      "addressIndex": 64
+    },
+    {
+      "codeId": "B01.SRleftdecerror",
+      "addressIndex": 65
+    },
+    {
+      "codeId": "B01.SRrightdecerror",
+      "addressIndex": 66
+    },
+    {
+      "codeId": "B01.SRrightinposerror",
+      "addressIndex": 67
+    },
+    {
+      "codeId": "B02.SRleftinposerror",
+      "addressIndex": 68
+    },
+    {
+      "codeId": "B02.SRleftdecerror",
+      "addressIndex": 69
+    },
+    {
+      "codeId": "B02.SRrightdecerror",
+      "addressIndex": 70
+    },
+    {
+      "codeId": "B02.SRrightinposerror",
+      "addressIndex": 71
+    },
+    {
+      "codeId": "A01servoturnhomed",
+      "addressIndex": 72
+    },
+    {
+      "codeId": "A02servoturnhomed",
+      "addressIndex": 73
+    },
+    {
+      "codeId": "A01servotravelhomed",
+      "addressIndex": 74
+    },
+    {
+      "codeId": "A02servotravelhomed",
+      "addressIndex": 75
+    },
+    {
+      "codeId": "B01servotravelhomed",
+      "addressIndex": 76
+    },
+    {
+      "codeId": "B02servotravelhomed",
+      "addressIndex": 77
+    },
+    {
+      "codeId": "resetDelay",
+      "addressIndex": 78
+    },
+    {
+      "codeId": "A01travelNegativelimit",
+      "addressIndex": 79
+    },
+    {
+      "codeId": "A01travelPositivelimit",
+      "addressIndex": 80
+    },
+    {
+      "codeId": "A01turnuplimit",
+      "addressIndex": 81
+    },
+    {
+      "codeId": "A01turndownlimit",
+      "addressIndex": 82
+    },
+    {
+      "codeId": "A02travelNegativelimit",
+      "addressIndex": 83
+    },
+    {
+      "codeId": "A02travelPositivelimit",
+      "addressIndex": 84
+    },
+    {
+      "codeId": "A02turnuplimit",
+      "addressIndex": 85
+    },
+    {
+      "codeId": "A02turndownlimit",
+      "addressIndex": 86
+    },
+    {
+      "codeId": "B01travelNegativelimit",
+      "addressIndex": 87
+    },
+    {
+      "codeId": "B01travelPositivelimit",
+      "addressIndex": 88
+    },
+    {
+      "codeId": "B02travelNegativelimit",
+      "addressIndex": 89
+    },
+    {
+      "codeId": "B02travelPositivelimit",
+      "addressIndex": 90
+    }
+  ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcMes.json b/UnLoadGlassModule/target/classes/JsonFile/PlcMes.json
new file mode 100644
index 0000000..ab5d4cd
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcMes.json
@@ -0,0 +1,50 @@
+{
+   "plcAddressBegin":"DB105.0",
+   "plcAddressLenght":"12",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "OutActivate",
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "Addgoal",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "AddLength",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "AddWidth",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "AddCount",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "OutStart",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+
+   ]
+}
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json b/UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json
new file mode 100644
index 0000000..afbe090
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcParameter.json
@@ -0,0 +1,610 @@
+{
+   "plcAddressBegin":"DB100.0",
+   "plcAddressLenght":"198",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "conveyorVelocity(Max)",
+         "addressIndex":"0",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "conveyorVelocity(AutoFAST)",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "conveyorVelocity(AutoSLOW)",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "conveyorVelocity(Manual)",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "A01A02TURNJOGVelocity",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "A01A02TRAVELJOGVelocity",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "B01B02TRAVELJOGVelocity",
+          "addressIndex":"12",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "A01A02TURNPOSVelocityAUTO",
+          "addressIndex":"14",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "A01TURNPOSVelocitymanual",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+         "codeId": "A01A02TRAVELPOSVelocityAUTO",
+         "addressIndex":"18",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },
+     {
+       "codeId": "A01TRAVELPOSVelocitymanual",
+       "addressIndex":"20",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm/S"
+     },
+     {
+       "codeId": "B01B02TRAVELPOSVelocityAUTO",
+       "addressIndex":"22",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm/S"
+     },
+     {
+       "codeId": "B01TRAVELPOSVelocitymanual",
+       "addressIndex":"24",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm/S"
+     },
+     {
+       "codeId": "A01A02conveyorVelocity(Max)",
+       "addressIndex":"26",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "A01A02conveyorVelocity(AutoFAST)",
+       "addressIndex":"28",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "A01A02conveyorVelocity(AutoSLOW)",
+       "addressIndex":"30",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(Manual)",
+       "addressIndex":"32",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(Max)",
+       "addressIndex":"34",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(AutoFAST)",
+       "addressIndex":"36",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(AutoSLOW)",
+       "addressIndex":"38",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "B01B02conveyorVelocity(Manual)",
+       "addressIndex":"40",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"m/min"
+     },
+     {
+       "codeId": "gridspacing",
+       "addressIndex":"42",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01Spliceaddresssetting",
+       "addressIndex":"44",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02Spliceaddresssetting",
+       "addressIndex":"46",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A011#gridaddress",
+       "addressIndex":"48",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0122#gridaddress",
+       "addressIndex":"50",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0143#gridaddress",
+       "addressIndex":"52",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0164#gridaddress",
+       "addressIndex":"54",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0185#gridaddress",
+       "addressIndex":"56",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01106#gridaddress",
+       "addressIndex":"58",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01127#gridaddress",
+       "addressIndex":"60",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01148#gridaddress",
+       "addressIndex":"62",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01169#gridaddress",
+       "addressIndex":"64",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01190#gridaddress",
+       "addressIndex":"66",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A021#gridaddress",
+       "addressIndex":"68",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0222#gridaddress",
+       "addressIndex":"70",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0243#gridaddress",
+       "addressIndex":"72",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0264#gridaddress",
+       "addressIndex":"74",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A0285#gridaddress",
+       "addressIndex":"76",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02106#gridaddress",
+       "addressIndex":"78",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02127#gridaddress",
+       "addressIndex":"80",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02148#gridaddress",
+       "addressIndex":"82",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02169#gridaddress",
+       "addressIndex":"84",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A02190#gridaddress",
+       "addressIndex":"86",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B011#gridaddress",
+       "addressIndex":"88",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B0122#gridaddress",
+       "addressIndex":"90",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B0143#gridaddress",
+       "addressIndex":"92",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B0164#gridaddress",
+       "addressIndex":"94",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B0185#gridaddress",
+       "addressIndex":"96",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02106#gridaddress",
+       "addressIndex":"98",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02127#gridaddress",
+       "addressIndex":"100",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02148#gridaddress",
+       "addressIndex":"102",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02169#gridaddress",
+       "addressIndex":"104",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "B02190#gridaddress",
+       "addressIndex":"106",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"mm"
+     },
+     {
+       "codeId": "A01Targetgrid(Manual)",
+       "addressIndex":"108",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": " A02Targetgrid(Manual)",
+       "addressIndex":"110",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "B01Targetgrid(Manual)",
+       "addressIndex":"112",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "B02Targetgrid(Manual)",
+       "addressIndex":"114",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A01turnTargetAngle(Manual)",
+       "addressIndex":"116",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnTargetAngle(Manual)",
+       "addressIndex":"118",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A01turnAngle1",
+       "addressIndex":"120",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A01turnAngle2",
+       "addressIndex":"122",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A01turnAngle3",
+       "addressIndex":"124",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A01turnAngle4",
+       "addressIndex":"126",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnAngle1",
+       "addressIndex":"128",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnAngle2",
+       "addressIndex":"130",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnAngle3",
+       "addressIndex":"132",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "A02turnAngle4",
+       "addressIndex":"134",
+       "addressLenght":"2",
+       "ratio":"1",
+       "unit":"掳"
+     },
+     {
+       "codeId": "Minimumglasslength",
+       "addressIndex":"136",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Minimumglassheight",
+       "addressIndex":"138",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Maximumglasslength",
+       "addressIndex":"140",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Maximumglassheight",
+       "addressIndex":"142",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A01cellsGlassNum",
+       "addressIndex":"144",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A02cellsGlassNum",
+       "addressIndex":"146",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A01ID",
+       "addressIndex":"148",
+       "addressLenght":"14",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A02ID",
+       "addressIndex":"162",
+       "addressLenght":"14",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "A02TRAVELPOSVelocitymanual",
+       "addressIndex":"176",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "B02TRAVELPOSVelocitymanual",
+       "addressIndex":"178",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Startingpositionofthefeedca",
+       "addressIndex":"180",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Targetpositionofthefeedcar",
+       "addressIndex":"182",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Lengthofincomingglass",
+       "addressIndex":"184",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Widthofincomingglass",
+       "addressIndex":"186",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     },
+     {
+       "codeId": "Startingpositionoftheexitcar",
+       "addressIndex":"188",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     }, {
+       "codeId": "Exitcartargetposition",
+       "addressIndex":"190",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     }
+     , {
+       "codeId": "A02TURNPOSVelocitymanual",
+       "addressIndex":"192",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     }
+     , {
+       "codeId": "A01delayTime",
+       "addressIndex":"194",
+       "addressLenght":"2",
+       "ratio":"1"
+
+     }
+
+
+   ]
+}
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcRead.json b/UnLoadGlassModule/target/classes/JsonFile/PlcRead.json
new file mode 100644
index 0000000..f3ebb33
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcRead.json
@@ -0,0 +1,195 @@
+{
+   "plcAddressBegin": "DB106.0",
+   "plcAddressLenght": "66",
+   "dataType": "word",
+   "parameteInfor": [{
+         "codeId": "A01Position",
+         "addressIndex": "0",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A01FlipPosition",
+         "addressIndex": "2",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A01QuestStartPosition",
+         "addressIndex": "4",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A01EndPosition",
+         "addressIndex": "6",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "FeedCarStatus",
+         "addressIndex": "8",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02QuestOver",
+         "addressIndex": "10",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02Position",
+         "addressIndex": "12",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02FlipPosition",
+         "addressIndex": "14",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02QuestStartPosition",
+         "addressIndex": "16",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02EndPosition",
+         "addressIndex": "18",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "ExitCarStatus",
+         "addressIndex": "20",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "A02QuestOver",
+         "addressIndex": "22",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "FeedRequest",
+         "addressIndex": "24",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "FeedID",
+         "addressIndex": "26",
+         "addressLenght":"14", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01Position",
+         "addressIndex": "40",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01QuestPosition",
+         "addressIndex": "42",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01CurrentTaskMode",
+         "addressIndex": "44",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01CarStatus",
+         "addressIndex": "46",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01CarTaskStatus",
+         "addressIndex": "48",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02Position",
+         "addressIndex": "50",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CarCurrentTask",
+         "addressIndex": "52",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CurrentTaskMode",
+         "addressIndex": "54",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CarStatus",
+         "addressIndex": "56",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CarSaskStatus",
+         "addressIndex": "58",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B01CompleteTheReport",
+         "addressIndex": "60",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "B02CompleteTheReport",
+         "addressIndex": "62",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+         "codeId": "OutRequest",
+         "addressIndex": "64",
+         "addressLenght":"2", 
+         "ratio":"1",
+         "unit":"m/min"    
+      }
+   ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcSign.json b/UnLoadGlassModule/target/classes/JsonFile/PlcSign.json
new file mode 100644
index 0000000..8f9295a
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcSign.json
@@ -0,0 +1,460 @@
+{
+  "plcAddressBegin": "DB102.0.0",
+  "plcAddressLenght": "112",
+  "dataType": "bit",
+  "parameteInfor": [
+    {
+      "codeId": "D01.SRdec",
+      "addressIndex": 0
+    },
+    {
+      "codeId": "D01.SRinpos",
+      "addressIndex": 1
+    },
+    {
+      "codeId": "D02.SRdec",
+      "addressIndex": 2
+    },
+    {
+      "codeId": "D02.SRinpos",
+      "addressIndex": 3
+    },
+    {
+      "codeId": "D03.SRinto",
+      "addressIndex": 4
+    },
+    {
+      "codeId": "D03.SRdec",
+      "addressIndex": 5
+    },
+    {
+      "codeId": "D03.SRinpos",
+      "addressIndex": 6
+    },
+    {
+      "codeId": "D04.SRdec",
+      "addressIndex": 7
+    },
+    {
+      "codeId": "D04.SRinpos",
+      "addressIndex": 8
+    },
+    {
+      "codeId": "D05.SRdec",
+      "addressIndex": 9
+    },
+    {
+      "codeId": "D05.SRinpos",
+      "addressIndex": 10
+    },
+    {
+      "codeId": "D06.SRdec",
+      "addressIndex": 11
+    },
+    {
+      "codeId": "D06.SRinpos",
+      "addressIndex": 12
+    },
+    {
+      "codeId": "B01.SRindec",
+      "addressIndex": 13
+    },
+    {
+      "codeId": "B01.SRininpos",
+      "addressIndex": 14
+    },
+    {
+      "codeId": "B01.SRoutdec",
+      "addressIndex": 15
+    },
+    {
+      "codeId": "B01.SRoutinpos",
+      "addressIndex": 16
+    },
+    {
+      "codeId": "B01.SRturnon",
+      "addressIndex": 17
+    },
+    {
+      "codeId": "B01.SRturnoff",
+      "addressIndex": 18
+    },
+    {
+      "codeId": "B01.SRup",
+      "addressIndex": 19
+    },
+    {
+      "codeId": "B01.SRdown",
+      "addressIndex": 20
+    },
+    {
+      "codeId": "B02.SRoutdec",
+      "addressIndex": 21
+    },
+    {
+      "codeId": "B02.SRoutinpos",
+      "addressIndex": 22
+    },
+    {
+      "codeId": "B02.SRindec",
+      "addressIndex": 23
+    },
+    {
+      "codeId": "B02.SRininpos",
+      "addressIndex": 24
+    },
+    {
+      "codeId": "B02.SRturnon",
+      "addressIndex": 25
+    },
+    {
+      "codeId": "B02.SRturnoff",
+      "addressIndex": 26
+    },
+    {
+      "codeId": "B02.SRup",
+      "addressIndex": 27
+    },
+    {
+      "codeId": "B02.SRdown",
+      "addressIndex": 28
+    },
+    {
+      "codeId": "B01.SRinsafety",
+      "addressIndex": 29
+    },
+    {
+      "codeId": "B01.SRoutsafety",
+      "addressIndex": 30
+    },
+    {
+      "codeId": "B02.SRinsafety",
+      "addressIndex": 31
+    },
+    {
+      "codeId": "SB.start(+)",
+      "addressIndex": 32
+    },
+    {
+      "codeId": "SB.stop(-)",
+      "addressIndex": 33
+    },
+    {
+      "codeId": "SB.reset",
+      "addressIndex": 34
+    },
+    {
+      "codeId": "SB.auto/manul",
+      "addressIndex": 35
+    },
+    {
+      "codeId": "D01.SB.confirm",
+      "addressIndex": 36
+    },
+    {
+      "codeId": "SB.emg",
+      "addressIndex": 37
+    },
+    {
+      "codeId": "D01.SB.start",
+      "addressIndex": 38
+    },
+    {
+      "codeId": "D06.SB.start",
+      "addressIndex": 39
+    },
+    {
+      "codeId": "B02.SRoutsafety",
+      "addressIndex": 40
+    },
+    {
+      "codeId": "SafetyDoor.requset",
+      "addressIndex": 41
+    },
+    {
+      "codeId": "SafetyDoor.confirm",
+      "addressIndex": 42
+    },
+    {
+      "codeId": "SafetyDoor.reset",
+      "addressIndex": 43
+    },
+    {
+      "codeId": "Sspce",
+      "addressIndex": 44
+    },
+    {
+      "codeId": "Sspce",
+      "addressIndex": 45
+    },
+    {
+      "codeId": "Sspce",
+      "addressIndex": 46
+    },
+    {
+      "codeId": "Sspce",
+      "addressIndex": 47
+    },
+    {
+      "codeId": "A01.SRleftdec",
+      "addressIndex": 48
+    },
+    {
+      "codeId": "A01.SRleftinpos",
+      "addressIndex": 49
+    },
+    {
+      "codeId": "A01.SRleftsafety",
+      "addressIndex": 50
+    },
+    {
+      "codeId": "A01.SRrightdec",
+      "addressIndex": 51
+    },
+    {
+      "codeId": "A01.SRrightinpos",
+      "addressIndex": 52
+    },
+    {
+      "codeId": "A01.SRrightsafety",
+      "addressIndex": 53
+    },
+    {
+      "codeId": "A01.SRturnhome",
+      "addressIndex": 54
+    },
+    {
+      "codeId": "A01.SRturnup",
+      "addressIndex": 55
+    },
+    {
+      "codeId": "A01.SRturndown",
+      "addressIndex": 56
+    },
+    {
+      "codeId": "A01.SRtravelhome",
+      "addressIndex": 57
+    },
+    {
+      "codeId": "A01.SRtravelleftdec",
+      "addressIndex": 58
+    },
+    {
+      "codeId": "A01.SRtravelleftlimit",
+      "addressIndex": 59
+    },
+    {
+      "codeId": "A01.SRtravelrightdec",
+      "addressIndex": 60
+    },
+    {
+      "codeId": "A01.SRtravelrightlimit",
+      "addressIndex": 61
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 62
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 63
+    },
+    {
+      "codeId": "A02.SRleftdec",
+      "addressIndex": 64
+    },
+    {
+      "codeId": "A02.SRleftinpos",
+      "addressIndex": 65
+    },
+    {
+      "codeId": "A02.SRleftsafety",
+      "addressIndex": 66
+    },
+    {
+      "codeId": "A02.SRrightdec",
+      "addressIndex": 67
+    },
+    {
+      "codeId": "A02.SRrightinpos",
+      "addressIndex": 68
+    },
+    {
+      "codeId": "A02.SRrightsafety",
+      "addressIndex": 69
+    },
+    {
+      "codeId": "A02.SRturnhome",
+      "addressIndex": 70
+    },
+    {
+      "codeId": "A02.SRturnup",
+      "addressIndex": 71
+    },
+    {
+      "codeId": "A02.SRturndown",
+      "addressIndex": 72
+    },
+    {
+      "codeId": "A02.SRtravelhome",
+      "addressIndex": 73
+    },
+    {
+      "codeId": "A02.SRtravelleftdec",
+      "addressIndex": 74
+    },
+    {
+      "codeId": "A02.SRtravelleftlimit",
+      "addressIndex": 75
+    },
+    {
+      "codeId": "A02.SRtravelrightdec",
+      "addressIndex": 76
+    },
+    {
+      "codeId": "A02.SRtravelrightlimit",
+      "addressIndex": 77
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 78
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 79
+    },
+    {
+      "codeId": "B01.SRorigin",
+      "addressIndex": 80
+    },
+    {
+      "codeId": "B01.SRleftlimit",
+      "addressIndex": 81
+    },
+    {
+      "codeId": "B01.SRrightlimit",
+      "addressIndex": 82
+    },
+    {
+      "codeId": "B02.SRorigin",
+      "addressIndex": 83
+    },
+    {
+      "codeId": "B02.SRleftlimit",
+      "addressIndex": 84
+    },
+    {
+      "codeId": "B02.SRrightlimit",
+      "addressIndex": 85
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 86
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 87
+    },
+    {
+      "codeId": "LED.red",
+      "addressIndex": 88
+    },
+    {
+      "codeId": "LED.green",
+      "addressIndex": 89
+    },
+    {
+      "codeId": "LED.yellow",
+      "addressIndex": 90
+    },
+    {
+      "codeId": "D01.LED.green",
+      "addressIndex": 91
+    },
+    {
+      "codeId": "D06.LED.green",
+      "addressIndex": 92
+    },
+    {
+      "codeId": "B01.YV.turn",
+      "addressIndex": 93
+    },
+    {
+      "codeId": "B01.YV.updown",
+      "addressIndex": 94
+    },
+    {
+      "codeId": "B01.YV.gassing",
+      "addressIndex": 95
+    },
+    {
+      "codeId": "B02.YV.turn",
+      "addressIndex": 96
+    },
+    {
+      "codeId": "B02.YV.updown",
+      "addressIndex": 97
+    },
+    {
+      "codeId": "B02.YV.gassing",
+      "addressIndex": 98
+    },
+    {
+      "codeId": "SafetyDoor.Led",
+      "addressIndex": 99
+    },
+    {
+      "codeId": "SafetyDoor.open",
+      "addressIndex": 100
+    },
+    {
+      "codeId": "D01SB.confirm",
+      "addressIndex": 101
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 102
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 103
+    },
+    {
+      "codeId": "A01oilPump",
+      "addressIndex": 104
+    },
+    {
+      "codeId": "A01motorCtr",
+      "addressIndex": 105
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 106
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 107
+    },
+    {
+      "codeId": "A02oilPump",
+      "addressIndex": 108
+    },
+    {
+      "codeId": "A02motorCtr",
+      "addressIndex": 109
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 110
+    },
+    {
+      "codeId": "space",
+      "addressIndex": 111
+    }
+    ,
+    {
+      "codeId": "space",
+      "addressIndex": 111
+    }
+  ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcState.json b/UnLoadGlassModule/target/classes/JsonFile/PlcState.json
new file mode 100644
index 0000000..dfdbaec
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcState.json
@@ -0,0 +1,285 @@
+{
+  "plcAddressBegin": "DB103.0",
+  "plcAddressLenght": "258",
+  "dataType": "word",
+  "parameteInfor": [
+    {
+      "codeId": "D01.State",
+      "addressIndex": "0",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D02.State",
+      "addressIndex": "2",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01.State",
+      "addressIndex": "4",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02.State",
+      "addressIndex": "6",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01.State",
+      "addressIndex": "8",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02.State",
+      "addressIndex": "10",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D03.State",
+      "addressIndex": "12",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D04.State",
+      "addressIndex": "14",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D05.State",
+      "addressIndex": "16",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D06.State",
+      "addressIndex": "18",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01tavelActualPosition",
+      "addressIndex": "20",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01turnActualangle",
+      "addressIndex": "22",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02tavelActualPosition",
+      "addressIndex": "24",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02turnActualangle",
+      "addressIndex": "26",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01tavelActualPosition",
+      "addressIndex": "28",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02tavelActualPosition",
+      "addressIndex": "30",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01CurrentGrid",
+      "addressIndex": "32",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02CurrentGrid",
+      "addressIndex": "34",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01CurrentGrid",
+      "addressIndex": "36",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01TargetGrid",
+      "addressIndex": "38",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02CurrentGrid",
+      "addressIndex": "40",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02TargetGrid",
+      "addressIndex": "42",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "D01ID",
+      "addressIndex": "44",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D02ID",
+      "addressIndex": "58",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D03ID",
+      "addressIndex": "72",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D04ID",
+      "addressIndex": "86",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D05ID",
+      "addressIndex": "100",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "D06ID",
+      "addressIndex": "114",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A01ID1",
+      "addressIndex": "128",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A01ID2",
+      "addressIndex": "142",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A02ID1",
+      "addressIndex": "156",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A02ID2",
+      "addressIndex": "170",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "B01ID1",
+      "addressIndex": "184",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "B01ID2",
+      "addressIndex": "198",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "B02ID1",
+      "addressIndex": "212",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "B02ID2",
+      "addressIndex": "226",
+      "addressLenght": "14",
+      "unit": ""
+    },
+    {
+      "codeId": "A01conveyorFaultcodes",
+      "addressIndex": "240",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01turnservoFaultcodes",
+      "addressIndex": "242",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A01travelservoFaultcodes",
+      "addressIndex": "244",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02conveyorFaultcodes",
+      "addressIndex": "246",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02turnservoFaultcodes",
+      "addressIndex": "248",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "A02travelservoFaultcodes",
+      "addressIndex": "250",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B01travelservoFaultcodes",
+      "addressIndex": "252",
+      "addressLenght": "2",
+      "unit": ""
+    },
+    {
+      "codeId": "B02travelservoFaultcodes",
+      "addressIndex": "254",
+      "addressLenght": "2",
+      "unit": ""
+    }
+    ,
+    {
+      "codeId": "Scanningguns",
+      "addressIndex": "256",
+      "addressLenght": "2",
+      "unit": ""
+    }
+    ,
+    {
+      "codeId": "Frameid",
+      "addressIndex": "270",
+      "addressLenght": "2",
+      "unit": ""
+    }
+  ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/PlcTest.json b/UnLoadGlassModule/target/classes/JsonFile/PlcTest.json
new file mode 100644
index 0000000..263c782
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/PlcTest.json
@@ -0,0 +1,378 @@
+{
+  "plcAddressBegin": "DB101.0.0",
+  "plcAddressLenght": "93",
+  "dataType": "bit",
+  "parameteInfor": [
+    {
+      "codeId": "D01VFDconveyor",
+      "addressIndex": 0
+    },
+    {
+      "codeId": "D02VFDconveyor",
+      "addressIndex": 1
+    },
+    {
+      "codeId": "D03VFDconveyor",
+      "addressIndex": 2
+    },
+    {
+      "codeId": "D04VFDconveyor",
+      "addressIndex": 3
+    },
+    {
+      "codeId": "D05VFDconveyor",
+      "addressIndex": 4
+    },
+    {
+      "codeId": "D06VFDconveyor",
+      "addressIndex": 5
+    },
+    {
+      "codeId": "A01VFDconveyor",
+      "addressIndex": 6
+    },
+    {
+      "codeId": "A02VFDconveyor",
+      "addressIndex": 7
+    },
+    {
+      "codeId": "B01VFDconveyor",
+      "addressIndex": 8
+    },
+    {
+      "codeId": "B02VFDconveyor",
+      "addressIndex": 9
+    },
+    {
+      "codeId": "A01SERVETURN",
+      "addressIndex": 10
+    },
+    {
+      "codeId": "A02SERVETURN",
+      "addressIndex": 11
+    },
+    {
+      "codeId": "A01SERVETRAVEL",
+      "addressIndex": 12
+    },
+    {
+      "codeId": "A02SERVETRAVEL",
+      "addressIndex": 13
+    },
+    {
+      "codeId": "B01SERVETRAVEL",
+      "addressIndex": 14
+    },
+    {
+      "codeId": "B02SERVETRAVEL",
+      "addressIndex": 15
+    },
+    {
+      "codeId": "A01SERVETURNPOS",
+      "addressIndex": 16
+    },
+    {
+      "codeId": "A02SERVETURNPOS",
+      "addressIndex": 17
+    },
+    {
+      "codeId": "A01SERVETRAVELPOS",
+      "addressIndex": 18
+    },
+    {
+      "codeId": "A02SERVETRAVELPOS",
+      "addressIndex": 19
+    },
+    {
+      "codeId": "B01SERVETRAVELPOS",
+      "addressIndex": 20
+    },
+    {
+      "codeId": "B02SERVETRAVELPOS",
+      "addressIndex": 21
+    },
+    {
+      "codeId": "B01YVTURN",
+      "addressIndex": 22
+    },
+    {
+      "codeId": "B01YVUPDOWN",
+      "addressIndex": 23
+    },
+    {
+      "codeId": "B02YVTURN",
+      "addressIndex": 24
+    },
+    {
+      "codeId": "B02YVUPDOWN",
+      "addressIndex": 25
+    },
+    {
+      "codeId": "B01YVGassing",
+      "addressIndex": 26
+    },
+    {
+      "codeId": "B02YVGassing",
+      "addressIndex": 27
+    },
+    {
+      "codeId": "A01VFDconveyorreverse",
+      "addressIndex": 28
+    },
+    {
+      "codeId": "A02VFDconveyorreverse",
+      "addressIndex": 29
+    },
+    {
+      "codeId": "A01SERVETURNreset",
+      "addressIndex": 30
+    },
+    {
+      "codeId": "A01SERVETURNhome",
+      "addressIndex": 31
+    },
+    {
+      "codeId": "A01SERVETRAVELreset",
+      "addressIndex": 32
+    },
+    {
+      "codeId": "A02SERVETURNreset",
+      "addressIndex": 33
+    },
+    {
+      "codeId": "A02SERVETURNhome",
+      "addressIndex": 34
+    },
+    {
+      "codeId": "A02SERVETRAVELreset",
+      "addressIndex": 35
+    },
+    {
+      "codeId": "B01SERVETRAVELreset",
+      "addressIndex": 36
+    },
+    {
+      "codeId": "B01SERVETRAVELhome",
+      "addressIndex": 37
+    },
+    {
+      "codeId": "B02SERVETRAVELreset",
+      "addressIndex": 38
+    },
+    {
+      "codeId": "B02SERVETRAVELhome",
+      "addressIndex": 39
+    },
+    {
+      "codeId": "Manualstoragestartup",
+      "addressIndex": 40
+    },
+    {
+      "codeId": "Manualoutputstartup",
+      "addressIndex": 41
+    },
+    {
+      "codeId": "A01oilpump",
+      "addressIndex": 42
+    },
+    {
+      "codeId": "A02oilpump",
+      "addressIndex": 43
+    },
+    {
+      "codeId": "A01get1#gridaddress",
+      "addressIndex": 44
+    },
+    {
+      "codeId": "A01get22#gridaddress",
+      "addressIndex": 45
+    },
+    {
+      "codeId": "A01get43#gridaddress",
+      "addressIndex": 46
+    },
+    {
+      "codeId": "A01get64#gridaddress",
+      "addressIndex": 47
+    },
+    {
+      "codeId": "A01get85#gridaddress",
+      "addressIndex": 48
+    },
+    {
+      "codeId": "A01get106#gridaddress",
+      "addressIndex": 49
+    },
+    {
+      "codeId": "A01get127#gridaddress",
+      "addressIndex": 50
+    },
+    {
+      "codeId": "A01get148#gridaddress",
+      "addressIndex": 51
+    },
+    {
+      "codeId": "A01get169#gridaddress",
+      "addressIndex": 52
+    },
+    {
+      "codeId": "A02get190#gridaddress",
+      "addressIndex": 53
+    },
+    {
+      "codeId": "A02get1#gridaddress",
+      "addressIndex": 54
+    },
+    {
+      "codeId": "A02get22#gridaddress",
+      "addressIndex": 55
+    },
+    {
+      "codeId": "A02get43#gridaddress",
+      "addressIndex": 56
+    },
+    {
+      "codeId": "A02get64#gridaddress",
+      "addressIndex": 57
+    },
+    {
+      "codeId": "A02get85#gridaddress",
+      "addressIndex": 58
+    },
+    {
+      "codeId": "A02get106#gridaddress",
+      "addressIndex": 59
+    },
+    {
+      "codeId": "A02get127#gridaddress",
+      "addressIndex": 60
+    },
+    {
+      "codeId": "A02get148#gridaddress",
+      "addressIndex": 61
+    },
+    {
+      "codeId": "A02get169#gridaddress",
+      "addressIndex": 62
+    },
+    {
+      "codeId": "A02get190#gridaddress",
+      "addressIndex": 63
+    },
+    {
+      "codeId": "B01get1#gridaddress",
+      "addressIndex": 64
+    },
+    {
+      "codeId": "B01get22#gridaddress",
+      "addressIndex": 65
+    },
+    {
+      "codeId": "B01get43#gridaddress",
+      "addressIndex": 66
+    },
+    {
+      "codeId": "B01get64#gridaddress",
+      "addressIndex": 67
+    },
+    {
+      "codeId": "B01get85#gridaddress",
+      "addressIndex": 68
+    },
+    {
+      "codeId": "B02get106#gridaddress",
+      "addressIndex": 69
+    },
+    {
+      "codeId": "B02get127#gridaddress",
+      "addressIndex": 70
+    },
+    {
+      "codeId": "B02get148#gridaddress",
+      "addressIndex": 71
+    },
+    {
+      "codeId": "B02get169#gridaddress",
+      "addressIndex": 72
+    },
+    {
+      "codeId": "B02get190#gridaddress",
+      "addressIndex": 73
+    },
+    {
+      "codeId": "D01IDClean",
+      "addressIndex": 74
+    },
+    {
+      "codeId": "D02IDClean",
+      "addressIndex": 75
+    },
+    {
+      "codeId": "D03IDClean",
+      "addressIndex": 76
+    },
+    {
+      "codeId": "D04IDClean",
+      "addressIndex": 77
+    },
+    {
+      "codeId": "D05IDClean",
+      "addressIndex": 78
+    },
+    {
+      "codeId": "D06IDClean",
+      "addressIndex": 79
+    },
+    {
+      "codeId": "A01IDClean",
+      "addressIndex": 80
+    },
+    {
+      "codeId": "A02IDClean",
+      "addressIndex": 81
+    },
+    {
+      "codeId": "B01IDClean",
+      "addressIndex": 82
+    },
+    {
+      "codeId": "B02IDClean",
+      "addressIndex": 83
+    },
+    {
+      "codeId": "abort/resumeTasks",
+      "addressIndex": 84
+    },
+    {
+      "codeId": "A01SERVETRAVELhome",
+      "addressIndex": 85
+    },
+    {
+      "codeId": "A02SERVETRAVELhome",
+      "addressIndex": 86
+    },
+    {
+      "codeId": "A01A02travelHoming",
+      "addressIndex": 87
+    },
+    {
+      "codeId": "A01halfAutoSelect",
+      "addressIndex": 88
+    },
+    {
+      "codeId": "A02halfAutoSelect",
+      "addressIndex": 89
+    },
+    {
+      "codeId": "A02abortTasks",
+      "addressIndex": 90
+    },
+    {
+      "codeId": "emgHMI",
+      "addressIndex": 91
+    },
+    {
+      "codeId": "Scanningmethod",
+      "addressIndex": 92
+  ]
+}
\ No newline at end of file
diff --git a/UnLoadGlassModule/target/classes/JsonFile/Plcframe.json b/UnLoadGlassModule/target/classes/JsonFile/Plcframe.json
new file mode 100644
index 0000000..c270227
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/Plcframe.json
@@ -0,0 +1,51 @@
+{
+   "plcAddressBegin":"DB17.0",
+   "plcAddressLenght":"40",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "E01id",  
+         "addressIndex":"0",
+         "addressLenght":"14", 
+         "ratio":"1",
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "E01Quest",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "E01Reply",
+          "addressIndex":"18",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "J01Quest",
+          "addressIndex":"20",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "J01id",
+          "addressIndex":"22",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "J01TurnGo",
+          "addressIndex":"38",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+
+
+   ]
+}
diff --git a/UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx b/UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx
new file mode 100644
index 0000000..50b26dc
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/alarm.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/target/classes/JsonFile/sign.xlsx b/UnLoadGlassModule/target/classes/JsonFile/sign.xlsx
new file mode 100644
index 0000000..3922301
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/sign.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/target/classes/JsonFile/test.xlsx b/UnLoadGlassModule/target/classes/JsonFile/test.xlsx
new file mode 100644
index 0000000..9862cf5
--- /dev/null
+++ b/UnLoadGlassModule/target/classes/JsonFile/test.xlsx
Binary files differ
diff --git a/UnLoadGlassModule/target/classes/application.yml b/UnLoadGlassModule/target/classes/application.yml
index 7a2e2be..8ba75c8 100644
--- a/UnLoadGlassModule/target/classes/application.yml
+++ b/UnLoadGlassModule/target/classes/application.yml
@@ -1,20 +1,16 @@
 
 server:
-  port: 8080
+  port: 8081
   servlet:
    context-path: /mesModuleTools
 
 spring:
   datasource:
     dynamic:
-      primary: user_info #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
-        user_info:
-          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
+
         hangzhoumes:
             url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
             username: root
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..295218b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>groupId</groupId>
+    <artifactId>HangZhouMes</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    
+</project>
\ No newline at end of file

--
Gitblit v1.8.0