zenglf
2023-09-28 997835429a1d66643364091e8437ebbbeb8ff97a
Merge remote-tracking branch 'origin/master' into develop
已重命名1个文件
已添加2个文件
已修改77个文件
已复制2个文件
已删除2个文件
2270 ■■■■ 文件已修改
.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 144 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/static/假期管理.xls 补丁 | 查看 | 原始文档 | blame | 历史
public/static/加工数量管理.xls 补丁 | 查看 | 原始文档 | blame | 历史
public/static/合格率管理.xls 补丁 | 查看 | 原始文档 | blame | 历史
public/static/标准加工时间.xls 补丁 | 查看 | 原始文档 | blame | 历史
public/static/计划停机.xls 补丁 | 查看 | 原始文档 | blame | 历史
public/static/计划停机管理.xls 补丁 | 查看 | 原始文档 | blame | 历史
public/static/非计划停机.xls 补丁 | 查看 | 原始文档 | blame | 历史
public/static/非计划停机管理.xls 补丁 | 查看 | 原始文档 | blame | 历史
src/api/mdc.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/jeecgbiz/JSelectEquipmentProduction.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table2excel/table2excel.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/config/router.config.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mixins/JeecgListMixin.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TestWorkshop.vue 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/Analysis.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/jeecg/modules/JeecgDemoModal.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/AlarmManager.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/EquipmentList.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/MdcDriveTypeParamConfigList.vue 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/MdcplancloseList.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/DepartList/DepartListContent/DepartList.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/DepartList/DepartListContent/DepartModel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/DepartList/DepartListContent/TierModel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/DepartList/DepartListTree/modules/DepartTree/TierModel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/EquipmentList/UserModal.vue 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/EquipmentTypeList/MdcEquipmentTypeForm.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/StatisticalAnalysis/StatisticalAnalysisMain.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/StatisticsChart/StatisticsLegend.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/alarmAnalysis/alarmAnalysisMain.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/alarmManager/alarmManagerEdit.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/alarmManager/alarmManagerForm.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysismain.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarAddCon.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarList.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarListModel.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarModel.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceLog/LogInfo.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceLog/WorkChartModel.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceManager/TierModel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceRepair/DeviceRepairList.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceRepair/DeviceRepairListModel.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceRepair/DeviceRepairModel.vue 248 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceRepair/DeviceRepairModelAdd.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/deviceRepair/DeviceRepairModelEdit.vue 259 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/equipmentAvailCompare/equipmentAvailCompareMain.vue 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/equipmentDayAvail/equipmentDayAvailMain.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcDriveTypeParamConfig/MdcDriveTypeParamConfigForm.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcDriveTypeParamConfig/MdcDriveTypeParamConfigModal.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcPassRate/mdcPassRateEdit.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcPassRate/mdcPassRateModal.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcUtilizationRate/MdcUtilizationRateModel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/openRateFractionAnalysis/openRateFractionAnalysisMain.vue 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/openRateTrendAnalysis/openRateTrendAnalysisMain.vue 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/shift/ShiftInfo.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/shift/ShiftInfoModel.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/shift/ShiftSystem.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/shift/ShiftSystemModel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/common/BaseTree.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -1,4 +1,4 @@
NODE_ENV=development
VUE_APP_API_BASE_URL=http://127.0.0.1:8080
VUE_APP_API_BASE_URL=http://192.168.0.95:9999
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
package-lock.json
@@ -26881,6 +26881,18 @@
          "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==",
          "dev": true
        },
        "mini-css-extract-plugin": {
          "version": "0.8.2",
          "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz",
          "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==",
          "dev": true,
          "requires": {
            "loader-utils": "^1.1.0",
            "normalize-url": "1.9.1",
            "schema-utils": "^1.0.0",
            "webpack-sources": "^1.1.0"
          }
        },
        "ms": {
          "version": "2.1.2",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -27815,6 +27827,41 @@
      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
      "dev": true,
      "requires": {}
    },
    "ajv-formats": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
      "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
      "dev": true,
      "requires": {
        "ajv": "^8.0.0"
      },
      "dependencies": {
        "ajv": {
          "version": "8.12.0",
          "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
          "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
          "dev": true,
          "requires": {
            "fast-deep-equal": "^3.1.1",
            "json-schema-traverse": "^1.0.0",
            "require-from-string": "^2.0.2",
            "uri-js": "^4.2.2"
          }
        },
        "json-schema-traverse": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
          "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
          "dev": true
        },
        "require-from-string": {
          "version": "2.0.2",
          "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
          "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
          "dev": true
        }
      }
    },
    "ajv-keywords": {
      "version": "3.5.2",
@@ -36305,26 +36352,63 @@
      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
    },
    "mini-css-extract-plugin": {
      "version": "0.8.2",
      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz",
      "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==",
      "version": "2.7.6",
      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz",
      "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==",
      "dev": true,
      "requires": {
        "loader-utils": "^1.1.0",
        "normalize-url": "1.9.1",
        "schema-utils": "^1.0.0",
        "webpack-sources": "^1.1.0"
        "schema-utils": "^4.0.0"
      },
      "dependencies": {
        "schema-utils": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
        "@types/json-schema": {
          "version": "7.0.12",
          "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
          "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
          "dev": true
        },
        "ajv": {
          "version": "8.12.0",
          "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
          "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
          "dev": true,
          "requires": {
            "ajv": "^6.1.0",
            "ajv-errors": "^1.0.0",
            "ajv-keywords": "^3.1.0"
            "fast-deep-equal": "^3.1.1",
            "json-schema-traverse": "^1.0.0",
            "require-from-string": "^2.0.2",
            "uri-js": "^4.2.2"
          }
        },
        "ajv-keywords": {
          "version": "5.1.0",
          "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
          "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
          "dev": true,
          "requires": {
            "fast-deep-equal": "^3.1.3"
          }
        },
        "json-schema-traverse": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
          "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
          "dev": true
        },
        "require-from-string": {
          "version": "2.0.2",
          "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
          "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
          "dev": true
        },
        "schema-utils": {
          "version": "4.2.0",
          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
          "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
          "dev": true,
          "requires": {
            "@types/json-schema": "^7.0.9",
            "ajv": "^8.9.0",
            "ajv-formats": "^2.1.1",
            "ajv-keywords": "^5.1.0"
          }
        }
      }
@@ -39817,6 +39901,14 @@
      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
    },
    "sass-loader": {
      "version": "13.3.2",
      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz",
      "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==",
      "requires": {
        "neo-async": "^2.6.2"
      }
    },
    "sax": {
      "version": "1.2.4",
      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
@@ -40723,13 +40815,9 @@
      "dev": true
    },
    "style-loader": {
      "version": "0.19.1",
      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz",
      "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==",
      "requires": {
        "loader-utils": "^1.0.2",
        "schema-utils": "^0.3.0"
      }
      "version": "3.3.3",
      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz",
      "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw=="
    },
    "stylehacks": {
      "version": "4.0.3",
@@ -41754,6 +41842,11 @@
        "lodash.find": "^4.6.0"
      }
    },
    "vue-calendar-component": {
      "version": "2.8.2",
      "resolved": "https://registry.npmjs.org/vue-calendar-component/-/vue-calendar-component-2.8.2.tgz",
      "integrity": "sha512-BJh7xOBzM7QVcapcN4EbPQ1eZ8Pii1/oy+dzqjZTilRSIDD7SRPdFpnUJwZvs8lCrhtBAyJbYFsdm2SogXWHVQ=="
    },
    "vue-cropper": {
      "version": "0.5.4",
      "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.5.4.tgz",
@@ -42245,6 +42338,15 @@
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
        },
        "style-loader": {
          "version": "0.19.1",
          "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz",
          "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==",
          "requires": {
            "loader-utils": "^1.0.2",
            "schema-utils": "^0.3.0"
          }
        },
        "supports-color": {
          "version": "5.5.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
package.json
@@ -12,6 +12,7 @@
  "dependencies": {
    "@antv/data-set": "^0.11.4",
    "@jeecg/antd-online-mini": "3.0.0-RC",
    "@jiaminghi/data-view": "^2.10.0",
    "@tinymce/tinymce-vue": "2.1.0",
    "@toast-ui/editor": "^2.1.2",
    "ali-oss": "^6.17.1",
@@ -33,6 +34,8 @@
    "md5": "^2.2.1",
    "nprogress": "^0.2.0",
    "qs": "^6.11.1",
    "sass-loader": "^13.3.2",
    "style-loader": "^3.3.3",
    "tinymce": "5.4.1",
    "viser-vue": "^2.4.8",
    "vue": "^2.6.10",
@@ -47,7 +50,7 @@
    "vue-print-nb-jeecg": "^1.0.9",
    "vue-router": "^3.0.1",
    "vue-splitpane": "^1.0.4",
    "vuedraggable": "^2.20.0",
    "vuedraggable": "2.20.0",
    "vuex": "^3.1.0",
    "vxe-table": "2.9.13",
    "vxe-table-plugin-antd": "1.8.10",
public/static/¼ÙÆÚ¹ÜÀí.xls
Binary files differ
public/static/¼Ó¹¤ÊýÁ¿¹ÜÀí.xls
Binary files differ
public/static/ºÏ¸ñÂʹÜÀí.xls
Binary files differ
public/static/±ê×¼¼Ó¹¤Ê±¼ä.xls
Binary files differ
public/static/¼Æ»®Í£»ú.xls
Binary files differ
public/static/¼Æ»®Í£»ú¹ÜÀí.xls
copy from "public/static/\345\212\240\345\267\245\346\225\260\351\207\217.xls" copy to "public/static/\350\256\241\345\210\222\345\201\234\346\234\272\347\256\241\347\220\206.xls" Binary files differ
public/static/·Ç¼Æ»®Í£»ú.xls
Binary files differ
public/static/·Ç¼Æ»®Í£»ú¹ÜÀí.xls
copy from "public/static/\345\212\240\345\267\245\346\225\260\351\207\217.xls" copy to "public/static/\351\235\236\350\256\241\345\210\222\345\201\234\346\234\272\347\256\241\347\220\206.xls" Binary files differ
src/api/mdc.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
import { getAction, deleteAction, putAction, postAction, httpAction } from '@/api/manage'
export default {
//  -------------------------------------驱动参数管理页面----------------------------------------
//  èŽ·å–æŽ§åˆ¶ç³»ç»Ÿç±»åž‹
  getDriveTypeApi:()=>getAction('/mdc/mdcDriveTypeParamConfig/getDriveParamOptions')
}
src/components/jeecgbiz/JSelectEquipmentProduction.vue
@@ -3,7 +3,7 @@
    <!---->
    <a-input @click="openModal" placeholder="请点击选择车间" v-model="textVals" readOnly :disabled="disabled">
      <a-icon slot="prefix" type="cluster" title="车间选择控件"/>
      <a-icon v-if="storeVals" slot="suffix" type="close-circle" @click="handleEmpty" title="清空"/>
      <a-icon v-if="storeVals&&!disabled" slot="suffix" type="close-circle" @click="handleEmpty" title="清空"/>
    </a-input>
    <j-select-equipment-production-modal
      ref="innerDepartSelectModal"
src/components/table2excel/table2excel.js
@@ -3,7 +3,6 @@
import jQuery from 'jquery'
(function ( $, window, document, undefined ) {
  var pluginName = "table2excel",
    defaults = {
      exclude: ".noExl",
      name: "Table2Excel",
@@ -253,7 +252,6 @@
        $.data( e, "plugin_" + pluginName, new Plugin( this, options ) );
      }
    });
    // chain jQuery functions
    return e;
  };
src/config/router.config.js
@@ -360,7 +360,6 @@
      },
    ]
  },
  {
    path: '/test',
    component: BlankLayout,
@@ -374,6 +373,10 @@
    ]
  },
  {
    path:'/testWorkshop',
    component:()=>import('@/views/TestWorkshop.vue')
  },
  {
    path: '/404',
    component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
  },
src/main.js
@@ -68,6 +68,9 @@
  right:'100px'
})
// å°†è‡ªåŠ¨æ³¨å†Œæ‰€æœ‰ç»„ä»¶ä¸ºå…¨å±€ç»„ä»¶
import dataV from '@jiaminghi/data-view'
Vue.use(dataV)
// import 'echarts-liquidfill'
Vue.prototype.$echarts = echarts
@@ -93,6 +96,9 @@
  new Vue({
    router,
    store,
    beforeCreate() {
      Vue.prototype.$bus = new Vue()
    },
    mounted () {
      store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
      store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))
src/mixins/JeecgListMixin.js
@@ -81,11 +81,10 @@
        this.ipagination.current = 1;
      }
      var params = this.getQueryParams();//查询条件
      console.log('params',params)
      if(!params){
        return false;
      }
      this.loading = true;
      getAction(this.url.list, params).then((res) => {
        if (res.success) {
@@ -139,7 +138,6 @@
          return false;
        }
      }
      return filterObj(param);
    },
    getQueryField() {
@@ -150,7 +148,6 @@
      });
      return str;
    },
    onSelectChange(selectedRowKeys, selectionRows) {
      this.selectedRowKeys = selectedRowKeys;
      this.selectionRows = selectionRows;
@@ -287,10 +284,18 @@
      //清空列表选中
      this.onClearSelected()
    },
    /**
     * ç‚¹å‡»è¡¨æ ¼ä¸­è¯¦æƒ…按钮事件
     * @param record é€‰ä¸­çš„当前行数据
     */
    handleDetail:function(record){
      this.$refs.modalForm.edit(record);
      this.$refs.modalForm.title="详情";
      this.$refs.modalForm.disableSubmit = true;
      // æ‰“开详情抽屉时禁用设备编码、设备名称输入框
      this.$refs.modalForm.disSeach = true;
      // è°ƒç”¨æŠ½å±‰è¡¨å•组件中的清除表单验证方法
      this.$refs.modalForm.removeValidate()
    },
    /* å¯¼å‡º */
    handleExportXls2(){
src/views/TestWorkshop.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,180 @@
<template>
  <dv-full-screen-container class="full-screen-container">
    <header class="page-header">
      æµ‹è¯•车间
      <div class="header-right">
        <a-button type="primary" icon="save" size="large" @click="saveDevicePositionByApi">保存位置</a-button>
      </div>
    </header>
    <dv-border-box-8 class="content-container">
      <div v-for="item in deviceList" :key="item.equipmentId" class="single-device"
           :style="{top:item.top+'px',left:item.left+'px'}" @mousedown="handleMouseDown" :id="item.equipmentId">
        <img :src="item.equipmentImageUrl" draggable="false">
        <div draggable="false" class="device-info">
          <div v-if="item.status==0" class="status-square" style="background-color: gray"></div>
          <div v-if="item.status==1" class="status-square" style="background-color: red"></div>
          <div v-if="item.status==2" class="status-square" style="background-color: green"></div>
          <div v-if="item.status==3" class="status-square" style="background-color: yellow"></div>
          <div class="device-id">{{item.equipmentId}}</div>
        </div>
      </div>
    </dv-border-box-8>
  </dv-full-screen-container>
</template>
<script>
  export default {
    data() {
      return {
        mouseX: 0, // é¼ æ ‡åœ¨å…ƒç´ å†…çš„X坐标
        mouseY: 0, // é¼ æ ‡åœ¨å…ƒç´ å†…çš„Y坐标,
        dragging: false, //是否在拖拽中
        left: 0, // å…ƒç´ å·¦ä¸Šè§’距离父容器左侧的距离
        top: 0, // å…ƒç´ å·¦ä¸Šè§’距离父容器顶部的距离,
        elementId: '',// è¢«æ‹–拽元素的id属性值
        deviceList: [
          {
            equipmentId: '123213213123232',
            equipmentStatus: 0,
            equipmentImageUrl: require('../assets/8.png'),
            top: 200,
            left: 100,
            status: 1
          },
          {
            equipmentId: '512346789561232',
            equipmentStatus: 0,
            equipmentImageUrl: require('../assets/8.png'),
            top: 500,
            left: 753,
            status: 0
          },
          {
            equipmentId: '64746965647653',
            equipmentStatus: 0,
            equipmentImageUrl: require('../assets/8.png'),
            top: 300,
            left: 860,
            status: 2
          },
          {
            equipmentId: '33548976965462',
            equipmentStatus: 0,
            equipmentImageUrl: require('../assets/8.png'),
            top: 100,
            left: 380,
            status: 3
          },
          {
            equipmentId: '85484913549253',
            equipmentStatus: 0,
            equipmentImageUrl: require('../assets/8.png'),
            top: 200,
            left: 1500,
            status: 2
          }
        ]
      }
    },
    methods: {
      /**
       * æ‹–拽对象鼠标按键按下事件
       * @param event
       */
      handleMouseDown(event) {
        this.dragging = true
        this.mouseX = event.clientX
        this.mouseY = event.clientY
        this.elementId = event.currentTarget.id
        this.top = event.currentTarget.offsetTop
        this.left = event.currentTarget.offsetLeft
        document.addEventListener('mousemove', this.handleMouseMove)
        document.addEventListener('mouseup', this.handleMouseUp)
      },
      /**
       * æ–‡æ¡£å¯¹è±¡é¼ æ ‡ç§»åŠ¨äº‹ä»¶
       * @param event
       */
      handleMouseMove(event) {
        if (this.dragging) {
          const deltaX = event.clientX - this.mouseX
          const deltaY = event.clientY - this.mouseY
          this.left += deltaX
          this.top += deltaY
          this.deviceList.forEach(item => {
            if (item.equipmentId === this.elementId) {
              item.top = this.top
              item.left = this.left
            }
          })
          this.mouseX = event.clientX
          this.mouseY = event.clientY
        }
      },
      /**
       * æ–‡æ¡£å¯¹è±¡é¼ æ ‡æŒ‰é”®å¼¹èµ·äº‹ä»¶
       * @param event
       */
      handleMouseUp(event) {
        this.dragging = false
        document.removeEventListener('mousemove', this.handleMouseMove)
        document.removeEventListener('mouseup', this.handleMouseUp)
      },
      /**
       * è°ƒç”¨æŽ¥å£ä¿å­˜æ‹–拽后的位置
       */
      saveDevicePositionByApi(){
      }
    },
    mounted() {
      // ç¦æ­¢ç”¨æˆ·é€‰ä¸­å†…容
      document.onselectstart = () => false
    }
  }
</script>
<style scoped lang="less">
  .full-screen-container {
    background-image: url('../assets/Bj.jpg');
    color: #fff;
    width: 100vw;
    height: 100vh;
    position: relative;
    .page-header {
      font-size: 50px;
      text-align: center;
      position: relative;
      .header-right{
        position: absolute;
        right: 200px;
        top: 0;
      }
    }
    .content-container {
      .single-device {
        position: absolute;
        border: 1px solid transparent;
        padding: 5px;
        display: flex;
        flex-direction: column;
        align-items: center;
        &:active {
          border: 1px solid #00b3ff;
        }
        .device-info {
          width: 100%;
          display: flex;
          align-items: center;
          justify-content: space-between;
          .status-square {
            width: 14px;
            height: 14px;
            border: 1px solid #fff;
            border-radius: 2px;
          }
        }
      }
    }
  }
</style>
src/views/dashboard/Analysis.vue
@@ -11,6 +11,7 @@
        <!--&lt;!&ndash;<a-radio :value="3">任务表格</a-radio>&ndash;&gt;-->
      <!--&lt;!&ndash;</a-radio-group>&ndash;&gt;-->
    <!--</div>-->
    <a-button type="primary" @click="navigateToTestWorkshop">跳转至测试车间</a-button>
  </div>
</template>
@@ -35,7 +36,10 @@
    },
    methods: {
      navigateToTestWorkshop(){
        const url=this.$router.resolve('/testWorkshop').href
        window.open(url,'_blank')
      }
    }
  }
</script>
src/views/jeecg/modules/JeecgDemoModal.vue
@@ -40,7 +40,6 @@
        <a-form-model-item label="个人简介"  prop="content" hasFeedback>
          <a-input  type="textarea" placeholder="请输入个人简介"  v-model="model.content"/>
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </a-modal>
src/views/mdc/base/AlarmManager.vue
@@ -40,10 +40,16 @@
            :sm="24"
          >
            <a-form-item label="控制系统类型">
              <j-dict-select-tag
                placeholder="请选择控制系统类型"
              <!--<j-dict-select-tag-->
                <!--placeholder="请选择控制系统类型"-->
                <!--v-model="queryParam.driveType"-->
                <!--dictCode="mdc_driveType"-->
              <!--/>-->
              <a-auto-complete
                v-model="queryParam.driveType"
                dictCode="mdc_driveType"
                :data-source="driveTypeList"
                placeholder="请选择控制系统类型"
                :filter-option="filterOption"
              />
            </a-form-item>
          </a-col>
@@ -177,7 +183,6 @@
        @change="handleTableChange"
      >
        <span
          slot="action"
          slot-scope="text, record"
@@ -196,8 +201,8 @@
      </a-table>
    </div>
    <alarm-manager-modal ref="modalForm" @ok="modalFormOk"></alarm-manager-modal>
    <alarm-manager-form ref="modalFormType" @ok="modalFormOk"></alarm-manager-form>
    <!--<alarm-manager-modal ref="modalForm" @ok="modalFormOk"></alarm-manager-modal>-->
    <alarm-manager-form ref="modalFormType" @ok="modalFormOk" :driveTypeList="driveTypeList" :filterOption="filterOption"></alarm-manager-form>
    <alarm-manager-edit ref="modalFormEdit" @ok="modalFormOk"></alarm-manager-edit>
  </a-card>
</template>
@@ -213,6 +218,7 @@
  import AlarmManagerEdit from './modules/alarmManager/alarmManagerEdit'
  import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
  import { filterObj } from '@/utils/util';
  import api from '@/api/mdc'
  export default {
    name: 'AlarmManager',
    mixins: [JeecgListMixin, mixinDevice],
@@ -297,11 +303,13 @@
        },
        dictOptions: {},
        superFieldList: [],
        driveTypeList:[]
      }
    },
    created() {
      this.$set(this.dictOptions, 'isUse', [{ text: '是', value: '0' }, { text: '否', value: '-1' }])
      this.getSuperFieldList();
      this.getDriveTypeByApi()
    },
    computed: {
      // importExcelUrl: function () {
@@ -313,7 +321,6 @@
        this.$refs.modalFormEdit.edit(record);
        this.$refs.modalFormEdit.title = "编辑";
        this.$refs.modalFormEdit.disableSubmit = false;
        this.$refs.modalFormEdit.isUse = record.isUse === '1' ? true : false
      },
      handleAddTRype(){
        this.$refs.modalFormType.add();
@@ -344,6 +351,25 @@
        param.pageSize = this.ipagination.pageSize
        return filterObj(param)
      },
      /**
       * è°ƒç”¨æŽ¥å£èŽ·å–æŽ§åˆ¶ç³»ç»Ÿç±»åž‹
       */
      getDriveTypeByApi(){
        api.getDriveTypeApi().then((res)=>{
          this.driveTypeList=res.result.map(item=>item.value)
        })
      },
      /**
       * è”想输入框筛选功能
       * @param input è¾“入的内容
       * @param option é…ç½®
       * @returns {boolean} åˆ¤æ–­æ˜¯å¦ç­›é€‰
       */
      filterOption(input, option) {
        return (
          option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0
        );
      },
    }
  }
src/views/mdc/base/EquipmentList.vue
@@ -9,14 +9,14 @@
          <a-col :md="6" :sm="12">
            <a-form-item label="设备编号">
              <!--<a-input placeholder="请输入账号查询" v-model="queryParam.username"></a-input>-->
              <a-input placeholder="请输入设备编号" v-model="queryParam.equipmentId"></a-input>
              <j-input placeholder="请输入设备编号" v-model="queryParam.equipmentId"></j-input>
            </a-form-item>
          </a-col>
          <a-col :md="6" :sm="8">
            <a-form-item label="设备名称">
              <!--<a-input placeholder="请输入账号查询" v-model="queryParam.username"></a-input>-->
              <a-input placeholder="请输入设备名称" v-model="queryParam.equipmentName"></a-input>
              <j-input placeholder="请输入设备名称" v-model="queryParam.equipmentName"></j-input>
            </a-form-item>
          </a-col>
          <a-col :md="6" :sm="8">
@@ -443,6 +443,8 @@
        this.$refs.modalForm.title = "编辑";
        this.$refs.modalForm.disableSubmit = false;
        this.$refs.modalForm.disSeach = true;
        // è°ƒç”¨æŠ½å±‰è¡¨å•组件中的清除表单验证方法
        this.$refs.modalForm.removeValidate()
      },
      handleAdd: function () {
        this.$refs.modalForm.add();
@@ -453,7 +455,6 @@
      getAvatarView: function (avatar) {
        return getFileAccessHttpUrl(avatar)
      },
      batchFrozen: function (status) {
        if (this.selectedRowKeys.length <= 0) {
          // this.$message.warning('请选择一条记录!');
src/views/mdc/base/MdcDriveTypeParamConfigList.vue
@@ -14,10 +14,15 @@
            :sm="24"
          >
            <a-form-item label="控制系统类型">
              <j-dict-select-tag
                placeholder="请选择控制系统类型"
              <!--<j-dict-select-tag-->
                <!--placeholder="请选择控制系统类型"-->
                <!--v-model="queryParam.controlSystemType"-->
              <!--/>-->
              <a-auto-complete
                v-model="queryParam.controlSystemType"
                dictCode="mdc_driveType"
                :data-source="driveTypeList"
                placeholder="请选择控制系统类型"
                :filter-option="filterOption"
              />
            </a-form-item>
          </a-col>
@@ -55,11 +60,15 @@
              :sm="24"
            >
              <a-form-item label="显示标志">
                <j-switch
                  placeholder="请选择显示标志"
                  v-model="queryParam.showFlag"
                  query
                ></j-switch>
                <!--<j-switch-->
                  <!--placeholder="请选择显示标志"-->
                  <!--v-model="queryParam.showFlag"-->
                  <!--query-->
                <!--&gt;</j-switch>-->
                <a-select v-model='queryParam.showFlag' placeholder="请选择显示标志">
                  <a-select-option  value="Y">是</a-select-option>
                  <a-select-option value="N">否</a-select-option>
                </a-select>
              </a-form-item>
            </a-col>
            <a-col
@@ -69,11 +78,15 @@
              :sm="24"
            >
              <a-form-item label="工作曲线标志">
                <j-switch
                  placeholder="请选择工作曲线标志"
                  v-model="queryParam.curveGenerationFlags"
                  query
                ></j-switch>
                <!--<j-switch-->
                  <!--placeholder="请选择工作曲线标志"-->
                  <!--v-model="queryParam.curveGenerationFlags"-->
                  <!--query-->
                <!--&gt;</j-switch>-->
                <a-select v-model='queryParam.curveGenerationFlags' placeholder="请选择工作曲线标志">
                  <a-select-option  value="Y">是</a-select-option>
                  <a-select-option value="N">否</a-select-option>
                </a-select>
              </a-form-item>
            </a-col>
          </template>
@@ -122,7 +135,7 @@
      <a-button
        type="primary"
        icon="download"
        @click="handleExportXls('设备驱动参数配置')"
        @click="handleExportXls('驱动参数管理')"
      >导出</a-button>
      <a-upload
        name="file"
@@ -261,6 +274,7 @@
    <mdc-drive-type-param-config-modal
      ref="modalForm"
      @ok="modalFormOk"
      :driveTypeList="driveTypeList"
    ></mdc-drive-type-param-config-modal>
  </a-card>
</template>
@@ -273,6 +287,7 @@
import MdcDriveTypeParamConfigModal from './modules/mdcDriveTypeParamConfig/MdcDriveTypeParamConfigModal'
import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
import { filterObj } from '@/utils/util';
import api from '@/api/mdc'
export default {
  name: 'MdcDriveTypeParamConfigList',
  mixins: [JeecgListMixin, mixinDevice],
@@ -345,16 +360,22 @@
        deleteBatch: "/mdc/mdcDriveTypeParamConfig/deleteBatch",
        exportXlsUrl: "/mdc/mdcDriveTypeParamConfig/exportXls",
        importExcelUrl: "mdc/mdcDriveTypeParamConfig/importExcel",
      },
      dictOptions: {},
      superFieldList: [],
      driveTypeList:[]
    }
  },
  provide(){
    return {
      driveTypeList:this.driveTypeList
    }
  },
  created() {
    this.$set(this.dictOptions, 'showFlag', [{ text: '是', value: 'Y' }, { text: '否', value: 'N' }])
    this.$set(this.dictOptions, 'curveGenerationFlags', [{ text: '是', value: 'Y' }, { text: '否', value: 'N' }])
    this.getSuperFieldList();
    this.getDriveTypeByApi()
  },
  computed: {
    importExcelUrl: function () {
@@ -372,7 +393,6 @@
      fieldList.push({ type: 'int', value: 'sortNo', text: '序号', dictCode: '' })
      fieldList.push({ type: 'switch', value: 'showFlag', text: '显示标志' })
      fieldList.push({ type: 'switch', value: 'curveGenerationFlags', text: '工作曲线标志' })
      this.superFieldList = fieldList
    },
@@ -389,6 +409,25 @@
      param.pageSize = this.ipagination.pageSize
      return filterObj(param)
    },
    /**
     * è°ƒç”¨æŽ¥å£èŽ·å–æŽ§åˆ¶ç³»ç»Ÿç±»åž‹
     */
    getDriveTypeByApi(){
      api.getDriveTypeApi().then((res)=>{
        this.driveTypeList=res.result.map(item=>item.value)
      })
    },
    /**
     * è”想输入框筛选功能
     * @param input è¾“入的内容
     * @param option é…ç½®
     * @returns {boolean} åˆ¤æ–­æ˜¯å¦ç­›é€‰
     */
    filterOption(input, option) {
      return (
        option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0
      );
    },
  }
}
src/views/mdc/base/MdcplancloseList.vue
@@ -34,7 +34,7 @@
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button type="primary" icon="download" @click="importTemplate('计划停机模板')">导入模板</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('计划停机')">导出</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('计划停机管理')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
@@ -156,8 +156,8 @@
          list: "/mdc/mdcPlanClose/list",
          delete: "/mdc/mdcPlanClose/delete",
          deleteBatch: "/mdc/mdcPlanClose/deleteBatch",
          exportXlsUrl: "/plan/mdcplanclose/exportXls",
          importExcelUrl: "plan/mdcplanclose/importExcel",
          exportXlsUrl: "/mdc/mdcPlanClose/exportXls",
          importExcelUrl: "mdc/mdcPlanClose/importExcel",
        },
        dictOptions:{},
@@ -175,8 +175,8 @@
    methods: {
      importTemplate(fileName){
        var a = document.createElement("a");
        a.href = "/static/计划停机.xls";
        a.download = "计划停机.xls";
        a.href = "/static/计划停机管理.xls";
        a.download = "计划停机管理.xls";
        a.style.display = "none";
        document.body.appendChild(a);
        a.click();
src/views/mdc/base/modules/DepartList/DepartListContent/DepartList.vue
@@ -372,7 +372,7 @@
                  //重新计算分页问题
                  that.reCalculatePage(that.selectedRowKeys.length)
                  // that.$message.success(res.message);
                  that.$notification.warning({
                  that.$notification.success({
                    message:'消息',
                    description:res.message
                  });
@@ -404,7 +404,7 @@
            //重新计算分页问题
            that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
@@ -431,7 +431,7 @@
            //重新计算分页问题
           that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
src/views/mdc/base/modules/DepartList/DepartListContent/DepartModel.vue
@@ -156,7 +156,7 @@
            obj.then((res) => {
              if (res.success) {
                // that.$message.success("添加成功")
                that.$notification.warning({
                that.$notification.success({
                  message:'消息',
                  description:"添加成功"
                });
src/views/mdc/base/modules/DepartList/DepartListContent/TierModel.vue
@@ -160,7 +160,7 @@
            obj.then((res) => {
              if (res.success) {
                // that.$message.success("成功")
                that.$notification.warning({
                that.$notification.success({
                  message:'消息',
                  description:"成功"
                });
src/views/mdc/base/modules/DepartList/DepartListTree/modules/DepartTree/TierModel.vue
@@ -159,7 +159,7 @@
            obj.then((res) => {
              if (res.success) {
                // that.$message.success("编辑成功")
                that.$notification.warning({
                that.$notification.success({
                  message:'消息',
                  description:"编辑成功"
                });
src/views/mdc/base/modules/EquipmentList/UserModal.vue
@@ -1,12 +1,11 @@
<template>
  <a-drawer
  <a-modal
    :title="title"
    :maskClosable="true"
    :width="drawerWidth"
    placement="right"
    :closable="true"
    @close="handleCancel"
    @cancel="visible=false"
    :visible="visible"
    :footer="null"
    style="height: 100%;overflow: auto;padding-bottom: 53px;">
    <template slot="title">
@@ -56,9 +55,6 @@
          <a-col :span="12">
            <a-form-model-item label="车间分配" :labelCol="labelCol" :wrapperCol="wrapperCol"  v-show="!productionDisabled" ref="selectedProduction"  prop="selectedProduction">
              <!--<j-select-equipment-production  v-decorator="['selectedProduction',{rules:[{required:true,message:'请选择车间!'}]}]" :multi="false" @back="backProductionInfo" :backProduction="true" :treeProductOpera="true"></j-select-equipment-production>-->
              <j-select-equipment-production :disabled="disableSubmit"  v-model="model.selectedProduction" :multi="false" @back="backProductionInfo" :backProduction="true" :treeProductOpera="true"></j-select-equipment-production>
            </a-form-model-item>
@@ -148,13 +144,13 @@
    <div class="drawer-bootom-button" v-show="!disableSubmit">
      <a-popconfirm title="确定放弃编辑?" @confirm="handleCancel" okText="确定" cancelText="取消">
      <a-popconfirm title="确定放弃操作?" @confirm="close" okText="确定" cancelText="取消">
        <a-button style="margin-right: .8rem">取消</a-button>
      </a-popconfirm>
      <a-button @click="handleSubmit" type="primary" :loading="confirmLoading">提交</a-button>
    </div>
    <device-list-model ref="deviceListModel" @sendSelectionRows="getDeviceRows"></device-list-model>
  </a-drawer>
  </a-modal>
</template>
@@ -203,7 +199,7 @@
          equipmentId:
            [
              {
              required: true, message: '请选择设备编号!',
              required: true, message: '请选择设备编号!'
              },
              // {
              // validator: this.validatequipmentId
@@ -349,6 +345,7 @@
        that.visible = true;
        //根据屏幕宽度自适应抽屉宽度
        this.resetScreenSize();
        // that.userId = record.id;
        // console.log(record)
        that.model = Object.assign({}, record);
@@ -451,8 +448,6 @@
        })
      },
      refresh () {
        this.userId=""
        this.nextDepartOptions=[];
@@ -551,11 +546,6 @@
      //     }
      //   })
      // },
      handleCancel () {
        this.close()
      },
      // validatequipmentId(rule, value, callback){
      //   if(!value){
@@ -589,8 +579,15 @@
        }else{
          this.departIdShow=true;
        }
      },
      /**
       * ç¼–辑或查看详情数据时清除抽屉表单验证
       */
      removeValidate(){
        this.$refs.form.clearValidate()
      }
    }
    },
  }
</script>
src/views/mdc/base/modules/EquipmentTypeList/MdcEquipmentTypeForm.vue
@@ -102,7 +102,7 @@
            httpAction(httpurl,this.model,method).then((res)=>{
              if(res.success){
                // that.$message.success(res.message);
                that.$notification.warning({
                that.$notification.success({
                  message:'消息',
                  description:res.message
                });
src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue
@@ -19,14 +19,11 @@
              <a-input placeholder="输入设备名称查询" v-model="queryParams.equipmentName"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="2" :sm="3" :xs="3">
          <a-col :md="2" :sm="2" :xs="2">
            <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
          </a-col>
          <a-col :md="2" :sm="2" :xs="2">
            <a-button type="primary" @click="searchReset" icon="reload">重置</a-button>
          </a-col>
          <a-col :lg="2" :md="3" :sm="3" :xs="3">
            <a-button type="primary" @click="exportExcel" icon="download">导出</a-button>
          </a-col>
        </a-row>
      </a-form>
@@ -180,8 +177,8 @@
          delete: '/mdc/mdcVacationManagement/deleteVacation',
          deleteBatch: '/mdc/mdcVacationManagement/deleteBatchVacation',
          getEquipmentByPid: '/mdc/mdcequipment/getEquipmentByPid',
          exportXlsUrl: "/mdc/MdcTorqueConfig/exportXls",
          importExcelUrl: "/mdc/MdcTorqueConfig/importExcel",
          exportXlsUrl: "/mdc/mdcVacationManagement/exportXls",
          importExcelUrl: "/mdc/mdcVacationManagement/importExcel",
        }
      }
    },
src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue
@@ -112,6 +112,22 @@
              },
            ],
          },
          vacationDate:{
            rules:[
              {
                required:true,
                message: "请选择休假时间"
              },
            ],
          },
          vacationType:{
            rules:[
              {
                required:true,
                message: "请选择假期类型"
              },
            ],
          },
        },
        url: {
@@ -126,7 +142,6 @@
    },
    created() {
    },
    methods: {
      // disabledDate(current){
      //   //Can not slect days before today and today
@@ -248,7 +263,7 @@
                obj.then((res) => {
                  if (res.success) {
                    // that.$message.success("添加成功")
                    that.$notification.warning({
                    that.$notification.success({
                      message:'消息',
                      description:"添加成功"
                    });
src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue
@@ -126,6 +126,22 @@
              },
            ],
          },
          vacationDate:{
            rules:[
              {
                required:true,
                message: "请选择休假时间"
              },
            ],
          },
          vacationType:{
            rules:[
              {
                required:true,
                message: "请选择假期类型"
              },
            ],
          },
          // mdcRepairType:{
          //   rules:[
          //     {
src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue
@@ -8,7 +8,6 @@
              <j-dict-select-tag :readOnly="disableSubmit" placeholder="请选择类型"
                                 :triggerChange="true" dictCode="mdc_plan_type    "
                                 v-model="model.planCloseType" allow-clear/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
@@ -70,6 +69,15 @@
        },
        confirmLoading: false,
        validatorRules: {
          planCloseType:[
            {required: true,message:'请选择类型!'}
          ],
          planCloseTimeType:[
            {required: true,message:'请选择时间类型!'}
          ],
          planCloseTimeLong:[
            {required: true,message:'请输入时长!'}
          ],
        },
        url: {
          add: "/mdc/mdcPlanClose/add",
src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue
@@ -6,7 +6,7 @@
        <a-row :gutter="24">
          <a-col :md="7" :sm="7">
            <a-form-item label="时间">
              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD HH:mm:ss" showTime/>
              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD HH:mm:ss"/>
            </a-form-item>
          </a-col>
          <a-col :md="4" :sm="4">
src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue
@@ -15,13 +15,13 @@
          <a-col :span="12">
            <a-form-item label="加班开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-time-picker :disabled="disableSubmit" :readOnly="disableSubmit" allow-clear
                             v-decorator="['startTime',validatorRules.startTime]"/>
                             v-decorator="['startTime',validatorRules.startTime]"  valueFormat="HH:mm:ss"/>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="加班结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-time-picker :disabled="disableSubmit" :readOnly="disableSubmit"
                             v-decorator="['endTime',validatorRules.endTime]"/>
                             v-decorator="['endTime',validatorRules.endTime]" valueFormat="HH:mm:ss"/>
            </a-form-item>
          </a-col>
        </a-row>
@@ -73,7 +73,7 @@
            span: 24
          },
          sm: {
            span: 6
            span: 8
          }
        },
        wrapperCol: {
@@ -81,7 +81,7 @@
            span: 24
          },
          sm: {
            span: 18
            span: 16
          }
        },
        labelColLong: {
@@ -89,7 +89,7 @@
            span: 24
          },
          sm: {
            span: 3
            span: 4
          }
        },
        wrapperColLong: {
@@ -97,7 +97,7 @@
            span: 24
          },
          sm: {
            span: 21
            span: 20
          }
        },
        confirmLoading: false,
@@ -108,6 +108,30 @@
              {
                required:true,
                message: "请选择设备"
              },
            ],
          },
          calendarId:{
            rules:[
              {
                required:true,
                message: "请选择班次"
              },
            ],
          },
          startTime:{
            rules:[
              {
                required:true,
                message: "请选择加班开始时间"
              },
            ],
          },
          endTime:{
            rules:[
              {
                required:true,
                message: "请选择加班结束时间"
              },
            ],
          },
@@ -212,19 +236,6 @@
        this.visible = false
        this.show = false
      },
      fun(obj) {
    if(obj){
      if (obj = obj.split("T")) {
        var tim = obj[1];
        if(tim = tim.split(".")){
          var tim0 = tim[0];
        }
        var dd = tim0
        return dd;
      }
    }
  },
      handleOk() {
        const that = this
        // è§¦å‘表单验证
@@ -232,28 +243,17 @@
          if (!err) {
            that.confirmLoading = true
            let formData = Object.assign(this.model, values)
            let start = moment(formData.startTime).format('HH:mm:ss');
            let end = moment(formData.endTime).format('HH:mm:ss');
            let startOne = start.replace(/:/g,'');
            let endOne = end.replace(/:/g,'');
            // var data = new Date();
            // let stertDate = moment(data).format("HH:mm:ss");
            // let dataStart = stertDate.replace(/:/g,'');
            // if(startOne < dataStart){
            //   that.$message.warning("开始时间不能小于当前时间")
            //   that.confirmLoading = false
            // }else{
            let startOne = formData.startTime.replace(/:/g,'');
            let endOne = formData.endTime.replace(/:/g,'')
              if(startOne>=endOne){
                that.$message.warning("结束时间不能小于开始时间");
                // console.log(this.model)
                // this.endTime = ''
                that.$notification.warning({
                  message:'消息',
                  description:"结束时间不能小于开始时间"
                });
                that.confirmLoading = false
              }else{
                let obj
                if (!this.model.id) {
                  formData.startTime = this.fun(JSON.stringify(formData.startTime));
                  formData.endTime = this.fun(JSON.stringify(formData.endTime))
                  obj = postAction(this.url.add, formData)
                } else {
                  obj = requestPut(this.url.edit, formData, {
src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue
@@ -79,7 +79,7 @@
            span: 24
          },
          sm: {
            span: 6
            span: 8
          }
        },
        wrapperCol: {
@@ -87,7 +87,7 @@
            span: 24
          },
          sm: {
            span: 18
            span: 16
          }
        },
        labelColLong: {
@@ -95,7 +95,7 @@
            span: 24
          },
          sm: {
            span: 3
            span: 4
          }
        },
        wrapperColLong: {
@@ -103,7 +103,7 @@
            span: 24
          },
          sm: {
            span: 21
            span: 20
          }
        },
        confirmLoading: false,
@@ -125,6 +125,22 @@
              },
            ],
          },
          startTime:{
            rules:[
              {
                required:true,
                message: "请选择加班开始时间"
              },
            ],
          },
          endTime:{
            rules:[
              {
                required:true,
                message: "请选择加班结束时间"
              },
            ],
          },
          // mdcRepairType:{
          //   rules:[
          //     {
src/views/mdc/base/modules/StatisticalAnalysis/StatisticalAnalysisMain.vue
@@ -14,7 +14,7 @@
              <a-date-picker v-model="queryParams.collectTime" :disabledDate="disabledDate" format='YYYY-MM-DD' @change="dataChange"/>
            </a-form-item>
          </a-col>
          <a-col :md="3" :sm="3" :xs="3">
          <a-col :md="2" :sm="2" :xs="2">
            <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
          </a-col>
          <a-col :md="2" :sm="2" :xs="2">
@@ -269,7 +269,11 @@
                textStyle:{
                  color:'#000',
                },
                formatter:"时长:{c}H"
                // formatter:"时长:{c}H",
                formatter:params=>{
                  const value=String(params.value)
                  return value.length==2&&value[0]==='0'?`时长:${value.slice(1)}H`:`时长:${value}H`
                }
              },
              itemStyle: {
                normal: {
@@ -312,7 +316,11 @@
          // },
          tooltip: {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
            // formatter: "{a} <br/>{b} : {c} ({d}%)",
            formatter:params=>{
              const value=String(params.value)
              return value.length==2&&value[0]==='0'?`${params.seriesName}<br/>${params.name}:${value.slice(1)}H(${params.percent}%)`:`${params.seriesName}<br/>${params.name}:${value}H(${params.percent}%)`
            }
          },
          legend: {
            orient: 'vertical',
@@ -335,7 +343,12 @@
                label: {
                  show: true,
                  position: 'top',
                  formatter: '{b}\n{c}'
                  // formatter: '{b}\n{c}',
                  // formatter:params=>String(params.value).length==2?params.name+String(params.value).slice(1):params.name+String(params.value)
                  formatter:params=>{
                    const value=String(params.value)
                    return value.length==2&&value[0]==='0'?params.name+' '+value.slice(1)+'H':params.name+' '+value+'H'
                  }
                }
              }
            },
@@ -354,7 +367,11 @@
          // },
          tooltip: {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
            // formatter: "{a} <br/>{b} : {c} ({d}%)",
            formatter:params=>{
              const value=String(params.value)
              return value.length==2&&value[0]==='0'?`${params.seriesName}<br/>${params.name}:${value.slice(1)}H(${params.percent}%)`:`${params.seriesName}<br/>${params.name}:${value}H(${params.percent}%)`
            }
          },
          legend: {
            orient: 'vertical',
@@ -377,7 +394,11 @@
                label: {
                  show: true,
                  position: 'top',
                  formatter: '{b}\n{c}'
                  // formatter: '{b}\n{c}',
                  formatter:params=>{
                    const value=String(params.value)
                    return value.length==2&&value[0]==='0'?params.name+' '+value.slice(1)+'H':params.name+' '+value+'H'
                  }
                }
              }
            },
@@ -388,6 +409,7 @@
        StartupLine.setOption(statChartPieOption2);
      },
      queryStatistical(){
        if(this.queryParams.collectTime){
        getAction(this.url.dayStatisticalRate,this.queryParams).then(res =>{
          if(res.success) {
            // console.log(res);
@@ -404,16 +426,21 @@
            this.closedLong = this.getTime(res.result.closeLong);
            this.totalLong = parseInt(this.openingLong) + parseInt(this.closedLong);
            this.draw();
          }else{
            this.draw()
          }
        })
        }else{
          this.$notification.warning({
            message:'消息',
            description:'请选择时间'
          })
        }
      },
      dataChange(val) {
        this.queryParam.collectTime1 = "";
        if(val){
        this.queryParams.dateTime = val.format('YYYYMMDD')
        this.queryParams.collectTime = val.format('YYYY-MM-DD');
        }
      },
      initEquipmentNode() {
        let _this = this
@@ -453,7 +480,7 @@
        this.queryParam = {}
        this.queryParams = {}
        // this.dates = []
        this.queryStatistical()
        // this.queryStatistical()
        // this.onClearSelected()
      },
      searchQuery(){
@@ -462,26 +489,19 @@
    },
    watch: {
      equip(val) {
        // console.log(val);
        if (val && val.equipmentId) {
          this.$set(this.queryParam, 'tierName', val.title)
          this.$set(this.queryParam, 'equipmentId', val.equipmentId)
          this.queryParams.parentId = ''
          this.queryParams.equipmentId = val.equipmentId
          this.searchQuery()
        }else{
          this.queryParams.parentId = val.key
          this.queryParams.equipmentId = ''
          this.$set(this.queryParam, 'tierName', val.title)
          this.searchQuery()
        }
        this.searchQuery()
      }
      // this.searchQuery();
    }
  }
</script>
src/views/mdc/base/modules/StatisticsChart/StatisticsLegend.vue
@@ -14,7 +14,7 @@
              <a-date-picker v-model="queryParams.collectTime" :disabledDate="disabledDate" format='YYYY-MM-DD' @change="dataChange"/>
            </a-form-item>
          </a-col>
          <a-col :md="3" :sm="3" :xs="3">
          <a-col :md="2" :sm="2" :xs="2">
            <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
          </a-col>
          <a-col :md="2" :sm="2" :xs="2">
@@ -359,7 +359,11 @@
                  textStyle:{
                    color:'#000',
                  },
                  formatter:"时长:{c}H"
                  // formatter:"时长:{c}H",
                  formatter:params=>{
                    const value=String(params.value)
                    return value.length==2&&value[0]==='0'?`时长:${value.slice(1)}H`:`时长:${value}H`
                  }
                },
                itemStyle: {
                  normal: {
@@ -456,7 +460,11 @@
                textStyle:{
                  color:'#000',
                },
                formatter:"时长:{c}H"
                // formatter:"时长:{c}H",
                formatter:params=>{
                  const value=String(params.value)
                  return value.length==2&&value[0]==='0'?`时长:${value.slice(1)}H`:`时长:${value}H`
                }
              },
            itemStyle: {
              normal: {
@@ -549,7 +557,11 @@
              textStyle:{
                color:'#000',
              },
              formatter:"时长:{c}H"
              // formatter:"时长:{c}H",
              formatter:params=>{
                const value=String(params.value)
                return value.length==2&&value[0]==='0'?`时长:${value.slice(1)}H`:`时长:${value}H`
              }
            },
            itemStyle: {
              normal: {
@@ -577,9 +589,9 @@
        StartupLine.setOption(StartupLine_option);
      },
      queryStatistical(){
        if(this.queryParams.collectTime){
          getAction(this.url.dayStatisticalRate,this.queryParams).then(res =>{
            if(res.success){
              // console.log(res);
              this.StatCharOpeningRate = res.result.openRate;
              this.StatCharUsedRate = res.result.utilizationRate;
              this.UtilizationHeight = res.result.openRate;
@@ -592,16 +604,20 @@
              this.totalLong = parseInt(this.openingLong) + parseInt(this.closedLong);
              this.draw();
            }
            else{
              this.draw();
            }
          })
        }else{
          this.$notification.warning({
            message:'消息',
            description:'请选择时间'
          })
        }
      },
      dataChange(val) {
        this.queryParam.collectTime1 = "";
        if(val){
        this.queryParams.dateTime = val.format('YYYYMMDD')
        this.queryParams.collectTime = val.format('YYYY-MM-DD');
        }
      },
      initEquipmentNode(id) {
        let _this = this
@@ -640,7 +656,7 @@
        this.queryParam = {}
        this.queryParams = {}
        // this.dates = []
        this.queryStatistical()
        // this.queryStatistical()
        // this.onClearSelected()
      },
      searchQuery(){
@@ -655,18 +671,14 @@
            this.$set(this.queryParam, 'equipmentId', val.equipmentId)
            this.queryParams.parentId = ''
            this.queryParams.equipmentId = val.equipmentId
            this.searchQuery()
          }else{
            this.queryParams.parentId = val.key
            this.queryParams.equipmentId = ''
            this.$set(this.queryParam, 'tierName', val.title)
            this.searchQuery()
            }
            this.searchQuery()
          }
          // this.searchQuery();
      }
  }
src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue
@@ -6,7 +6,7 @@
        <a-row :gutter="24">
          <a-col :md="7" :sm="7">
            <a-form-item label="时间">
              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD HH:mm:ss" showTime/>
              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD HH:mm:ss"/>
            </a-form-item>
          </a-col>
          <a-col :md="4" :sm="4">
@@ -192,6 +192,7 @@
      Type(valmath){
        this.dataList = [];
        this.queryParams.typeTree = valmath
        console.log(valmath,'触发Type的watch方法')
        // console.log(this.queryParams.typeTree)
      },
      nodeTree(val) { //监听currSelected å˜åŒ–,将变化后的数值传递给 getCurrSelected äº‹ä»¶
@@ -240,8 +241,12 @@
      onOk(value) {
        console.log('onOk: ', value);
      },
      /**
       * æŸ¥è¯¢åŒºåŸŸé‡ç½®æŒ‰é’®
       */
      searchReset() {
        if(this.queryParams.typeTree == "1"){
          console.log('第一个的typeTree',this.queryParams.typeTree)
          this.typeTree = this.queryParams.typeTree
          this.typeParent =  this.queryParams.parentId
          this.typeEquipment = this.queryParams.equipmentId
@@ -250,6 +255,7 @@
          this.dates = []
          this.queryParams.typeTree = this.typeTree
          this.queryParams.parentId = this.typeParent
          console.log('进入第一个')
          if(this.queryParams.parentId !=  ""){
            this.queryParams.equipmentId =  ""
          }else{
@@ -258,12 +264,12 @@
            }else{
              this.queryParams.equipmentId = this.queryParamEquip.equipmentId
            }
          }
          this.ipagination.current = 1
          this.ResetloadData();
        }else{
          console.log('进入第二个')
          console.log('第二个的typeTree',this.queryParams.typeTree)
          this.typeTree = this.queryParams.typeTree
          this.typeParent =  this.queryParams.parentId
          // this.typeEquipment = this.queryParams.equipmentId
@@ -411,10 +417,8 @@
        if(this.queryParams.typeTree == "1"){
          this.queryParams.parentId =  this.queryParamEquip.parentId
          // this.queryParams.equipmentId =  this.queryParamEquip.equipmentId
        }else{
          this.queryParams.parentId = this.queryParamPeople.parentId
          // this.queryParams.equipmentId = ""
        }
        this.dataSource = [];
@@ -432,7 +436,7 @@
        param.equipmentId = this.queryParams.equipmentId;
        param.startTime = this.queryParam.startTime;
        param.endTime =  this.queryParam.endTime;
        // console.log(param);
        console.log('param',param);
        getAction(this.url.list,param).then((res) => {
          if(res.success){
            this.dataSource = res.result.records||res.result;
@@ -544,7 +548,7 @@
            //重新计算分页问题
            that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
@@ -607,6 +611,7 @@
        }
      },
      handleAdd() {
        console.log(this.$refs.modalForm.edit)
        this.$refs.modalForm.add(this.node)
        this.$refs.modalForm.title = '新增'
        this.$refs.modalForm.disableSubmit = false
@@ -656,9 +661,19 @@
          exclude_inputs: true
        });
      },
      // /**
      //  * è½¦é—´é€‰ä¸­é¡¹å–消后触发此事件,由BaseTree组件由事件总线触发
      //  * @param value æç¤ºä¿¡æ¯
      //  */
      // treeClearSelected(value){
      //   this.queryParams.equipmentId=''
      //   this.queryParams.parentId=''
      //   this.ResetloadData()
      // }
    },
    created() {
      this.queryParam.typeTree = "1"
      // this.$bus.$on('treeClearSelected',this.treeClearSelected)
    }
  }
</script>
src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue
@@ -111,6 +111,22 @@
              },
            ],
          },
          torqueDate:{
            rules:[
              {
                required:true,
                message: "请选择时间"
              },
            ],
          },
          torqueValue:{
            rules:[
              {
                required:true,
                message: "请输入扭矩值"
              },
            ],
          },
        },
        url: {
src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue
@@ -125,6 +125,22 @@
              },
            ],
          },
          torqueDate:{
            rules:[
              {
                required:true,
                message: "请选择时间"
              },
            ],
          },
          torqueValue:{
            rules:[
              {
                required:true,
                message: "请输入扭矩值"
              },
            ],
          },
          // mdcRepairType:{
          //   rules:[
          //     {
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue
@@ -6,7 +6,7 @@
        <a-row :gutter="24">
          <a-col :md="7" :sm="7">
            <a-form-item label="时间">
              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD HH:mm" showTime/>
              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD HH:mm"/>
            </a-form-item>
          </a-col>
          <a-col :md="4" :sm="4">
@@ -36,7 +36,7 @@
      <a-button @click="handleAdd" type="primary" icon="plus">新增
      </a-button>
      <a-button type="primary" icon="download" @click="importTemplate('非计划停机模板')">导入模板</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('非计划停机')">导出</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('非计划停机管理')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
      <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
@@ -196,8 +196,8 @@
          delete: '/mdc/mdcNoplanClose/delete',
          deleteBatch: '/mdc/mdcNoplanClose/deleteBatch',
          getEquipmentByPid: '/mdc/mdcequipment/getEquipmentByPid',
          exportXlsUrl: "/mdc/MdcTorqueConfig/exportXls",
          importExcelUrl: "/mdc/MdcTorqueConfig/importExcel",
          exportXlsUrl: "/mdc/mdcNoplanClose/exportXls",
          importExcelUrl: "/mdc/mdcNoplanClose/importExcel",
        }
      }
    },
@@ -242,8 +242,8 @@
    methods: {
      importTemplate(fileName){
        var a = document.createElement("a");
        a.href = "/static/非计划停机.xls";
        a.download = "非计划停机.xls";
        a.href = "/static/非计划停机管理.xls";
        a.download = "非计划停机管理.xls";
        a.style.display = "none";
        document.body.appendChild(a);
        a.click();
@@ -530,7 +530,7 @@
            //重新计算分页问题
            that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue
@@ -120,6 +120,30 @@
              },
            ],
          },
          noplanType:{
            rules:[
              {
                required:true,
                message: "请选择类型"
              },
            ],
          },
          startTime:{
            rules:[
              {
                required:true,
                message: "请选择开始时间"
              },
            ],
          },
          endTime:{
            rules:[
              {
                required:true,
                message: "请选择结束时间"
              },
            ],
          },
        },
        url: {
@@ -253,7 +277,7 @@
                obj.then((res) => {
                  if (res.success) {
                    // that.$message.success("添加成功")
                    that.$notification.warning({
                    that.$notification.success({
                      message:'消息',
                      description:"添加成功"
                    });
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue
@@ -136,6 +136,30 @@
              },
            ],
          },
          noplanType:{
            rules:[
              {
                required:true,
                message: "请选择类型"
              },
            ],
          },
          startTime:{
            rules:[
              {
                required:true,
                message: "请选择开始时间"
              },
            ],
          },
          endTime:{
            rules:[
              {
                required:true,
                message: "请选择结束时间"
              },
            ],
          },
          // mdcRepairType:{
          //   rules:[
          //     {
src/views/mdc/base/modules/alarmAnalysis/alarmAnalysisMain.vue
@@ -236,6 +236,7 @@
        this.queryParam.endDate = v2[1]
      },
      searchQuery() {
        if (this.dates&&this.dates.length>0){
        if (this.queryParam.typeTree == "1") {
          this.queryParam.parentId = this.queryParamEquip.parentId
          this.queryParam.equipmentId = this.queryParamEquip.equipmentId
@@ -244,6 +245,13 @@
          this.queryParam.equipmentId = ""
        }
        this.loadData1()
        } else{
          this.$notification.warning({
             message:'提示',
             description:'请选择时间'
          })
        }
        // this.onClearSelected()
      },
      // searchReset() {
src/views/mdc/base/modules/alarmManager/alarmManagerEdit.vue
@@ -103,6 +103,16 @@
          //     required: true, message: '请选择班制!',
          //   }],
          // },
          alarmCode:{
            rules: [{
              required: true, message: '请输入报警号!',
            }],
          },
          alarmContent:{
            rules: [{
              required: true, message: '请输入报警内容!',
            }],
          },
        },
        url: {
          // add: '/mdc/alarmInfo/add',
@@ -124,6 +134,7 @@
        this.model = Object.assign({}, record)
        this.visible = true
        this.$nextTick(() => {
          this.isUse=record.isUse===0?true:false
          this.form.setFieldsValue(pick(this.model, 'alarmCode', 'alarmContent','driveType'))
        })
      },
@@ -160,7 +171,7 @@
                // that.$message.success("添加成功")
                that.$notification.success({
                  message:'消息',
                  description:"添加成功"
                  description:"修改成功"
                });
                // that.$message.success(res.message)
                that.$emit('ok', res.result)
src/views/mdc/base/modules/alarmManager/alarmManagerForm.vue
@@ -20,16 +20,22 @@
            <!--<a-select v-decorator="['driveType', validatorRules. driveType]" placeholder="请选择驱动类型"-->
                      <!--:options="shiftList">-->
            <!--</a-select>-->
                  <j-dict-select-tag
                    placeholder="请选择驱动类型"
                  <!--<j-dict-select-tag-->
                    <!--placeholder="请选择驱动类型"-->
                    <!--v-decorator="['driveType', validatorRules.driveType]"-->
                    <!--dictCode="mdc_driveType"-->
                  <!--/>-->
              <a-auto-complete
                    v-decorator="['driveType', validatorRules.driveType]"
                    dictCode="mdc_driveType"
                :data-source="driveTypeList"
                placeholder="请选择驱动类型"
                :filter-option="filterOption"
                  />
            </a-form-item>
            </a-col>
            <a-col :span="24">
              <a-form-item label="是否过滤" :labelCol="labelCol" :wrapperCol="wrapperCol">
                <a-switch :default-checked = 'showM' v-decorator="['isUse', validatorRules.isUse]"></a-switch>
                <a-switch :checked="isFilterChecked"  v-decorator="['isUse', validatorRules.isUse]" @change="isFilterChange"></a-switch>
              </a-form-item>
            </a-col>
            <!--<a-col :span='24'>-->
@@ -77,10 +83,17 @@
  export default {
    name: 'alarmManagerForm',
    // components: {AlarmManagerEqupment},
    props: {},
    props: {
      driveTypeList:{
        type:Array
      },
      filterOption:{
        type:Function
      }
    },
    data() {
      return {
        showM:true,
        isFilterChecked:true,
        isUse:true,
        title: '',
        visible: false,
@@ -103,24 +116,20 @@
            span: 18
          }
        },
        confirmLoading: false,        form: this.$form.createForm(this),
        confirmLoading: false,
        form: this.$form.createForm(this),
        validatorRules: {
          // driveType:{
          //   rules: [{
          //     required: true, message: '请选择驱动类型!',
          //   }],
          // },
          // isUse:{
          //   rules: [{
          //     required: true, message: !',
          //   }],
          // },
          driveType:{
            rules: [{
              required: true, message: '请选择驱动类型!',
            }],
          },
          alarmCode:{
            rules: [{
              required: true, message: '请输入报警号!',
            }],
          },
          alarmDescription:{
          alarmContent:{
            rules: [{
              required: true, message: '请输入报警内容!',
            }],
@@ -152,10 +161,11 @@
      },
      add(record) {
        let _this = this
        this.visible = true
        this.isFilterChecked=true
        this.form.resetFields()
        this.model = Object.assign({}, record)
        // this.initShiftList()
        this.visible = true
        this.$nextTick(() => {
        })
@@ -200,6 +210,13 @@
      handleCancel() {
        this.close()
      },
      /**
       * æ˜¯å¦è¿‡æ»¤åˆ‡æ¢å™¨change事件
       * @param checked åˆ‡æ¢åŽçš„状态
       */
      isFilterChange(checked){
        this.isFilterChecked=checked
      }
    }
  }
</script>
src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysismain.vue
@@ -12,9 +12,15 @@
          <!--</a-col>-->
          <a-col :md="5" :sm="5">
            <a-form-item label="驱动类型">
              <j-dict-select-tag placeholder="请选择驱动类型"
                                 :triggerChange="true" dictCode="mdc_driveType"
                                 v-model="queryParam.driveType" allow-clear/>
              <!--<j-dict-select-tag placeholder="请选择驱动类型"-->
                                 <!--:triggerChange="true" dictCode="mdc_driveType"-->
                                 <!--v-model="queryParam.driveType" allow-clear/>-->
              <a-auto-complete
                v-model="queryParam.driveType"
                :data-source="driveTypeList"
                placeholder="驱动类型"
                :filter-option="filterOption"
              />
            </a-form-item>
          </a-col>
          <a-col :md="9" :sm="9" :xs="4">
@@ -68,6 +74,7 @@
  import JEllipsis from '@/components/jeecg/JEllipsis'
  import Tooltip from 'ant-design-vue/es/tooltip'
  import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api'
  import api from '@/api/mdc'
  export default {
    name: 'comparativeAnalysismain',
    // mixins: [JeecgListMixin],
@@ -102,7 +109,8 @@
        url: {
          comparativeAnalysis:'/mdc/efficiencyReport/comparativeAnalysis'
        },
        AnalysisList:{}
        AnalysisList:{},
        driveTypeList:[]
      }
    },
    watch:{
@@ -128,7 +136,6 @@
        }
      },
      nodePeople(val){
        if (JSON.stringify(val) != '{}') {
          if (val.equipmentId) {
            // this.$set(this.queryParam, 'tierName', val.title)
@@ -169,6 +176,7 @@
        })
      },
      searchQuery(){
        if(this.dates&&this.dates.length>0){
        this.AnalysisList = []
        this.AnalysisBarList = []
        this.AnalysisGauge = []
@@ -176,13 +184,11 @@
        if(this.queryParams.typeTree == "1"){
          this.queryParams.parentId =  this.queryParamEquip.parentId
          // this.queryParams.equipmentId =  this.queryParamEquip.equipmentId
        }else{
          this.queryParams.parentId = this.queryParamEquip.parentId
          // this.queryParams.equipmentId = ""
        }
        this.AnalysisList = [];
          this.AnalysisList = []
        //获取查询条件
        this.queryParam.parentId = this.queryParams.parentId;
        this.queryParam.equipmentId = this.queryParams.equipmentId;
@@ -203,6 +209,13 @@
        }).finally(() => {
          this.loading = false
        })
        }else{
          this.$notification.warning({
            message:'提示' ,
            description:'请选择时间'
          })
        }
      },
      searchReset() {
        this.AnalysisList = []
@@ -278,7 +291,25 @@
            this.loading = false
          })
        }
      },
      /**
       * è°ƒç”¨æŽ¥å£èŽ·å–æŽ§åˆ¶ç³»ç»Ÿç±»åž‹
       */
      getDriveTypeByApi(){
        api.getDriveTypeApi().then((res)=>{
          this.driveTypeList=res.result.map(item=>item.value)
        })
      },
      /**
       * è”想输入框筛选功能
       * @param input è¾“入的内容
       * @param option é…ç½®
       * @returns {boolean} åˆ¤æ–­æ˜¯å¦ç­›é€‰
       */
      filterOption(input, option) {
        return (
          option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0
        );
      },
      // onChange(value, dateString) {
      //   // console.log('Selected Time: ', value);
@@ -398,6 +429,7 @@
      this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD')
      this.queryParam.typeTree = "1";
      this.loadAnalysis();
      this.getDriveTypeByApi()
    }
  }
</script>
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarAddCon.vue
@@ -217,7 +217,7 @@
            postAction(this.url.settingCalendar, formData).then((res) => {
              if (res.success) {
                // that.$message.success(res.message)
                that.$notification.warning({
                that.$notification.success({
                  message:'消息',
                  description:res.message
                });
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarList.vue
@@ -31,6 +31,15 @@
      <div style="overflow: auto;width: 100%;margin-top: 20px;height: 569px;">
        <a-table ref="table" bordered size="middle" rowKey="id" :columns="columns"  @change="handleTableChange"  class="ant-table-striped"
                 :dataSource="dataSource" :pagination="ipagination" :loading="loading"  :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)">
          <span slot="action"
                slot-scope="text, record">
            <a-popconfirm
              title="确定删除吗?"
              @confirm="() => handleDelete(record.id)"
            >
                  <a>删除</a>
                </a-popconfirm>
          </span>
          <span slot="isDaySpan" slot-scope="text, record">
           <span v-if="text == 'true'">是</span>
           <span v-if="text == 'false'">否</span>
@@ -127,12 +136,21 @@
            title: '结束休息时间',
            align: 'center',
            dataIndex: 'sleepEndDate'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align: "center",
            fixed: "right",
            width: 147,
            scopedSlots: { customRender: 'action' }
          }
        ],
        checkedList: ['lyl'],
        dataList: [],
        url: {
          list: '/mdc/mdcDeviceCalendar/list'
          list: '/mdc/mdcDeviceCalendar/list',
          delete:'/mdc/mdcDeviceCalendar/delete'
        }
      }
    },
@@ -178,7 +196,6 @@
        this.queryParam = {}
        this.loadData()
      },
      loadData(arg) {
        this.dataSource = [];
        if(!this.url.list){
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarListModel.vue
@@ -212,13 +212,13 @@
        this.loadData();
      },
      openPage() {
        this.visible = true
        this.onClearSelected()
        this.valueProduct=null
        this.visible = true
        this.dataSource = [];
        this.queryParam = {
          status: this.status
        };
        this.loadData();
        this.initOptions();
        this.initGroupOptions()
src/views/mdc/base/modules/deviceCalendar/DeviceCalendarModel.vue
@@ -115,11 +115,18 @@
        },
        confirmLoading: false,        form: this.$form.createForm(this),
        validatorRules: {
          // shiftId:{
          //   rules: [{
          //     required: true, message: '请选择班制!',
          //   }],
          // },
          equipmentId:{
            rules:[
              {
                required:true,message:'请选择设备组!'
              }
            ]
          },
          shiftId:{
            rules: [{
              required: true, message: '请选择班制!',
            }],
          }
        },
        url: {
          add: '/mdc/mdcDeviceCalendar/add',
@@ -300,8 +307,8 @@
          if (!err) {
            that.confirmLoading = true
            let formData = Object.assign(this.model, values)
            formData.dateList = this.sendDte
            if(formData.dateList&&formData.dateList.length>0){
            postAction(this.url.settingCalendar, formData).then((res) => {
              if (res.success) {
                // that.$message.success(res.message)
@@ -321,6 +328,13 @@
              that.confirmLoading = false
              that.close()
            })
            }else{
              that.confirmLoading = false
              that.$notification.warning({
                message:'消息',
                description:'请选择生效时间!'
              });
            }
          }
        })
      },
src/views/mdc/base/modules/deviceLog/LogInfo.vue
@@ -6,12 +6,12 @@
        <a-row :gutter="24">
          <a-col :md="6" :sm="6">
            <a-form-item label="设备编号">
              <a-input placeholder="输入设备编号查询" :readOnly="readOnly" v-model="queryParams.equipmentId"></a-input>
              <a-input placeholder="请选择设备" :readOnly="readOnly" v-model="queryParams.equipmentId"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="6" :sm="6">
            <a-form-item label="设备名称">
              <a-input placeholder="输入设备名称查询" :readOnly="readOnly" v-model="queryParams.equipmentName"></a-input>
              <a-input placeholder="请选择设备" :readOnly="readOnly" v-model="queryParams.equipmentName"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="6" :sm="6">
@@ -152,7 +152,6 @@
    </div>
    <work-chart-model ref="workChartModel"></work-chart-model>
    <work-history-model ref="workHistoryModel"></work-history-model>
  </div>
</template>
@@ -327,15 +326,22 @@
        // console.log(this.queryParams.collectTime)
        if(this.queryParams.collectTime != undefined){
          this.queryParams.collectTimeStr = this.queryParams.collectTime.format('YYYY-MM-DD')
          if(!this.queryParams.equipmentId||!this.queryParams.equipmentName){
            this.$notification.warning({
              message:'消息',
              description:"请选择设备"
            });
            return false
          }
          this.queryChart()
        }else{
          // this.$message.warning("请选择时间")
          console.log('触发提示')
          this.$notification.warning({
            message:'消息',
            description:"请选择时间"
          });
        }
        // this.queryList()
      },
      searchReset() {
@@ -417,6 +423,7 @@
              message:'消息',
              description:res.message
            });
          }
        })
      }
@@ -427,11 +434,10 @@
      this.initEquipment();
      // this.queryTreeData();
    },
    mounted() {
    },
    watch: {
      equement(val) {
        console.log('通过watch触发')
        if (val && val.equipmentId) {
          this.$set(this.queryParams, 'equipmentName', val.equipmentName)
          this.$set(this.queryParams, 'equipmentId', val.equipmentId)
src/views/mdc/base/modules/deviceLog/WorkChartModel.vue
@@ -55,7 +55,6 @@
        <div class="checkboxgroup">
          <p>统计参数</p>
          <div class="checkboxgroup_con">
            <a-checkbox-group name="checkboxgroup" :value="option" :options="plainOptions" @change="checkboxOnChange"/>
          </div>
        </div>
@@ -133,7 +132,6 @@
      let equipment = param.equipmentId
      getAction(this.url.initPlainOptions,{equipmentId:equipment}).then((res) => {
        if (res.success) {
          let temp = []
          // debugger
          for (var item of res.result) {
@@ -143,7 +141,6 @@
          if(temp.length>0){
            that.option = [temp[0].value]
          }
        }
      })
    },
src/views/mdc/base/modules/deviceManager/TierModel.vue
@@ -157,7 +157,7 @@
            obj.then((res) => {
              if (res.success) {
                // that.$message.success("成功")
                that.$notification.warning({
                that.$notification.success({
                  message:'消息',
                  description:"成功"
                });
src/views/mdc/base/modules/deviceRepair/DeviceRepairList.vue
@@ -6,7 +6,7 @@
        <a-row :gutter="24">
          <a-col :md="9" :sm="9">
            <a-form-item label="时间">
              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD HH:mm:ss" showTime/>
              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD HH:mm:ss"/>
            </a-form-item>
          </a-col>
          <a-col :md="4" :sm="4">
@@ -26,17 +26,18 @@
            <a-button type="primary" @click="searchReset" icon="reload">重置</a-button>
          </a-col>
          <a-col :lg="2" :md="3" :sm="3" :xs="3">
            <a-button type="primary" @click="exportExcel" icon="download">导出</a-button>
            <!--<a-button type="primary" @click="exportExcel" icon="download">导出</a-button>-->
            <a-button type="primary" @click="handleExportXls('维修休班管理')" icon="download">导出</a-button>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator" style="display: inline;">
      <a-button v-has="'user.addrequip'" @click="handleAdd" type="primary" icon="plus">维修新增
      <a-button  @click="handleAdd" type="primary" icon="plus">新增
      </a-button>
      <a-button v-has="'user.add'"  @click="handleAddXIU" type="primary" icon="plus">休班新增
      </a-button>
      <!--<a-button v-has="'user.add'"  @click="handleAddXIU" type="primary" icon="plus">休班新增-->
      <!--</a-button>-->
    </div>
    <!-- table区域-begin -->
@@ -63,11 +64,10 @@
      </a-table>
    </div>
    <!-- table区域-end -->
    <device-repair-model ref="modalForm" @ok="modalFormOk"></device-repair-model>
    <device-repair-model-add  ref="modalFormadd" @ok="modalFormOk"></device-repair-model-add>
    <device-repair-model ref="modalForm" :equipmentId="queryParams.equipmentId" @ok="modalFormOk"></device-repair-model>
    <!--<device-repair-model-add  ref="modalFormadd" @ok="modalFormOk"></device-repair-model-add>-->
    <device-repair-model-edit ref="modalFormedit" @ok="modalFormOk"></device-repair-model-edit>
    <!--<repair-model ref="repairModelFrom" @ok="modalFormOk"></repair-model>-->
    <!--<repair-model ref="repairModelFrom" @ok="modalFormOk">0</repair-model>-->
  </a-card>
</template>
@@ -163,6 +163,7 @@
          list: '/mdc/mdcEquipmentRepair/pageList',
          deleteBatch: '/mdc/mdcEquipmentRepair/delete',
          getEquipmentByPid: '/mdc/mdcequipment/getEquipmentByPid',
          exportXlsUrl:'/mdc/mdcEquipmentRepair/exportXls'
        }
      }
    },
@@ -182,8 +183,11 @@
            this.queryParamEquip.parentId = val.key
            this.queryParams.equipmentId = ''
          }
          this.searchQuery()
        }else{
          this.queryParams.equipmentId=''
          this.queryParamEquip.parentId = ""
        }
        this.searchQuery()
      },
      nodePeople(val){
        if (JSON.stringify(val) != '{}') {
@@ -384,10 +388,8 @@
        if(this.queryParams.typeTree == "1"){
          this.queryParams.parentId =  this.queryParamEquip.parentId
          // this.queryParams.equipmentId =  this.queryParamEquip.equipmentId
        }else{
          this.queryParams.parentId = this.queryParamPeople.parentId
          // this.queryParams.equipmentId = ""
        }
        this.dataSource = [];
@@ -481,7 +483,7 @@
            //重新计算分页问题
            that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
@@ -495,16 +497,19 @@
          }
        });
      },
      /**
       * æ‰“开新增维修或休班弹窗
       */
      handleAdd() {
        this.$refs.modalForm.add(this.node)
        this.$refs.modalForm.title = '新增'
        this.$refs.modalForm.disableSubmit = false
      },
      handleAddXIU() {
        this.$refs.modalFormadd.add()
        this.$refs.modalFormadd.title = '新增'
        this.$refs.modalFormadd.disableSubmit = false
      },
      // handleAddXIU() {
      //   this.$refs.modalFormadd.add()
      //   this.$refs.modalFormadd.title = '新增'
      //   this.$refs.modalFormadd.disableSubmit = false
      // },
      pQuery(parentId) {
        this.queryParam.parentId = parentId[0]
        if(this.selectedRowKeys.length >= 1) {
@@ -538,7 +543,7 @@
        $("#DeviceList").table2excel({
          exclude: ".noExl",
          name: "Excel Document Name",
          filename: "设备维修详情",
          filename: "维修休班管理",
          exclude_img: true,
          fileext: ".xls",
          exclude_links: true,
src/views/mdc/base/modules/deviceRepair/DeviceRepairListModel.vue
@@ -66,7 +66,7 @@
      <div>
        <a-table ref="table" size="middle" bordered rowKey="id" :scroll="{  y: 400 }" :columns="columns"
                 :dataSource="dataSource" :pagination="ipagination" :loading="loading"
                 :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
                 :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,getCheckboxProps:getCheckboxProps,selections: true,}"
                 @change="handleTableChange">
        </a-table>
      </div>
@@ -110,6 +110,9 @@
      status: {
        type: Number,
        default: 1
      },
      selectedEquipmentIds:{
        type:String
      }
    },
    data() {
@@ -199,6 +202,9 @@
        this.selectionRows = selectionRows
        // this.SelectedList =[...this.SelectedList,...selectionRows];
        // console.log(this.SelectedList);
        console.log('selectedRowKeys',selectedRowKeys)
        console.log('selectionRows',selectionRows)
      },
      handleTableChange(pagination, filters, sorter) {
        // this.onClearSelected()
@@ -305,8 +311,6 @@
          }
        })
      },
      initGroupOptions() {
        getAction(this.url.loadProductionOptions).then(res => {
          if (res.success) {
@@ -319,6 +323,27 @@
            });
          }
        })
      },
      /**
       * æ¯æ¬¡åŠ è½½åˆ—è¡¨æ—¶åˆ¤æ–­å·²é€‰ä¸­è®¾å¤‡ç¼–å·æ•°ç»„æ˜¯å¦åŒ…å«è¡¨æ ¼æ•°æ®ä¸­çš„è®¾å¤‡ç¼–å·ï¼Œå¦‚æžœåŒ…å«åˆ™é€‰ä¸­
       * @param record
       * @returns {{props: {defaultChecked: boolean}}}
       */
      getCheckboxProps(record){
        if(this.selectedEquipmentIds){
          let selectedEquipmentIdsArr=this.selectedEquipmentIds.split(',')
          return {
            props:{
              defaultChecked: selectedEquipmentIdsArr.includes(record.equipmentId)
            }
          }
        }else{
          return {
            props:{
              defaultChecked:false
            }
          }
        }
      }
    },
  }
src/views/mdc/base/modules/deviceRepair/DeviceRepairModel.vue
@@ -25,32 +25,58 @@
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-item label="维修类型" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
              <a-radio-group v-decorator="['mdcRepairType', validatorRules.mdcRepairType]">
                <a-radio :value="1">
                  ç»´ä¿®
                </a-radio>
                <a-radio :value="2">
                  ä¼‘班
                </a-radio>
              </a-radio-group>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-date :show-time="{defaultValue:moment('08:00:00','HH:mm:ss')}" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
                      :disabledDate="disabledDate" class="query-group-cust" v-decorator="['startTime', validatorRules.startTime]"></j-date>
              <j-date :show-time="{defaultValue:moment('08:00:00','HH:mm:ss'),hideDisabledOptions:true}"
                      date-format="YYYY-MM-DD HH:mm:ss"
                      placeholder="请选择开始时间"
                      :disabledDate="disabledDate" class="query-group-cust"
                      v-decorator="['startTime', validatorRules.startTime]" :disabledTime="disabledDateTime"
                      :showToday="false"></j-date>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-date :show-time="{defaultValue:moment('08:00:00','HH:mm:ss')}" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间"
                      :disabledDate="disabledDate"  class="query-group-cust" v-decorator="['endTime', validatorRules.endTime]"></j-date>
              <j-date :show-time="{defaultValue:moment('08:00:00','HH:mm:ss'),hideDisabledOptions:true}"
                      date-format="YYYY-MM-DD HH:mm:ss"
                      placeholder="请选择结束时间"
                      :disabledDate="disabledDate" class="query-group-cust"
                      v-decorator="['endTime', validatorRules.endTime]" :disabledTime="disabledDateTime"
                      :showToday="false"></j-date>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item v-show="this.mesag == 1" label="维修类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="disableSubmit" :readOnly="readOnly" placeholder="请选择设备类型"
                                 :triggerChange="true"
                                 v-decorator="['mdcRepairType', validatorRules.mdcRepairType]"/>
            </a-form-item>
          </a-col>
        </a-row>
        <!--<a-row :gutter="24">-->
        <!--<a-col :span="12">-->
        <!--<a-form-item v-show="this.mesag == 1" label="维修类型" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
        <!--<a-input :disabled="disableSubmit" :readOnly="readOnly" placeholder="请选择设备类型"-->
        <!--:triggerChange="true"-->
        <!--v-decorator="['mdcRepairType', validatorRules.mdcRepairType]"/>-->
        <!--</a-form-item>-->
        <!--</a-col>-->
        <!--</a-row>-->
      </a-form>
    </a-spin>
    <device-repair-list-model ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></device-repair-list-model>
    <device-repair-list-model ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"
                              :selectedEquipmentIds="selectedEquipmentIds"
    ></device-repair-list-model>
  </a-modal>
</template>
@@ -68,11 +94,18 @@
  import {
    duplicateCheck
  } from '@/api/api'
  import AFormItem from 'ant-design-vue/es/form/FormItem'
  import Vue from 'vue'
  export default {
    name: 'DeviceRepairModel',
    components: {DeviceRepairListModel,JDate},
    props: {},
    components: { AFormItem, DeviceRepairListModel, JDate },
    props: {
      equipmentId: {
        type: String
      }
    },
    data() {
      return {
        mesag:21,
@@ -82,8 +115,8 @@
        show: false,
        model: {},
        checked: false,
        startData:"",
        endData:"",
        startData: '',
        endData: '',
        labelCol: {
          xs: {
            span: 24
@@ -119,30 +152,47 @@
        confirmLoading: false,
        form: this.$form.createForm(this),
        validatorRules: {
          equipmentId:{
          equipmentIds: {
            rules:[
              {
                required:true,
                message: ""
              },
                message: '请选择设备'
              }
            ],
            initialValue: ''
          },
          equipmentName:{
            rules:[
              {
                required:true,
                message: ""
              },
            ],
                message: ''
              }
            ]
          },
          mdcRepairType:{
            rules:[
              {
                required:true,
                message: ""
              },
                message: ''
              }
            ],
            initialValue: 1
          },
          startTime: {
            rules: [
              {
                required: true,
                message: '请选择开始时间'
              }
            ]
          },
          endTime: {
            rules: [
              {
                required: true,
                message: '请选择结束时间'
              }
            ]
          }
        },
@@ -153,17 +203,32 @@
        disableSubmit: true,
        partCategoryCascade: [],
        cascadeDefaultValue: []
        cascadeDefaultValue: [],
        selectedEquipmentIds: ''
      }
    },
    created() {
    },
    watch: {
      // ç›‘控设备编号,当改变树中选项时将值赋值给新增弹窗的设备组选项
      equipmentId: function(val) {
        this.validatorRules.equipmentIds.initialValue = val
      },
      // ç›‘控弹窗显示,如果关闭则清空已选择的多选,如果开启则将树中已选择项赋值给已选择多选
      visible: function(val) {
        if (!val) {
          this.selectedEquipmentIds = ''
        } else {
          this.selectedEquipmentIds = this.validatorRules.equipmentIds.initialValue
        }
      }
    },
    methods: {
      disabledDate(current){
        //Can not slect days before today and today
        // return current && current < moment().endOf("day");
        return current < moment().subtract(+1, 'day')//今天之前的年月日不可选,不包括今天
        return current < moment().subtract(+2, 'day').endOf('day')//前一天之前的年月日不可选,不包括前一天
      },
      moment,
      // onChange(dates) {
@@ -176,20 +241,31 @@
      //   // console.log(this.startData,this.endData);
      // },
      onChangeEnd(dates, dateStrings){
        this.endTime = dateStrings[0];
        this.endTime = dateStrings[0]
      },
      getDeviceRows(val) {
        var equipmentIds;
        // var equipmentIds
        // for (var i = 0; i < val.length; i++) {
        //   if (i == 0) {
        //     equipmentIds = val[i].equipmentId
        //   } else {
        //     equipmentIds = equipmentIds + ',' + val[i].equipmentId
        //   }
        // }
        // // console.log("========",equipmentIds);
        // this.form.setFieldsValue({
        //   equipmentIds: equipmentIds
        // })
        for(var i = 0;i<val.length;i++){
          if (i == 0) {
            equipmentIds =  val[i].equipmentId;
            this.selectedEquipmentIds = val[i].equipmentId
          } else {
            equipmentIds = equipmentIds + "," + val[i].equipmentId;
            this.selectedEquipmentIds = this.selectedEquipmentIds + ',' + val[i].equipmentId
          }
        }
        // console.log("========",equipmentIds);
        this.form.setFieldsValue({
          equipmentIds: equipmentIds,
          equipmentIds: this.selectedEquipmentIds
        })
      //   this.form.setFieldsValue({
      // equipmentId: val.equipmentId,
@@ -236,7 +312,7 @@
        this.model = Object.assign({}, record)
        this.visible = true
        this.$nextTick(() => {
          this.form.setFieldsValue(pick(this.model, 'equipmentIds', 'equipmentName', 'mdcRepairType', 'startTime', 'endTime',
          this.form.setFieldsValue(pick(this.model, 'equipmentIds', 'equipmentName', 'mdcRepairType', 'startTime', 'endTime'
           ))
        })
      },
@@ -252,27 +328,67 @@
          if (!err) {
            that.confirmLoading = true
            let formData = Object.assign(this.model, values)
            let start = moment(formData.startTime).format('YYYY-MM-DD HH:mm:ss');
            let end = moment(formData.endTime).format('YYYY-MM-DD HH:mm:ss');
            let startOne = start.replace(/:/g,'');
            let endOne = end.replace(/:/g,'');
            var data = new Date();
            let stertDate = moment(data).format("YYYY-MM-DD HH:mm:ss");
            let dataStart = stertDate.replace(/:/g,'');
            if(startOne < dataStart){
              // that.$message.warning("开始时间不能小于当前时间")
              that.$notification.warning({
                message:'消息',
                description:"开始时间不能小于当前时间"
              });
              that.confirmLoading = false
            }else{
            let start = moment(formData.startTime).format('YYYY-MM-DD HH:mm:ss')
            let end = moment(formData.endTime).format('YYYY-MM-DD HH:mm:ss')
            let startOne = start.replace(/:/g, '')
            let endOne = end.replace(/:/g, '')
            var data = new Date()
            let stertDate = moment(data).format('YYYY-MM-DD HH:mm:ss')
            let dataStart = stertDate.replace(/:/g, '')
            // if (startOne < dataStart) {
            //   // that.$message.warning("开始时间不能小于当前时间")
            //   that.$notification.warning({
            //     message: '消息',
            //     description: '开始时间不能小于当前时间'
            //   })
            //   that.confirmLoading = false
            // } else {
            //   if (startOne >= endOne) {
            //     // that.$message.warning("结束时间不能小于开始时间");
            //     that.$notification.warning({
            //       message: '消息',
            //       description: '结束时间不能小于开始时间'
            //     })
            //     // console.log(this.model)
            //     // this.endTime = ''
            //     that.confirmLoading = false
            //   } else {
            //     let obj
            //     if (!this.model.id) {
            //       obj = postAction(this.url.add, formData)
            //     } else {
            //       obj = requestPut(this.url.edit, formData, {
            //         id: this.model.id
            //       })
            //     }
            //     obj.then((res) => {
            //       if (res.success) {
            //         // that.$message.success("添加成功")
            //         that.$notification.success({
            //           message: '消息',
            //           description: '添加成功'
            //         })
            //         // that.$message.success(res.message)
            //         that.$emit('ok', res.result)
            //       } else {
            //         // that.$message.warning(res.message)
            //         that.$notification.warning({
            //           message: '消息',
            //           description: res.message
            //         })
            //       }
            //     }).finally(() => {
            //       that.confirmLoading = false
            //       that.close()
            //     })
            //   }
            // }
              if(startOne>=endOne){
                // that.$message.warning("结束时间不能小于开始时间");
                that.$notification.warning({
                  message:'消息',
                  description:"结束时间不能小于开始时间"
                });
                description: '结束时间不能小于开始时间'
              })
                // console.log(this.model)
                // this.endTime = ''
                that.confirmLoading = false
@@ -288,10 +404,10 @@
                obj.then((res) => {
                  if (res.success) {
                    // that.$message.success("添加成功")
                    that.$notification.warning({
                  that.$notification.success({
                      message:'消息',
                      description:"添加成功"
                    });
                    description: '添加成功'
                  })
                    // that.$message.success(res.message)
                    that.$emit('ok', res.result)
                  } else {
@@ -299,15 +415,13 @@
                    that.$notification.warning({
                      message:'消息',
                      description:res.message
                    });
                  })
                  }
                }).finally(() => {
                  that.confirmLoading = false
                  that.close()
                })
              }
            }
          }
        })
      },
@@ -347,6 +461,22 @@
      },
      checkboxChange(e) {
        this.checked = e.target.checked
      },
      range(start, end) {
        const result = []
        for (let i = start; i < end; i++) {
          result.push(i)
        }
        return result
      },
      /**
       * ç¦ç”¨æ—¥æœŸé€‰æ‹©å™¨ä¸­çš„æ—¶é—´é€‰æ‹©
       * @returns {{disabledSeconds: (function(): number[])}} è¿”回值为一个对象,可以禁止小时、分钟、秒,目前仅禁止所有秒数,最低从1开始,从0开始确定按钮将被禁用
       */
      disabledDateTime() {
        return {
          disabledSeconds: () => this.range(1, 60)
        }
      }
    }
  }
@@ -371,4 +501,6 @@
  .ant-tabs-content .ant-form-item {
    margin-bottom: 0px;
  }
</style>
src/views/mdc/base/modules/deviceRepair/DeviceRepairModelAdd.vue
@@ -303,7 +303,7 @@
                obj.then((res) => {
                  if (res.success) {
                    // that.$message.success("添加成功")
                    that.$notification.warning({
                    that.$notification.success({
                      message:'消息',
                      description:"添加成功"
                    });
src/views/mdc/base/modules/deviceRepair/DeviceRepairModelEdit.vue
@@ -6,8 +6,10 @@
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" :disabledDate="disabledDate"
                      class="query-group-cust" v-decorator="['startTime', validatorRules.startTime]"></j-date>
              <j-date :show-time="{hideDisabledOptions:true}" date-format="YYYY-MM-DD HH:mm:ss"
                      placeholder="请选择开始时间" :disabledDate="disabledDate"
                      class="query-group-cust" v-decorator="['startTime', validatorRules.startTime]"
                      :disabledTime="disabledDateTime" :showToday="false"></j-date>
            </a-form-item>
          </a-col>
@@ -21,8 +23,11 @@
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" :disabledDate="disabledDate"
                      class="query-group-cust" v-decorator="['endTime', validatorRules.endTime]"></j-date>
              <j-date :show-time="{hideDisabledOptions:true}" date-format="YYYY-MM-DD HH:mm:ss"
                      placeholder="请选择结束时间"
                      :disabledDate="disabledDate"
                      class="query-group-cust" v-decorator="['endTime', validatorRules.endTime]"
                      :disabledTime="disabledDateTime" :showToday="false"></j-date>
            </a-form-item>
          </a-col>
          <a-col :span="12">
@@ -36,7 +41,8 @@
      </a-form>
    </a-spin>
    <!--<device-repair-list-model ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></device-repair-list-model>-->
    <device-repair-edit-list-model ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></device-repair-edit-list-model>
    <device-repair-edit-list-model ref="deviceRepairListModel"
                                   @sendSelectionRows="getDeviceRows"></device-repair-edit-list-model>
  </a-modal>
</template>
@@ -67,8 +73,8 @@
        show: false,
        model: {},
        checked: false,
        startData:"",
        endData:"",
        startData: '',
        endData: '',
        labelCol: {
          xs: {
            span: 24
@@ -108,18 +114,34 @@
            rules:[
              {
                required:true,
                message: ""
              },
            ],
                message: ''
              }
            ]
          },
          equipmentName:{
            rules:[
              {
                required:true,
                message: ""
                message: ''
              }
            ]
              },
            ],
          startTime: {
            rules: [
              {
                required: true,
                message: '请选择开始时间'
              }
            ]
          },
          endTime: {
            rules: [
              {
                required: true,
                message: '请选择结束时间'
              }
            ]
          }
          // mdcRepairType:{
          //   rules:[
          //     {
@@ -149,7 +171,7 @@
      disabledDate(current){
        //Can not slect days before today and today
        // return current && current < moment().endOf("day");
        return current < moment().subtract(+1, 'day')//今天之前的年月日不可选,不包括今天
        return current < moment().subtract(+2, 'day').endOf('day')//前一天之前的年月日不可选,不包括前一天
      },
      moment,
      // onChange(dates) {
@@ -162,12 +184,12 @@
      //   // console.log(this.startData,this.endData);
      // },
      onChangeEnd(dates, dateStrings){
        this.endTime = dateStrings[0];
        this.endTime = dateStrings[0]
      },
      getDeviceRows(val) {
        this.form.setFieldsValue({
          equipmentId: val.equipmentId,
          equipmentName: val.equipmentName,
          equipmentName: val.equipmentName
        //   // equipmentModel: val.equipmentModel,
        //   // equipmentIp: val.equipmentIp,
        //   // dataPort: val.dataPort,
@@ -220,10 +242,10 @@
      edit(record) {
        this.form.resetFields()
        this.model = Object.assign({}, record)
        this.editStart  = (this.model.startTime).replace(/:/g,'');
        this.editStart = (this.model.startTime).replace(/:/g, '')
        this.visible = true
        this.$nextTick(() => {
          this.form.setFieldsValue(pick(this.model, 'tierType', 'parentName', 'equipmentId', 'equipmentName','startTime', 'endTime',
          this.form.setFieldsValue(pick(this.model, 'tierType', 'parentName', 'equipmentId', 'equipmentName', 'startTime', 'endTime'
          ))
        })
      },
@@ -239,113 +261,148 @@
          if (!err) {
            that.confirmLoading = true
            let formData = Object.assign(this.model, values)
            let start = moment(formData.startTime).format('YYYY-MM-DD HH:mm:ss');
            let end = moment(formData.endTime).format('YYYY-MM-DD HH:mm:ss');
            let startOne = start.replace(/:/g,'');
            let endOne = end.replace(/:/g,'');
            var data = new Date();
            let stertDate = moment(data).format("YYYY-MM-DD HH:mm:ss");
            let dataStart = stertDate.replace(/:/g,'');
            if(this.editStart != startOne){
              if(startOne < dataStart) {
                // that.$message.warning("开始时间不能小于当前时间")
                that.$notification.warning({
                  message:'消息',
                  description:"开始时间不能小于当前时间"
                });
                that.confirmLoading = false
              }else{
            let start = moment(formData.startTime).format('YYYY-MM-DD HH:mm:ss')
            let end = moment(formData.endTime).format('YYYY-MM-DD HH:mm:ss')
            let startOne = start.replace(/:/g, '')
            let endOne = end.replace(/:/g, '')
            var data = new Date()
            let stertDate = moment(data).format('YYYY-MM-DD HH:mm:ss')
            let dataStart = stertDate.replace(/:/g, '')
            // if (this.editStart != startOne) {
            //   if (startOne < dataStart) {
            //     // that.$message.warning("开始时间不能小于当前时间")
            //     that.$notification.warning({
            //       message: '消息',
            //       description: '开始时间不能小于当前时间'
            //     })
            //     that.confirmLoading = false
            //   } else {
            //     if (startOne >= endOne) {
            //       // that.$message.warning("结束时间不能小于开始时间");
            //       that.$notification.warning({
            //         message: '消息',
            //         description: '结束时间不能小于当前时间'
            //       })
            //       // console.log(this.model)
            //       // this.endTime = ''
            //       that.confirmLoading = false
            //
            //     } else {
            //       let obj
            //       if (!this.model.id) {
            //         obj = postAction(this.url.add, formData)
            //       } else {
            //
            //         obj = requestPut(this.url.edit, formData, {
            //           id: this.model.id
            //         })
            //         let shijian = startOne
            //       }
            //       obj.then((res) => {
            //         if (res.success) {
            //           // that.$message.success("修改成功")
            //           // that.$message.success(res.message)
            //           that.$notification.success({
            //             message: '消息',
            //             description: res.message
            //           })
            //           that.$emit('ok', res.result)
            //         } else {
            //           // that.$message.warning(res.message)
            //           that.$notification.warning({
            //             message: '消息',
            //             description: res.message
            //           })
            //         }
            //       }).finally(() => {
            //         that.confirmLoading = false
            //         that.close()
            //       })
            //     }
            //   }
            // } else {
            //   if (startOne >= endOne) {
            //     // that.$message.warning("结束时间不能小于开始时间");
            //     that.$notification.warning({
            //       message: '消息',
            //       description: '结束时间不能小于开始时间'
            //     })
            //     // console.log(this.model)
            //     // this.endTime = ''
            //     that.confirmLoading = false
            //
            //   } else {
            //     let obj
            //     if (!this.model.id) {
            //       obj = postAction(this.url.add, formData)
            //     } else {
            //
            //       obj = requestPut(this.url.edit, formData, {
            //         id: this.model.id
            //       })
            //       let shijian = startOne
            //     }
            //     obj.then((res) => {
            //       if (res.success) {
            //         // that.$message.success("修改成功")
            //         // that.$message.success(res.message)
            //         that.$notification.success({
            //           message: '消息',
            //           description: res.message
            //         })
            //         that.$emit('ok', res.result)
            //       } else {
            //         // that.$message.warning(res.message)
            //         that.$notification.warning({
            //           message: '消息',
            //           description: res.message
            //         })
            //       }
            //     }).finally(() => {
            //       that.confirmLoading = false
            //       that.close()
            //     })
            //   }
            // }
                if(startOne>=endOne){
                  // that.$message.warning("结束时间不能小于开始时间");
                  that.$notification.warning({
                    message:'消息',
                    description:"结束时间不能小于当前时间"
                  });
                description: '结束时间不能小于开始时间'
              })
                  // console.log(this.model)
                  // this.endTime = ''
                  that.confirmLoading = false
                }else{
                  let obj
                  if (!this.model.id) {
                    obj = postAction(this.url.add, formData)
                  } else {
                    obj = requestPut(this.url.edit, formData, {
                      id: this.model.id
                    })
                    let shijian = startOne
                  }
                  obj.then((res) => {
                    if (res.success) {
                      // that.$message.success("修改成功")
                      // that.$message.success(res.message)
                      that.$notification.warning({
                  // that.$message.success("添加成功")
                  that.$notification.success({
                        message:'消息',
                        description:res.message
                      });
                    description: '修改成功'
                  })
                  // that.$message.success(res.message)
                      that.$emit('ok', res.result)
                    } else {
                      // that.$message.warning(res.message)
                      that.$notification.warning({
                        message:'消息',
                        description:res.message
                      });
                  })
                    }
                  }).finally(() => {
                    that.confirmLoading = false
                    that.close()
                  })
                }
              }
            }else{
              if(startOne>=endOne){
                // that.$message.warning("结束时间不能小于开始时间");
                that.$notification.warning({
                  message:'消息',
                  description:"结束时间不能小于开始时间"
                });
                // console.log(this.model)
                // this.endTime = ''
                that.confirmLoading = false
              }else{
                let obj
                if (!this.model.id) {
                  obj = postAction(this.url.add, formData)
                } else {
                  obj = requestPut(this.url.edit, formData, {
                    id: this.model.id
                  })
                  let shijian = startOne
                }
                obj.then((res) => {
                  if (res.success) {
                    // that.$message.success("修改成功")
                    // that.$message.success(res.message)
                    that.$notification.warning({
                      message:'消息',
                      description:res.message
                    });
                    that.$emit('ok', res.result)
                  } else {
                    // that.$message.warning(res.message)
                    that.$notification.warning({
                      message:'消息',
                      description:res.message
                    });
                  }
                }).finally(() => {
                  that.confirmLoading = false
                  that.close()
                })
              }
            }
          }
        })
      },
@@ -385,6 +442,22 @@
      },
      checkboxChange(e) {
        this.checked = e.target.checked
      },
      range(start, end) {
        const result = []
        for (let i = start; i < end; i++) {
          result.push(i)
        }
        return result
      },
      /**
       * ç¦ç”¨æ—¥æœŸé€‰æ‹©å™¨ä¸­çš„æ—¶é—´é€‰æ‹©
       * @returns {{disabledSeconds: (function(): number[])}} è¿”回值为一个对象,可以禁止小时、分钟、秒,目前仅禁止所有秒数,最低从1开始,从0开始确定按钮将被禁用
       */
      disabledDateTime() {
        return {
          disabledSeconds: () => this.range(1, 60)
        }
      }
    }
  }
src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue
@@ -10,13 +10,13 @@
                <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/>
              </a-form-item>
            </a-col>
            <a-col :lg="3" :md="3" :sm="3" :xs="3">
            <a-col :lg="2" :md="3" :sm="3" :xs="3">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
            </a-col>
            <a-col :lg="3"  :md="3" :sm="3" :xs="3">
            <a-col :lg="2"  :md="3" :sm="3" :xs="3">
              <a-button type="primary" @click="searchReset" icon="reload">重置</a-button>
            </a-col>
            <a-col :lg="3" :md="3" :sm="3" :xs="3">
            <a-col :lg="2" :md="3" :sm="3" :xs="3">
              <a-button type="primary" @click="exportExcel" icon="download">导出</a-button>
            </a-col>
          </a-row>
@@ -329,6 +329,8 @@
    dateParamChange(v1, v2) {
      this.queryParam.startTime = v2[0]
      this.queryParam.endTime = v2[1]
      // ç‚¹å‡»æ—¶é—´é€‰æ‹©å™¨çš„æ¸…空按钮时会触发此判断(点击重置按钮不会触发),实现重置列表功能,切实改变列表显示效果
      if(!this.queryParam.startTime&&!this.queryParam.endTime)this.searchReset()
    },
    efficiencyOptionsOnChange(checkedList) {
      let index = checkedList.indexOf('lyl')
@@ -343,6 +345,7 @@
      this.checkedList = checkedList
    },
    searchQuery() {
      if(this.dates != ''){
      if(this.queryParam.typeTree == "1"){
        this.queryParam.parentId =  this.queryParamEquip.parentId
        this.queryParam.equipmentId = this.queryParamEquip.equipmentId
@@ -351,6 +354,12 @@
        this.queryParam.equipmentId = ""
      }
      this.loadData()
      }else{
        this.$notification.warning({
          message:'消息',
          description:"请选择时间"
        });
      }
      // this.onClearSelected()
    },
    searchReset() {
src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue
@@ -142,7 +142,7 @@
      dataList: [],
      url: {
        list: '/mdc/efficiencyReport/efficiencyList',
        listByType: '/mdc/MdcUtilizationRate/getByType'
        listByType: '/mdc/MdcUtilizationRate/getByType',
      },
      tableHeads: [],
@@ -319,7 +319,7 @@
      $("#Efficiency").table2excel({
        exclude: ".noExl",
        name: "Excel Document Name",
        filename: "利用率",
        filename: "设备利用率",
        exclude_img: true,
        fileext: ".xls",
        exclude_links: true,
@@ -336,6 +336,8 @@
    dateParamChange(v1, v2) {
      this.queryParam.startTime = v2[0]
      this.queryParam.endTime = v2[1]
      // ç‚¹å‡»æ—¶é—´é€‰æ‹©å™¨çš„æ¸…空按钮时会触发此判断(点击重置按钮不会触发),实现重置列表功能,切实改变列表显示效果
      if(!this.queryParam.startTime&&!this.queryParam.endTime)this.searchReset()
    },
    efficiencyOptionsOnChange(checkedList) {
      let index = checkedList.indexOf('lyl')
@@ -374,6 +376,7 @@
    //   // this.onClearSelected()
    // },
    searchQuery() {
      if(this.dates != ''){
      if(this.queryParam.typeTree == "1"){
        this.queryParam.parentId =  this.queryParamEquip.parentId
        this.queryParam.equipmentId = this.queryParamEquip.equipmentId
@@ -382,6 +385,12 @@
        this.queryParam.equipmentId = ""
      }
      this.loadData()
      }else{
        this.$notification.warning({
          message:'消息',
          description:"请选择时间"
        });
      }
      // this.onClearSelected()
    },
    searchReset() {
src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue
@@ -33,7 +33,7 @@
          </a-row>
          <a-row :gutter="24">
            <a-col :md="14" :sm="14" :xs="14">
            <a-col :md="15" :sm="15" :xs="15">
              <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions"
                                @change="efficiencyOptionsOnChange"/>
            </a-col>
@@ -49,7 +49,7 @@
          </a-row>
        </a-form>
      </div>
        <div style="width: 400px;top: 20px; right: 0px;">
        <div style="width: 530px;top: 20px; right: 0px;">
        <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;">
          <tr>
            <td v-for="(item, index) in identifying">{{item.title}}</td>
@@ -370,11 +370,11 @@
        })
      },
      initShiftSubList(val) {
        this.queryParam.shiftSubId = null;
        //每次重新选择班制时班次清空且显示placeholder内容
        this.queryParam.shiftSubId = undefined;
        getAction(this.url.initShiftSubList, { shiftId: val }).then((res) => {
          if (res.success) {
            this.shiftSubList = res.result;
          }
        })
      },
@@ -406,6 +406,8 @@
      dateParamChange(v1, v2) {
        this.queryParam.startTime = v2[0]
        this.queryParam.endTime = v2[1]
        // ç‚¹å‡»æ—¶é—´é€‰æ‹©å™¨çš„æ¸…空按钮时会触发此判断(点击重置按钮不会触发),实现重置列表功能,切实改变列表显示效果
        if(!this.queryParam.startTime&&!this.queryParam.endTime)this.searchReset()
      },
      efficiencyOptionsOnChange(checkedList) {
        let index = checkedList.indexOf('lyl')
@@ -420,6 +422,7 @@
        this.checkedList = checkedList
      },
      searchQuery() {
        if(this.dates != ''){
        if(this.queryParam.typeTree == "1"){
          this.queryParam.parentId =  this.queryParamEquip.parentId
          this.queryParam.equipmentId = this.queryParamEquip.equipmentId
@@ -428,6 +431,13 @@
          this.queryParam.equipmentId = ""
        }
        this.loadData()
        }else{
          // this.$message.warning("请选择时间")
          this.$notification.warning({
            message:'消息',
            description:"请选择时间"
          });
        }
        // this.onClearSelected()
      },
      searchReset() {
src/views/mdc/base/modules/equipmentAvailCompare/equipmentAvailCompareMain.vue
@@ -1,4 +1,5 @@
<template>
  <a-spin :spinning="loading">
  <a-card :bordered="false" class="device_list">
    <div class="com_box">
      <!-- æŸ¥è¯¢åŒºåŸŸ -->
@@ -38,7 +39,6 @@
      </div>
      <!-- table区域-begin -->
      <div id="DeviceList">
        <div style="padding: 5px;width: 100%;height: 100%">
          <div style="width: 100%;height: 100%" id="dayAvailBar"></div>
          <!--<div id="dayAvailLine"></div>-->
@@ -47,6 +47,7 @@
      <!-- table区域-end -->
    </div>
  </a-card>
  </a-spin>
</template>
<script>
@@ -68,6 +69,7 @@
  import Tooltip from 'ant-design-vue/es/tooltip'
  import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api'
  import AFormItem from 'ant-design-vue/es/form/FormItem'
  export default {
    name: 'equipmentAvailCompareMain',
    // mixins: [JeecgListMixin],
@@ -86,13 +88,13 @@
    data() {
      return {
        activeKey: '1',
        typeTree:"",
        typeTree: '',
        typeParent:1,
        typeEquipment:1,
        spaceTime:[],
        useingRates:[],
        dates: [],
        xianshi:"",
        xianshi: '',
        readOnly:true,
        queryParam: {
          // dateTime:undefined,
@@ -107,12 +109,13 @@
          getEquipmentByPid: '/mdc/mdcEquipment/getEquipmentByPid',
          getEquipmentByDepPid:'/mdc/mdcEquipment/getEquipmentByDepPid'
        },
        AnalysisList:{}
        AnalysisList: {},
        loading: false
      }
    },
    watch:{
      Type(valmath){
        this.dataList = [];
        this.dataList = []
        this.queryParams.typeTree = valmath
        // console.log(this.queryParams.typeTree)
      },
@@ -120,7 +123,7 @@
        if (JSON.stringify(val) != '{}') {
          if (val.equipmentId) {
            // this.$set(this.queryParam, 'tierName', val.title)
            this.queryParamEquip.parentId =  ""
            this.queryParamEquip.parentId = ''
            this.queryParams.equipmentId = val.equipmentId
            this.queryParamEquip.equipmentId = val.equipmentId
            this.searchQuery()
@@ -131,14 +134,13 @@
            this.initEquipment(val.key)
          }
        }
      },
      nodePeople(val){
        if (JSON.stringify(val) != '{}') {
          if (val.equipmentId) {
            // this.$set(this.queryParam, 'tierName', val.title)
            this.queryParamEquip.parentId =  ""
            this.queryParamEquip.parentId = ''
            this.queryParams.equipmentId = val.equipmentId
            this.queryParamEquip.equipmentId = val.equipmentId
            this.searchQuery()
@@ -154,7 +156,7 @@
    },
    methods: {
      drawTu(){
        let dayAvailBar = this.$echarts.init(document.getElementById('dayAvailBar'), 'macarons');
        let dayAvailBar = this.$echarts.init(document.getElementById('dayAvailBar'), 'macarons')
        //dayAvailLine = echarts.init(document.getElementById('dayAvailLine'));
        let dayAvailBarOption = {
          title: {
@@ -163,12 +165,12 @@
            textStyle: {
              fontSize: 18,
              fontWeight: 'bolder',
              color: "#151414"
              color: '#151414'
            }
          },
          tooltip: {
            trigger: 'axis',
            formatter: "{a} <br/>{b} :({c}%)"
            formatter: '{a} <br/>{b} :({c}%)'
          },
          toolbox: {
            show: true,
@@ -214,8 +216,8 @@
              }
            }
          ]
        };
        dayAvailBar.setOption(dayAvailBarOption);
        }
        dayAvailBar.setOption(dayAvailBarOption)
      },
      moment,
      onChangeStart(time, timeString) {
@@ -228,10 +230,10 @@
      },
      disabledDate(current){
        //Can not slect days before today and today
        return current && current > moment().subtract('days', 1);
        return current && current > moment().subtract('days', 1)
      },
      dataChange(val) {
        this.queryParam.dateTime = val.format('YYYYMMDD')
        if (val) this.queryParam.dateTime = val.format('YYYYMMDD')
      },
      handleChange(value) {
        this.queryParam.timeType = value
@@ -247,6 +249,7 @@
        // console.log(v2[0],v2[1])
      },
      loadAnalysis(){
        this.loading = true
        getAction(this.url.dayUtilizationRateContrast,this.queryParam).then(res => {
          if (res.success) {
            this.spaceTime.push(res.result.dataList)
@@ -269,21 +272,22 @@
        }
      },
      searchQuery(){
        if (this.queryParam.startTime && this.queryParam.endTime && this.dates && this.dates.length > 0) {
          this.loading = true
        this.spaceTime = []
        this.useingRates = []
        if(this.queryParams.typeTree == "1"){
          if (this.queryParams.typeTree == '1') {
          this.queryParams.parentId =  this.queryParamEquip.parentId
          // this.queryParams.equipmentId =  this.queryParamEquip.equipmentId
        }else{
          this.queryParams.parentId = this.queryParamEquip.parentId
          // this.queryParams.equipmentId = ""
        }
        this.AnalysisList = [];
          this.AnalysisList = []
        //获取查询条件
        this.queryParam.parentId = this.queryParams.parentId;
        this.queryParam.equipmentId = this.queryParams.equipmentId;
          this.queryParam.parentId = this.queryParams.parentId
          this.queryParam.equipmentId = this.queryParams.equipmentId
        this.queryParam.typeTree = this.queryParams.typeTree
        getAction(this.url.dayUtilizationRateContrast,this.queryParam).then((res) => {
          if(res.success){
@@ -298,16 +302,23 @@
            this.$notification.warning({
              message:'消息',
              description:res.message
            });
              })
          }
        }).finally(() => {
          this.loading = false
        })
        } else {
          this.$notification.warning({
            message: '消息',
            description: '请选择时间或时间段'
          })
        }
      },
      searchReset() {
        this.loading = true
        this.spaceTime = []
        this.useingRates = []
        if(this.queryParams.typeTree == "1"){
        if (this.queryParams.typeTree == '1') {
          this.typeTree = this.queryParams.typeTree
          this.typeParent =  this.queryParams.parentId
          this.typeEquipment = this.queryParams.equipmentId
@@ -315,8 +326,8 @@
          this.queryParam = {}
          this.queryParams.typeTree = this.typeTree
          this.queryParams.parentId = this.typeParent
          if(this.queryParams.parentId !=  ""){
            this.queryParams.equipmentId =  ""
          if (this.queryParams.parentId != '') {
            this.queryParams.equipmentId = ''
            this.initEquipment()
          }else{
            if(this.queryParams.equipmentId == this.queryParamEquip.equipmentId){
@@ -337,7 +348,7 @@
              this.$notification.warning({
                message:'消息',
                description:res.message
              });
              })
            }
          }).finally(() => {
            this.loading = false
@@ -351,8 +362,8 @@
          this.dates = []
          this.queryParams.typeTree = this.typeTree
          this.queryParams.parentId = this.typeParent
          if(this.queryParams.parentId !=  ""){
            this.queryParams.equipmentId =  ""
          if (this.queryParams.parentId != '') {
            this.queryParams.equipmentId = ''
            this.initEquipment()
          }else{
            if(this.queryParams.equipmentId == this.queryParamEquip.equipmentId){
@@ -373,7 +384,7 @@
              this.$notification.warning({
                message:'消息',
                description:res.message
              });
              })
            }
          }).finally(() => {
            this.loading = false
@@ -399,14 +410,14 @@
              _this.$notification.warning({
                message:'消息',
                description:'请联系管理员,开放设备权限!'
              });
              })
            }
          }else{
            // this.$message.warning(res.message)
            _this.$notification.warning({
              message:'消息',
              description:res.message
            });
            })
          }
        })
      },
@@ -428,14 +439,14 @@
              _this.$notification.warning({
                message:'消息',
                description:'请联系管理员,开放设备权限!'
              });
              })
            }
          }else{
            // this.$message.warning(res.message)
            _this.$notification.warning({
              message:'消息',
              description:res.message
            });
            })
          }
        })
      }
@@ -445,14 +456,13 @@
      this.queryParam.startDate = moment(this.dates[0]).format('YYYYMMDD')
      this.queryParam.endDate = moment(this.dates[1]).format('YYYYMMDD')
      this.queryParam.startTime = '00:00'
      this.queryParam.endTime = "08:00"
      this.queryParams.typeTree = "1";
      this.queryParam.endTime = '08:00'
      this.queryParams.typeTree = '1'
    },
    mounted() {
      this.initEquipment()
    },
    }
  }
</script>
@@ -465,30 +475,35 @@
      overflow: scroll;
    }
  }
  @media screen and (min-width: 1680px) and (max-width: 1920px){
    .device_list{
      height: 811px!important;
      overflow: scroll;
    }
  }
  @media screen and (min-width: 1400px) and (max-width: 1680px){
    .device_list{
      height: 663px!important;
      overflow: scroll;
    }
  }
  @media screen and (min-width: 1280px) and (max-width: 1400px){
    .device_list{
      height: 564px!important;
      overflow: scroll;
    }
  }
  @media screen and (max-width: 1280px){
    .device_list{
      height: 564px!important;
      overflow: scroll;
    }
  }
  /*.device_list{*/
  /*display: flex;*/
  /*}*/
@@ -498,14 +513,17 @@
  /deep/ .ant-card-body{
    height: 100%!important;
  }
  .device_list .com_box{
    display: flex!important;
    height: 100%!important;
    flex-direction: column!important;
  }
  .device_list .table-page-search-wrapper{
    height: 6%!important;
  }
  .device_list #DeviceList{
    height: 90%!important;
  }
src/views/mdc/base/modules/equipmentDayAvail/equipmentDayAvailMain.vue
@@ -15,7 +15,7 @@
                <a-input placeholder="输入设备名称查询" :readOnly="readOnly" v-model="queryParams.equipmentName"></a-input>
              </a-form-item>
            </a-col>
            <a-col :md="5" :sm="5" :xs="5">
            <a-col :md="4" :sm="4" :xs="4">
              <a-form-item label="日期">
                <a-date-picker v-model="queryParam.dateTime" :disabledDate="disabledDate" format='YYYYMMDD' @change="dataChange"/>
              </a-form-item>
@@ -38,7 +38,7 @@
                </a-select>小时
              </a-form-item>
            </a-col>
            <a-col :md="2" :sm="3" :xs="3">
            <a-col :md="3" :sm="3" :xs="3">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
            </a-col>
            <!--<a-col :md="2" :sm="2" :xs="2">-->
@@ -276,6 +276,7 @@
        }
      },
      searchQuery(){
        if(this.queryParam.dateTime){
        this.spaceTime = []
        this.useingRates = []
        if(this.queryParams.typeTree == "1"){
@@ -309,6 +310,13 @@
        }).finally(() => {
          this.loading = false
        })
        }else{
          this.$notification.warning({
            message:'消息',
            description:'请选择时间'
          });
        }
      },
      searchReset() {
        this.spaceTime = []
src/views/mdc/base/modules/mdcDriveTypeParamConfig/MdcDriveTypeParamConfigForm.vue
@@ -15,11 +15,17 @@
              :wrapperCol="wrapperCol"
              prop="controlSystemType"
            >
              <j-dict-select-tag
                type="list"
              <!--<j-dict-select-tag-->
                <!--type="list"-->
                <!--v-model="model.controlSystemType"-->
                <!--dictCode="mdc_driveType"-->
                <!--placeholder="请选择控制系统类型"-->
              <!--/>-->
              <a-auto-complete
                v-model="model.controlSystemType"
                dictCode="mdc_driveType"
                :data-source="driveTypeList"
                placeholder="请选择控制系统类型"
                :filter-option="filterOption"
              />
            </a-form-model-item>
          </a-col>
@@ -104,6 +110,9 @@
      type: Boolean,
      default: false,
      required: false
    },
    driveTypeList:{
      type:Object
    }
  },
  data() {
@@ -181,7 +190,7 @@
          httpAction(httpurl, this.model, method).then((res) => {
            if (res.success) {
              // that.$message.success(res.message);
              that.$notification.warning({
              that.$notification.success({
                message:'消息',
                description:res.message
              });
src/views/mdc/base/modules/mdcDriveTypeParamConfig/MdcDriveTypeParamConfigModal.vue
@@ -8,7 +8,7 @@
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <mdc-drive-type-param-config-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></mdc-drive-type-param-config-form>
    <mdc-drive-type-param-config-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" :driveTypeList="driveTypeList"></mdc-drive-type-param-config-form>
  </j-modal>
</template>
@@ -20,6 +20,7 @@
    components: {
      MdcDriveTypeParamConfigForm
    },
    props:['driveTypeList'],
    data () {
      return {
        title:'',
src/views/mdc/base/modules/mdcPassRate/mdcPassRateEdit.vue
@@ -123,6 +123,22 @@
              },
            ],
          },
          processQuantity:{
            rules:[
              {
                required:true,
                message: "请输入加工数量"
              },
            ],
          },
          unqualifiedQuantity:{
            rules:[
              {
                required:true,
                message: "请输入不合格数量"
              },
            ],
          },
          // mdcRepairType:{
          //   rules:[
          //     {
@@ -265,7 +281,7 @@
                  // that.$message.success("添加成功")
                  that.$notification.success({
                    message:'消息',
                    description:"添加成功"
                    description:"修改成功"
                  });
                  // that.$message.success(res.message)
                  that.$emit('ok', res.result)
src/views/mdc/base/modules/mdcPassRate/mdcPassRateModal.vue
@@ -116,6 +116,30 @@
              },
            ],
          },
          processQuantity:{
            rules:[
              {
                required:true,
                message: "请输入加工数量"
              },
            ],
          },
          unqualifiedQuantity:{
            rules:[
              {
                required:true,
                message: "请输入不合格数量"
              },
            ],
          },
          efficientDate:{
            rules:[
              {
                required:true,
                message: "请选择日期"
              },
            ],
          },
        },
        url: {
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue
@@ -36,7 +36,7 @@
      <a-button @click="handleAdd" type="primary" icon="plus">新增
      </a-button>
      <a-button type="primary" icon="download" @click="importTemplate('加工数量模板')">导入模板</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('加工数量')">导出</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('加工数量管理')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
      <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
@@ -246,8 +246,8 @@
    methods: {
      importTemplate(fileName){
        var a = document.createElement("a");
        a.href = "/static/加工数量.xls";
        a.download = "加工数量.xls";
        a.href = "/static/加工数量管理.xls";
        a.download = "加工数量管理.xls";
        a.style.display = "none";
        document.body.appendChild(a);
        a.click();
@@ -345,7 +345,7 @@
      handleEdit: function (record) {
        this.$refs.modalFormedit.edit(record);
        this.$refs.modalFormedit.title = "编辑";
        this.$refs.modalFormedit.disableSubmit = false;
        // this.$refs.modalFormedit.disableSubmit = false;
      },
      handleTableChange(pagination, filters, sorter) {
        this.dataSource = []
@@ -534,7 +534,7 @@
            //重新计算分页问题
            that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue
@@ -102,7 +102,7 @@
            span: 24
          },
          sm: {
            span: 6
            span: 8
          }
        },
        wrapperCol: {
@@ -110,7 +110,7 @@
            span: 24
          },
          sm: {
            span: 18
            span: 16
          }
        },
        labelColLong: {
@@ -134,7 +134,7 @@
            span: 24
          },
          sm: {
            span: 3
            span: 4
          }
        },
        wrapperColLong1: {
@@ -142,14 +142,28 @@
            span: 24
          },
          sm: {
            span: 21
            span: 20
          }
        },
        confirmLoading: false,
        form: this.$form.createForm(this),
        validatorRules: {
          duration:{
            rules:[
              {required:true,message:'请选择标准加工时间'}
            ]
        },
          efficientDate:{
            rules:[
              {required:true,message:'请选择日期'}
            ]
          },
          processQuantity:{
            rules:[
              {required:true,message:'请选择加工数量'}
            ]
          },
        },
        url: {
          add: '/mdc/mdcProcessQuantity/add',
          edit: '/mdc/mdcProcessQuantity/edit'
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue
@@ -1,19 +1,19 @@
<template>
  <a-modal :title="title" :width="800" :visible="visible" :confirmLoading="confirmLoading"
           :okButtonProps="{ props: {disabled: disableSubmit} }" @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
           @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="设备编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="请输入设备编号"
              <a-input  :readOnly="readOnly" allow-clear placeholder="请输入设备编号"
                       v-decorator="['equipmentId',validatorRules.equipmentId]"/>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="设备名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="请输入设备名称"
              <a-input  :readOnly="readOnly" allow-clear placeholder="请输入设备名称"
                       v-decorator="['equipmentName',validatorRules.equipmentName]"/>
            </a-form-item>
          </a-col>
@@ -46,21 +46,21 @@
          <a-col :span="12">
            <a-form-item label="日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-date :disabled="disableSubmit"  date-format="YYYY-MM-DD" placeholder="请选择日期"
              <j-date   date-format="YYYY-MM-DD" placeholder="请选择日期"
                      v-decorator="['efficientDate', validatorRules.efficientDate]"></j-date>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label='加工数量' :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input-number :min="0" :disabled="disableSubmit"  placeholder="请输入加工数量"  v-decorator="['processQuantity', validatorRules.processQuantity]"></a-input-number>
              <a-input-number :min="0"   placeholder="请输入加工数量"  v-decorator="['processQuantity', validatorRules.processQuantity]"></a-input-number>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
          <a-form-item label="备注" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
            <a-textarea :maxLength="20"  :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="请输入备注"  ></a-textarea>
            <a-textarea :maxLength="20"    v-decorator="['remark', validatorRules.remark]" placeholder="请输入备注"  ></a-textarea>
          </a-form-item>
          </a-col>
        </a-row>
@@ -152,6 +152,21 @@
              },
            ],
          },
          duration:{
            rules:[
              {required:true,message:'请选择标准加工时间'}
            ]
          },
          efficientDate:{
            rules:[
              {required:true,message:'请选择日期'}
            ]
          },
          processQuantity:{
            rules:[
              {required:true,message:'请选择加工数量'}
            ]
          },
          // mdcRepairType:{
          //   rules:[
          //     {
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue
@@ -9,7 +9,6 @@
              <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="请输入设备编号"
                       v-decorator="['equipmentId',validatorRules.equipmentId]"/>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="设备名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -134,6 +133,38 @@
              },
            ],
          },
          partsCode:{
            rules:[
              {
                required:true,
                message: "请输入零件号"
              },
            ],
          },
          batchCode:{
            rules:[
              {
                required:true,
                message: "请输入批次号"
              },
            ],
          },
          sequenceNumber:{
            rules:[
              {
                required:true,
                message: "请输入程序号"
              },
            ],
          },
          duration:{
            rules:[
              {
                required:true,
                message: "请输入时长"
              },
            ],
          },
          // mdcRepairType:{
          //   rules:[
          //     {
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue
@@ -524,7 +524,7 @@
            //重新计算分页问题
            that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue
@@ -121,6 +121,38 @@
              },
            ],
          },
          partsCode:{
            rules:[
              {
                required:true,
                message: "请输入零件号"
              },
            ],
          },
          batchCode:{
            rules:[
              {
                required:true,
                message: "请输入批次号"
              },
            ],
          },
          sequenceNumber:{
            rules:[
              {
                required:true,
                message: "请输入程序号"
              },
            ],
          },
          duration:{
            rules:[
              {
                required:true,
                message: "请输入时长"
              },
            ],
          },
        },
        url: {
src/views/mdc/base/modules/mdcUtilizationRate/MdcUtilizationRateModel.vue
@@ -115,7 +115,7 @@
            }).then((res) => {
              if (res.success) {
                // that.$message.success("保存成功")
                that.$notification.warning({
                that.$notification.success({
                  message:'消息',
                  description:"保存成功"
                });
src/views/mdc/base/modules/openRateFractionAnalysis/openRateFractionAnalysisMain.vue
@@ -7,7 +7,8 @@
          <a-row :gutter="24">
            <a-col :md="6" :sm="6">
              <a-form-item label="时间">
                <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/>
                <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD"
                                v-model="dates"/>
              </a-form-item>
            </a-col>
            <a-col :md="7" :sm="7" :xs="7">
@@ -26,13 +27,21 @@
      <div id="DeviceList">
        <div class="openRateTrendDg">
          <div id="Efficiency" class="container" style="margin-top: 20px;">
            <a-spin :spinning="loading">
            <div class="table2">
              <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap;text-align: center;">
                <table class="dataContent table" border="1" cellspacing="0" cellpadding="0"
                       style="white-space: nowrap;text-align: center;">
                <thead>
                <tr class="thead fixed equipname">
                  <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">设备编号</th>
                  <th class="thgu dong2 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">设备名称</th>
                  <th class="thgu dong3 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">设备类型</th>
                    <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">
                      è®¾å¤‡ç¼–号
                    </th>
                    <th class="thgu dong2 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">
                      è®¾å¤‡åç§°
                    </th>
                    <th class="thgu dong3 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">
                      è®¾å¤‡ç±»åž‹
                    </th>
                  <template v-for="(tableHead, index) in tableHeads">
                    <th class="timeth">{{tableHead}}</th>
                  </template>
@@ -50,6 +59,7 @@
                </tbody>
              </table>
            </div>
            </a-spin>
          </div>
        </div>
        <div id="openRateTrendChart" style="width: 100%;height: 60%"></div>
@@ -67,6 +77,7 @@
  import {
    JeecgListMixin
  } from '@/mixins/JeecgListMixin'
  export default {
    // mixins: [JeecgListMixin],
    name: 'openRateFractionAnalysisMain',
@@ -76,7 +87,7 @@
        dataSource: [],
        /* table加载状态 */
        loading: false,
        typeTree: "",
        typeTree: '',
        typeParent: 1,
        typeEquipment: 1,
        TreeIDOne: 1,
@@ -104,7 +115,7 @@
        },
        tableHeads: [],
        XData:[0],
        YData:[0],
        YData: [0]
      }
    },
    props: { nodeTree: '', Type: '', nodePeople: '' },
@@ -116,14 +127,14 @@
      this.queryParam.startDate = moment(this.dates[0]).format('YYYYMMDD')
      this.queryParam.endDate = moment(this.dates[1]).format('YYYYMMDD')
      this.queryParam.startTime = '00:00'
      this.queryParam.endTime = "08:00"
      this.queryParam.typeTree = "1"
      this.queryParam.endTime = '08:00'
      this.queryParam.typeTree = '1'
      this.loadData1()
    },
    watch: {
      Type(valmath) {
        this.dataList = [];
        this.dataList = []
        this.queryParam.typeTree = valmath
      },
      nodeTree(val) { //监听currSelected å˜åŒ–,将变化后的数值传递给 getCurrSelected äº‹ä»¶
@@ -197,21 +208,29 @@
      },
      //Can not slect days before today and today
      disabledDate(current) {
        return current && current > moment().subtract('days', 1);
        return current && current > moment().subtract('days', 1)
      },
      dateParamChange(v1, v2) {
        this.queryParam.startDate = v2[0]
        this.queryParam.endDate = v2[1]
      },
      searchQuery() {
        if (this.queryParam.typeTree == "1") {
        if (this.queryParam.startTime && this.queryParam.endTime && this.dates && this.dates.length > 0) {
          if (this.queryParam.typeTree == '1') {
          this.queryParam.parentId = this.queryParamEquip.parentId
          this.queryParam.equipmentId = this.queryParamEquip.equipmentId
        } else {
          this.queryParam.parentId = this.queryParamPeople.parentId
          this.queryParam.equipmentId = ""
            this.queryParam.equipmentId = ''
        }
        this.loadData1()
        } else {
          this.$notification.warning({
            message: '提示',
            description: '请选择时间或时间段'
          })
        }
        // this.onClearSelected()
      },
      // searchReset() {
@@ -284,6 +303,7 @@
      //     }
      //   }
      loadData1() {
        this.loading=true
        this.tableHeads = []
        this.dataList = []
        getAction(this.url.efficiencyList, this.queryParam).then(res => {
@@ -298,10 +318,12 @@
            // this.initDeviceType(this.dataList)
          }
        }).finally(()=>{
          this.loading=false
        })
      },
      draw(){
        let openRateTrendAnalysisChart = this.$echarts.init(document.getElementById('openRateTrendChart'), 'macarons');
        let openRateTrendAnalysisChart = this.$echarts.init(document.getElementById('openRateTrendChart'), 'macarons')
        let openRateTrendChartOptions = {
          title: {
            text: '利用率走势分析',
@@ -309,7 +331,7 @@
            textStyle: {
              fontSize: 18,
              fontWeight: 'bolder',
              color: "#151414"
              color: '#151414'
            }
          },
          tooltip: {
@@ -355,8 +377,8 @@
              }
            }
          ]
        };
        openRateTrendAnalysisChart.setOption(openRateTrendChartOptions,true);
        }
        openRateTrendAnalysisChart.setOption(openRateTrendChartOptions, true)
      }
    }
  }
@@ -401,9 +423,11 @@
    padding: 10px;
    /*display: none;*/
  }
  .dataContent .mathData:hover td{
    background-color: #e6f7ff;
  }
  .dataContent .mathData .td {
    /*background-color: #ff9bd2;*/
    display: inline-block;
@@ -413,11 +437,13 @@
  .dataContent .mathData .tdd {
    /*display: none;*/
  }
  .table2{
  width: 100%;
  height: 100%;
  overflow: auto;
  }
  /*tr th {*/
    /*height: 50px!important;*/
  /*}*/
@@ -430,70 +456,85 @@
    left: 0;
    z-index: 1;
  }
  .table tbody tr .kaitou{
    z-index: 1;
    background-color: white;
  }
  .table tbody tr .tdgu1{
    position: sticky;
    left: 150px;
    z-index: 2;
  }
  .table tbody tr .tdgu2{
    position: sticky;
    left: 300px;
    z-index: 2;
  }
  .table tbody tr .tdgu3{
    position: sticky;
    left: 450px;
    z-index: 2;
  }
  .table tbody tr .tdgu4{
    position: sticky;
    left: 550px;
    z-index: 2;
  }
  .table tbody tr .tdgu5{
    position: sticky;
    left: 700px;
    z-index: 2;
  }
  .table2 thead tr .timeth,
  .table2 thead tr  .thgu {
    position: sticky;
    top:0;
    z-index: 3;
  }
  .table2 thead .gudingth th{
    position: sticky;
    top: 32px;
    z-index: 6!important;
  }
  .table2 thead .equipname .name{
    z-index: 3;
  }
  .table2 thead .equipname .dong1{
    z-index: 4;
    left: 0;
    /*border: 1px solid #000;*/
  }
  .table2 thead .equipname .dong2{
    z-index: 5;
    left: 150px;
  }
  .table2 thead .equipname .dong3{
    z-index: 5;
    left: 300px;
  }
  .table2 thead .equipname .dong4{
    z-index: 5;
    left: 450px;
  }
  .table2 thead .equipname .dong5{
    z-index: 5;
    left: 550px;
  }
  .table2 thead .equipname .dong6{
    z-index: 5;
    left: 700px;
@@ -505,45 +546,54 @@
  overflow: scroll;
  }
  }
  @media screen and (min-width: 1680px) and (max-width: 1920px){
  #Efficiency{
  height: 337px!important;
  overflow: scroll;
  }
  }
  @media screen and (min-width: 1400px) and (max-width: 1680px){
  #Efficiency{
  height: 190px!important;
  overflow: scroll;
  }
  }
  @media screen and (min-width: 1280px) and (max-width: 1400px){
  #Efficiency{
  height: 90px!important;
  overflow: scroll;
  }
  }
  @media screen and (max-width: 1280px){
  #Efficiency{
  height: 90px!important;
  overflow: scroll;
  }
  }
  #Efficiency .table_guding1{
    position: absolute;
    overflow: hidden;
    width: 500px;
  }
  #Efficiency .table_guding2{
    overflow-x: scroll;
    width: 500px;
  }
  /deep/ .ant-card{
    height: 100%!important;
  }
  /deep/ .ant-card .ant-card-body{
    height: 100%!important;
  }
  .efficiency_list #DeviceList{
    height: 90%!important;
  }
src/views/mdc/base/modules/openRateTrendAnalysis/openRateTrendAnalysisMain.vue
@@ -7,7 +7,8 @@
            <a-row :gutter="24">
              <a-col :md="6" :sm="6">
                <a-form-item label="时间">
                  <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/>
                <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD"
                                v-model="dates"/>
                </a-form-item>
              </a-col>
              <a-col :lg="2" :md="3" :sm="3" :xs="3">
@@ -19,13 +20,21 @@
        <div id="DeviceList">
          <div class="openRateTrendDg">
            <div id="Efficiency" class="container" style="margin-top: 20px;">
            <a-spin :spinning="loading">
              <div class="table2">
                <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap;text-align: center;">
                <table class="dataContent table" border="1" cellspacing="0" cellpadding="0"
                       style="white-space: nowrap;text-align: center;">
                  <thead>
                  <tr class="thead fixed equipname">
                    <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">设备编号</th>
                    <th class="thgu dong2 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">设备名称</th>
                    <th class="thgu dong3 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">设备类型</th>
                    <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">
                      è®¾å¤‡ç¼–号
                    </th>
                    <th class="thgu dong2 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">
                      è®¾å¤‡åç§°
                    </th>
                    <th class="thgu dong3 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">
                      è®¾å¤‡ç±»åž‹
                    </th>
                    <template v-for="(tableHead, index) in tableHeads">
                      <th class="timeth" :colspan="checkedList.length">{{tableHead}}</th>
                    </template>
@@ -43,6 +52,7 @@
                  </tbody>
                </table>
              </div>
            </a-spin>
            </div>
          </div>
          <div id="openRateTrendChart" style="width: 100%;height: 60%"></div>
@@ -60,6 +70,7 @@
  import {
    JeecgListMixin
  } from '@/mixins/JeecgListMixin'
  export default {
    // mixins: [JeecgListMixin],
    name: 'openRateTrendAnalysisMain',
@@ -69,7 +80,7 @@
        dataSource: [],
        /* table加载状态 */
        loading: false,
        typeTree: "",
        typeTree: '',
        typeParent: 1,
        typeEquipment: 1,
        TreeIDOne: 1,
@@ -97,7 +108,7 @@
        },
        tableHeads: [],
        XData:[0],
        YData:[0],
        YData: [0]
      }
    },
    props: { nodeTree: '', Type: '', nodePeople: '' },
@@ -108,12 +119,12 @@
      this.dates = [moment().subtract('days', 8), moment().subtract('days', 1)]
      this.queryParam.startDate = moment(this.dates[0]).format('YYYYMMDD')
      this.queryParam.endDate = moment(this.dates[1]).format('YYYYMMDD')
      this.queryParam.typeTree = "1"
      this.queryParam.typeTree = '1'
      this.loadData1()
    },
    watch: {
      Type(valmath) {
        this.dataList = [];
        this.dataList = []
        this.queryParam.typeTree = valmath
      },
      nodeTree(val) { //监听currSelected å˜åŒ–,将变化后的数值传递给 getCurrSelected äº‹ä»¶
@@ -178,7 +189,7 @@
      },
      disabledDate(current) {
        //Can not slect days before today and today
        return current && current > moment().subtract('days', 1);
        return current && current > moment().subtract('days', 1)
      },
      initDeviceType(deviceList) {
        let dictCode = 'mdc_equipmentType'
@@ -212,14 +223,21 @@
        this.queryParam.endDate = v2[1]
      },
      searchQuery() {
        if (this.queryParam.typeTree == "1") {
        if (this.dates && this.dates.length > 0) {
          if (this.queryParam.typeTree == '1') {
          this.queryParam.parentId = this.queryParamEquip.parentId
          this.queryParam.equipmentId = this.queryParamEquip.equipmentId
        } else {
          this.queryParam.parentId = this.queryParamPeople.parentId
          this.queryParam.equipmentId = ""
            this.queryParam.equipmentId = ''
        }
        this.loadData1()
        } else {
          this.$notification.warning({
            message: '提示',
            description: '请选择时间'
          })
        }
        // this.onClearSelected()
      },
      // searchReset() {
@@ -292,6 +310,7 @@
      //     }
      //   }
      loadData1() {
        this.loading = true
        this.tableHeads = []
        this.dataList = []
        getAction(this.url.efficiencyList, this.queryParam).then(res => {
@@ -304,12 +323,13 @@
            // this.checkSameData2(this.dataList)
            // this.combineCell();
            // this.initDeviceType(this.dataList)
          }
        }).finally(() => {
          this.loading = false
        })
      },
      draw(){
        let openRateTrendAnalysisChart = this.$echarts.init(document.getElementById('openRateTrendChart'), 'macarons');
        let openRateTrendAnalysisChart = this.$echarts.init(document.getElementById('openRateTrendChart'), 'macarons')
        let openRateTrendChartOptions = {
          title: {
            text: '利用率走势分析',
@@ -317,7 +337,7 @@
            textStyle: {
              fontSize: 18,
              fontWeight: 'bolder',
              color: "#151414"
              color: '#151414'
            }
          },
          tooltip: {
@@ -363,8 +383,8 @@
              }
            }
          ]
        };
        openRateTrendAnalysisChart.setOption(openRateTrendChartOptions,true);
        }
        openRateTrendAnalysisChart.setOption(openRateTrendChartOptions, true)
      }
    }
  }
@@ -409,9 +429,11 @@
    padding: 10px;
    /*display: none;*/
  }
  .dataContent .mathData:hover td{
    background-color: #e6f7ff;
  }
  .dataContent .mathData .td {
    /*background-color: #ff9bd2;*/
    display: inline-block;
@@ -421,11 +443,13 @@
  .dataContent .mathData .tdd {
    /*display: none;*/
  }
  .table2{
    width: 100%;
    height: 100%;
    overflow: auto;
  }
  /*tr th {*/
  /*height: 50px!important;*/
  /*}*/
@@ -438,70 +462,85 @@
    left: 0;
    z-index: 1;
  }
  .table tbody tr .kaitou{
    z-index: 1;
    background-color: white;
  }
  .table tbody tr .tdgu1{
    position: sticky;
    left: 150px;
    z-index: 2;
  }
  .table tbody tr .tdgu2{
    position: sticky;
    left: 300px;
    z-index: 2;
  }
  .table tbody tr .tdgu3{
    position: sticky;
    left: 450px;
    z-index: 2;
  }
  .table tbody tr .tdgu4{
    position: sticky;
    left: 550px;
    z-index: 2;
  }
  .table tbody tr .tdgu5{
    position: sticky;
    left: 700px;
    z-index: 2;
  }
  .table2 thead tr .timeth,
  .table2 thead tr  .thgu {
    position: sticky;
    top:0;
    z-index: 3;
  }
  .table2 thead .gudingth th{
    position: sticky;
    top: 32px;
    z-index: 6!important;
  }
  .table2 thead .equipname .name{
    z-index: 3;
  }
  .table2 thead .equipname .dong1{
    z-index: 4;
    left: 0;
    /*border: 1px solid #000;*/
  }
  .table2 thead .equipname .dong2{
    z-index: 5;
    left: 150px;
  }
  .table2 thead .equipname .dong3{
    z-index: 5;
    left: 300px;
  }
  .table2 thead .equipname .dong4{
    z-index: 5;
    left: 450px;
  }
  .table2 thead .equipname .dong5{
    z-index: 5;
    left: 550px;
  }
  .table2 thead .equipname .dong6{
    z-index: 5;
    left: 700px;
@@ -513,45 +552,54 @@
      overflow: scroll;
    }
  }
  @media screen and (min-width: 1680px) and (max-width: 1920px){
    #Efficiency{
      height: 337px!important;
      overflow: scroll;
    }
  }
  @media screen and (min-width: 1400px) and (max-width: 1680px){
    #Efficiency{
      height: 190px!important;
      overflow: scroll;
    }
  }
  @media screen and (min-width: 1280px) and (max-width: 1400px){
    #Efficiency{
      height: 90px!important;
      overflow: scroll;
    }
  }
  @media screen and (max-width: 1280px){
    #Efficiency{
      height: 90px!important;
      overflow: scroll;
    }
  }
  #Efficiency .table_guding1{
    position: absolute;
    overflow: hidden;
    width: 500px;
  }
  #Efficiency .table_guding2{
    overflow-x: scroll;
    width: 500px;
  }
  /deep/ .ant-card{
    height: 100%!important;
  }
  /deep/ .ant-card .ant-card-body{
    height: 100%!important;
  }
  .efficiency_list #DeviceList{
    height: 90%!important;
  }
src/views/mdc/base/modules/shift/ShiftInfo.vue
@@ -154,7 +154,7 @@
        deleteAction(that.url.deleteBatch, {id: record}).then((res) => {
          if (res.success) {
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
@@ -173,7 +173,7 @@
        putAction(this.url.changeStatus, { id: id, status: status }).then((res) => {
          if (res.success) {
            // _this.$message.success('操作成功!')
            _this.$notification.warning({
            _this.$notification.success({
              message:'消息',
              description:"操作成功"
            });
src/views/mdc/base/modules/shift/ShiftInfoModel.vue
@@ -232,10 +232,12 @@
            formData.isDaySpan = that.isDaySpan
            console.log(formData.isDaySpan);
            if(formData.isDaySpan == false){
              let startTime = moment(formData.startDate).format('HH:mm:ss');
              let endTime = moment(formData.endDate).format('HH:mm:ss');
              let startTimeOne = startTime.replace(/:/g,'');
              let endTimeOne = endTime.replace(/:/g,'');
              formData.startDate = moment(formData.startDate).format('HH:mm:ss');
              formData.endDate = moment(formData.endDate).format('HH:mm:ss');
              formData.sleepStartDate = moment(formData.sleepStartDate).format('HH:mm:ss');
              formData.sleepEndDate = moment(formData.sleepEndDate).format('HH:mm:ss');
              let startTimeOne = formData.startDate.replace(/:/g,'');
              let endTimeOne = formData.endDate.replace(/:/g,'');
              if(startTimeOne>endTimeOne){
                // that.$message.warning("非跨天班次结束时间不能小于等于开始时间!")
                that.$notification.warning({
@@ -262,7 +264,7 @@
                obj.then((res) => {
                  if (res.success) {
                    // that.$message.success("保存成功")
                    that.$notification.warning({
                    that.$notification.success({
                      message:'消息',
                      description:"保存成功"
                    });
@@ -292,7 +294,7 @@
              obj.then((res) => {
                if (res.success) {
                  // that.$message.success
                  that.$notification.warning({
                  that.$notification.success({
                    message:'消息',
                    description:"保存成功"
                  });
src/views/mdc/base/modules/shift/ShiftSystem.vue
@@ -117,10 +117,16 @@
        let _this = this
        putAction(this.url.changeStatus, { id: id, status: status }).then((res) => {
          if (res.success) {
            _this.$message.success('操作成功!')
            _this.$notification.success({
              message:'消息',
              description:res.message
            })
            _this.loadData()
          } else {
            _this.$message.warning('操作失败!')
            _this.$notification.warning({
              message:'消息',
              description:res.message
            });
          }
        })
      },
@@ -133,7 +139,7 @@
        postAction(this.url.changeDefaultShift,qs.stringify({id:record.id})).then((res) =>{
            if(res.success){
              // this.$message.success(res.message);
              this.$notification.warning({
              this.$notification.success({
                message:'消息',
                description:res.message
              });
@@ -156,7 +162,7 @@
        deleteAction(that.url.deleteBatch, {id: record}).then((res) => {
          if (res.success) {
            // that.$message.success(res.message);
            that.$notification.warning({
            that.$notification.success({
              message:'消息',
              description:res.message
            });
src/views/mdc/base/modules/shift/ShiftSystemModel.vue
@@ -122,7 +122,7 @@
            obj.then((res) => {
              if (res.success) {
                // that.$message.success(res.message)
                that.$notification.warning({
                that.$notification.success({
                  message:'消息',
                  description:res.message
                });
src/views/mdc/common/BaseTree.vue
@@ -112,21 +112,23 @@
      ...mapActions(['QueryProduction']),
      getCurrSelectedTitle() {
        return !this.currSelected.title ? '' : this.currSelected.title
      }
      ,
      },
      /**
       * å–消车间选中项
       */
      onClearSelected() {
        this.hiding = true
        this.currSelected = {}
        this.selectedKeys = []
        // console.log('发送')
        // this.$bus.$emit('treeClearSelected','重置列表')
        this.$emit('sendSelectBaseTree', '')
      },
      onSelect(selectedKeys, e) {
        this.hiding = false
        let record = e.node.dataRef
        this.currSelected = Object.assign({}, record)
        this.selectedKeys = [record.key]
        console.log(this.selectedKeys)
        this.$emit('sendSelectBaseTree', this.selectedKeys)
      },
      handleEdit(entity) {
@@ -167,8 +169,7 @@
        //   this.loading = false
        //   this.cardLoading = false
        // })
      }
      ,
      },
      handleChange() {
        let search = this.searchInput
        let expandedKeys = this.dataList
@@ -186,8 +187,7 @@
          searchValue: search,
          autoExpandParent: true
        })
      }
      ,
      },
      handleSearch(value) {
        let search = value
        let expandedKeys = this.dataList
@@ -206,8 +206,7 @@
          searchValue: search,
          autoExpandParent: true
        })
      }
      ,
      },
      getParentKey(key, tree) {
        let parentKey
        for (let i = 0; i < tree.length; i++) {
@@ -223,7 +222,6 @@
        }
        return parentKey
      },
      generateList(data) {
        for (let i = 0; i < data.length; i++) {
          const node = data[i]
@@ -288,9 +286,7 @@
        this.queryTreeData()
        // æ–°å¢ž/修改 æˆåŠŸæ—¶ï¼Œé‡è½½åˆ—è¡¨
      }
    }
    ,
    },
    //监听
    watch: {
      currSelected(val) { //监听currSelected å˜åŒ–,将变化后的数值传递给 getCurrSelected äº‹ä»¶