Merge remote-tracking branch 'origin/master'
| | |
| | | # Editor directories and files |
| | | .idea |
| | | .vscode |
| | | .nvmdrc |
| | | *.suo |
| | | *.ntvs* |
| | | *.njsproj |
| | |
| | | # Lock File |
| | | package-lock.json |
| | | yarn.lock |
| | | |
| | | # config.js |
| | | vue.config.js |
| | |
| | | "vue-json-editor": "^1.2.3", |
| | | "vue-json-tree-view": "^2.1.4", |
| | | "vue-qr": "^4.0.9", |
| | | "vue-qrcode-reader": "^5.4.1", |
| | | "vue-quill-editor": "3.0.6", |
| | | "vue-router": "^3.0.2", |
| | | "vuedraggable": "^2.24.3", |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | @page { |
| | | margin: 10mm 5mm; |
| | | margin-bottom: 0; |
| | | margin-top:0; |
| | | } |
| | | .xl6524921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 10.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | .xl6624921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl6724921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl6824921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl6924921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl7024921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl7124921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: top; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl7224921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: top; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl7324921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl7424921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 14.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl7524921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 14.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl7624921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl7724921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl7824921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl7924921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl8024921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl8124921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl8224921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl8324921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl8424921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl8524921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl8624921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl8724921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl8824921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl8924921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl9024921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: none; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl9124921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: none; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl9224921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: none; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl9324921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl9424921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl9524921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl9624921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl9724921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: top; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl9824921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: top; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl9924921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: top; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl10024921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl10124921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl10224921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl10324921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 700; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: left; |
| | | vertical-align: middle; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl10424921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: none; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl10524921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: none; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl10624921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: none; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl10724921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: none; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .xl10824921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: none; |
| | | border-bottom: none; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl10924921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: .5pt solid windowtext; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: none; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl11024921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: none; |
| | | border-right: none; |
| | | border-bottom: none; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl11124921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: none; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: none; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl11224921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: none; |
| | | border-right: none; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: .5pt solid windowtext; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .xl11324921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 12.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: center; |
| | | vertical-align: middle; |
| | | border-top: none; |
| | | border-right: .5pt solid windowtext; |
| | | border-bottom: .5pt solid windowtext; |
| | | border-left: none; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: normal; |
| | | } |
| | | |
| | | ruby { |
| | | ruby-align: left; |
| | | } |
| | | |
| | | rt { |
| | | color: windowtext; |
| | | font-size: 9.0pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-char-type: none; |
| | | } |
| | | |
| | | .head{ |
| | | display: flex; |
| | | width: 900pt; |
| | | .head-1{ |
| | | padding: 40px; |
| | | } |
| | | .head-2{ |
| | | margin-left: auto; |
| | | margin-right: 0; |
| | | margin-top: 13px; |
| | | text-align: right; |
| | | } |
| | | } |
| | | .bodycss{ |
| | | margin-left: 85px; |
| | | } |
| | | .bodycs{ |
| | | margin-top: -30px; |
| | | } |
| | | .bodycs-1{ |
| | | display: flex; |
| | | text-align: left; |
| | | height: 60px; |
| | | width: auto; |
| | | margin-top: -80px; |
| | | |
| | | } |
| | | .bodycs-2{ |
| | | display: flex; |
| | | margin-left: 130px; |
| | | margin-top: 30px; |
| | | } |
| | | .bodycs-3{ |
| | | display: flex; |
| | | margin-left: 140px; |
| | | } |
| | | .ziti{ |
| | | display: flex; |
| | | margin-left: 140px; |
| | | |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 20pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: å®ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | .time{ |
| | | display: flex; |
| | | margin-left: 80px; |
| | | margin-top: 20px; |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 20pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: é»ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | |
| | | } |
| | | .chilen{ |
| | | display: flex; |
| | | margin-left: 250px; |
| | | } |
| | | .cldata{ |
| | | display: flex; |
| | | margin-left: 130px; |
| | | } |
| | | .pagefooting{ |
| | | font-size:8pt; |
| | | font-family:å®ä½; |
| | | margin-right: 15pt; |
| | | color: deepskyblue; |
| | | } |
| | | .x1111111{ |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 50pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: é»ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | .x1111112{ |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 20pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: é»ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | .x1111113{ |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | | color: black; |
| | | font-size: 20pt; |
| | | font-weight: 400; |
| | | font-style: normal; |
| | | text-decoration: none; |
| | | font-family: é»ä½; |
| | | mso-generic-font-family: auto; |
| | | mso-font-charset: 134; |
| | | mso-number-format: General; |
| | | text-align: general; |
| | | vertical-align: middle; |
| | | mso-background-source: auto; |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/router/axios' |
| | | |
| | | export function fetchScheduleList(query) { |
| | | return request({ |
| | | url: '/mes/productionSchedul/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function fetchScheduleById(id) { |
| | | return request({ |
| | | url: '/mes/productionSchedul/'+id, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | export function fillTime(data) { |
| | | return request({ |
| | | url: '/mes/productionSchedul/fillTime', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function isProductionCounting(query) { |
| | | return request({ |
| | | url: '/mes/product/isProductionCounting', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function qualifiedLocation(id) { |
| | | return request({ |
| | | url: '/mes/product/qualifiedLocation/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | export function getFeed2(query, workstationId) { |
| | | return request({ |
| | | url: '/mes/stock/getFeedingStock2/' + workstationId, |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function getTodoStock(query) { |
| | | return request({ |
| | | url: '/mes/stock/getToDealStockByWorkstationId', |
| | |
| | | export function getOperationTask(query) { |
| | | return request({ |
| | | url: '/mes/operationTask/getOperationTask', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function getOperationTaskCopy(query) { |
| | | return request({ |
| | | url: '/mes/operationTask/getOperationTaskCopy', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | |
| | | } |
| | | |
| | | // æ¹éæäº¤ |
| | | export function batchChangeCopy(qury, event) { |
| | | return request({ |
| | | url: '/mes/product/state/batchChangeCopy/' + event, |
| | | method: 'post', |
| | | data: qury |
| | | }) |
| | | } |
| | | |
| | | // æ¹éæäº¤ |
| | | export function batchChange2(ids, event) { |
| | | return request({ |
| | | url: '/mes/product/state/batchChange/' + event, |
| | |
| | | }) |
| | | } |
| | | |
| | | export function getOperationTaskCopy(query) { |
| | | export function submitInsPart(obj) { |
| | | return request({ |
| | | url: '/mes/operationTask/getOperationTaskCopy', |
| | | url: '/mes/applyPart/submitIns', |
| | | method: 'post', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | export function submitProductMain(obj) { |
| | | return request({ |
| | | url: '/mes/product/submitProductMain', |
| | | method: 'post', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | export function inputHandle(obj) { |
| | | return request({ |
| | | url: '/mes/feeding/inputHandle', |
| | | method: 'post', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | export function cancellationOfWorkApplication(query) { |
| | | return request({ |
| | | url: '/mes/product/cancellationOfWorkApplication', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function generateBackflush(query) { |
| | | return request({ |
| | | url: '/mes/product/generateBackFlush', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/router/axios' |
| | | |
| | | export function pagedata(query) { |
| | | return request({ |
| | | url: '/mes/qualityPackageBox/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function dataadd(query) { |
| | | return request({ |
| | | url: '/mes/qualityPackageBoxDetail/selProduct', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function list(query) { |
| | | return request({ |
| | | url: '/mes//qualityPackageBoxDetail/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function customerpage(query) { |
| | | return request({ |
| | | url: '/mes/customer/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function pagedataadd(obj) { |
| | | return request({ |
| | | url: '/mes/qualityPackageBox/add', |
| | | method: 'post', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function saveList(obj) { |
| | | return request({ |
| | | url: '/mes/qualityPackageBoxDetail/saveList', |
| | | method: 'post', |
| | | data: obj |
| | | }) |
| | | } |
| | | export function dropById(query) { |
| | | return request({ |
| | | url: '/mes/qualityPackageBox/dropById', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function deledata(query) { |
| | | return request({ |
| | | url: '/mes/qualityPackageBoxDetail/dropById', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function sAuditstatus(obj) { |
| | | return request({ |
| | | url: '/mes/packageInspect/add', |
| | | method: 'post', |
| | | data: obj |
| | | }) |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/router/axios' |
| | | |
| | | export function fetchList(query) { |
| | | return request({ |
| | | url: '/mes/packageInspect/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function fetchListById(id) { |
| | | return request({ |
| | | url: '/mes/packageInspect/'+id, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | export function deleteById(id) { |
| | | return request({ |
| | | url: '/mes/packageInspect/'+id, |
| | | method: 'delete', |
| | | }) |
| | | } |
| | | |
| | | export function updatePackageInsProduct(data) { |
| | | return request({ |
| | | url: '/mes/packageInsProduct/updatePackageInsProduct', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | export function updatePackageInspectById(data) { |
| | | return request({ |
| | | url: '/mes/packageInspect/updatePackageInspectById', |
| | | method: 'post', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | |
| | | }) |
| | | } |
| | | |
| | | export function downloadReport(data) { |
| | | return request({ |
| | | url: '/mes/rawInspect/downloadReport', |
| | | method: 'post', |
| | | data: data, |
| | | responseType: 'blob', |
| | | }) |
| | | } |
| | | |
| | | export function delObj(data) { |
| | | return request({ |
| | | url: '/mes/rawInspect/'+data, |
| | |
| | | }) |
| | | } |
| | | |
| | | export function selectAll(data) { |
| | | return request({ |
| | | url: '/mes/palletTransportsDetail/selectAll', |
| | | method: 'get', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | export function putPalletTransports(obj) { |
| | | return request({ |
| | | url: '/mes/palletTransports', |
| | |
| | | }) |
| | | } |
| | | |
| | | export function getPalletTransportsAllDetailDataApi(query) { |
| | | return request({ |
| | | url: '/mes/palletTransportsMaterial/detail/click', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function palletTransportsMaterialFetchListCopy(query) { |
| | | return request({ |
| | | url: '/mes/palletTransportsMaterial/page/copy', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function palletTransportsMaterialListClick(query) { |
| | | return request({ |
| | | url: '/mes/palletTransportsMaterial/page/click', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function addPalletTransportsMaterial(obj) { |
| | | return request({ |
| | | url: '/mes/palletTransportsMaterial', |
| | |
| | | export function putPalletTransportsMaterial(obj) { |
| | | return request({ |
| | | url: '/mes/palletTransportsMaterial', |
| | | method: 'put', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | export function putPalletTransportsMaterialCopy(obj) { |
| | | return request({ |
| | | url: '/mes/palletTransportsMaterial/update', |
| | | method: 'put', |
| | | data: obj |
| | | }) |
| | |
| | | }) |
| | | } |
| | | |
| | | export function updateBatchPalletTransportsCopy(obj) { |
| | | return request({ |
| | | url: '/mes/palletTransportsMaterial/updateBatchPalletTransportsCopy', |
| | | method: 'put', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | export function updateBatchPalletTransportsDetail(obj) { |
| | | return request({ |
| | | url: '/mes/palletTransportsDetail/updateBatch', |
| | |
| | | ] |
| | | }, |
| | | { |
| | | path: '/quality/packageinspect', |
| | | component: Layout, |
| | | children: [ |
| | | { |
| | | path: 'packageInspect-form', |
| | | name: 'packageInspectForm', |
| | | component: () => |
| | | import(/* webpackChunkName: "views" */ '@/views/quality/packageinspect/packageInspect-form'), |
| | | meta: { |
| | | keepAlive: false, |
| | | isTab: false, |
| | | isAuth: false |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/quality/rawMaterial', |
| | | component: Layout, |
| | | children: [ |
| | |
| | | document.body.removeChild(elink) |
| | | } |
| | | } |
| | | |
| | | export function transformZip(response) { |
| | | const relType = ['application/zip'] |
| | | let type = response.data.type |
| | | if (relType.includes(type)) { |
| | | const blob = new Blob([response.data], {type: 'application/zip'}) |
| | | const disposition = response.headers["content-disposition"] |
| | | let temp = disposition.substring(disposition.lastIndexOf('=') + 1) |
| | | let filename = decodeURI(temp) |
| | | // å建ä¸ä¸ªè¶
龿¥ï¼å°æä»¶æµèµè¿å»ï¼ç¶åå®ç°è¿ä¸ªè¶
龿¥çåå»äºä»¶ |
| | | const elink = document.createElement('a') |
| | | elink.download = filename |
| | | elink.style.display = 'none' |
| | | elink.href = URL.createObjectURL(blob) |
| | | document.body.appendChild(elink) |
| | | elink.click() |
| | | URL.revokeObjectURL(elink.href) // éæ¾URL 对象 |
| | | document.body.removeChild(elink) |
| | | } |
| | | } |
| | |
| | | <el-dialog :visible.sync="dialogAddVisible" :close-on-click-modal="false" title="æ°å¢é
ç½®"> |
| | | <el-form :model="prodForm" :rules="rules" ref="addDialog"> |
| | | <el-form-item prop="staffName" label="ç¨æ·åç§°:" label-width="90px"> |
| | | <el-select style="width:100%" v-model="prodForm.staffName"> |
| | | <el-select style="width:100%" v-model="prodForm.staffName" filterable placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item,index) in staffNamesOptions" :key="index" :value="item.id" :label="item.staffName"/> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { tableOption } from '@/const/crud/admin/productType' |
| | | import { getList,addObj,delObj,chooseStaff } from '@/api/admin/productType' |
| | | import { mapGetters } from 'vuex' |
| | | |
| | | |
| | | export default { |
| | | name: 'TableProduct', |
| | | data() { |
| | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-dialog__wrapper { |
| | | .el-dialog { |
| | |
| | | } |
| | | } |
| | | </style> |
| | | |
| | |
| | | > |
| | | </el-transfer> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="产åºå¾
æ£åºä½" name="inspection"> |
| | | <!-- <el-tab-pane label="产åºå¾
æ£åºä½" name="inspection"> |
| | | <el-transfer |
| | | filterable |
| | | v-model="inspectionLocationIds" |
| | |
| | | @change="handleChangeInspectionLocation" |
| | | > |
| | | </el-transfer> |
| | | </el-tab-pane> |
| | | </el-tab-pane> --> |
| | | <!-- <el-tab-pane label="产åºä¸åæ ¼åºä½" name="disqualified"> |
| | | <el-transfer |
| | | filterable |
| | |
| | | > |
| | | </el-transfer> |
| | | </el-tab-pane> --> |
| | | <el-tab-pane label="æ£éªå¾
å¤çåºä½" name="pending"> |
| | | <!-- <el-tab-pane label="æ£éªå¾
å¤çåºä½" name="pending"> |
| | | <el-transfer |
| | | filterable |
| | | v-model="pendingLocationIds" |
| | |
| | | @change="handleChangePendingLocation" |
| | | > |
| | | </el-transfer> |
| | | </el-tab-pane> |
| | | </el-tab-pane> --> |
| | | <el-tab-pane label="æåå¾
æ£åºä½" name="product"> |
| | | <el-transfer |
| | | filterable |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | }/*, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'productionCounting', |
| | | label: 'æ¯å¦æ¥å·¥', |
| | |
| | | optList: () => { |
| | | return this.getChangeList() |
| | | } |
| | | } |
| | | } */ |
| | | ] |
| | | }, |
| | | addOrUpdateVisible: false, |
| | |
| | | v-bind="$attrs" |
| | | v-on="$listeners" |
| | | :highlight-current-row="true" |
| | | :row-key=" |
| | | (row) => { |
| | | return row.id |
| | | } |
| | | " |
| | | :row-key="rowKey" |
| | | @row-dblclick="dbClickRow" |
| | | @row-contextmenu="contextMenu" |
| | | @header-click="headClick" |
| | |
| | | name: 'TTable', |
| | | components: { exSlot, advancedSearchDialog, zttdraggable }, |
| | | props: { |
| | | rowKey: { |
| | | type: String, |
| | | default: ()=>{ |
| | | return 'id' |
| | | } |
| | | }, |
| | | // è¡¨æ ¼åå·ï¼mini,medium,small |
| | | tableSize: { type: String, default: 'small' }, |
| | | // æ°æ®è¯·æ±æ¹æ³ |
| | |
| | | } |
| | | }, |
| | | getDataList(selectedId) { |
| | | this.dataListLoading = true |
| | | // this.dataListLoading = true |
| | | this.dataListLoading = false |
| | | var criteria = {} |
| | | criteria.dateTimeFilters = this.dateTimeFilters |
| | | criteria.multiSearchFilter = this.multiSearchFilter |
| | |
| | | <el-input |
| | | v-model="dataForm.partNo" |
| | | placeholder="" |
| | | disabled |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openSalesPartDialog()" |
| | | v-show="dataForm.id==null" |
| | | @click="openPartDialog()" |
| | | |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | |
| | | // } else { |
| | | // console.log('2') |
| | | this.dataForm = response.data.data |
| | | |
| | | |
| | | // } |
| | | // this.fileList = response.data.data.customerOrderAttachmentList |
| | | const sourceId = response.data.data.sourceId |
| | |
| | | } |
| | | }) |
| | | }, |
| | | // é¶ä»¶éæ© |
| | | // é¶ä»¶éæ© |
| | | openPartDialog() { |
| | | if ( |
| | | this.dataForm.coState === '01partUnCheck' || |
| | | this.dataForm.coState === '02technologyUnCheck' |
| | | ) { |
| | | this.showPart = true |
| | | } else { |
| | | this.$message.warning( |
| | | '订ååªæå¨ãé¶ä»¶å¾
éãããå·¥èºæä»¶å¾
éãç¶æä¸ï¼æè½è¿è¡é¶ä»¶ä¿®æ¹' |
| | | ) |
| | | } |
| | | this.showPart = true |
| | | }, |
| | | selectPart(part) { |
| | | console.log(part); |
| | | if (part) { |
| | | this.dataForm.partNo = part.partNo |
| | | this.$refs.dataForm.validateField('partNo', (valid) => {}) |
| | | } |
| | | }, |
| | | // é¶ä»¶éæ© |
| | | // openPartDialog() { |
| | | // if ( |
| | | // this.dataForm.coState === '01partUnCheck' || |
| | | // this.dataForm.coState === '02technologyUnCheck' |
| | | // ) { |
| | | // this.showPart = true |
| | | // } else { |
| | | // this.$message.warning( |
| | | // '订ååªæå¨ãé¶ä»¶å¾
éãããå·¥èºæä»¶å¾
éãç¶æä¸ï¼æè½è¿è¡é¶ä»¶ä¿®æ¹' |
| | | // ) |
| | | // } |
| | | // }, |
| | | // selectPart(part) { |
| | | // if (part) { |
| | | // this.dataForm.partNo = part.partNo |
| | | // this.$refs.dataForm.validateField('partNo', (valid) => {}) |
| | | // } |
| | | // }, |
| | | // å
¨å± |
| | | fullscreen() { |
| | | this.isFullScreen = !this.isFullScreen |
| | |
| | | > --> |
| | | </template> |
| | | </ttable> |
| | | |
| | | <!-- å¼¹çª, æ¥æéæ© --> |
| | | <ConfirmPullCustomerorder |
| | | v-if="showPullCustomerOrderVisible" |
| | |
| | | :loading="loadingExcel" |
| | | >å¯¼åº |
| | | </el-button> |
| | | <el-button |
| | | @click="labelPrint" |
| | | type="primary" |
| | | style="margin-left:10px;" |
| | | >æ ç¾æå° |
| | | </el-button> |
| | | <!-- <el-button |
| | | v-if="permissions.manufacturingorder_update_orderno" |
| | | @click="updateOrderNo" |
| | | type="primary" |
| | | style="margin-left:10px;" |
| | | >æ´æ°è®¢åå· |
| | | >æ´æ°è®¢åå· |
| | | </el-button>--> |
| | | </template> |
| | | </ttable> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | </basic-container> |
| | | <!-- æ ç¾æå° --> |
| | | <el-dialog title="æ ç¾å表" :visible.sync="diaPrintTab" width="500px"> |
| | | <div class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;"> |
| | | <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px;width:100%"> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">åºå·ï¼</el-col> |
| | | <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">车é´è®¢åå·ï¼</el-col> |
| | | <el-col :span="10" style="font-weight: bold;">{{ item.moNo2 }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">订åäºç»´ç ï¼</el-col> |
| | | <el-col :span="10"> |
| | | <vueQr :text="JSON.stringify(item)" :size="80" :margin="2"></vueQr> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="diaPrintTab = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="diaPrintTab = false">æ å°</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import DelMatUnIssueVue from './DelMatUnIssue.vue' |
| | | import { getStore } from '@/util/store.js' |
| | | import { getObj as getSysParam } from '@/api/admin/sys-public-param' |
| | | import vueQr from 'vue-qr' |
| | | export default { |
| | | data() { |
| | | return { |
| | | checkList: [], |
| | | qrData: [], |
| | | orderDatalist:[], |
| | | diaPrintTab:false, |
| | | showCustomerorder: false, |
| | | paramObj: { customerList: null }, |
| | | customerOrder: null, |
| | |
| | | minWidth: '120', |
| | | prop: 'lengthRequirement', |
| | | label: 'çé¿è¦æ±', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'scrapQty', |
| | | label: 'æ¥åºæ°é', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | |
| | | } |
| | | ], |
| | | toolbar: [], |
| | | operator: [ |
| | | // { |
| | | // text: 'æ¥çåºå', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.searchStock |
| | | // } |
| | | ], |
| | | operator: null, |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: 'æä½', |
| | |
| | | AutoOperationtask, |
| | | IssueMaterialForm, |
| | | OrderMergeForm, |
| | | DelMatUnIssueVue |
| | | DelMatUnIssueVue, |
| | | vueQr |
| | | }, |
| | | created() { |
| | | this.getManufactureAttrs() |
| | |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | }, |
| | |
| | | getByMoIds([this.orderPlan.id]).then((repsonse) => { |
| | | const resData = repsonse.data.data |
| | | const resCode = repsonse.data.code |
| | | console.log("resData-----",repsonse); |
| | | if (resCode === 0) { |
| | | const _that = this |
| | | for (const key in resData) { |
| | |
| | | } |
| | | } |
| | | }, |
| | | //åå§åäºç»´ç æ ç¾æ°æ® |
| | | initQrData(data){ |
| | | if(data){ |
| | | let index = Number(data.qtyRequired) + Number(data.scrapQty) |
| | | if(index>0){ |
| | | for(var i=1;i<= index;i++){ |
| | | let obj = { |
| | | moNo: data.moNo, |
| | | moNo2: null, |
| | | } |
| | | let no = (i+"").padStart(3,'0') |
| | | obj.moNo2 = data.moNo + no |
| | | this.qrData.push(obj) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | // tableèªå¸¦äºä»¶ |
| | | handleSelectionChange(val) { |
| | | let orderData = [] |
| | | orderData =val.map( el =>{ |
| | | return{ |
| | | moNo:el.moNo, |
| | | qtyRequired: el.qtyRequired, |
| | | scrapQty: el.scrapQty |
| | | } |
| | | }) |
| | | this.orderDatalist = orderData |
| | | this.initQrData(orderData[0]) |
| | | // æ ¹æ®ç¶æï¼ç¦ç¨è¡¨å¤´æé® |
| | | // çéåºéä¸è®°å½çç¶æ |
| | | var stateArr = val.map(function(value, index) { |
| | |
| | | } else { |
| | | this.$message.error('ä¸ä¼ 失败') |
| | | } |
| | | }, |
| | | labelPrint(){ |
| | | if(this.multipleSelection.length==0){ |
| | | this.$message.warning('è¯·éæ©ä¸æ¡æ°æ®') |
| | | return |
| | | } |
| | | this.diaPrintTab = true |
| | | } |
| | | } |
| | | } |
| | |
| | | .gantt-info { |
| | | display: none !important; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | </div> |
| | | <div class="btn-group header-right" v-if="editable"> |
| | | <el-button :disabled="isSubmit" v-thinclick="`dataFormSubmit`" |
| | | >ä¿å</el-button |
| | | type="primary">ä¿å</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-col |
| | | :span="8" |
| | | v-if="permissions.plan_manufacturingorder_bom_sure" |
| | | > |
| | | <el-form-item label="BOM确认"> |
| | | <el-switch v-model="dataForm.bomConfirmStatus"> </el-switch> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col |
| | | :span="8" |
| | | v-if="permissions.plan_manufacturingorder_process_sure" |
| | | > |
| | | <el-form-item label="å·¥èºç¡®è®¤"> |
| | | <el-switch v-model="dataForm.processConfirmStatus"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col |
| | | :span="8" |
| | | v-if="permissions.plan_manufacturingorder_test_sure" |
| | | > |
| | | <el-form-item label="æ£æµæ å确认"> |
| | | <el-switch v-model="dataForm.standardConfirmStatus"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col |
| | | :span="2" |
| | | v-if="permissions.plan_manufacturingorder_bom_sure" |
| | | > |
| | | <el-form-item label="BOM确认" label-width="110px"> |
| | | <el-switch v-model="dataForm.bomConfirmStatus"> </el-switch> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <el-col |
| | | :span="2" |
| | | v-if="permissions.plan_manufacturingorder_process_sure" |
| | | > |
| | | <el-form-item label="å·¥èºç¡®è®¤" label-width="110px"> |
| | | <el-switch v-model="dataForm.processConfirmStatus"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col |
| | | :span="2" |
| | | v-if="permissions.plan_manufacturingorder_test_sure" |
| | | > |
| | | <el-form-item label="æ£æµæ å确认" label-width="140px"> |
| | | <el-switch v-model="dataForm.standardConfirmStatus"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-form-item |
| | | label="IFS车é´è®¢åæ¥æ¶æ¶æ¥åå·¥åº" |
| | | prop="isReportOperation" |
| | | label-width="200px" |
| | | label-width="250px" |
| | | > |
| | | <el-switch v-model="dataForm.isReportOperation" disabled> |
| | | </el-switch> |
| | |
| | | |
| | | <el-tab-pane label="产åç»æ" id="ta1" key="ta1" name="ta1"> |
| | | <el-row> |
| | | <el-col :span="11"> |
| | | <el-form-item label="宿´BOM"> |
| | | <el-col :span="2" style="text-align: center"> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-circle-plus-outline" |
| | | style="color:#f56c6c;" |
| | | :disabled="!dataForm.id" |
| | | @click="addStruct()" |
| | | >æ·»å å
ç´ |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :offset="11" :span="11"> |
| | | <!-- <el-form-item label="宿´BOM"> |
| | | <el-select |
| | | @change="bomSelectChanged" |
| | | disabled |
| | |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :offset="11" :span="2" style="text-align: center"> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-circle-plus-outline" |
| | | style="color:#f56c6c;" |
| | | :disabled="!dataForm.id" |
| | | @click="addStruct()" |
| | | >æ·»å å
ç´ |
| | | </el-button> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | |
| | | style="width: 100%" |
| | | height="400px" |
| | | > |
| | | <el-table-column type="selection" width="40" fixed="left" /> |
| | | <!-- <el-table-column type="selection" width="40" fixed="left" /> --> |
| | | <el-table-column |
| | | type="index" |
| | | width="50" |
| | |
| | | /> |
| | | <el-table-column |
| | | prop="partName" |
| | | width="" |
| | | width="200" |
| | | header-align="center" |
| | | align="left" |
| | | label="é¶ä»¶" |
| | |
| | | }, |
| | | // æå¼bomèç¹ |
| | | addStruct() { |
| | | if (this.structSelection.length <= 0) { |
| | | this.$message.error('è¯·éæ©éè¦æ·»å å
ç´ çèç¹') |
| | | } else { |
| | | if (this.structSelection.length === 1) { |
| | | this.selectedStruct = this.structSelection[0] |
| | | this.moId = this.dataForm.id |
| | | this.showStructForm = true |
| | | } else { |
| | | this.$message.error('åªè½ä¸ºå个èç¹æ·»å å
ç´ ') |
| | | } |
| | | } |
| | | this.selectedStruct = this.structSelection[0] |
| | | this.moId = this.dataForm.id |
| | | this.showStructForm = true |
| | | // if (this.structSelection.length <= 0) { |
| | | // this.$message.error('è¯·éæ©éè¦æ·»å å
ç´ çèç¹') |
| | | // } else { |
| | | // if (this.structSelection.length === 1) { |
| | | // } else { |
| | | // this.$message.error('åªè½ä¸ºå个èç¹æ·»å å
ç´ ') |
| | | // } |
| | | // } |
| | | }, |
| | | refreshBom(node) { |
| | | if (this.selectedStruct.children != null) { |
| | |
| | | height="100%" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column prop="index" label="åºå·" align="center" width="50" /> |
| | | <!-- <el-table-column prop="index" label="åºå·" align="center" width="50" /> |
| | | <el-table-column label="线è¯" prop="wireCore" align="center" /> |
| | | <el-table-column |
| | | prop="isCheck" |
| | | label="æ½æ£" |
| | | align="center" |
| | | :formatter="isCheckFormatter" |
| | | /> |
| | | /> --> |
| | | <el-table-column label="åæ°ç¼å·" prop="code" align="center" /> |
| | | <el-table-column label="忰项" prop="parameterItem" align="center" /> |
| | | <el-table-column label="æ£æµèå´" prop="referenceValue" align="center"> |
| | |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="éé" prop="aisle" align="center" /> |
| | | <el-table-column label="é¨ä½" prop="position" align="center" /> |
| | | <!-- <el-table-column label="éé" prop="aisle" align="center" /> |
| | | <el-table-column label="é¨ä½" prop="position" align="center" /> --> |
| | | <el-table-column label="åä½" prop="unit" align="center" /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | prop="extendsRoutingNo" |
| | | label="ç»§æ¿å·¥èºè·¯çº¿" |
| | | align="center" |
| | |
| | | prop="extendsTestStandardParamNo" |
| | | label="ç»§æ¿æ ååæ°" |
| | | align="center" |
| | | /> |
| | | /> --> |
| | | <el-table-column label="æä½" align="center" width="118"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | |
| | | @click.stop="insertOperationParam(scope.row)" |
| | | >æå
¥ |
| | | </el-button> |
| | | <el-button |
| | | <!-- <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click.stop="editTestStandardParam(scope.row)" |
| | | >å
¬å¼ |
| | | </el-button> |
| | | </el-button> --> |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: 'æä½', |
| | | width: 240, |
| | | width: 140, |
| | | minWidth: 100 |
| | | } |
| | | }, |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="mod-config"> |
| | | <basic-container> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <div style="height:80vh;padding: 0px 10px;"> |
| | | <avue-crud :data="tableData" ref="crud" :option="option" :span-method="spanMethod" |
| | | @refresh-change="getData" |
| | | :page="page" |
| | | @selection-change="selectionRow" |
| | | :table-loading="loading"> |
| | | <template #menu="{ row, index }"> |
| | | <el-button type="text" icon="el-icon-delete" size="small" @click="deleteHandle(row, index)">å é¤</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12" style="padding-left: 10px"> |
| | | <div style=""> |
| | | <el-card> |
| | | <div slot="header" class="clearfix"> |
| | | <span>è°åº¦æ¶é´çº¿</span> |
| | | <el-button v-if="scheduleList.length>0" @click="openEditDialog" style="float: right; padding: 3px 0" type="text">ç¼è¾</el-button> |
| | | </div> |
| | | <div style="height:70vh;overflow-y: scroll;"> |
| | | <el-timeline> |
| | | <el-timeline-item |
| | | placement="top" |
| | | v-for="(item, index) in scheduleList" |
| | | :key="index" |
| | | :timestamp="item.title"> |
| | | <el-card shadow="hover" :body-style="{margin: '0',padding:'0px 20px 0px 20px'}" style="width:90%;"> |
| | | <p> |
| | | <span style="font-weight: bold;">è®¡åæ¶é´: </span> |
| | | {{item.planTime}} |
| | | </p> |
| | | <p> |
| | | <span style="font-weight: bold;">å®é
æ¶é´: </span> |
| | | {{ item.actualTime }}</p> |
| | | </el-card> |
| | | </el-timeline-item> |
| | | </el-timeline> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </basic-container> |
| | | <el-dialog |
| | | title="ç¼è¾æ¶é´çº¿" |
| | | :visible.sync="dialogVisible" |
| | | top="5vh" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <div style="height:60vh;overflow-y: scroll;"> |
| | | <el-timeline> |
| | | <el-timeline-item |
| | | placement="top" |
| | | v-for="(item, index) in scheduleEditList" |
| | | :key="index" |
| | | :timestamp="item.title"> |
| | | <el-card shadow="hover" style="width:90%" :body-style="{padding:'20px 20px 5px 20px'}"> |
| | | <el-row> |
| | | <el-col :span="3"> |
| | | <p style="font-weight: bold;line-height: 50%;">è®¡åæ¶é´: </p> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <el-date-picker |
| | | style="width:100%" |
| | | v-model="item.planTime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetime" |
| | | placeholder="éæ©æ¥ææ¶é´"> |
| | | </el-date-picker> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="3"> |
| | | <p style="font-weight: bold;line-height: 50%;">å®é
æ¶é´: </p> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <el-date-picker |
| | | style="width:100%" |
| | | v-model="item.actualTime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetime" |
| | | placeholder="éæ©æ¥ææ¶é´"> |
| | | </el-date-picker> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </el-timeline-item> |
| | | </el-timeline> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="confirmEditSchedul">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | fetchScheduleList, |
| | | fetchScheduleById, |
| | | fillTime |
| | | } from '@/api//plan/productionschedul' |
| | | import TableForm from './template-form' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | import { mapGetters } from 'vuex' |
| | | export default { |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | scheduleList: [], |
| | | scheduleEditList: [], |
| | | typeOptions: [], |
| | | multipleSelection: [], |
| | | loading: true, |
| | | tableData: [], |
| | | page: { |
| | | total: 10, |
| | | currentPage: 1, |
| | | pageSize: 10 |
| | | }, |
| | | option: { |
| | | height: 400, |
| | | selection: true, |
| | | columnBtn: false, |
| | | index: true, |
| | | rowKey: 'product', |
| | | indexLabel: 'åºå·', |
| | | menuAlign: 'center', |
| | | menuWidth: 100, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | addBtn: false, |
| | | border: true, |
| | | align: 'center', |
| | | column: [ |
| | | { |
| | | minWidth: 120, |
| | | prop: 'projectName', |
| | | label: '项ç®åç§°', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 100, |
| | | prop: 'contractNo', |
| | | label: 'ååå·', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'orderTime', |
| | | label: 'æ¥åæ¥æ', |
| | | overHidden: true, |
| | | formatter: (row,columnValue)=> this.formatDate(row,columnValue) |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'customerName', |
| | | label: '客æ·åç§°', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'deliveryDate', |
| | | label: 'äº¤è´§æ¥æ', |
| | | overHidden: true, |
| | | formatter: (row,columnValue)=> this.formatDate(row,columnValue) |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'productType', |
| | | label: '产åç±»å', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'product', |
| | | label: '产åå', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'specs', |
| | | label: 'è§æ ¼åå·', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'unit', |
| | | label: 'åä½', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'number', |
| | | label: 'æ°é', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'productionStatus', |
| | | label: 'ç产æ
åµ', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'productionRoutine', |
| | | label: 'ç产ç¨åº¦', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 120, |
| | | prop: 'projectLeader', |
| | | label: '项ç®è´è´£äºº', |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | minWidth: 150, |
| | | prop: 'remark', |
| | | label: '夿³¨', |
| | | overHidden: true, |
| | | } |
| | | ], |
| | | }, |
| | | spanArr: [{ |
| | | prop: 'projectName', |
| | | span: [] |
| | | }, { |
| | | prop: 'contractNo', |
| | | span: [] |
| | | }, |
| | | { |
| | | prop: 'orderTime', |
| | | span: [] |
| | | }, |
| | | { |
| | | prop: 'customerName', |
| | | span: [] |
| | | }, |
| | | { |
| | | prop: 'deliveryDate', |
| | | span: [] |
| | | }, |
| | | { |
| | | prop: 'productType', |
| | | span: [] |
| | | }, |
| | | ], |
| | | } |
| | | }, |
| | | components: { |
| | | ttable, |
| | | TableForm, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['permissions']), |
| | | }, |
| | | created(){ |
| | | this.loading = true |
| | | this.getData() |
| | | this.getParamType() |
| | | this.rowSort() |
| | | this.rowCalc() |
| | | }, |
| | | beforeUpdate() { |
| | | this.rowSort() |
| | | this.rowCalc() |
| | | }, |
| | | watch:{ |
| | | |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | beforeDestroy() { |
| | | }, |
| | | methods: { |
| | | openEditDialog(){ |
| | | this.scheduleEditList = JSON.parse(JSON.stringify(this.scheduleList)) |
| | | this.dialogVisible = true |
| | | }, |
| | | confirmEditSchedul(){ |
| | | let data = this.scheduleEditList |
| | | let orderObj = this.multipleSelection[0] |
| | | console.log("data---",data) |
| | | console.log("orderObj-----",orderObj) |
| | | let obj = { |
| | | "documentActualTime": data[0].actualTime, |
| | | "documentPlanTime": data[0].planTime, |
| | | "bomActualTime": data[1].actualTime, |
| | | "bomPlanTime": data[1].planTime, |
| | | "contractActualTime": data[2].actualTime, |
| | | "contractPlanTime": data[2].planTime, |
| | | "arrivalActualTime": data[3].actualTime, |
| | | "arrivalPlanTime": data[3].planTime, |
| | | "checkActualTime": data[4].actualTime, |
| | | "checkPlanTime": data[4].planTime, |
| | | "productActualTime": data[5].actualTime, |
| | | "productPlanTime": data[5].planTime, |
| | | "id": orderObj.id, |
| | | "contractNo": orderObj.contractNo, |
| | | "customerName": orderObj.customerName, |
| | | "deliveryDate": orderObj.deliveryDate, |
| | | "orderTime": orderObj.orderTime, |
| | | "productType": orderObj.productType, |
| | | "projectName": orderObj.projectName |
| | | } |
| | | console.log("obj----->>>",obj); |
| | | fillTime(obj).then(res=>{ |
| | | if(res.status===200){ |
| | | this.$message.success("æ´æ°æå") |
| | | }else{ |
| | | this.$message.error("æ´æ°å¤±è´¥") |
| | | } |
| | | this.getScheduleById(orderObj.id) |
| | | this.dialogVisible = false |
| | | }).catch(error=>{ |
| | | console.log(error); |
| | | }) |
| | | |
| | | }, |
| | | handleClose(done){ |
| | | done() |
| | | }, |
| | | initTimeLine(data){ |
| | | this.scheduleList = [] |
| | | if(data){ |
| | | let arr = [ |
| | | { |
| | | title: 'æä»¶ç¾å', |
| | | actualTime: data.documentActualTime, |
| | | planTime: data.documentPlanTime, |
| | | }, |
| | | { |
| | | title: 'ä¸è¾¾ç©æéæ±', |
| | | actualTime: data.bomActualTime, |
| | | planTime: data.bomPlanTime, |
| | | }, |
| | | { |
| | | title: 'éè´è¯¢ä»·+ååç¾è®¢', |
| | | actualTime: data.contractActualTime, |
| | | planTime: data.contractPlanTime, |
| | | }, |
| | | { |
| | | title: 'ç©æéè´å°è´§', |
| | | actualTime: data.arrivalActualTime, |
| | | planTime: data.arrivalPlanTime, |
| | | }, |
| | | { |
| | | title: 'ç©æå°è´§æ£éª', |
| | | actualTime: data.checkActualTime, |
| | | planTime: data.checkPlanTime, |
| | | }, |
| | | { |
| | | title: '颿ãè£
ç®±å
¥åº', |
| | | actualTime: data.productActualTime, |
| | | planTime: data.productPlanTime, |
| | | }, |
| | | ] |
| | | this.scheduleList = arr |
| | | } |
| | | }, |
| | | getScheduleById(id){ |
| | | if(id){ |
| | | fetchScheduleById(id).then(res=>{ |
| | | this.initTimeLine(res.data.data) |
| | | }).catch(error=>{ |
| | | console.log(error); |
| | | }) |
| | | } |
| | | }, |
| | | selectionRow(val){ |
| | | if (val.length > 1) { |
| | | const preVal = val.shift(); |
| | | this.$refs.crud.toggleRowSelection(preVal, false); |
| | | } |
| | | else{ |
| | | this.scheduleList=[] |
| | | } |
| | | this.multipleSelection = val |
| | | this.getScheduleById(val[0].id) |
| | | }, |
| | | formatDate(row, cellValue){ |
| | | if (cellValue) { |
| | | const dutyDateList = /\d{4}-\d{1,2}-\d{1,2}/g.exec(cellValue) |
| | | if (dutyDateList && dutyDateList.length > 0) { |
| | | return dutyDateList[0] |
| | | } |
| | | } |
| | | return '' |
| | | }, |
| | | // è·åæ°æ®å表 |
| | | getData() { |
| | | this.loading = true |
| | | let param = { |
| | | size: 20, |
| | | current: 1, |
| | | } |
| | | fetchScheduleList(param).then((res) => { |
| | | this.tableData = res.data.data.records |
| | | this.page.total = res.data.data.total |
| | | this.page.currentPage = res.data.data.records.pages |
| | | this.scheduleList = [] |
| | | }) |
| | | this.loading = false |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.multipleSelection = val |
| | | }, |
| | | // å é¤ |
| | | deleteHandle(row,index) { |
| | | this.$confirm('æ¯å¦ç¡®è®¤å é¤', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(function() { |
| | | |
| | | }) |
| | | }, |
| | | //卿åå¹¶æ¹æ³ |
| | | rowCalc() { |
| | | this.spanArr.forEach((ele, index) => { |
| | | let parent |
| | | if (index !== 0) parent = this.spanArr[ele.parent || index - 1].span |
| | | ele.span = this.rowSpan(ele.prop, parent) |
| | | }) |
| | | }, |
| | | rowSort(list) { |
| | | let propList = this.spanArr.map(ele => ele.prop) |
| | | this.spanArr.forEach((ele, index) => { |
| | | let key = ele.prop |
| | | this.tableData = this.tableData.sort((a, b) => { |
| | | let flag = true; |
| | | for (let i = 0; i < index; i++) { |
| | | let prop = this.spanArr[i].prop |
| | | flag = flag && a[prop] == b[prop] |
| | | } |
| | | if (flag) { |
| | | if (a[key] < b[key]) { return 1; } |
| | | else if (a[key] > b[key]) { return -1; } |
| | | return 0; |
| | | } |
| | | return 0; |
| | | }) |
| | | }) |
| | | }, |
| | | rowSpan(key, parent) { |
| | | let list = []; |
| | | let position = 0; |
| | | this.tableData.forEach((item, index) => { |
| | | if (index === 0) { |
| | | list.push(1) |
| | | let position = 0; |
| | | } else { |
| | | if (this.tableData[index][key] === this.tableData[index - 1][key]) { |
| | | if (parent && parent[index] !== 0) { |
| | | list.push(1) |
| | | position = index |
| | | } else { |
| | | list[position] += 1; |
| | | list.push(0) |
| | | } |
| | | } else { |
| | | list.push(1) |
| | | position = index |
| | | } |
| | | } |
| | | }) |
| | | return list |
| | | }, |
| | | spanMethod({ row, column, rowIndex, columnIndex }) { |
| | | for (let i = 0; i < this.spanArr.length; i++) { |
| | | const ele = this.spanArr[i] |
| | | if (column.property == ele.prop) { |
| | | const _row = ele.span[rowIndex]; |
| | | const _col = _row > 0 ? 1 : 0; |
| | | return { |
| | | rowspan: _row, |
| | | colspan: _col |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | .basic-template-table .el-table__body .el-table__row td:first-child .cell { |
| | | padding-left: 0px; |
| | | padding-right: 0px; |
| | | } |
| | | |
| | | .basic-template-table .el-table__body .el-table__row:hover { |
| | | cursor: move; |
| | | } |
| | | |
| | | .basic-template-table .el-table__body .el-table__row:hover .icon { |
| | | display: inline-block; |
| | | } |
| | | |
| | | .basic-template-table .el-table__body .el-table__row .icon { |
| | | color: rgba(0, 0, 0, 0.45); |
| | | font-size: 12px; |
| | | line-height: 18px; |
| | | display: none; |
| | | } |
| | | |
| | | .aufontAll { |
| | | font-family: aufontAll !important; |
| | | font-size: 14px; |
| | | font-style: normal; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | } |
| | | |
| | | .h-icon-all-drag { |
| | | background: url('/img/tz.png') center center no-repeat; |
| | | background-size: cover; |
| | | font-size: 14px; |
| | | } |
| | | .h-icon-all-drag:before { |
| | | content: '\E63E'; |
| | | font-size: 14px; |
| | | visibility: hidden; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | v-diadrag |
| | | :title="!dataForm.id ? 'æ°å¢' : 'ä¿®æ¹'" |
| | | :close-on-click-modal="false" |
| | | :visible.sync="visible" |
| | | > |
| | | <el-form |
| | | :model="dataForm" |
| | | :rules="dataRule" |
| | | ref="dataForm" |
| | | label-width="100px" |
| | | class="l-mes" |
| | | > |
| | | <el-form-item label="模æ¿ç¼å·" prop="templateNo"> |
| | | <el-input |
| | | v-model="dataForm.templateNo" |
| | | placeholder="模æ¿ç¼å·" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="模æ¿åç§°" prop="templateName"> |
| | | <el-input |
| | | v-model="dataForm.templateName" |
| | | placeholder="模æ¿åç§°" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="模æ¿ç±»å" prop="templateType"> |
| | | <el-select |
| | | v-model="dataForm.templateType" |
| | | placeholder="模æ¿ç±»å" |
| | | filterable |
| | | style="width: 100%" |
| | | clearable |
| | | @change="templateTypeChange" |
| | | > |
| | | <el-option |
| | | v-for="item in templateTypeList" |
| | | :key="item.id" |
| | | :label="item.templateTypeName" |
| | | :value="item.templateTypeName" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="dataForm.remark" placeholder="夿³¨"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="visible = false">åæ¶</el-button> |
| | | <el-button |
| | | type="primary" |
| | | :disabled="isSubmit" |
| | | v-thinclick="`dataFormSubmit`" |
| | | >ç¡®å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getObj, addObj, putObj, getTemplateTypes } from '@/api/basic/template' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | templateTypeList: [], |
| | | visible: false, |
| | | dataForm: { |
| | | id: 0, |
| | | templateName: '', |
| | | templateNo: '', |
| | | templateType: '', |
| | | dataType: '', |
| | | remark: '' |
| | | }, |
| | | dataRule: { |
| | | templateName: [ |
| | | { required: true, message: '模æ¿åç§°ä¸è½ä¸ºç©º', trigger: 'blur' } |
| | | ], |
| | | templateType: [ |
| | | { required: true, message: '模æ¿ç±»åä¸è½ä¸ºç©º', trigger: 'blur' } |
| | | ] |
| | | }, |
| | | isSubmit: false |
| | | } |
| | | }, |
| | | methods: { |
| | | init(id) { |
| | | this.dataForm.id = id || 0 |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | this.$refs.dataForm.resetFields() |
| | | Promise.all([this.getDict(), this.getDataForm(this.dataForm.id)]).then( |
| | | (res) => {} |
| | | ) |
| | | }) |
| | | }, |
| | | getDataForm(id) { |
| | | return new Promise((resolve, reject) => { |
| | | if (id) { |
| | | getObj(id) |
| | | .then((response) => { |
| | | if (response.data.code === 0) { |
| | | this.dataForm = response.data.data |
| | | resolve() |
| | | } else { |
| | | this.dataForm = {} |
| | | reject() |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | reject(error) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getDict() { |
| | | return new Promise((resolve, reject) => { |
| | | getTemplateTypes() |
| | | .then((response) => { |
| | | if (response.data.code === 0) { |
| | | this.templateTypeList = response.data.data |
| | | resolve() |
| | | } else { |
| | | this.templateTypeList = [] |
| | | reject() |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | reject(error) |
| | | }) |
| | | }) |
| | | }, |
| | | templateTypeChange() { |
| | | const currOperationTemplateType = this.dataForm.templateType |
| | | const templateType = this.templateTypeList.find( |
| | | (item) => item.templateTypeName === currOperationTemplateType |
| | | ) |
| | | console.log(templateType) |
| | | if (templateType != undefined) { |
| | | this.dataForm.dataType = templateType.dataType |
| | | } else { |
| | | this.dataForm.dataType = '' |
| | | } |
| | | }, |
| | | // 表åæäº¤ |
| | | dataFormSubmit() { |
| | | this.isSubmit = true |
| | | this.$refs.dataForm.validate((valid) => { |
| | | if (valid) { |
| | | if (this.dataForm.id) { |
| | | putObj(this.dataForm).then((data) => { |
| | | this.$message.success('ä¿®æ¹æå') |
| | | this.visible = false |
| | | this.isSubmit = false |
| | | this.$emit('refreshDataList') |
| | | }) |
| | | } else { |
| | | addObj(this.dataForm).then((data) => { |
| | | this.$message.success('æ·»å æå') |
| | | this.visible = false |
| | | this.isSubmit = false |
| | | this.$emit('refreshDataList') |
| | | }) |
| | | } |
| | | } else { |
| | | this.isSubmit = false |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | title="æ±æ¥äº§åº" |
| | | :visible.sync="innerVisible" |
| | | append-to-body |
| | | @close="$emit('update:currshowlist', false)" |
| | | @close="handleClose" |
| | | :show="currshowlist" |
| | | :close-on-click-modal="false" |
| | | class="batch-product-out-form" |
| | |
| | | ><el-col :span="2" class="batch-product-out-form-header-col" |
| | | ><span>é¶ä»¶åç§°</span></el-col |
| | | > |
| | | <el-col :span="4" class="batch-product-out-form-header-col" |
| | | <!-- <el-col :span="4" class="batch-product-out-form-header-col" |
| | | ><span>åºåå·</span></el-col |
| | | > |
| | | > --> |
| | | <!-- <el-col :span="2" class="batch-product-out-form-header-col" |
| | | ><span>è½½å
·ç¼å·</span></el-col |
| | | > |
| | |
| | | <el-col :span="1" class="batch-product-out-form-header-col" |
| | | ><span>åä½</span></el-col |
| | | > |
| | | <el-col :span="2" class="batch-product-out-form-header-col" |
| | | <!-- <el-col :span="2" class="batch-product-out-form-header-col" |
| | | ><span>WDRå·</span></el-col |
| | | > |
| | | > --> |
| | | <!-- <el-col :span="1" class="batch-product-out-form-header-col" |
| | | ><span>åæ®µæè¿°</span></el-col |
| | | > --> |
| | |
| | | <span class="inline-el-hidden">{{ item.partName }}</span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | <el-col :span="4" class="batch-product-out-form-body-col l-mes"> |
| | | <!-- <el-col :span="4" class="batch-product-out-form-body-col l-mes"> --> |
| | | <!-- <span>{{ item.outBatchNo }}</span> --> |
| | | <el-input v-model="item.outBatchNo"> |
| | | <!-- <el-input v-model="item.outBatchNo"> |
| | | </el-input> |
| | | </el-col> |
| | | </el-col> --> |
| | | <!-- <el-col :span="2" class="batch-product-out-form-body-col l-mes"> |
| | | <el-input v-model="item.reelNumber"></el-input> |
| | | </el-col> |
| | |
| | | <el-col :span="1" class="batch-product-out-form-body-col"> |
| | | <span>{{ item.unit }}</span> |
| | | </el-col> |
| | | <el-col :span="2" class="batch-product-out-form-body-col l-mes"> |
| | | <!-- <el-col :span="2" class="batch-product-out-form-body-col l-mes"> |
| | | <el-input v-model="item.wdr"></el-input> |
| | | </el-col> |
| | | </el-col> --> |
| | | <!-- <el-col :span="1" class="batch-product-out-form-body-col l-mes"> |
| | | <el-input v-model="item.segmentDesc"></el-input> |
| | | </el-col> --> |
| | | <el-col :span="2" class="batch-product-out-form-body-col l-mes"> |
| | | <el-input v-model="item.outNum"></el-input> |
| | | <span v-text="item.outNum"></span> |
| | | </el-col> |
| | | <el-col :span="2" class="batch-product-out-form-body-col l-mes"> |
| | | <el-input v-model="item.scrapQty"></el-input> |
| | | <el-select v-model="item.scrapQty"> |
| | | <el-option label="0" value="0"> |
| | | </el-option> |
| | | <el-option label="1" value="1"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-col> |
| | | <!-- <el-col :span="1" class="batch-product-out-form-body-col l-mes"> |
| | | <el-input v-model="item.reelWeight"></el-input> |
| | |
| | | <el-input v-model="item.remark"></el-input> |
| | | </el-col>--> |
| | | <el-col :span="2" class="batch-product-out-form-body-col l-mes"> |
| | | <el-input v-model="item.mainRemark"></el-input> |
| | | <el-input v-model="item.remark"></el-input> |
| | | </el-col> |
| | | <el-col :span="1" class="batch-product-out-form-body-col"> |
| | | <span |
| | |
| | | data() { |
| | | return { |
| | | innerVisible: false, |
| | | staffNameList: [], |
| | | personSelection: [], |
| | | saveDisabled: false, |
| | | currDutyInitproducts: [], // ç¨äºç¼å页é¢ä¸åæçstaff产åºè®°å½ï¼å¹¶ä¸æ¯å±äºå½åçæ¬¡ä¸çï¼ç¨äºå¾éäººåæ¶ä½ä¸ºåæ°æ®åç
§ |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | initProductList(){ |
| | | let val = this.personSelection |
| | | //æäººåæ¥å·¥ |
| | | if(this.groupStatus){ |
| | | this.products = [] |
| | | this.addProductOutForPerson() |
| | | }else{ |
| | | //æç»æ¥å·¥ |
| | | let nameList = [] |
| | | val.forEach(obj=>{ |
| | | nameList.push(obj.staffName) |
| | | }) |
| | | let staffName = Array.from(new Set(nameList)).join(",") |
| | | if(staffName!=''){ |
| | | this.products = this.productList |
| | | this.products.forEach(item=>{ |
| | | item.staffName = staffName |
| | | item.outNum=1 |
| | | }) |
| | | }else{ |
| | | this.products = [] |
| | | } |
| | | } |
| | | }, |
| | | handleClose(){ |
| | | this.$emit('update:currshowlist', false) |
| | | this.$nextTick(()=>{ |
| | | this.$refs.productOutPersonList.clearSelection() |
| | | }) |
| | | }, |
| | | isNumber(value) { |
| | | var reg = /^[0-9]+(.[0-9]{1,4})?$/ |
| | | if ( |
| | |
| | | // åå»ä¸products(æ¤ä¸ºé¡µé¢ç宿¶æ°æ®ï¼ç¨æ·ææ¹å¨å³æ´æ°)对æ¯ï¼å°å
¶ä¸åå¨çç¸å人åçç产æ°éåçäº§æ¹æ¬¡åæ¥è¿æ¥ï¼è¥productsä¸ç产æ°éæçäº§æ¹æ¬¡ä¸åå¨å¼ï¼åä¸è¿è¡åæ¥ï¼æ²¿ç¨åæ¥çã |
| | | // æåï¼å°ç»è£
好çéä¸äººåä¿¡æ¯ï¼æ´æ°å°products(æç
§ç次è¿è¡)ï¼æ³¨ææ´æ°ä¹åéä¸äººåä¿¡æ¯å¨productsä½ç½®é¡ºåº |
| | | this.personSelection = val |
| | | if(this.currshowlist){ |
| | | this.initProductList() |
| | | } |
| | | }, |
| | | // æ ¹æ®éä¸ç人åï¼çæäººå产åºä¿¡æ¯ï¼å¹¶ä¸æ¾å¨å³è¾¹å表çæåé¢ |
| | | addProductOutForPerson() { |
| | |
| | | newProduct.partNo = this.parentInfo.partNo |
| | | newProduct.partName = this.parentInfo.partName |
| | | newProduct.outBatchNo = oriOutBatchNo |
| | | newProduct.productQty = 0 |
| | | newProduct.productQty = 1 |
| | | newProduct.outNum = 1 |
| | | newProduct.unit = this.parentInfo.unit |
| | | newProduct.productStaffs = productStaffs |
| | | newProduct.productStaffIds = productStaffIds |
| | |
| | | saveProductOuts2() { |
| | | this.clickDateArr.push(new Date().getTime()) |
| | | var productOutputList = [] |
| | | this.productList.forEach(a=>{ |
| | | this.products.forEach(a=>{ |
| | | productOutputList.push({ |
| | | partId: a.partId, |
| | | productQty: a.outNum, |
| | | outBatchNo: a.outBatchNo, |
| | | scrapQty: a.scrapQty, |
| | | remark: a.remark, |
| | | wdr: a.wdr, |
| | | wdr: a.wdr, |
| | | staffNo: a.staffNo, |
| | | staffName: a.staffName, |
| | | status: a.status, |
| | | dutyRecordId: a.dutyRecordId, |
| | | productStaffIds: a.productStaffIds, |
| | | productStaffs: a.productStaffs |
| | | productStaffs: a.productStaffs, |
| | | sortNo: a.sortNo |
| | | }) |
| | | }) |
| | | var productMains = { |
| | |
| | | this.products.push(this.productList[i]) |
| | | } |
| | | this.$nextTick(() => { |
| | | this.$refs.productOutPersonList.clearSelection() |
| | | this.$refs.productOutPersonList.toggleAllSelection() |
| | | }) |
| | | } else { |
| | | for (let i = 0; i < this.productList.length; i++) { |
| | | this.products.push(this.productList[i]) |
| | | } |
| | | this.$nextTick(() => { |
| | | this.$refs.productOutPersonList.clearSelection() |
| | | this.$refs.productOutPersonList.toggleAllSelection() |
| | | }) |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <el-dialog |
| | | width="40%" |
| | | width="60%" |
| | | top="5vh" |
| | | title="ææ" |
| | | :visible.sync="innerVisible" |
| | | append-to-body |
| | |
| | | :key="tableKey" |
| | | :data="dataList" |
| | | border |
| | | style="width: 100%;" |
| | | height="400" |
| | | style="width: 100%;overflow-y: scroll;" |
| | | @cell-dblclick="dblhandleCurrentChange" |
| | | show-summary |
| | | :span-method="objectSpanMethod" |
| | | :summary-method="getSummaries" |
| | | > |
| | | <el-table-column header-align="center" align="center" type="index" label="åºå·"></el-table-column> |
| | | <el-table-column |
| | | prop="partNo" |
| | | header-align="center" |
| | | align="center" |
| | | label="é¶ä»¶ç¼å·" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="partDescription" |
| | | prop="partName" |
| | | header-align="center" |
| | | align="center" |
| | | label="é¶ä»¶æè¿°" |
| | | label="é¶ä»¶" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | header-align="center" |
| | | align="center" |
| | | label="æ¹å·" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | |
| | | header-align="center" |
| | | align="center" |
| | | label="åä½" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="menu" label="æä½" header-align="center" align="center"> |
| | | <template scope="scope"> |
| | | <el-button type="text" icon="el-icon-circle-close" @click="cancelFeed(scope.$index,scope.row)">åæ¶</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | |
| | | password: null |
| | | } |
| | | }, |
| | | beforeUpdate(){ |
| | | this.$nextTick(()=>{ |
| | | this.objectSpanMethod() |
| | | this.$refs.table.doLayout() |
| | | }) |
| | | }, |
| | | directives: { |
| | | focus: { |
| | | inserted: function(el, option) { |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | //æå
¥åæ¶æé® |
| | | cancelFeed(index,row){ |
| | | this.dataList.splice(index,1) |
| | | }, |
| | | confirmData() { |
| | | if (this.password != null) { |
| | | checkSubmitPassword({ password: this.password }).then((response) => { |
| | |
| | | getCheckRawPart(partNoList).then((response) => { |
| | | if (response.data.code === 0) { |
| | | // éè¦å¯ç 确认æ
åµ |
| | | if (response.data.data.success === false) { |
| | | this.messages = response.data.data.message |
| | | this.onnerVisible = true |
| | | } else { |
| | | //if (response.data.data.success === false) { |
| | | // this.messages = response.data.data.message |
| | | // this.onnerVisible = true |
| | | //} else { |
| | | // ä¸éè¦å¯ç ç´æ¥ææ |
| | | this.saveFeed() |
| | | } |
| | | //} |
| | | } |
| | | }) |
| | | }, |
| | |
| | | return reg.test(value) |
| | | }, |
| | | objectSpanMethod() { |
| | | setTimeout(() => { |
| | | this.$nextTick(()=>{ |
| | | if (this.$refs.table.$el) { |
| | | const current = this.$refs.table.$el |
| | | .querySelector('.el-table__footer-wrapper') |
| | | .querySelector('.el-table__footer') |
| | | const cell = current.rows[0].cells |
| | | // cell[1].style.display = 'none' |
| | | cell[0].colSpan = '4' |
| | | cell[0].colSpan = '6' |
| | | } |
| | | }, 50) |
| | | }) |
| | | }, |
| | | getSummaries(param) { |
| | | const { columns, data } = param |
| | |
| | | }, |
| | | watch: { |
| | | currshowlist() { |
| | | this.innerVisible = this.currshowlist |
| | | this.password = null |
| | | if (this.currshowlist) { |
| | | this.$nextTick(() => {}) |
| | | const _than = this |
| | | _than.innerVisible = _than.currshowlist |
| | | _than.password = null |
| | | if (!_than.currshowlist) { |
| | | _than.$nextTick(() => { |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | created(){ |
| | | this.$nextTick(()=>{ |
| | | this.objectSpanMethod() |
| | | }) |
| | | }, |
| | | mounted() {} |
| | | } |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-tabs v-model="activeName"> |
| | | <el-tab-pane name="first" label="线边ä»åæ ¼ç©æ"> |
| | | <!-- <el-tab-pane name="first" label="线边ä»åæ ¼ç©æ"> --> |
| | | <div class="line-side-warehouse-header"> |
| | | <div> |
| | | <el-divider class="pane-divider" direction="vertical"></el-divider |
| | |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="é¶ä»¶æè¿°" |
| | | prop="partDescription" |
| | | label="é¶ä»¶" |
| | | prop="partName" |
| | | align="center" show-overflow-tooltip |
| | | > |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">é¶ä»¶æè¿°</div> |
| | | <div style="line-height: 14px;">é¶ä»¶</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | | v-model="queryParamTwo.partDescription" |
| | | v-model="queryParamTwo.partName" |
| | | @keyup.enter.native="handleStockList" |
| | | clearable |
| | | @clear="handleStockList" |
| | |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.partDescription }}</span> |
| | | <span>{{ scope.row.partName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="IFSæ¹æ¬¡å·" prop="ifsBatchNo" align="center"> |
| | | <el-table-column label="æ¹æ¬¡å·" prop="ifsBatchNo" align="center"> |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">IFSæ¹æ¬¡å·</div> |
| | | <div style="line-height: 14px;">æ¹æ¬¡å·</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | |
| | | <span>{{ scope.row.ifsBatchNo }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="WDRå·" prop="ifsWdr" align="center"> |
| | | <!-- <el-table-column label="WDRå·" prop="ifsWdr" align="center"> |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">WDRå·</div> |
| | | <div class="th" @click.stop> |
| | |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.ifsWdr }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="SNå·" prop="partBatchNo" align="center"> |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">SNå·</div> |
| | |
| | | > |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">å¯ç¨æ°é</div> |
| | | <!-- <div class="th" @click.stop> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | | v-model="queryParamTwo.availableStockQuantity" |
| | |
| | | @clear="handleStockList" |
| | | size="mini" |
| | | ></el-input> |
| | | </div> --> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.availableStockQuantity }}</span> |
| | |
| | | <el-table-column label="åºåæ°é" prop="stockQuantity" align="center"> |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">åºåæ°é</div> |
| | | <!-- <div class="th" @click.stop> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | | v-model="queryParamTwo.stockQuantity" |
| | |
| | | @clear="handleStockList" |
| | | size="mini" |
| | | ></el-input> |
| | | </div> --> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.stockQuantity }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="é¢çæ°é" |
| | | prop="reserveQuantity" |
| | | align="center" |
| | | > |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">é¢çæ°é</div> |
| | | <div style="line-height: 14px;">é¢çæ°é</div> --> |
| | | <!-- <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | |
| | | size="mini" |
| | | ></el-input> |
| | | </div> --> |
| | | </template> |
| | | <!-- </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.reserveQuantity }}</span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column label="æ¯å¦å·¥åºåºå" prop="operationStockStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.operationStockStatus">æ¯</span> |
| | | <span v-else>å¦</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æå±å·¥åº" prop="name" align="center"> |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">æå±å·¥åº</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | | v-model="queryParamTwo.name" |
| | | @keyup.enter.native="handleStockList" |
| | | clearable |
| | | @clear="handleStockList" |
| | | size="mini" |
| | | ></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="åºä½å·" prop="locationNo" align="center"> |
| | |
| | | > |
| | | </el-pagination> |
| | | </div> --> |
| | | </el-tab-pane> |
| | | <!-- </el-tab-pane> --> |
| | | <!-- <el-tab-pane name="second" label="线边ä»å¾
å¤çç©æ"> |
| | | <div class="line-side-warehouse-header"> |
| | | <div> |
| | |
| | | >æ«ç ææ</el-button |
| | | > |
| | | <el-button |
| | | class="feeding-btn" |
| | | class="feeding-btn"locationNo |
| | | type="primary" |
| | | icon="feed-btn-feeding" |
| | | @click="addFeed()" |
| | |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;">é¶ä»¶æè¿°</div> |
| | | <div style="line-height: 14px;">é¶ä»¶</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | |
| | | <span>{{ scope.row.partName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="IFSæ¹æ¬¡å·" prop="ifsBatchNo" align="center"> |
| | | <el-table-column label="æ¹æ¬¡å·" prop="ifsBatchNo" align="center"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;">IFSæ¹æ¬¡å·</div> |
| | | <div style="line-height: 14px;">æ¹æ¬¡å·</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | |
| | | <span>{{ scope.row.ifsBatchNo }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="WDRå·" prop="ifsWdr" align="center"> |
| | | <!-- <el-table-column label="WDRå·" prop="ifsWdr" align="center"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;">WDRå·</div> |
| | | <div class="th" @click.stop> |
| | |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.ifsWdr }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="SNå·" prop="partBatchNo" align="center"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;">SNå·</div> |
| | |
| | | <span>{{ scope.row.stockQuantity }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ¯å¦å·¥åºåºå" prop="operationStockStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.operationStockStatus">æ¯</span> |
| | | <span v-else>å¦</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æå±å·¥åº" prop="name" align="center"> |
| | | <template slot="header"> |
| | | <div style="line-height: 14px;">æå±å·¥åº</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | type="text" |
| | | v-model="queryParamTwo.name" |
| | | @keyup.enter.native="handleStockList" |
| | | clearable |
| | | @clear="handleStockList" |
| | | size="mini" |
| | | ></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="åºä½å·" prop="ifsLocation" align="center"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;">åºä½å·</div> |
| | |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.ifsLocation }}</span> |
| | | <span>{{ scope.row.locNo }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="åä½" prop="unit" align="center"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getStock, getFeed, getTodoStock, submitInsPart, inputHandle } from '@/api/product/personboard' |
| | | import { getStock, getFeed,getFeed2, getTodoStock, submitInsPart, inputHandle } from '@/api/product/personboard' |
| | | import { getMaterial } from '@/api/plan/operationtask' |
| | | import { |
| | | getERPStockListByPart, |
| | | fetchList |
| | | fetchList, |
| | | } from '@/api/warehouse/joinstockorder' |
| | | import feedFormDialog from './feed-form' |
| | | import returnMaterialFormDialog from './returnmaterial-form' |
| | |
| | | this.paramObject, |
| | | this.queryParamThree |
| | | ) |
| | | getFeed(query, stationId) |
| | | getFeed2(query, stationId) |
| | | .then((response) => { |
| | | var data = response.data |
| | | if (data.code === 0) { |
| | |
| | | getERPStockListByPart({ |
| | | partNo: part.partNo, |
| | | partBatchNo: part.partBatchNo |
| | | }) |
| | | .then((resp) => { |
| | | }).then((resp) => { |
| | | const respCode = resp.data.code |
| | | const respData = resp.data.data |
| | | if (respCode === 0) { |
| | |
| | | this.isSubmit = false |
| | | this.$message.error('åºåå表æ¥è¯¢å¤±è´¥') |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | }).catch(() => { |
| | | this.isSubmit = false |
| | | console.log('æ¥è¯¢é¶ä»¶å¯¹åºçåºåå表æ¶ï¼åçé误') |
| | | }) |
| | |
| | | } |
| | | }, |
| | | watch: { |
| | | showFeedForm:{ |
| | | handler(newVal,oldVal){ |
| | | if(!newVal){ |
| | | this.$refs.stockTable.toggleAllSelection(false) |
| | | } |
| | | }, |
| | | deep: true |
| | | }, |
| | | workstationId() { |
| | | this.$nextTick(() => { |
| | | if (this.currItem != null && this.currItem === 'feed') { |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- :style="{ backgroundColor: taskStatusColor() }" --> |
| | | <div class="task-div-content" > |
| | | <div v-if="!isShowNormalTracking" class="task-list-div" > |
| | | <operationTaskPane |
| | | ref="operateTaskDiv" :style="{ backgroundColor: taskStatusColor() }" |
| | | <operationTaskPane |
| | | ref="operateTaskDiv" |
| | | :workstationId="dutyForm.workstationId" |
| | | :productSn="operateTaskForm.SN" |
| | | :orderNumber="operateTaskForm.orderNumber" |
| | |
| | | </div> |
| | | <div v-if="isShowNormalTracking" class="task-list-div" > |
| | | <operationTaskTable |
| | | ref="operateTaskTableDiv" :style="{ backgroundColor: taskStatusColor() }" |
| | | ref="operateTaskTableDiv" |
| | | :workstationId="dutyForm.workstationId" |
| | | :productSn="operateTaskForm.SN" |
| | | :orderNumber="operateTaskForm.orderNumber" |
| | |
| | | box-sizing: border-box; |
| | | overflow-y: auto; |
| | | margin-bottom: 10px; |
| | | |
| | | } |
| | | |
| | | .task-list-div { |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | changeCurrOperateTask() {}, |
| | | refreshWorkReportPageData() {}, |
| | | // changeCurrOperateTask() {}, |
| | | // refreshWorkReportPageData() {}, |
| | | refreshOperateTasksByConditions() { |
| | | this.$nextTick(() => { |
| | | this.refreshOperateTasks() |
| | |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['userInfo', 'tagWel', 'permissions']), |
| | | // å个æä¹åæ¯é»è² å½å¤©åä¸å¤©ä¹å
å°±æ¯çº¢è² ä¸å¤©ä¹åå°±æ¯èè² |
| | | // taskStatusColor() { |
| | | // return function(date) { |
| | | // const now = new Date(); |
| | | // const halfMonthAgo = new Date(now - 15 * 24 * 60 * 60 * 1000); |
| | | // const threeDaysAgo = new Date(now - 3 * 24 * 60 * 60 * 1000); |
| | | // const oneDayAgo = new Date(now - 24 * 60 * 60 * 1000); |
| | | // const today = new Date(now); |
| | | |
| | | taskStatusColor() { |
| | | return function() { |
| | | const now = new Date(); |
| | | const threeDaysAgo = new Date(now - 3 * 24 * 60 * 60 * 1000); |
| | | const oneDayAgo = new Date(now - 24 * 60 * 60 * 1000); |
| | | const today = new Date(now); |
| | | // if (halfMonthAgo <= date && date <= threeDaysAgo) { |
| | | // return 'yellow'; |
| | | // } else if (today <= date && date <= threeDaysAgo) { |
| | | // return 'red'; |
| | | // } else { |
| | | // return 'blue'; |
| | | // } |
| | | // }; |
| | | // } |
| | | |
| | | if (threeDaysAgo <= today && today <= oneDayAgo) { |
| | | return 'yellow'; |
| | | } else if (today <= threeDaysAgo) { |
| | | return 'blue'; |
| | | } else { |
| | | return 'red'; |
| | | } |
| | | }; |
| | | } |
| | | }, |
| | | created() { |
| | | document.title = 'å·¥ä½å°ââMES' |
| | |
| | | <template> |
| | | <div> |
| | | <el-alert |
| | | <el-alert |
| | | v-if="!operationTasks || operationTasks.length == 0" |
| | | title="è¿æ²¡æå·¥åä¸åå°æ¤æºå°ï¼" |
| | | type="warning" |
| | |
| | | > |
| | | </el-alert> |
| | | <el-card |
| | | |
| | | v-for="(item, index) in operationTasks" |
| | | @click.native="setCheckFlag(item)" |
| | | @click.native="setCheckFlag(item)" |
| | | shadow="hover" |
| | | :key="index" |
| | | :class="['task-item', item.checkFlag ? 'card-checked' : 'card-unchecked']" |
| | | :style="{ backgroundColor: getBackgroundColor(item.planFinishDay) }" |
| | | > |
| | | <!-- <img class="selectedImg" /> --> |
| | | <div class="header" > |
| | | <div>å·¥åå·ï¼{{ item.taskNo }}</div> |
| | | <!-- <div>计åå·ï¼{{ item.mpsNo }}</div> --> |
| | | <div |
| | | :class="[ |
| | | 'status-change-div', |
| | | item.checkFlag ? 'card-checked-status' : 'card-status' |
| | | ]" |
| | | > |
| | | <el-select |
| | | v-if="permissions.product_operationTask_state" |
| | | v-model="item.statusAction" |
| | | placeholder="åè½èå" |
| | | @change=" |
| | | changeTaskState(item.statusAction, item.status, item.id, item) |
| | | " |
| | | > |
| | | <el-option |
| | | v-for="ele in statusActions" |
| | | :key="ele.value" |
| | | :label="ele.label" |
| | | :value="ele.value" |
| | | :disabled="ele.disabled" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="body"> |
| | | <div class="row"> |
| | | <div class="l">é¶ä»¶åç§°ï¼</div> |
| | | <div class="r">{{ item.partName }}</div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="l">é¶ä»¶å·ï¼</div> |
| | | <div class="r">{{ item.partNo }}</div> |
| | | </div> |
| | | <!-- <div class="row"> |
| | | <div class="l">æåï¼</div> |
| | | <div class="r">{{ item.productName }}</div> |
| | | </div> --> |
| | | <div class="row"> |
| | | <div class="l">计å宿æ¶é´ï¼</div> |
| | | <div class="r" >{{ item.planFinishDay }}</div> |
| | | </div> |
| | | </div> |
| | | |
| | | </el-card> |
| | | > |
| | | <img class="selectedImg" src="/img/workbench/icon_selected.png" /> |
| | | <div class="header"> |
| | | <div>å·¥åå·ï¼{{ item.taskNo }}</div> |
| | | <!-- <div class="tag" :style="{ backgroundColor: getTagColor(item.planFinishDay) }"> |
| | | {{ getTagText(item.planFinishDay) }} |
| | | </div> --> |
| | | <el-alert |
| | | center |
| | | style="width: 80px;height:30px;line-height: 30px;" |
| | | :title="getTagText(item.planFinishDay)" |
| | | :type="getTagColor(item.planFinishDay)" |
| | | effect="dark" |
| | | :closable="false"> |
| | | </el-alert> |
| | | <!-- <div>计åå·ï¼{{ item.mpsNo }}</div> --> |
| | | <div |
| | | :class="[ |
| | | 'status-change-div', |
| | | item.checkFlag ? 'card-checked-status' : 'card-status' |
| | | ]" |
| | | > |
| | | <el-select |
| | | v-if="permissions.product_operationTask_state" |
| | | v-model="item.statusAction" |
| | | placeholder="åè½èå" |
| | | @change=" |
| | | changeTaskState(item.statusAction, item.status, item.id, item) |
| | | " |
| | | > |
| | | <el-option |
| | | v-for="ele in statusActions" |
| | | :key="ele.value" |
| | | :label="ele.label" |
| | | :value="ele.value" |
| | | :disabled="ele.disabled" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="body"> |
| | | <div class="row"> |
| | | <div class="l">é¶ä»¶åç§°ï¼</div> |
| | | <div class="r">{{ item.partName }}</div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="l">é¶ä»¶å·ï¼</div> |
| | | <div class="r">{{ item.partNo }}</div> |
| | | </div> |
| | | <!-- <div class="row"> |
| | | <div class="l">æåï¼</div> |
| | | <div class="r">{{ item.productName }}</div> |
| | | </div> --> |
| | | <div class="row"> |
| | | <div class="l">计å宿æ¶é´ï¼</div> |
| | | <div class="r">{{ item.planFinishDay }}</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-progress |
| | | class="task-progress" |
| | | :text-inside="true" |
| | | :stroke-width="20" |
| | | :percentage=" |
| | | Number((item.completedQuantity / item.plannedQuantity).toFixed(2)) * |
| | | 100 > |
| | | 100 |
| | | ? 100 |
| | | : Number( |
| | | (item.completedQuantity / item.plannedQuantity).toFixed(2) |
| | | ) * 100 |
| | | " |
| | | :format="formatPercentage(item.completedQuantity, item.plannedQuantity)" |
| | | ></el-progress> |
| | | </el-card> |
| | | </div> |
| | | </template> |
| | | <style lang="scss" scoped> |
| | |
| | | flex-direction: column; |
| | | align-items: center; |
| | | } |
| | | |
| | | .tag{ |
| | | width: 80px; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | border-radius:15% ; |
| | | text-align: center; |
| | | font-size:8px; |
| | | color:white; |
| | | align-content: 30px; |
| | | } |
| | | |
| | | |
| | | .task-item { |
| | | width: 100%; |
| | | border-radius: 12px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | background:none; |
| | | box-shadow: 1px 2px 24px 1px rgba(4, 0, 0, 0.14); |
| | | |
| | | & + .task-item { |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | &.card-checked { |
| | | // color: white; |
| | | // background-image: -webkit-linear-gradient( |
| | | // 90deg, |
| | | // rgba(12, 149, 255, 0.7) 0%, |
| | | // rgba(38, 176, 254, 0.8) 34%, |
| | | // rgba(12, 149, 255, 0.8) 100% |
| | | // ), |
| | | // -webkit-linear-gradient(#5a97fa, #5a97fa); |
| | | // background-image: -moz-linear-gradient( |
| | | // 90deg, |
| | | // rgba(12, 149, 255, 0.7) 0%, |
| | | // rgba(38, 176, 254, 0.8) 34%, |
| | | // rgba(12, 149, 255, 0.8) 100% |
| | | // ), |
| | | // -moz-linear-gradient(#5a97fa, #5a97fa); |
| | | // background-image: linear-gradient( |
| | | // 90deg, |
| | | // rgba(12, 149, 255, 0.7) 0%, |
| | | // rgba(38, 176, 254, 0.8) 34%, |
| | | // rgba(12, 149, 255, 0.8) 100% |
| | | // ), |
| | | // linear-gradient(#5a97fa, #5a97fa); |
| | | // background-blend-mode: normal, normal; |
| | | background-image: -webkit-linear-gradient( |
| | | 90deg, |
| | | rgba(12, 149, 255, 0.7) 0%, |
| | | rgba(38, 176, 254, 0.8) 34%, |
| | | rgba(12, 149, 255, 0.8) 100% |
| | | ), |
| | | -webkit-linear-gradient(#5a97fa, #5a97fa); |
| | | background-image: -moz-linear-gradient( |
| | | 90deg, |
| | | rgba(12, 149, 255, 0.7) 0%, |
| | | rgba(38, 176, 254, 0.8) 34%, |
| | | rgba(12, 149, 255, 0.8) 100% |
| | | ), |
| | | -moz-linear-gradient(#5a97fa, #5a97fa); |
| | | background-image: linear-gradient( |
| | | 90deg, |
| | | rgba(12, 149, 255, 0.7) 0%, |
| | | rgba(38, 176, 254, 0.8) 34%, |
| | | rgba(12, 149, 255, 0.8) 100% |
| | | ), |
| | | linear-gradient(#5a97fa, #5a97fa); |
| | | background-blend-mode: normal, normal; |
| | | } |
| | | .selectedImg { |
| | | position: absolute; |
| | |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | ...mapGetters(['permissions']), |
| | | }, |
| | | created() { |
| | | if (!this.defaultOperationId) { |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | getBackgroundColor(planFinishDay) { |
| | | const currentDate = new Date(); |
| | | currentDate.setHours(0, 0, 0, 0); // 设置æ¶é´ä¸ºå½å¤©çå¼å§ï¼å¿½ç¥æ¶åç§æ¯«ç§ |
| | | const planFinishDayObj = new Date(planFinishDay); |
| | | planFinishDayObj.setHours(0, 0, 0, 0); // åæ ·è®¾ç½®æ¶é´ä¸ºè®¡å宿æ¥çå¼å§ |
| | | |
| | | if (planFinishDayObj < currentDate) { |
| | | // å¦æè®¡å宿æ¥å¨å½åæ¥ä¹åï¼è¿å'blue'è¡¨ç¤ºè¿æ |
| | | return 'red'; |
| | | // getBackgroundColor(planFinishDay) { |
| | | // const today = new Date(); |
| | | // const planDate = new Date(planFinishDay); |
| | | // if (planDate < today) { |
| | | // return 'rgba( 255,0,0,1)'; // è¶
æä¸ºçº¢è² |
| | | // } else { |
| | | // const timeDiff = planDate.getTime() - today.getTime(); |
| | | // const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24)); |
| | | // if (daysDiff <= 3) { |
| | | // return 'rgba(255,204,62, 1)'; // 临æä¸ºé»è² |
| | | // } else { |
| | | // return 'rgba(86,219, 25,1)'; // æ£å¸¸ä¸ºç»¿è² |
| | | // } |
| | | // } |
| | | // }, |
| | | |
| | | getTagColor(planFinishDay) { |
| | | const today = new Date(); |
| | | const planDate = new Date(planFinishDay); |
| | | if (planDate < today) { |
| | | //return 'rgba( 255,0,0,1)'; // è¶
æä¸ºçº¢è² |
| | | return 'error'; // è¶
æä¸ºçº¢è² |
| | | } else { |
| | | const timeDiff = planDate.getTime() - today.getTime(); |
| | | const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24)); |
| | | if (daysDiff <= 3) { |
| | | //return 'rgba(255,204,62, 1)'; // 临æä¸ºé»è² |
| | | return 'warning'; // 临æä¸ºé»è² |
| | | } else { |
| | | const timeDifference = currentDate - planFinishDayObj; |
| | | const daysDifference = Math.ceil(timeDifference / (1000 * 60 * 60 * 24)); |
| | | |
| | | if (daysDifference < 0) { |
| | | // å¦æè®¡å宿æ¥å¨æªæ¥ï¼è®¡ç®å®æ¯å¦å¨10天å
|
| | | const daysUntilDue = Math.abs(daysDifference); |
| | | if (daysUntilDue <= 10) { |
| | | // 妿å¨10天å
ï¼è¿å'yellow'表示å³å°å°æ |
| | | return 'yellow'; |
| | | } |
| | | } |
| | | //return 'rgba(86,219, 25,1)'; // æ£å¸¸ä¸ºç»¿è² |
| | | return 'success'; // æ£å¸¸ä¸ºç»¿è² |
| | | } |
| | | // 妿䏿¯å³å°å°ææå·²è¿æï¼è¿å'red'è¡¨ç¤ºå·²å°æ |
| | | return 'blue'; |
| | | } |
| | | }, |
| | | |
| | | |
| | | getTagText(planFinishDay) { |
| | | const today = new Date(); |
| | | const planDate = new Date(planFinishDay); |
| | | if (planDate < today) { |
| | | return 'è¶
æ'; |
| | | } else { |
| | | const timeDiff = planDate.getTime() - today.getTime(); |
| | | const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24)); |
| | | if (daysDiff <= 3) { |
| | | return '临æ'; |
| | | } else { |
| | | return 'æ£å¸¸'; |
| | | } |
| | | } |
| | | }, |
| | | // ç¹å»å·¥åï¼éä¸å·¥å |
| | | setCheckFlag(item) { |
| | | if (item.checkFlag) { |
| | |
| | | break |
| | | } |
| | | } |
| | | console.log(this.operationTasks) |
| | | // console.log(this.operationTasks) |
| | | // è¥å½åå·¥åå¨å·¥åå表æªè¢«æ¾å°ä¸å½åå·¥åç¶æä¸ºå·²å®ææå·²åæ¶æ¶ï¼åå°å½åå·¥åé置为空并æåºäºä»¶ï¼å¦åä¸ç®¡ |
| | | if (isResetCurrOpertionTaskFlag) { |
| | | getOperationTaskById(taskId).then((res) => { |
| | |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="IFSæ¹æ¬¡å·" |
| | | label="æ¹æ¬¡å·" |
| | | prop="ifsBatchNo" |
| | | align="center" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column label="é¶ä»¶æ¹å·" prop="partBatchNo" align="center"> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="é¶ä»¶æ¹å·" prop="partBatchNo" align="center"> |
| | | </el-table-column> --> |
| | | <el-table-column label="è§æ ¼åå·" prop="specs" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | </el-table-column> |
| | | <el-table-column label="åä½" prop="unit" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="æ¯å¦å·¥åºåºå" prop="operationStockStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.operationStockStatus">æ¯</span> |
| | | <span v-else>å¦</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æå±å·¥åº" prop="name" align="center"> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | /* { |
| | | minWidth: '100', |
| | | prop: 'checkStatus', |
| | | label: 'æ£æµç¶æ', |
| | |
| | | optList: () => { |
| | | return this.checkStatusOptions |
| | | } |
| | | }, |
| | | { |
| | | }, */ |
| | | /* { |
| | | minWidth: '140', |
| | | prop: 'isQualified', |
| | | label: 'æ£æµæ¯å¦åæ ¼', |
| | |
| | | optList: () => { |
| | | return this.booleanOptions |
| | | } |
| | | }, |
| | | }, */ |
| | | { |
| | | minWidth: '140', |
| | | prop: 'remark', |
| | |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'scrapQty', |
| | | label: 'æ¥åºæ°é', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'unit', |
| | | label: 'åä½', |
| | |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | /* { |
| | | minWidth: '100', |
| | | prop: 'checkStatus', |
| | | label: 'æ£æµç¶æ', |
| | |
| | | optList: () => { |
| | | return this.booleanOptions |
| | | } |
| | | }, |
| | | }, */ |
| | | { |
| | | minWidth: '140', |
| | | prop: 'remark', |
| | |
| | | <div class="product-out-header-left"> |
| | | <div style="height:28px;line-height:28px;"> |
| | | <el-divider class="pane-divider" direction="vertical"></el-divider><span |
| | | style="font-size:14px;font-weight:bold">产åº</span> |
| | | style="font-size:14px;font-weight:bold;">äº§åº </span> |
| | | <el-tooltip effect="dark" content="å·æ°å表" placement="top"> |
| | | <el-button class="step-refresh-btn" icon="el-icon-refresh" type="info" circle |
| | | <el-button size="small" class="step-refresh-btn" icon="el-icon-refresh" type="info" circle |
| | | @click="getBatchReport(5)"></el-button> |
| | | </el-tooltip> |
| | | </div> |
| | |
| | | <!-- <el-button class="tracking-out-revoke-btn" type="primary" icon="tracking-btn-out" |
| | | :disabled="currProductMainDisable || currentDutyRecord.isConfirm" v-if="!editShow" >交ç |
| | | </el-button> --> |
| | | <el-button class="submit-out-btn" type="primary" |
| | | <el-button class="submit-out-btn" type="primary" |
| | | :disabled="currProductMainDisable || currentDutyRecord.isConfirm" v-if="!editShow" @click="submitList()" |
| | | :loading="submitLoading">æäº¤ |
| | | </el-button> |
| | |
| | | }}</template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="WDRå·" prop="wdr" align="center" width="100"> |
| | | <!-- <el-table-column label="WDRå·" prop="wdr" align="center" width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-input :id="'idReport_' + +scope.$index" :ref="'reference_' + scope.$index" v-if="scope.row.isEdit" |
| | | v-model="scope.row.wdr" placeholder="WDRå·"></el-input> |
| | |
| | | scope.row.wdr |
| | | }}</template> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="åæ®µæè¿°" prop="segmentDesc" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | |
| | | }}</template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="IFSæ¹æ¬¡å·" prop="ifsBatchNo" align="center" width="120"> |
| | | <!-- <template slot="header" slot-scope="scope"> |
| | | <!-- <el-table-column label="IFSæ¹æ¬¡å·" prop="ifsBatchNo" align="center" width="120"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;">IFSæ¹æ¬¡å·</div> |
| | | <div class="th" @click.stop> |
| | | <template> |
| | |
| | | <template v-if="!scope.row.isIfsBatchNoEdit">{{ |
| | | scope.row.ifsBatchNo |
| | | }}</template> |
| | | </template> --> |
| | | </el-table-column> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column label="夿³¨" prop="remark" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input :id="'idReport_' + +scope.$index" :ref="'reference_' + scope.$index" v-if="scope.row.isEdit" |
| | |
| | | // å·æ°äº§åºè®°å½ |
| | | // this.$emit('refreshProductOutput') |
| | | } else if (refreshType === 5) { |
| | | // æäº¤æ¥ååï¼å·æ° |
| | | // æäº¤æ¥ååï¼å· |
| | | // å·æ°å·¥åå表 |
| | | this.$emit('refreshOperateTasks') |
| | | // å·æ°äº§åºè®°å½ |
| | |
| | | this.options = res.data.data |
| | | if (this.options.length > 1) { |
| | | this.dialogVisible = true |
| | | } else { |
| | | // } else if(this.options.length == 0){ |
| | | // this.$message.error('å·¥ä½ç«æªç»å®åæ ¼åºä½') |
| | | } else { |
| | | this.locationIdValue = this.options[0].id |
| | | this.submitListApi() |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="mod-config"> |
| | | <basic-container> |
| | | <el-row> |
| | | <el-col :span="11"> |
| | | <ttable |
| | | :table="table" |
| | | :isShowHide="true" |
| | | :prelang="prelang" |
| | | :ajaxFun="ajaxFun" |
| | | :options="options" |
| | | @handleSelectionChange="handleSelectionChange" |
| | | ref="processconfiguration" |
| | | > |
| | | <template #toolbar></template> |
| | | </ttable> |
| | | </el-col> |
| | | <el-col :span="13" style="padding-left: 10px"> |
| | | <el-card> |
| | | <div slot="header"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <span>è£
ç®±æç»</span> |
| | | </el-col> |
| | | <el-col :span="8" :offset="4"> |
| | | <!-- <el-button |
| | | style="float: right; padding: 3px 0" |
| | | type="text" |
| | | @click="beginItemLayOut" |
| | | > |
| | | å¸å± |
| | | </el-button> --> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-button |
| | | style="float: right; padding: 3px 0" |
| | | type="text" |
| | | @click="addpreserve" |
| | | >ä¿å |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-button |
| | | v-if="!isCheck" |
| | | style="float: right; padding: 3px 0" |
| | | type="text" |
| | | @click="relateOperationParam()" |
| | | >æ·»å |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <el-table |
| | | :data="testStandardParams" |
| | | id="testStandardParamTable" |
| | | ref="testStandardParam" |
| | | |
| | | highlight-current-row |
| | | height="700" |
| | | style="width: 100%" |
| | | class="l-mes-table" |
| | | border |
| | | stripe |
| | | > |
| | | <el-table-column |
| | | type ="index" |
| | | label="åºå·" |
| | | align="center" |
| | | width="50" |
| | | /> |
| | | <el-table-column |
| | | label="产å" |
| | | prop="product" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="产åç¼å·" |
| | | prop="productNo" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="è§æ ¼åå·" |
| | | prop="specs" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åä½" |
| | | prop="unit" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ°é" |
| | | prop="number" |
| | | align="center" |
| | | width="80" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.number"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | fixed="right" |
| | | label="æä½" |
| | | align="center" |
| | | width="80"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click="deleteadd(scope.row)" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- æ°å¢ --> |
| | | <packfrom |
| | | :currshowlist.sync="addOrUpdateVisible" |
| | | @refreshDataList="getData"> |
| | | </packfrom> |
| | | <packfromadd |
| | | :currshowlist.sync="increase" |
| | | :packageBoxIddata ="packageBoxId" |
| | | @handleSelectionChange = "preserve" |
| | | > |
| | | </packfromadd> |
| | | </basic-container> |
| | | <el-dialog title="æ ç¾å表" top="5vh" :visible.sync="diaPrintTab" width="500px"> |
| | | <div id="qrCard" class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;"> |
| | | <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px;"> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">åºå·ï¼</el-col> |
| | | <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">å
è£
ç¼å·ï¼</el-col> |
| | | <el-col :span="10" style="font-weight: bold;">{{ item.packageNo }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">äºç»´ç ï¼</el-col> |
| | | <el-col :span="10"> |
| | | <vueQr :text="JSON.stringify(item)" :size="120" :margin="1"></vueQr> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="diaPrintTab = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="printFun">æ å°</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { pagedata,dropById,list,saveList,deledata,sAuditstatus} from '@/api/quality/Packaging_ledger' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | import packfrom from './pack-from.vue' |
| | | import packfromadd from './pack-fromadd.vue' |
| | | import vueQr from 'vue-qr' |
| | | import PrintJS from 'print-js' |
| | | export default { |
| | | data(){ |
| | | return { |
| | | qrData:[], |
| | | diaPrintTab: false, |
| | | multipleSelection: [], |
| | | isCheck: false, |
| | | dataway:{}, |
| | | goid:'', |
| | | testStandardParams: [], |
| | | packageBoxId:{}, |
| | | prelang: 'operation', |
| | | dataListLoading: false, |
| | | ajaxFun: pagedata, |
| | | increase:false, |
| | | addOrUpdateVisible:false, |
| | | options: { |
| | | height: 300, // é»è®¤é«åº¦-为äºè¡¨å¤´åºå® |
| | | stripe: true, // æ¯å¦ä¸ºæé©¬çº¹ table |
| | | highlightCurrentRow: false, // æ¯å¦è¦é«äº®å½åè¡ |
| | | border: true, // æ¯å¦æçºµåè¾¹æ¡ |
| | | lazy: false, // æ¯å¦éè¦æå è½½ |
| | | fit: true, // åç宽度æ¯å¦èªæå¼ |
| | | multiSelect: true, // |
| | | isEdit:false, |
| | | seqNo: true, |
| | | isShowHide: true, // æ¯å¦æ¾ç¤ºæ¾å½±æé® |
| | | isRefresh: true, // æ¯å¦æ¾ç¤ºå·æ°æé® |
| | | isSearch: true, // é«çº§æ¥è¯¢æé® |
| | | defaultOrderBy: { column: 'createTime', direction: 'desc' } |
| | | }, |
| | | table: { |
| | | total: 0, |
| | | currentPage: 1, |
| | | pageSize: 20, |
| | | data: [], |
| | | // æ é¢ |
| | | column: [ |
| | | { |
| | | minWidth: 'code', |
| | | prop: 'state', |
| | | label: 'ç¶æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'packageNo', |
| | | label: 'å
è£
ç¼å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | },{ |
| | | minWidth: '140', |
| | | prop: 'createUser', |
| | | label: 'å建人', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | },{ |
| | | minWidth: '140', |
| | | prop: 'contractNo', |
| | | label: 'ååå·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'updateUser', |
| | | label: 'æ´æ°äºº', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '130', |
| | | width: '150', |
| | | prop: 'updateTime', |
| | | label: 'æ´æ°æ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | }, |
| | | { |
| | | minWidth: '130', |
| | | width: '150', |
| | | prop: 'createTime', |
| | | label: 'åå»ºæ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | }, |
| | | ], |
| | | toolbar: [ |
| | | { |
| | | text: 'æ°å¢', |
| | | type: 'primary', |
| | | fun: this.addOrUpdateHandle |
| | | }, |
| | | { |
| | | text: 'æ ç¾æå°', |
| | | type: 'primary', |
| | | fun: this.printLabel |
| | | }, |
| | | ], |
| | | operator: [ |
| | | { |
| | | text: 'æ£éª', |
| | | icon: 'el-icon-position', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.check |
| | | },{ |
| | | text: 'å é¤', |
| | | icon: 'el-icon-delete', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | } |
| | | ], |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: 'æä½', |
| | | width: 120, |
| | | minWidth: 120 |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | components: { |
| | | ttable, |
| | | packfrom, |
| | | packfromadd, |
| | | vueQr |
| | | }, |
| | | watch: { |
| | | diaPrintTab(newVal){ |
| | | if(!newVal){ |
| | | this.qrData = [] |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | //æå°æé® |
| | | printFun() { |
| | | this.diaPrintTab = false; |
| | | PrintJS({ |
| | | printable: "qrCard", |
| | | type: "html", |
| | | // header: "åæææ£æµæ¥å", |
| | | targetStyles: ["*"], |
| | | style: `@page {margin: 0mm 5mm;} |
| | | html {zoom:100%;} |
| | | @media print { |
| | | html,body{ |
| | | width:60mm; |
| | | height:40mm; |
| | | } |
| | | }`, |
| | | ignoreElements: ["no-ignore"], |
| | | orientation: 'portrait' |
| | | }); |
| | | }, |
| | | handleSelectionChange(val){ |
| | | this.multipleSelection = val |
| | | let lastRow = val[val.length - 1] |
| | | this.handleCurrentChange(lastRow) |
| | | }, |
| | | printLabel(){ |
| | | if(this.multipleSelection.length==0){ |
| | | this.$message.warning('è¯·éæ©ä¸æ¡æ°æ®') |
| | | return |
| | | } |
| | | this.diaPrintTab = true |
| | | console.log(this.multipleSelection); |
| | | this.multipleSelection.forEach(item=>{ |
| | | let obj = { |
| | | packageNo: item.packageNo, |
| | | contractNo: item.contractNo, |
| | | boxInfo: [] |
| | | } |
| | | list({packageBoxId:item.id}).then((res) =>{ |
| | | res.data.data.forEach(ele=>{ |
| | | obj.boxInfo.push({ |
| | | product: ele.product, |
| | | productNo: ele.productNo, |
| | | specs: ele.specs, |
| | | unit: ele.unit, |
| | | number: ele.number |
| | | }) |
| | | }) |
| | | }) |
| | | this.qrData.push(obj) |
| | | }) |
| | | }, |
| | | // è·åæ°æ®å表 |
| | | getData() { |
| | | this.$refs.processconfiguration.refreshData() |
| | | }, |
| | | wayRenovate(){ |
| | | this.getData() |
| | | }, |
| | | //add |
| | | addOrUpdateHandle(){ |
| | | this.addOrUpdateVisible = true |
| | | }, |
| | | //å é¤ |
| | | deleteHandle(row){ |
| | | dropById({id:row.id}).then((res) =>{ |
| | | this.getData() |
| | | this.$message.success('å 餿å') |
| | | }) |
| | | }, |
| | | handleCurrentChange(row){ |
| | | if(row.state=='å·²æ¥æ£'){ |
| | | this.isCheck = true |
| | | } |
| | | this.dataway = row |
| | | this.packageBoxId = { |
| | | packageBoxId:row.id |
| | | } |
| | | this.goid = row.id |
| | | this.rightquery() |
| | | }, |
| | | rightquery(){ |
| | | list({packageBoxId:this.goid}).then((res) =>{ |
| | | this.testStandardParams = res.data.data |
| | | }) |
| | | }, |
| | | //详æ
æ·»å |
| | | relateOperationParam(){ |
| | | if (this.dataway.state == "æªæ¥æ£") { |
| | | this.increase = true |
| | | }else{ |
| | | this.$message.error('请å
éæ©å
è£
项ç®') |
| | | } |
| | | }, |
| | | preserve(datalist){ |
| | | this.testStandardParams = datalist |
| | | }, |
| | | //å³è¾¹ä¿å |
| | | addpreserve(){ |
| | | this.testStandardParams.forEach(el => { |
| | | el.packageBoxId =this.goid |
| | | }); |
| | | saveList(this.testStandardParams).then((res) =>{ |
| | | this.$message.success('ä¿åæå') |
| | | this.rightquery() |
| | | }) |
| | | }, |
| | | //å é¤ |
| | | deleteadd(row){ |
| | | deledata({id:row.id}).then((res)=>{ |
| | | this.$message.success('å 餿å') |
| | | this.rightquery() |
| | | }) |
| | | }, |
| | | //å®¡æ ¸ |
| | | check(row){ |
| | | let packageBox = { |
| | | id:row.id, |
| | | packageNo:row.packageNo, |
| | | contractNo:row.contractNo, |
| | | customerId:row.customerId, |
| | | } |
| | | sAuditstatus(packageBox).then((res) =>{ |
| | | this.getData() |
| | | this.$message.success('æ£éªæå') |
| | | }) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | width="60%" |
| | | title="æ°å¢" |
| | | top="5vh" |
| | | :visible.sync="innerVisible" |
| | | :show="currshowlist" |
| | | @close="$emit('update:currshowlist', false)" |
| | | append-to-body |
| | | class="part-dialog" |
| | | > |
| | | <ttable |
| | | :table="table" |
| | | @currentChange="Getdata" |
| | | :prelang="prelang" |
| | | :options="options" |
| | | :ajaxFun="ajaxFun" |
| | | :bottomOffset="350" |
| | | ref="paramTable" |
| | | > |
| | | <template #toolbar></template> |
| | | </ttable> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="innerVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="saveSelectRow">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | <script> |
| | | import { customerpage,pagedataadd } from '@/api/quality/Packaging_ledger' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | export default { |
| | | props:{ |
| | | currshowlist: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | datalistid:{}, |
| | | ajaxFun: customerpage, |
| | | currentRow: false, |
| | | typeOptions: [], |
| | | innerVisible: false, |
| | | listLoading: true, |
| | | multipleSelection: [], |
| | | isShowQuery: false, |
| | | uploadInfo: { |
| | | // æ¯å¦å±ç¤ºä¸ä¼ EXCEL以å对åºçurl |
| | | isShow: false, |
| | | url: '' |
| | | }, |
| | | prelang: 'operation', |
| | | options: { |
| | | height: 300, // é»è®¤é«åº¦-为äºè¡¨å¤´åºå® |
| | | stripe: true, // æ¯å¦ä¸ºæé©¬çº¹ table |
| | | highlightCurrentRow: false, // æ¯å¦è¦é«äº®å½åè¡ |
| | | border: true, // æ¯å¦æçºµåè¾¹æ¡ |
| | | lazy: false, // æ¯å¦éè¦æå è½½ |
| | | fit: true, // åç宽度æ¯å¦èªæå¼ |
| | | multiSelect: false, // |
| | | isEdit:false, |
| | | seqNo: true, |
| | | isShowHide: true, // æ¯å¦æ¾ç¤ºæ¾å½±æé® |
| | | isSearch: true, // é«çº§æ¥è¯¢æé® |
| | | defaultOrderBy: { column: 'createTime', direction: 'desc' } |
| | | }, |
| | | table: { |
| | | total: 0, |
| | | currentPage: 1, |
| | | pageSize: 20, |
| | | data: [], |
| | | // æ é¢ |
| | | column: [ |
| | | { |
| | | minWidth: 'code', |
| | | prop: 'contractNo', |
| | | label: 'ååå·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'customerName', |
| | | label: '客æ·åç§°', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'customerNo', |
| | | label: '客æ·ç¼ç ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'deliveryDate', |
| | | label: 'äº¤è´§æ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'entityName', |
| | | label: 'å·¥ç¨åç§°', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | ], |
| | | }, |
| | | addOrUpdateVisible: false |
| | | } |
| | | }, |
| | | components: { |
| | | ttable |
| | | }, |
| | | watch: { |
| | | currshowlist() { |
| | | console.log(22211); |
| | | this.innerVisible = this.currshowlist |
| | | if (this.currshowlist) { |
| | | this.$nextTick(() => { |
| | | this.getData() |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | // ...mapGetters(['permissions']) |
| | | }, |
| | | created() { |
| | | this.getParamType() |
| | | }, |
| | | methods: { |
| | | // è·åæ°æ®å表 |
| | | // getData() { |
| | | // this.$refs.paramTable.getDataList() |
| | | // }, |
| | | Getdata(val){ |
| | | console.log(val); |
| | | this.datalistid = val |
| | | }, |
| | | saveSelectRow() { |
| | | let packageBox = { |
| | | customerId:this.datalistid.id, |
| | | contractNo:this.datalistid.contractNo |
| | | } |
| | | pagedataadd (packageBox).then((res =>{ |
| | | if (res.status === 200) { |
| | | this.$message.success('æ°å¢æå') |
| | | this.$emit('refreshDataList') |
| | | }else{ |
| | | this.$message.error('å建失败') |
| | | } |
| | | })) |
| | | this.innerVisible = false |
| | | this.$emit('wayapi',this.innerVisible ) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | width="60%" |
| | | title="åæ°" |
| | | top="5vh" |
| | | :visible.sync="innerVisible" |
| | | :show="currshowlist" |
| | | @close="$emit('update:currshowlist', false)" |
| | | append-to-body |
| | | class="part-dialog" |
| | | > |
| | | <ttable |
| | | :table="table" |
| | | @handleSelectionChange="handleSelectionChange" |
| | | :prelang="prelang" |
| | | :options="options" |
| | | :ajaxFun="ajaxFun" |
| | | :paramObj="packageBoxIddata" |
| | | :bottomOffset="350" |
| | | ref="paramTable" |
| | | > |
| | | <template #toolbar></template> |
| | | </ttable> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="innerVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="saveSelectRow">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | <script> |
| | | import { dataadd,saveList } from '@/api/quality/Packaging_ledger' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | export default { |
| | | props:{ |
| | | currshowlist: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | packageBoxIddata:{ |
| | | type: Object |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | datalist:[], |
| | | datalistid:"", |
| | | ajaxFun: dataadd, |
| | | currentRow: false, |
| | | typeOptions: [], |
| | | innerVisible: false, |
| | | listLoading: true, |
| | | multipleSelection: [], |
| | | isShowQuery: false, |
| | | uploadInfo: { |
| | | // æ¯å¦å±ç¤ºä¸ä¼ EXCEL以å对åºçurl |
| | | isShow: false, |
| | | url: '' |
| | | }, |
| | | prelang: 'operation', |
| | | options: { |
| | | height: 300, // é»è®¤é«åº¦-为äºè¡¨å¤´åºå® |
| | | stripe: true, // æ¯å¦ä¸ºæé©¬çº¹ table |
| | | highlightCurrentRow: false, // æ¯å¦è¦é«äº®å½åè¡ |
| | | border: true, // æ¯å¦æçºµåè¾¹æ¡ |
| | | lazy: false, // æ¯å¦éè¦æå è½½ |
| | | fit: true, // åç宽度æ¯å¦èªæå¼ |
| | | multiSelect: true, // |
| | | seqNo: true, |
| | | isShowHide: true, // æ¯å¦æ¾ç¤ºæ¾å½±æé® |
| | | isSearch: true, // é«çº§æ¥è¯¢æé® |
| | | defaultOrderBy: { column: 'createTime', direction: 'desc' } |
| | | }, |
| | | table: { |
| | | total: 0, |
| | | currentPage: 1, |
| | | pageSize: 20, |
| | | data: [], |
| | | // æ é¢ |
| | | column: [ |
| | | { |
| | | minWidth: 'code', |
| | | prop: 'product', |
| | | label: '产å', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'productNo', |
| | | label: '产åç¼å·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'specs', |
| | | label: 'è§æ ¼åå·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'unit', |
| | | label: 'åä½', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange' |
| | | }, |
| | | ], |
| | | }, |
| | | addOrUpdateVisible: false |
| | | } |
| | | }, |
| | | components: { |
| | | ttable |
| | | }, |
| | | watch: { |
| | | currshowlist() { |
| | | console.log(22211); |
| | | this.innerVisible = this.currshowlist |
| | | } |
| | | }, |
| | | computed: { |
| | | // ...mapGetters(['permissions']) |
| | | }, |
| | | created() { |
| | | this.getParamType() |
| | | }, |
| | | methods: { |
| | | // è·åæ°æ®å表 |
| | | getData() { |
| | | this.$refs.paramTable.getDataList() |
| | | }, |
| | | handleSelectionChange(val){ |
| | | let data = val |
| | | data.forEach(el => { |
| | | this.datalistid = el |
| | | }); |
| | | }, |
| | | saveSelectRow() { |
| | | console.log(this.packageBoxIddata,"123"); |
| | | // saveList ({customerId:this.datalistid.id,contractNo:this.datalistid.contractNo}).then((res =>{ |
| | | // console.log(res); |
| | | // if (res.status === 200) { |
| | | // this.$message.success('æ°å¢æå') |
| | | // }else{ |
| | | // this.$message.error('å建失败') |
| | | // } |
| | | // })) |
| | | this.innerVisible = false |
| | | // this.$emit('handleSelectionChange',this.innerVisible ) |
| | | }, |
| | | handleSelectionChange(val){ |
| | | this.datalist = val |
| | | console.log(this.datalist,"æ°æ®"); |
| | | }, |
| | | saveSelectRow(){ |
| | | this.$emit('handleSelectionChange',this.datalist ) |
| | | this.innerVisible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | action="/mes/exception/upload" |
| | | :headers="headers" |
| | | :before-upload="submitUpload" |
| | | :on-preview="handlePreview" |
| | | :on-remove="handleRemove" |
| | | :on-preview="handlePreview" |
| | | :on-success="uploadSuccess" |
| | | :data="paramData" |
| | | :file-list="fileList" |
| | |
| | | > |
| | | <el-button size="small" type="primary">ç¹å»ä¸ä¼ </el-button> |
| | | <div slot="tip" class="el-upload__tip"> |
| | | åªè½ä¸ä¼ jpgå¾çï¼ä¸ä¸è¶
è¿2MB |
| | | åªè½ä¸ä¼ jpg/pngå¾çï¼ä¸ä¸è¶
è¿5MB |
| | | </div> |
| | | </el-upload> |
| | | </el-col> |
| | |
| | | @refreshDataList="getData" |
| | | ></table-form> |
| | | </div> |
| | | <el-dialog title="å¾çé¢è§" width="60%" :visible.sync="previewVisible" top="5vh"> |
| | | <img style="width:100%;height: 70vh" :src="dialogImageUrl" alt=""> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <style lang="scss" scoped> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | previewVisible: false, |
| | | dialogImageUrl: null, |
| | | fileList: [], |
| | | headers: { |
| | | Authorization: 'Bearer ' + getStore({ name: 'access_token' }) |
| | |
| | | } |
| | | }, |
| | | handlePreview(file) { |
| | | window.open(file.url) |
| | | this.previewVisible = true |
| | | }, |
| | | uploadSuccess(response, file, fileList) { |
| | | this.getFileList() |
| | |
| | | fileEl = {} |
| | | fileEl.name = attachment.original |
| | | fileEl.url = attachment.url |
| | | this.dialogImageUrl = attachment.url |
| | | fileEl.id = attachment.id |
| | | fileEl.fileName = attachment.fileName |
| | | this.fileList.push(fileEl) |
| | |
| | | }) |
| | | } |
| | | }, |
| | | submitUpload() { |
| | | submitUpload(file) { |
| | | console.info(this.currentRow && this.currentRow.id) |
| | | console.log(file); |
| | | if (this.currentRow && this.currentRow.id) { |
| | | const maxSize = 5 * 1024 *1024 |
| | | let jpgType = 'image/jpeg' |
| | | let pngType = 'image/png' |
| | | if(file.type != jpgType && file.type != pngType){ |
| | | this.$message.error('åªè½ä¸ä¼ .jpg/.pngç±»åçå¾ç') |
| | | return false |
| | | } |
| | | if(file.szie > maxSize){ |
| | | this.$message.error('å¾ç大å°ä¸è½è¶
è¿5MB') |
| | | } |
| | | this.paramData.exceptionId = this.currentRow.id |
| | | |
| | | } else { |
| | | this.$message.error('请å
éæ©ç产å¼å¸¸è®°å½') |
| | | return false |
| | |
| | | <div class="page-main"> |
| | | <div class="finishedProduct-basic"> |
| | | <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes" |
| | | label-position="right" label-width="120px" style="width: 100%" size="small"> |
| | | label-position="right" label-width="120px" style="width: 100%" size="small"> |
| | | <div class="formwrapper"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="äº§åæ£éªç¼å·ï¼"> |
| | | <el-input @blur="selectInfoByOrderId" disabled |
| | | v-model="processInspectVo.finInsNo" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="订åå·ï¼"> |
| | | <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" |
| | |
| | | placeholder="请è¾å
¥å·¥ç¨åç§°" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产ååç§°ï¼"> |
| | | <el-select style="width: 100%" @change="changeOptionsSamplename" :disabled="processInspectVo.id != null" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产åç¼ç ï¼"> |
| | | <el-input disabled v-model="processInspectVo.mcode" |
| | |
| | | placeholder="请è¾å
¥åä½" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ°éï¼"> |
| | | <el-input v-model="processInspectVo.quantity" placeholder="请è¾å
¥æ°é" |
| | |
| | | empiricalValueAddMaxNumber: 0, |
| | | processInspectVo: { |
| | | id: null, |
| | | finInsNo: null, |
| | | material: null, |
| | | mcode: null, |
| | | prname: null, |
| | |
| | | quantity: null, |
| | | specificationsModel: null, |
| | | unit: null, |
| | | technologyId: null |
| | | technologyId: null, |
| | | documentId: null |
| | | }, |
| | | inspectionItems: [], // æ°å¢æ£éªé¡¹ç®è¡¨æ ¼ |
| | | inspectionResultForm: [], |
| | |
| | | if(id != null){ |
| | | queryById(id).then(res=>{ |
| | | let result = res.data.data |
| | | this.processInspectVo.finInsNo = result.finInsNo |
| | | this.processInspectVo.orderNumber = result.orderNumber |
| | | this.processInspectVo.mcode = result.materialCode |
| | | this.processInspectVo.prname = result.customerName |
| | |
| | | this.processInspectVo.specificationsModel = result.specs |
| | | this.processInspectVo.unit = result.punit |
| | | this.processInspectVo.quantity = result.quantity |
| | | this.processInspectVo.documentId = result.documentId |
| | | let userList = [] |
| | | result.children.forEach(item=>{ |
| | | item.iid = Math.random() |
| | |
| | | this.processInspectVo.material = sample.material |
| | | this.processInspectVo.specificationsModel = sample.specs |
| | | this.processInspectVo.unit = sample.unit |
| | | this.processInspectVo.documentId = sample.documentId |
| | | }, |
| | | changeState(row, index) { |
| | | if (row.iid != null && row.iid != '') { |
| | |
| | | addTestProject() { |
| | | let val = this.processInspectVo |
| | | let data = { |
| | | finInsNo: val.finInsNo, |
| | | customerName: val.prname, |
| | | material: val.material, |
| | | materialCode: val.mcode, |
| | |
| | | quantity: val.quantity, |
| | | specs: val.specificationsModel, |
| | | unit: val.unit, |
| | | documentId: val.documentId |
| | | } |
| | | addFinish(data).then(res=>{ |
| | | let id = res.data.data |
| | |
| | | this.processInspectVo.material = null |
| | | this.processInspectVo.specificationsModel = null |
| | | this.processInspectVo.unit = null |
| | | this.processInspectVo.documentId = null |
| | | } |
| | | }) |
| | | }, |
| | |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .finishedProduct-result { |
| | | basic.finishedProduct-result { |
| | | width: 100%; |
| | | height: 150px; |
| | | padding: 10px 20px; |
| | |
| | | |
| | | .finishedProduct-basic { |
| | | background-color: #fff; |
| | | height: 120px; |
| | | height: 155px; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 10px 20px; |
| | |
| | | <template> |
| | | <div id="20230721_24921" align=center x:publishsource="Excel" style="margin-top: 65pt;margin-left: 15pt;"> |
| | | <table border=0 cellpadding=0 cellspacing=0 width=1194 style='border-collapse:collapse;table-layout:fixed;width:629pt;page-break-after: always;'> |
| | | <tr class=xl6524921 height=20 style='mso-height-source:userset;height:30.0pt'> |
| | | <td colspan=3 rowspan=2 height=40 width=122 style='width:150pt;border: 1pt solid windowtext'> |
| | | <span style='mso-ignore:vglayout;margin-left:12px;margin-top:14px;width:104px;height:42px'> |
| | | <img width=174 height=58 src="../../../../public/img/image001.jpg"> |
| | | </span> |
| | | <div class="WordSection1" align=center style="word-wrap:break-word;text-justify-trim:punctuation"> |
| | | <div align="center" > |
| | | <table style="border-collapse:collapse;table-layout:fixed;page-break-after: always;margin-top: 0px;" width="629"> |
| | | <tr class="xl6524921" height=20 style='mso-height-source:userset;height:30.0pt'> |
| | | <td colspan=3 rowspan=2 style='width:160pt;height: 60pt;border: 1pt solid windowtext'> |
| | | <span style='mso-ignore:vglayout;margin-left:12px;margin-top:14px;width:104px;height:42px'> |
| | | <img width=174 height=58 src="../../../../public/img/image001.jpg"> |
| | | </span> |
| | | </td> |
| | | <td colspan=6 class="xl6624921" style='border-right:.5pt solid black;border-left:none;width:380pt;height: 60pt'>è®°å½åç§°:è¿æ¥å¨åæåæ£éªè®°å½è¡¨</td> |
| | | <td colspan=3 class="xl6624921" style='border-left:none;width: 160pt;height: 60pt'>ä¿åæé:25å¹´</td> |
| | | <td rowspan=2 colspan=3 class="xl6824921" style='width:136pt;height: 60pt' >çæ¬å·: A/0</td> |
| | | </tr> |
| | | <tr class="xl6524921" height=33 style='mso-height-source:userset;height:25.05pt'> |
| | | <td colspan=6 height=33 class=xl6624921 style='border-right:.5pt solid black;height:25.05pt;border-left:none'> |
| | | è®°å½ç¼å·:{{ tableData.finInsNo }} |
| | | </td> |
| | | <td colspan=3 class=xl6624921 style='border-top:none;border-left:none'> |
| | | 彿¡£é¨é¨:è´¨éä¿è¯é¨ |
| | | </td> |
| | | <td colspan=2 class=xl6824921 style='border-top:none'></td> |
| | | </tr> |
| | | <tr class="xl6524921" style='mso-height-source:userset;height:25.05pt'> |
| | | <td colspan=16 class=xl7424921 width=1194 style='height:25.05pt; width:897pt'> |
| | | è¿æ¥å¨åæåæ£éªè®°å½è¡¨ |
| | | </td> |
| | | </tr> |
| | | <tr class="xl6524921" style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=2 class="xl7624921" style='border-right:.5pt solid black; height:40.05pt'> |
| | | 项ç®åç§°: |
| | | </td> |
| | | <td colspan=5 class="xl6624921" style='border-right:.5pt solid black; border-left:none'>ã |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="deviceStr"></span> |
| | | </p> |
| | | </td> |
| | | <td colspan=6 class=xl6624921 width=399 style='border-right:.5pt solid black;border-left:none;width:250pt'>è®°å½åç§°:è¿æ¥å¨åæåæ£éªè®°å½è¡¨</td> |
| | | <td colspan=3 class=xl6624921 width=226 style='border-left:none;width: 150pt'>ä¿åæé:25å¹´</td> |
| | | <td rowspan=2 colspan=3 class=xl6824921 width=235 style='width:126pt' >çæ¬å·: A/0</td> |
| | | </tr> |
| | | <tr class=xl6524921 height=33 style='mso-height-source:userset;height:25.05pt'> |
| | | <td colspan=6 height=33 class=xl6624921 style='border-right:.5pt solid black;height:25.05pt;border-left:none'> |
| | | è®°å½ç¼å·:ZTT/QR-8.6-05ï¼A/0) |
| | | </td> |
| | | <td colspan=3 class=xl6624921 style='border-top:none;border-left:none'> |
| | | 彿¡£é¨é¨:è´¨éä¿è¯é¨ |
| | | </td> |
| | | <td colspan=2 class=xl6824921 style='border-top:none'></td> |
| | | </tr> |
| | | <tr class=xl6524921 height=33 style='mso-height-source:userset;height:25.05pt'> |
| | | <td colspan=16 height=33 class=xl7424921 width=1194 style='height:25.05pt; width:897pt'> |
| | | è¿æ¥å¨åæåæ£éªè®°å½è¡¨ |
| | | </td> |
| | | </tr> |
| | | <tr class=xl6524921 height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=2 height=53 class=xl7624921 style='border-right:.5pt solid black; height:40.05pt'> |
| | | 项ç®åç§°: |
| | | </td> |
| | | <td colspan=5 class=xl6624921 style='border-right:.5pt solid black; border-left:none'>ã |
| | | <td colspan=2 class="xl6924921" style='border-top:none;border-left:none'>æ£éªä¾æ®:</td> |
| | | <td colspan=7 class="xl6624921" style='border-right:.5pt solid black; border-left:none'>{{ tableData.dname }} |
| | | ã </td> |
| | | </tr> |
| | | <tr class="xl6524921" height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=2 height=53 class=xl7624921 style='border-right:.5pt solid black; height:40.05pt'> |
| | | 产ååç§°: |
| | | </td> |
| | | <td colspan=4 class="xl6624921" style='border-right:.5pt solid black; border-left:none'> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="product"></span> |
| | | </p> |
| | | </td> |
| | | <td colspan=2 class="xl6924921" style='border-top:none;border-left:none'>产ååå·:</td> |
| | | <td colspan=3 class="xl6624921" style='border-right:.5pt solid black; border-left:none'> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="deviceStr"></span> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="typedata"></span> |
| | | </p> |
| | | </td> |
| | | <td colspan=2 class=xl6924921 style='border-top:none;border-left:none'>æ£éªä¾æ®:</td> |
| | | <td colspan=7 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | ã </td> |
| | | </tr> |
| | | <tr class=xl6524921 height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=2 height=53 class=xl7624921 style='border-right:.5pt solid black; height:40.05pt'> |
| | | 产ååç§°: |
| | | </td> |
| | | <td colspan=4 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | <td colspan=2 class="xl6924921" style='border-top:none;border-left:none'>äº§åæ°é:</td> |
| | | <td colspan=3 class="xl6624921" style='border-right:.5pt solid black; border-left:none'> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="product"></span> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="number"></span> |
| | | </p> |
| | | </td> |
| | | <td colspan=2 class=xl6924921 style='border-top:none;border-left:none'>产ååå·:</td> |
| | | <td colspan=3 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="typedata"></span> |
| | | </p> |
| | | </td> |
| | | <td colspan=2 class=xl6924921 style='border-top:none;border-left:none'>äº§åæ°é:</td> |
| | | <td colspan=3 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="number"></span> |
| | | </p> |
| | | </td> |
| | | </tr> |
| | | </tr> |
| | | |
| | | <tr class=xl6524921 height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=2 height=53 class=xl7624921 style='border-right:.5pt solid black; height:40.05pt'> |
| | | æ£éªå
容: |
| | | </td> |
| | | <td colspan=14 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | æ£éªç»æ |
| | | </td> |
| | | </tr> |
| | | <tr class="xl6524921" height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=2 height=53 class=xl7624921 style='border-right:.5pt solid black; height:40.05pt'> |
| | | æ£éªå
容: |
| | | </td> |
| | | <td colspan=14 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | æ£éªç»æ |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr class=xl6524921 height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=3 height=53 class=xl7624921 style='border-right:.5pt solid black;height:40.05pt'> |
| | | æ£éªè¦æ± |
| | | </td> |
| | | <td colspan=1 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | æ åå¼ |
| | | </td> |
| | | <td colspan=1 v-for="a in columnLength" class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | {{a>9?item:'0'+a}} |
| | | </td> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | å¤å® |
| | | </td> |
| | | </tr> |
| | | <tr class="xl6524921" height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=3 height=53 class=xl7624921 style='border-right:.5pt solid black;height:40.05pt'> |
| | | æ£éªè¦æ± |
| | | </td> |
| | | <td colspan=1 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | æ åå¼ |
| | | </td> |
| | | <td colspan=1 v-for="a in columnLength" class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | {{a>9?item:'0'+a}} |
| | | </td> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | å¤å® |
| | | </td> |
| | | </tr> |
| | | |
| | | |
| | | |
| | | <tbody v-for="(item,index) in prjdata" :key="index"> |
| | | <tr class=xl6524921 height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td :rowspan="item.children.length" height=53 class=xl7624921 style='border-right:.5pt solid black; height:40.05pt'> |
| | | <p > |
| | | <span style=" writing-mode: vertical-rl;font-size: 26pt;">{{item.father}}</span> |
| | | </p> |
| | | </td> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{item.children[0].iname}}</span> |
| | | </td> |
| | | <td colspan=1 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{item.children[0].required}}</span> |
| | | </td> |
| | | <td colspan=1 v-for="(val,index) in item.children[0].testValueList" class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{val}}</span> |
| | | </td> |
| | | <tbody v-for="(item,index) in prjdata" :key="index"> |
| | | <tr class="xl6524921" height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td :rowspan="item.children.length" height=53 class=xl7624921 style='border-right:.5pt solid black; height:40.05pt'> |
| | | <p > |
| | | <span style=" writing-mode: vertical-rl;font-size: 26pt;">{{item.father}}</span> |
| | | </p> |
| | | </td> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{item.children[0].iname}}</span> |
| | | </td> |
| | | <td colspan=1 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{item.children[0].required}}</span> |
| | | </td> |
| | | <td colspan=1 v-for="(val,index) in item.children[0].testValueList" class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{val}}</span> |
| | | </td> |
| | | |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | <p v-if="item.children[0].iresult ==1" class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif">åæ ¼</span></p> |
| | | <p v-if="item.children[0].iresult ==0" class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif">ä¸åæ ¼</span></p> |
| | | </td> |
| | | </tr> |
| | | <tr class=xl6524921 height=53 v-for="(el,index) in (item.children.slice(1))" :key="index" style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{el.iname}}</span> |
| | | </td> |
| | | <td colspan=1 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{el.required}}</span> |
| | | </td> |
| | | <td colspan=1 v-for="(testValue,index) in el.testValueList" class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{testValue}}</span> |
| | | </td> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif">{{ el.iresult | formatState}}</span></p> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | <p v-if="item.children[0].iresult ==1" class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif">åæ ¼</span></p> |
| | | <p v-if="item.children[0].iresult ==0" class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif">ä¸åæ ¼</span></p> |
| | | </td> |
| | | </tr> |
| | | <tr class="xl6524921" height=53 v-for="(el,index) in (item.children.slice(1))" :key="index" style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{el.iname}}</span> |
| | | </td> |
| | | <td colspan=1 class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{el.required}}</span> |
| | | </td> |
| | | <td colspan=1 v-for="(testValue,index) in el.testValueList" class=xl6624921 style='border-right:.5pt solid black;border-left:none'> |
| | | <span style="font-family:å®ä½">{{testValue}}</span> |
| | | </td> |
| | | <td colspan=2 class=xl6624921 style='border-right:.5pt solid black; border-left:none'> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif">{{ el.iresult | formatState}}</span></p> |
| | | |
| | | |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <tr class=xl6524921 height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=8 height=53 class=xl7624921 style='border-right:.5pt solid black; |
| | | height:40.05pt;text-align: left;'><p> æ£éª/æ¶é´:</p></td> |
| | | <td colspan=8 height=53 class=xl7624921 style='border-right:.5pt solid black; |
| | | height:40.05pt;text-align: left;'><p> 审æ¹:</p></td> |
| | | </tr> |
| | | |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <tr class="xl6524921" height=53 style='mso-height-source:userset;height:40.05pt'> |
| | | <td colspan=8 height=53 class=xl7624921 style='border-right:.5pt solid black;height:40.05pt;text-align: left;'> |
| | | <p> æ£éª/æ¶é´:<span>{{tableData.updateTime}}</span></p></td> |
| | | <td colspan=8 height=53 class=xl7624921 style='border-right:.5pt solid black; height:40.05pt;text-align: left;'> |
| | | <p> 审æ¹:<span>{{username}}</span></p></td> |
| | | </tr> |
| | | |
| | | <tr height=0 style='display:none'> |
| | | <td width=64 style='width:48pt'></td> |
| | | <td width=58 style='width:44pt'></td> |
| | | <td width=137 style='width:103pt'></td> |
| | | <td width=262 style='width:197pt'></td> |
| | | <td width=212 style='width:159pt'></td> |
| | | <td width=226 style='width:170pt'></td> |
| | | <td width=235 style='width:176pt'></td> |
| | | </tr> |
| | | </table> |
| | | <!-- <div v-for="items in prjdata"> |
| | | <div v-for="aa in items.length"> --> |
| | | <tr height=0 style='display:none'> |
| | | <td width=64 style='width:48pt'></td> |
| | | <td width=58 style='width:44pt'></td> |
| | | <td width=137 style='width:103pt'></td> |
| | | <td width=262 style='width:197pt'></td> |
| | | <td width=212 style='width:159pt'></td> |
| | | <td width=226 style='width:170pt'></td> |
| | | <td width=235 style='width:176pt'></td> |
| | | </tr> |
| | | </table> |
| | | |
| | | </div> |
| | | <div v-for="pel in prjdata"> |
| | | <template> |
| | | <div style="page-break-after: always;"> |
| | | <div> |
| | | <div class="head" id="head"> |
| | | <div align="center" style="page-break-after: always;border-collapse:collapse;table-layout:fixed;page-break-after: always;" width="629"> |
| | | <div > |
| | | <div class="head"> |
| | | <div class="head-1"> |
| | | <img width=174 height=58 src="../../../../public/img/image002.png"> |
| | | </div> |
| | |
| | | <div class="bodycs"> |
| | | <p class=x1111111><span>æ£ æµ æ¥ å<br> |
| | | <span class=x1111112 >Test Report</span><br> |
| | | <p style=" border-top: 1px solid black;width: 96%;margin-top: -1px;"></p> |
| | | <p style=" border-top: 1px solid black;width: 900pt;margin-top: -1px;"></p> |
| | | </span></p> |
| | | </div> |
| | | <div class="bodycs-1"> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:ï¼Noï¼:ZTMS01-<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 350px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åæ¥æ<br> Report Date</span></p> |
| | | <p style="margin-left: 180px;"><span style="font-size:12pt;font-family:é»ä½">页次ï¼1/8<br> Page</span></p> |
| | | <div style="margin-left:40pt"> |
| | | <div class="bodycs-1"> |
| | | <p ><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:{{ tableData.finInsNo }}<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 200px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åæ¥æ:{{ tableData.updateTime }}<br> Report Date</span></p> |
| | | <p style="margin-left: 200px;"><span style="font-size:12pt;font-family:é»ä½">页次ï¼1/8<br> Page</span></p> |
| | | </div> |
| | | <div> |
| | | <div class="bodycs-2"> |
| | | <p ><span class=x1111112 style='margin-left: 40px;'>æ£éªé¡¹ç®:<br> Test Item</span></p> |
| | | <p v-for="pel in prjdata"><span class="ziti">{{pel.father}}</span><br><span style="display: block;height: 2px; width: 500px; background: rgb(20, 20, 22);margin-left: 80px;"></span></span></p> |
| | | <p ><span class="ziti">{{pel.father}}</span><br><span style="display: block;height: 2px; width: 500px; background: rgb(20, 20, 22);margin-left: 80px;"></span></span></p> |
| | | </div> |
| | | <div class="bodycs-3"> |
| | | <p ><span class=x1111112 style='margin-left: 36px;'>æ ·ååç§°:<br>Description</span></p> |
| | |
| | | </div> |
| | | <div class="bodycs-3"> |
| | | <p ><span class=x1111112 style='margin-left: 36px;'>æ ·åæ°é:<br>Quantity</span></p> |
| | | <p v-for="pel in prjdata"><span class="ziti">{{quantity}}</span><br><span style="display: block;height: 2px; width: 500px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | <p ><span class="ziti">{{quantity}}</span><br><span style="display: block;height: 2px; width: 500px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | </div> |
| | | <div class="bodycs-3"> |
| | | <p ><span class=x1111112 style='margin-left: 36px;'>æ£éªç±»å«:<br>Type of Test</span></p> |
| | | <p v-for="pel in prjdata"><span class="ziti">äº§åæ£éª</span><br><span style="display: block;height: 2px; width: 500px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | <p ><span class="ziti">äº§åæ£éª</span><br><span style="display: block;height: 2px; width: 500px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | </div> |
| | | <div> |
| | | <br> |
| | | <br> |
| | | <span |
| | | style='mso-spacerun:yes'> </span> |
| | | </div> |
| | | <div> |
| | | <div class="chilen"> |
| | | <p ><span class="x1111113">æ¹ å:<br> Approved by</span></p> |
| | | <p v-for="pel in prjdata"><span class="time"></span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | <p ><span class="time"></span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | </div> |
| | | <div class="chilen"> |
| | | <p ><span class="x1111113">æ ¸éªå:<br> Inspected by</span></p> |
| | | <p v-for="pel in prjdata"><span class="time"></span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | <p ><span class="time"></span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | </div> |
| | | <div style="display: flex;margin-left: 280px;"> |
| | | <p ><span class="x1111113">æ£éªåï¼<br> Tested by</span></p> |
| | | <p ><span class="time">{{username}}</span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | </div> |
| | | <div> |
| | | <br> |
| | | <br> |
| | | <span |
| | | style='mso-spacerun:yes'> </span> |
| | | </div> |
| | | <div class="cldata"> |
| | | <p ><span class="x1111113">éæ ·æ¥æ:<br>Delivery Date</span></p> |
| | | <p v-for="pel in prjdata"><span class="time">{{tableData.updateTime}}</span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | <p ><span class="time">{{tableData.updateTime}}</span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | </div> |
| | | <div class="cldata"> |
| | | <p ><span class="x1111113">æµè¯æ¥æ:<br>Testing Date</span></p> |
| | | <p v-for="pel in prjdata"><span class="time">{{tableData.createTime}}</span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | <p ><span class="time">{{tableData.createTime}}</span><br><span style="display: block;height: 2px; width: 300px; background: rgb(20, 20, 22);margin-left: 75px;"></span></span></p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="pagefooting"> |
| | | <p><span style="font-size:8pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | <p><span style="font-size:14pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | å°å:æ±èçåéå¸ç»æµææ¯å¼ååºæ°å¼åè·¯1å·(226010) çµè¯:051389191125 ä¼ ç:051389191123 |
| | | <br>Add: No 1 Xinkainan Road, NETDZ Nantong, Jiangsu, China (226010); TEL: 051389191125 ; Fax:051389191123 |
| | | </span></p> |
| | |
| | | <span class=x1111112 >Test Report</span><br> |
| | | </span></p> |
| | | <div class="bodycs-1"> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:ï¼Noï¼:ZTMS01-<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:{{ tableData.finInsNo }}<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 620px;"><span style="font-size:12pt;font-family:é»ä½">页次ï¼2/8<br> Page</span></p> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <br> |
| | | <br> |
| | | <br> |
| | | <br><br><br> |
| | | <span |
| | | style='mso-spacerun:yes'> </span> |
| | | </div> |
| | | <div class="pagefooting"> |
| | | <p><span style="font-size:8pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | <p><span style="font-size:14pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | å°å:æ±èçåéå¸ç»æµææ¯å¼ååºæ°å¼åè·¯1å·(226010) çµè¯:051389191125 ä¼ ç:051389191123 |
| | | <br>Add: No 1 Xinkainan Road, NETDZ Nantong, Jiangsu, China (226010); TEL: 051389191125 ; Fax:051389191123 |
| | | </span></p> |
| | |
| | | <div class="bodycs"> |
| | | <p class=x1111111><span>æ£ æµ æ¥ å<br> |
| | | <span class=x1111112 >Test Report</span><br> |
| | | <p style=" border-top: 1px solid black;width: 900pt;margin-top: -1px;"></p> |
| | | </span></p> |
| | | <div class="bodycs-1"> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:ï¼Noï¼:ZTMS01-<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:{{ tableData.finInsNo }}<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 620px;"><span style="font-size:12pt;font-family:é»ä½">页次ï¼3/8<br> Page</span></p> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <p style=" border-top: 1px solid black;width: 96%;margin-top: -1px;"></p> |
| | | <p class="x1111113" ><span style="display: flex;margin-top: 40px;margin-left: 40px;">æ¥åæ£æï¼</span></p> |
| | | |
| | | |
| | | <div> |
| | | <p class=x1111112 style="display: flex;margin-left: 40px;">1.æµè¯è®¾å¤</p> |
| | | <div class="bodycs" style="margin-top: 80px;" v-if='ela.iname !== "" ' v-for="ela in pel.children"> |
| | | <div class="bodycs-1" style="margin-top: 10px;"> |
| | | <p style="margin-left: 40px;font-size:12pt;font-family:é»ä½">æ£éªé¡¹ç®ï¼<span style="width: 60px;"> {{ela.iname}}<br><span>设å¤åç§°ï¼{{ ela.ename }}</span><br>Name of Equipment</span></p> |
| | | <p style="padding-left: 100px;"><span style="font-size:12pt;font-family:é»ä½"> <br>设å¤åå·:{{ ela.specifications }}<br> Model</span></p> |
| | | <p style="padding-left: 100px;"><span style="font-size:12pt;font-family:é»ä½"> <br>设å¤ç¼å·:{{ ela.code}}<br>Serial No.</span></p> |
| | | <p style="margin-left: 110px;"><span style="font-size:12pt;font-family:é»ä½"> <br>æ ¡åæææ:{{ ela.date }}<br>Calibration Due Date</span></p> |
| | | </div> |
| | | </div> |
| | | <!-- <div> |
| | | <p style=" border-top: 1px solid black;width: 96%;margin-top: 20px;"></p> |
| | | </div> --> |
| | | </div> |
| | | <div class="bodycs" style="margin-top: 30px;"> |
| | | <p class=x1111112><span>{{iname}}<br> |
| | | |
| | | |
| | | |
| | | <div style="display: flex;margin-top: 60px;"> |
| | | <p ><span><span class=x1111112 style="margin-left: 40px;">2.åèæ åReference standards</span> |
| | | <!-- |
| | | <br>æ¬æ¬¡æ£æµæä¾æ®çææ¯æä»¶ï¼ä»£å·ãåç§°ï¼ï¼<br>Reference documents for this testing --> |
| | | </span></p> |
| | | <div class="bodycs-1" style="margin-top: 10px;"> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">1.æµè¯è®¾å¤<br> 设å¤åç§°<br>Name of Equipment</span></p> |
| | | <p style="margin-left: 150px;"><span style="font-size:12pt;font-family:é»ä½"> <br>设å¤åå·<br> Model</span></p> |
| | | <p style="margin-left: 150px;"><span style="font-size:12pt;font-family:é»ä½"> <br>设å¤ç¼å·<br>Serial No.</span></p> |
| | | <p style="margin-left: 150px;"><span style="font-size:12pt;font-family:é»ä½"> <br>æ ¡åæææ<br>Calibration Due Date</span></p> |
| | | </div> |
| | | <div> |
| | | <p style=" border-top: 1px solid black;width: 96%;margin-top: 20px;"></p> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 50px;display: flex;"> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">2.åèæ åReference standards <br>æ¬æ¬¡æ£æµæä¾æ®çææ¯æä»¶ï¼ä»£å·ãåç§°ï¼ï¼<br>Reference documents for this testing </span></p> |
| | | </div> |
| | | <br> |
| | | <br> |
| | | |
| | | <p style="font-size:18pt;font-family:å®ä½">æ¬æ¬¡æ£éªåèçææ¯æä»¶æ¯:<span>{{tableData.dname}}ï¼ç¼å·:{{tableData.dnumber }}</span></p> |
| | | <div> |
| | | <p style=" border-top: 1px solid black;width: 96%;margin-top: 1px;"></p> |
| | | </div> |
| | | <div style="margin-top: 50px;display: flex;"> |
| | | <p class=x1111112 style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">3.ç¯å¢æ¡ä»¶Environmental conditionsï¼</span></p> |
| | | |
| | | <div style="margin-top: 80px;display: flex;"> |
| | | <p class=x1111112 style="margin-left: 40px;"><span >3.ç¯å¢æ¡ä»¶Environmental conditionsï¼</span></p> |
| | | </div> |
| | | <div style="display: flex;"> |
| | | <p style="margin-left: 50px;"><span >温度(Temperature)ï¼â </span></p> |
| | | <p style="margin-left: 450px;"><span >ç¸å¯¹æ¹¿åº¦(R.H.)ï¼%</span></p> |
| | | </div> |
| | | <div style="margin-top: 50px;display: flex;"> |
| | | <p class=x1111112 style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">4.æµè¯ç®çTest purposeï¼</span></p> |
| | | <p class=x1111112 style="margin-left: 40px;"><span>4.æµè¯ç®çTest purposeï¼</span></p> |
| | | </div> |
| | | <div style="margin-top: 50px;display: flex;"> |
| | | <p class=x1111112 style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">5.æµè¯æ¹æ³Test methodï¼</span></p> |
| | | <div v-for="ela in pel.children" v-if='ela.iname !== "" ' style="display: flex;margin-left: 40px;"> |
| | | <p>æ£éªé¡¹ç®ï¼{{ ela.iname }},æµè¯ç®çæ¯ï¼{{ ela.method }}</p> |
| | | </div> |
| | | <div style="margin-top: 80px;display: flex;"> |
| | | <p class=x1111112 style="margin-left: 40px;"><span>5.æµè¯æ¹æ³Test methodï¼</span></p> |
| | | </div> |
| | | <div v-for="ela in pel.children" v-if='ela.iname !== "" ' style="display: flex;margin-left: 40px;"> |
| | | <p>æ£éªé¡¹ç®ï¼{{ ela.iname }},æµè¯ç®çæ¯ï¼{{ ela.purpose }}</p> |
| | | </div> |
| | | <div> |
| | | <br> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="pagefooting"> |
| | | <p><span style="font-size:8pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | <p><span style="font-size:14pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | å°å:æ±èçåéå¸ç»æµææ¯å¼ååºæ°å¼åè·¯1å·(226010) çµè¯:051389191125 ä¼ ç:051389191123 |
| | | <br>Add: No 1 Xinkainan Road, NETDZ Nantong, Jiangsu, China (226010); TEL: 051389191125 ; Fax:051389191123 |
| | | </span></p> |
| | |
| | | <span class=x1111112 >Test Report</span><br> |
| | | </span></p> |
| | | <div class="bodycs-1"> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:ï¼Noï¼:ZTMS01-<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:{{ tableData.finInsNo }}<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 620px;"><span style="font-size:12pt;font-family:é»ä½">页次ï¼4/8<br> Page</span></p> |
| | | </div> |
| | | </div> |
| | |
| | | <p class="x1111113" ><span style="font-size 40pt;display: flex;margin-top: 40px;margin-left: 40px;;font-family:é»ä½">6.æµè¯ç»æTest resultï¼</span></p> |
| | | </div> |
| | | <div> |
| | | <table border="2px" style="width: 800px;height: 100px;margin-top: 10px;"> |
| | | <table border="2px" style="width: 800px;height: 100px;margin-top: 10px;" > |
| | | <tr style="height: 80px;"> |
| | | <td class="x1111113"><span style="font-size 40pt;margin-left: 80px;font-family:é»ä½">æµè¯é¡¹ç®</span></td> |
| | | <td class="x1111113"><span style="font-size 40pt;margin-left: 80px;font-family:é»ä½">æ ·åæ°é</span></td> |
| | | <td class="x1111113"><span style="font-size 40pt;margin-left: 80px;font-family:é»ä½">æµè¯ç»æ</span></td> |
| | | </tr> |
| | | <tr style="height: 100px;"> |
| | | <td></td> |
| | | <td></td> |
| | | <tr style="height: 100px;" v-if='ela.iname !== "" ' v-for="ela in pel.children"> |
| | | <td class="x1111113" style="text-align: center;">{{ ela.iname }}</td> |
| | | <td class="x1111113" style="text-align: center;">{{ tableData.quantity }}</td> |
| | | <td></td> |
| | | </tr> |
| | | <tr style="height: 80px;"> |
| | | <!-- <tr style="height: 80px;"> |
| | | <td colspan=3></td> |
| | | </tr> |
| | | </tr> --> |
| | | </table> |
| | | </div> |
| | | <div> |
| | |
| | | <span |
| | | style='mso-spacerun:yes'> </span> |
| | | </div> |
| | | <div> |
| | | <br> |
| | | <br> |
| | | <br> |
| | | <span |
| | | style='mso-spacerun:yes'> </span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="pagefooting"> |
| | | <p><span style="font-size:8pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | <p><span style="font-size:14pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | å°å:æ±èçåéå¸ç»æµææ¯å¼ååºæ°å¼åè·¯1å·(226010) çµè¯:051389191125 ä¼ ç:051389191123 |
| | | <br>Add: No 1 Xinkainan Road, NETDZ Nantong, Jiangsu, China (226010); TEL: 051389191125 ; Fax:051389191123 |
| | | </span></p> |
| | |
| | | <span class=x1111112 >Test Report</span><br> |
| | | </span></p> |
| | | <div class="bodycs-1"> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:ï¼Noï¼:ZTMS01-<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 40px;"><span style="font-size:12pt;font-family:é»ä½">æ¥åç¼å·:{{ tableData.finInsNo }}<br>Report No.ï¼</span></p> |
| | | <p style="margin-left: 620px;"><span style="font-size:12pt;font-family:é»ä½">页次ï¼5/8<br> Page</span></p> |
| | | </div> |
| | | </div> |
| | |
| | | <br> |
| | | <br> |
| | | <span> </span> |
| | | </div> |
| | | <div> |
| | | <br> |
| | | <br> |
| | | <br> |
| | | <span |
| | | style='mso-spacerun:yes'> </span> |
| | | </div> |
| | | <div> |
| | | <p class="x1111113" ><span style="font-size 40pt;display: flex;margin-top: 40px;margin-left: 40px;;font-family:é»ä½">9.æµè¯åæ£æ¥Posttest checkï¼</span></p> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <br> |
| | | <br> |
| | | <br> |
| | | <span |
| | | style='mso-spacerun:yes'> </span> |
| | | </div> |
| | | <div class="pagefooting"> |
| | | <p><span style="font-size:8pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | <p><span style="font-size:14pt;font-family:å®ä½;color: cornflowerblue;"> |
| | | å°å:æ±èçåéå¸ç»æµææ¯å¼ååºæ°å¼åè·¯1å·(226010) çµè¯:051389191125 ä¼ ç:051389191123 |
| | | <br>Add: No 1 Xinkainan Road, NETDZ Nantong, Jiangsu, China (226010); TEL: 051389191125 ; Fax:051389191123 |
| | | </span></p> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <!-- </div> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | itype: '', |
| | | testValueList: new Array(this.columnLength) |
| | | } |
| | | let rowNum = 15 |
| | | let rowNum = 20 |
| | | let columnNum = this.columnLength |
| | | if(list && list.length<2){ |
| | | list.forEach(item=>{ |
| | | if(item.children && item.children.length < rowNum){ |
| | | rowNum = 15 - item.children.length |
| | | rowNum = 20 - item.children.length |
| | | for(let j=0;j<item.children.length;j++){ |
| | | let arr = [] |
| | | if(item.children[j].inspectionValue){ |
| | |
| | | } |
| | | } |
| | | }else{ |
| | | obj.testValueList = new Array(12) |
| | | obj.testValueList = new Array(20) |
| | | } |
| | | }) |
| | | } |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | table{ |
| | | mso-displayed-decimal-separator: "\."; |
| | | mso-displayed-thousand-separator: "\,"; |
| | | } |
| | | |
| | | |
| | | <style lang="scss" > |
| | | .xl6524921 { |
| | | padding: 0px; |
| | | mso-ignore: padding; |
| | |
| | | |
| | | .head{ |
| | | display: flex; |
| | | width: 900pt; |
| | | .head-1{ |
| | | padding: 40px; |
| | | } |
| | |
| | | } |
| | | } |
| | | .bodycss{ |
| | | // margin-left: 85px; |
| | | margin-left: 85px; |
| | | } |
| | | .bodycs{ |
| | | // margin-left: 135px; |
| | |
| | | mso-pattern: auto; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | </style> |
| | |
| | | import { transform } from '@/util/fileTransform' |
| | | import printTemplate from './finishedProducter-print.vue' |
| | | import PrintJS from 'print-js' |
| | | import { title } from 'process' |
| | | export default { |
| | | components: { |
| | | finishedProductInspectionAdd, |
| | |
| | | data: [], |
| | | // æ é¢ |
| | | column: [ |
| | | { |
| | | minWidth: '120', |
| | | prop: 'finInsNo', |
| | | label: 'äº§åæ£éªç¼å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | render: { fun: this.addOrUpdateHandle } |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'orderNumber', |
| | | label: '订åå·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | render: { fun: this.addOrUpdateHandle } |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | closedown(){ |
| | | // this.printFormData = [] |
| | | this.printDialogVisible = false; |
| | | }, |
| | | //æå°æé® |
| | | printFun() { |
| | | const printSettings = { |
| | | paper: { |
| | | width: 827, // A4纸ç宽度ï¼åä½ï¼åç´ ï¼ |
| | | height: 595, // A4纸çé«åº¦ï¼åä½ï¼åç´ ï¼ |
| | | orientation: 'portrait', // ç«åæå° |
| | | }} |
| | | |
| | | const style = '@page {margin: 10mm 5mm; margin-bottom: 0;margin-top:0;} ' +'@media print {.title{font-size:30pt;font-weight: 400;font-family: é»ä½;!important;}' ; |
| | | PrintJS({ |
| | | printable: "printRaw", |
| | | type: "html", |
| | | header:"", |
| | | maxWidth: 1000, |
| | | printSettings, |
| | | style: '@page {margin: 2.0mm 2.0mm;size:A4;}', |
| | | scanStyles: false, |
| | | maxWidth: 1200, |
| | | header: "äº§åæ£æµæ¥å", |
| | | style:style, |
| | | css:'./title.css', |
| | | targetStyles: ["*"], |
| | | fontSize: '30px', |
| | | ignoreElements: ["no-ignore"], |
| | | orientation: 'portrait' |
| | | }); |
| | |
| | | <template> |
| | | <div>å
è£
æ£éª</div> |
| | | <div class="mod-config"> |
| | | <basic-container> |
| | | <ttable |
| | | :table="table" |
| | | :isShowHide="true" |
| | | :prelang="prelang" |
| | | :options="options" |
| | | ref="processconfiguration" |
| | | > |
| | | <template #toolbar></template> |
| | | </ttable> |
| | | </basic-container> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | export default { |
| | | |
| | | data(){ |
| | | return { |
| | | prelang: 'operation', |
| | | dataListLoading: false, |
| | | options: { |
| | | height: 300, // é»è®¤é«åº¦-为äºè¡¨å¤´åºå® |
| | | stripe: true, // æ¯å¦ä¸ºæé©¬çº¹ table |
| | | highlightCurrentRow: false, // æ¯å¦è¦é«äº®å½åè¡ |
| | | border: true, // æ¯å¦æçºµåè¾¹æ¡ |
| | | lazy: false, // æ¯å¦éè¦æå è½½ |
| | | fit: true, // åç宽度æ¯å¦èªæå¼ |
| | | multiSelect: true, // |
| | | seqNo: true, |
| | | isShowHide: true, // æ¯å¦æ¾ç¤ºæ¾å½±æé® |
| | | isRefresh: true, // æ¯å¦æ¾ç¤ºå·æ°æé® |
| | | isSearch: true, // é«çº§æ¥è¯¢æé® |
| | | defaultOrderBy: { column: 'createTime', direction: 'desc' } |
| | | }, |
| | | table: { |
| | | total: 0, |
| | | currentPage: 1, |
| | | pageSize: 20, |
| | | data: [], |
| | | // æ é¢ |
| | | column: [ |
| | | { |
| | | minWidth: '140', |
| | | prop: 'material', |
| | | label: '订åç¼ç ', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'type', |
| | | label: '产ååç§°', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | },{ |
| | | minWidth: '140', |
| | | prop: 'oo', |
| | | label: '产ååå·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | },{ |
| | | minWidth: '140', |
| | | prop: 'materhhooial', |
| | | label: 'è´¨é追溯å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'mateuurial', |
| | | label: '客æ·åç§°', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'materoiial', |
| | | label: 'å·¥èºæä»¶ç¼å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'matperoial', |
| | | label: 'åºä½å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'materpial', |
| | | label: '产ååç§°', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '130', |
| | | width: '150', |
| | | prop: 'dealTime', |
| | | label: 'å®¡æ ¸æ¶é´', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | // formatter: this.formatDateTime, |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'maial', |
| | | label: 'æ°é', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | ], |
| | | operator: [{ |
| | | text: 'æå°', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.showPrint, |
| | | show: { |
| | | val: [ |
| | | '1', |
| | | '0' |
| | | ], |
| | | key: 'result' |
| | | } |
| | | },{ |
| | | text: 'ä½åº', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | }], |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: 'æä½', |
| | | width: 100, |
| | | minWidth: 100 |
| | | }, |
| | | toolbar: [ |
| | | { |
| | | text: 'è·åIFSæååº', |
| | | type: 'primary', |
| | | // fun: this.addOrUpdateHandle |
| | | }, |
| | | ], |
| | | // operator: [], |
| | | // operatorConfig: {} |
| | | }, |
| | | } |
| | | }, |
| | | medthods: {}, |
| | | // computed: { |
| | | // ...mapGetters(['permissions']) |
| | | // }, |
| | | components: { |
| | | ttable |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | - Copyright (c) 2018-2025, ztt All rights reserved. |
| | | - |
| | | - Redistribution and use in source and binary forms, with or without |
| | | - modification, are permitted provided that the following conditions are met: |
| | | - |
| | | - Redistributions of source code must retain the above copyright notice, |
| | | - this list of conditions and the following disclaimer. |
| | | - Redistributions in binary form must reproduce the above copyright |
| | | - notice, this list of conditions and the following disclaimer in the |
| | | - documentation and/or other materials provided with the distribution. |
| | | - Neither the name of the pig4cloud.com developer nor the names of its |
| | | - contributors may be used to endorse or promote products derived from |
| | | - this software without specific prior written permission. |
| | | - Author: ztt |
| | | --> |
| | | <template> |
| | | <div class="mod-config"> |
| | | <basic-container> |
| | | <ttable |
| | | :table="table" |
| | | :resultData="resultData" |
| | | @handleSelectionChange="handleSelectionChange" |
| | | :prelang="prelang" |
| | | :options="options" |
| | | :ajaxFun="ajaxFun" |
| | | ref="packageInspectTable"> |
| | | <template #toolbar> |
| | | </template> |
| | | </ttable> |
| | | </basic-container> |
| | | <!-- å¼¹çª, æ°å¢ / ä¿®æ¹ --> |
| | | <!-- <RawMaterialForm |
| | | v-if="addOrUpdateVisible" |
| | | ref="addOrUpdate" |
| | | @refreshDataList="getData" |
| | | ></RawMaterialForm> --> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | import { fetchList,deleteById } from '@/api/quality/packageInspect' |
| | | // import RawMaterialForm from './rawMaterial-form' |
| | | import * as fecha from 'element-ui/lib/utils/date' |
| | | import { mapGetters } from 'vuex' |
| | | export default { |
| | | data() { |
| | | return { |
| | | resultData:[], |
| | | addOrUpdateVisible: false, |
| | | type: [1], |
| | | multipleSelection: [], |
| | | prelang: 'packageInspect', |
| | | ajaxFun: fetchList, |
| | | options: { |
| | | height: 300, // é»è®¤é«åº¦-为äºè¡¨å¤´åºå® |
| | | stripe: true, // æ¯å¦ä¸ºæé©¬çº¹ table |
| | | highlightCurrentRow: false, // æ¯å¦è¦é«äº®å½åè¡ |
| | | border: true, // æ¯å¦æçºµåè¾¹æ¡ |
| | | lazy: false, // æ¯å¦éè¦æå è½½ |
| | | fit: true, // åç宽度æ¯å¦èªæå¼ |
| | | multiSelect: true, // |
| | | seqNo: true, |
| | | isRefresh: true, // æ¯å¦æ¾ç¤ºå·æ°æé® |
| | | isShowHide: true, // æ¯å¦æ¾ç¤ºæ¾å½±æé®H |
| | | isSearch: true, // é«çº§æ¥è¯¢æé® |
| | | defaultOrderBy: { column: 'createTime', direction: 'desc' }, |
| | | }, |
| | | table: { |
| | | total: 0, |
| | | currentPage: 1, |
| | | pageSize: 20, |
| | | data: [], |
| | | // æ é¢ |
| | | column: [ |
| | | { |
| | | minWidth: '180', |
| | | prop: 'packInsNo', |
| | | label: 'å
è£
æ£éªç¼å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | render: { fun: this.addOrUpdateHandle } |
| | | }, |
| | | { |
| | | minWidth: '180', |
| | | prop: 'packageNo', |
| | | label: 'å
è£
ç¼ç ', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '180', |
| | | prop: 'contractNo', |
| | | label: 'ååå·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '180', |
| | | prop: 'projectName', |
| | | label: '项ç®åç§°', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '180', |
| | | prop: 'customerName', |
| | | label: '客æ·åç§°', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '180', |
| | | prop: 'createTime', |
| | | label: 'æ¥æ£æ¥æ', |
| | | isTrue: true, |
| | | sort: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | formatter: this.formatDateTime, |
| | | }, |
| | | { |
| | | minWidth: '180', |
| | | prop: 'createUser', |
| | | label: 'æ¥æ£äºº', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '200', |
| | | prop: 'result', |
| | | label: 'ç»è®º', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | ], |
| | | toolbar: [ |
| | | // { |
| | | // text: 'æ°å¢', |
| | | // type: 'primary', |
| | | // fun: this.addOrUpdateHandle |
| | | // }, |
| | | ], |
| | | operator: [ |
| | | { |
| | | text: 'ä½åº', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | }], |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: 'æä½', |
| | | width: 100, |
| | | minWidth: 100 |
| | | }, |
| | | }, |
| | | } |
| | | }, |
| | | components: { |
| | | ttable, |
| | | }, |
| | | created() { }, |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | }, |
| | | watch:{ |
| | | |
| | | }, |
| | | methods:{ |
| | | // å é¤ |
| | | deleteHandle(row) { |
| | | const _than = this |
| | | this.$confirm('æ¯å¦ç¡®è®¤å é¤å
è£
ç¼å·ã' + row.packInsNo+'ãçæ°æ®ï¼' , 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | closeOnClickModal: false, |
| | | type: 'warning' |
| | | }).then(function() { |
| | | deleteById(row.id).then((response)=>{ |
| | | var data = response.data |
| | | if (data.code == 0) { |
| | | _than.$message.success('å 餿å') |
| | | } else { |
| | | _than.$message.error('å é¤å¤±è´¥') |
| | | } |
| | | _than.getData() |
| | | }) |
| | | }).catch((error) => { |
| | | console.log(error); |
| | | }) |
| | | }, |
| | | // æ°å¢ / ä¿®æ¹ |
| | | addOrUpdateHandle(row) { |
| | | this.$router.push({ |
| | | name: 'packageInspectForm', |
| | | query: { |
| | | id: row == null ? null : row.id |
| | | }, |
| | | params:{resultVal : row.result=='' ? null : row.result} |
| | | }) |
| | | }, |
| | | formatResult(row, column, cellValue){ |
| | | if(cellValue != undefined || cellValue != null){ |
| | | if(cellValue == 'ä¸åæ ¼'){ |
| | | return "<span style='color:#E84738;'>ä¸åæ ¼</span>" |
| | | } |
| | | return "<span style='color:#34BD66;'>åæ ¼</span>" |
| | | } |
| | | }, |
| | | formatDateTime(row, column, cellValue) { |
| | | return cellValue ? fecha.format(new Date(cellValue), 'yyyy-MM-dd') : '' |
| | | }, |
| | | getData() { |
| | | this.$refs.packageInspectTable.getDataList() |
| | | }, |
| | | // tableèªå¸¦äºä»¶ |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <div class="page-header"> |
| | | <div class="header-left"> |
| | | <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a> |
| | | <h2 v-if="resultVal=='' || resultVal==null">ç¼è¾-å
è£
æ£éª</h2> |
| | | <h2 v-else>æ¥ç-å
è£
æ£éª</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | </div> |
| | | </div> |
| | | <div class="page-main"> |
| | | <div class="packageInspect-basic"> |
| | | <el-form |
| | | :model="dataForm" |
| | | :rules="dataRule" |
| | | ref="dataForm" |
| | | style="width: 100%" |
| | | class="l-mes" |
| | | label-width="110px"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å
è£
æ£éªç¼å·" prop="packInsNo"> |
| | | <el-input v-model="dataForm.packInsNo" disabled> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å
è£
ç¼å·" prop="packageNo"> |
| | | <el-input v-model="dataForm.packageNo" disabled></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item prop="projectName" label="项ç®åç§°" > |
| | | <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName"> |
| | | <el-input v-model="dataForm.projectName" disabled ></el-input> |
| | | </el-tooltip> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客æ·åç§°" prop="customerName"> |
| | | <el-input v-model="dataForm.customerName" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ååå·" prop="contractNo"> |
| | | <el-input v-model="dataForm.contractNo" disabled></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¥æ£æ¥æ" prop="createTime"> |
| | | <el-input v-model="dataForm.createTime" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¥æ£äºº" prop="createUser"> |
| | | <el-input v-model="dataForm.createUser" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <div class="packageInspect-detail"> |
| | | <el-row :gutter="10" style="width:100%;z-index: 10;height:50px;"> |
| | | <el-col :span="20">æ£éªé¡¹ç®</el-col> |
| | | <el-col :span="2"> |
| | | <el-button v-if="resultVal=='' || resultVal==null" style="width:100%" size="small" @click="clickAddLine()">æ·»å æ£éªé¡¹ç®</el-button> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-button v-if="resultVal=='' || resultVal==null" style="width:100%" type="primary" size="small" |
| | | @click="savePackIns()">ä¿å</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width:100%;"> |
| | | <el-col :span="24"> |
| | | <el-table |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :cell-style="{textAlign:'center'}" |
| | | ref="table" |
| | | :data="list" |
| | | border |
| | | style="width: 100%;" |
| | | height="400" |
| | | row-key="randomId" class="l-mes" |
| | | default-expand-all |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| | | <el-table-column type="index" label="åºå·" width="60"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="项ç®" width="260"> |
| | | <template slot-scope="scope"> |
| | | <el-input :readonly="resultVal!=null" v-if="scope.row.children" class="inline-input" style="width:90%;" v-model="scope.row.name" |
| | | placeholder="请è¾å
¥é¡¹ç®åç§°"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="required" label="è¦æ±" width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :readonly="resultVal!=null" v-model="scope.row.required" |
| | | placeholder="请è¾å
¥è¦æ±"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="note" label="æ£éªæè¿°" width="260" > |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :readonly="resultVal!=null" v-model="scope.row.note" placeholder="æ£éªæè¿°"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="testState" label="ç»è®º" min-width="150"> |
| | | <template slot-scope="scope"> |
| | | <el-select style="width:100%" :disabled="resultVal!=null" @change="changeResult" v-model="scope.row.result" v-if="!scope.row.children"> |
| | | <el-option label="åæ ¼" value="åæ ¼"></el-option> |
| | | <el-option label="ä¸åæ ¼" value="ä¸åæ ¼"></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="resultVal=='' || resultVal==null" fixed="right" style="background-color: white;" label="æä½" width="200"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-if="scope.row.children" icon="el-icon-circle-plus-outline" type="text" @click="clickAddChildren(scope.row,scope.$index)">æ·»å è¡</el-button> |
| | | <el-button v-if="!scope.row.children" icon="el-icon-circle-close" type="text" |
| | | @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">åæ¶</el-button> |
| | | <el-button v-if="scope.row.children" icon="el-icon-circle-close" type="text" |
| | | @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">å é¤é¡¹ç®</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="packageInspect-result"> |
| | | <el-row> |
| | | <el-col :span="24">æ£éªç»è®º</el-col> |
| | | </el-row> |
| | | <el-row style="width:100%"> |
| | | <el-col :span="24"> |
| | | <el-table class="l-mes" border height="90" :data="conclusionTable" ref="conclusion" v-model="conclusion" |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :cell-style="{textAlign:'center'}"> |
| | | <el-table-column prop="packageNo" label="å
è£
ç¼å·"></el-table-column> |
| | | <el-table-column prop="userName" label="æ£éªå"></el-table-column> |
| | | <el-table-column prop="result" label="æ£éªç»è®º"> |
| | | <template slot-scope="scope"> |
| | | <el-select :disabled="resultVal!=null" style="width:100%" v-model="scope.row.result"> |
| | | <el-option label="åæ ¼" value="åæ ¼"></el-option> |
| | | <el-option label="ä¸åæ ¼" value="ä¸åæ ¼"></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½"> |
| | | <template> |
| | | <el-button type="text" :disabled="resultVal!=null" @click="submitSave()" size="small">䏿¥</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | fetchListById, |
| | | updatePackageInsProduct, |
| | | updatePackageInspectById, |
| | | } from '@/api/quality/packageInspect' |
| | | export default { |
| | | computed:{}, |
| | | components:{ |
| | | }, |
| | | data(){ |
| | | return{ |
| | | loading: false, |
| | | resultVal: null, |
| | | dataForm:{ |
| | | id: null, |
| | | packInsNo: null, |
| | | packageNo: '', |
| | | contractNo: '', |
| | | projectName: '', |
| | | customerName: '', |
| | | packageInsProductS: [{ |
| | | deviceId: 0, |
| | | father:'', |
| | | name: '', |
| | | required: '', |
| | | testValue: '', |
| | | unit: '', |
| | | testValueList: [] |
| | | }] |
| | | }, |
| | | form: null, |
| | | list:[], |
| | | conclusion: null, |
| | | conclusionTable: [{ |
| | | packageNo: '', |
| | | userName: '', |
| | | result: '' |
| | | }], |
| | | dataRule: {}, |
| | | } |
| | | }, |
| | | beforeUpdate(){ |
| | | this.$nextTick(()=>{ |
| | | this.$refs.table.doLayout(); |
| | | }) |
| | | }, |
| | | created(){ |
| | | this.dataForm.id = this.$route.query.id |
| | | this.resultVal = this.$route.params.resultVal |
| | | if(!this.resultVal){ |
| | | let val = sessionStorage.getItem("packIns-resultVal-"+this.dataForm.id) |
| | | if(val){ |
| | | this.resultVal=val |
| | | } |
| | | } |
| | | this.init() |
| | | }, |
| | | watch:{ |
| | | }, |
| | | methods:{ |
| | | changeResult(){ |
| | | let result = '' |
| | | let data = this.list |
| | | if(data){ |
| | | result='åæ ¼' |
| | | data.forEach(item=>{ |
| | | if(item.children){ |
| | | item.children.forEach(ele=>{ |
| | | if(ele.result=='ä¸åæ ¼'){ |
| | | result='ä¸åæ ¼' |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | this.conclusionTable[0].result = result |
| | | }, |
| | | //䏿¥ |
| | | submitSave(){ |
| | | const _than = this |
| | | this.$confirm('䏿¥åï¼è¯·ç¡®è®¤æ£éªé¡¹ç®æ¯å¦å·²ä¿å!', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®è®¤ä¸æ¥', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | let data = { |
| | | id: _than.dataForm.id, |
| | | result: _than.conclusionTable[0].result, |
| | | } |
| | | updatePackageInspectById(data).then(res => { |
| | | if(res.data.code === 0){ |
| | | _than.resultVal = res.data.data |
| | | sessionStorage.setItem("packIns-resultVal-"+_than.dataForm.id,res.data.data) |
| | | _than.$message.success("䏿¥æå"); |
| | | }else{ |
| | | _than.$message.error("䏿¥å¤±è´¥",res.data.data); |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }, |
| | | // æ·»å è¡ |
| | | clickAddLine() { |
| | | this.list.push({ |
| | | name: '', |
| | | randomId: Math.random(), |
| | | children: [{ |
| | | name: '', |
| | | note: '', |
| | | required: '', |
| | | result: '', |
| | | randomId: Math.random(), |
| | | }] |
| | | }) |
| | | }, |
| | | //æ·»å å级 |
| | | clickAddChildren(row,index){ |
| | | row.children.push({ |
| | | name: row.name, |
| | | note: '', |
| | | required: '', |
| | | result: '', |
| | | randomId: Math.random(), |
| | | }) |
| | | }, |
| | | // å é¤è¡ |
| | | clickDelLine(row,index,isParent) { |
| | | if(isParent){ |
| | | let parentIndex = this.list.findIndex(el =>{ |
| | | return el.randomId == row.randomId |
| | | }) |
| | | this.list.splice(parentIndex,1) |
| | | }else{ |
| | | let i = this.list.findIndex(el =>{ |
| | | return el.children.find(ele => ele.randomId == row.randomId) |
| | | }) |
| | | let childrenIndex = this.list[i].children.findIndex(el =>{ |
| | | return el.randomId == row.randomId |
| | | }) |
| | | this.list[i].children.splice(childrenIndex,1) |
| | | } |
| | | }, |
| | | //ä¿åæ£æ¥é¡¹ |
| | | savePackIns(){ |
| | | if(this.list.length==0){ |
| | | this.$message.error("æ£éªé¡¹ç®ä¸ºç©º!") |
| | | return |
| | | }else{ |
| | | let dataList = [] |
| | | this.list.forEach(item=>{ |
| | | if(item.children){ |
| | | item.children.forEach(ele=>{ |
| | | let obj = { |
| | | id: ele.pid || null, |
| | | name: item.name, |
| | | note: ele.note, |
| | | packageInspectId: this.dataForm.id, |
| | | required: ele.required, |
| | | result: ele.result, |
| | | } |
| | | dataList.push(obj) |
| | | }) |
| | | } |
| | | }) |
| | | updatePackageInsProduct(dataList).then(res=>{ |
| | | if(res.status===200){ |
| | | this.$message.success("ä¿åæå") |
| | | } |
| | | }).catch(error=>{ |
| | | console.log(error); |
| | | this.$message.error("ä¿å失败") |
| | | }) |
| | | } |
| | | }, |
| | | init(){ |
| | | if(this.dataForm.id){ |
| | | fetchListById(this.dataForm.id).then(res=>{ |
| | | let data = res.data.data |
| | | this.dataForm.packInsNo = data.packInsNo |
| | | this.dataForm.packageNo = data.packageNo |
| | | this.dataForm.contractNo = data.contractNo |
| | | this.dataForm.customerName = data.customerName |
| | | this.dataForm.projectName = data.projectName |
| | | this.dataForm.createTime = data.createTime |
| | | this.dataForm.createUser = data.createUser |
| | | this.list = [] |
| | | let userNameList = [] |
| | | data.packageInsProductS.forEach(item => { |
| | | if (item.children) { |
| | | let ele = { |
| | | randomId: Math.random(), |
| | | name: null, |
| | | children: [] |
| | | } |
| | | ele.name = item.name |
| | | item.children.forEach(obj => { |
| | | if(obj.userName){ |
| | | userNameList.push(obj.userName) |
| | | } |
| | | let o = { |
| | | name: item.name, |
| | | randomId: Math.random(), |
| | | required: obj.required, |
| | | pid: obj.pid, |
| | | note: obj.note?obj.note:'', |
| | | result: obj.presult |
| | | } |
| | | ele.children.push(o) |
| | | }) |
| | | this.list.push(ele) |
| | | } |
| | | }) |
| | | this.conclusionTable = [{ |
| | | packageNo: data.packageNo, |
| | | userName: Array.from(new Set(userNameList)).join(','), |
| | | result: null |
| | | }] |
| | | this.$nextTick(()=>{ |
| | | if(this.list.length>0){ |
| | | this.changeResult() |
| | | } |
| | | }) |
| | | }).catch(error=>{ |
| | | this.$message.error("è·å失败",error) |
| | | }) |
| | | }else{ |
| | | this.conclusionTable = [] |
| | | } |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .packageInspect-detail { |
| | | width: 100%; |
| | | height: 490px; |
| | | padding: 10px 20px; |
| | | display: flex; |
| | | border: 1px solid #ddd; |
| | | background-color: #fff; |
| | | margin-top: 10px; |
| | | box-sizing: border-box; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .packageInspect-result { |
| | | width: 100%; |
| | | height: 150px; |
| | | padding: 10px 20px; |
| | | display: flex; |
| | | border: 1px solid #ddd; |
| | | background-color: #fff; |
| | | margin-top: 10px; |
| | | box-sizing: border-box; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .packageInspect-basic { |
| | | background-color: #fff; |
| | | height: 120px; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 10px 20px; |
| | | border: 1px solid #ddd; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .packageInspect-related-stock-part { |
| | | background-color: #fff; |
| | | width: 100%; |
| | | height: 220px; |
| | | border: 1px solid #ddd; |
| | | padding: 10px 20px 0px 20px; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .packageInspect-bom { |
| | | background-color: #fff; |
| | | width: 100%; |
| | | height: 499px; |
| | | border: 1px solid #ddd; |
| | | padding: 10px 20px; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .packageInspect-bom .el-card__header { |
| | | padding: 1px 20px; |
| | | border-bottom: 0px solid #ebeef5; |
| | | } |
| | | |
| | | .packageInspect-bom .el-card__body { |
| | | height: calc(100% - 22px); |
| | | } |
| | | |
| | | .packageInspect-bom .el-card__body .el-collapse { |
| | | height: 100%; |
| | | overflow: auto; |
| | | } |
| | | |
| | | .packageInspect-technology-params { |
| | | background-color: #fff; |
| | | width: calc(52% - 20px); |
| | | float: left; |
| | | height: 719px; |
| | | border: 1px solid #ddd; |
| | | padding: 10px 20px; |
| | | margin-left: 20px; |
| | | } |
| | | |
| | | .packageInspect-structure { |
| | | background-color: #fff; |
| | | width: 35%; |
| | | float: left; |
| | | height: 719px; |
| | | border: 1px solid #ddd; |
| | | padding: 10px 20px; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .packageInspect-flow { |
| | | background-color: #fff; |
| | | width: calc(65% - 20px); |
| | | float: left; |
| | | height: 719px; |
| | | border: 1px solid #ddd; |
| | | padding: 10px 20px; |
| | | margin-left: 20px; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | /*èªå®ä¹disabledç¶æä¸checkboxçæ ·å¼*/ |
| | | .completeproductstructure-checkout |
| | | .el-checkbox__input.is-disabled.is-checked |
| | | .el-checkbox__inner { |
| | | background-color: #006eff; |
| | | border-color: #006eff; |
| | | } |
| | | |
| | | .completeproductstructure-checkout |
| | | .el-checkbox__input.is-disabled.is-checked |
| | | + span.el-checkbox__label { |
| | | color: #006eff; |
| | | border-color: #006eff; |
| | | } |
| | | |
| | | .completeproductstructure-checkout |
| | | .el-checkbox__input.is-disabled |
| | | .el-checkbox__inner { |
| | | background-color: #ffffff; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .completeproductstructure-checkout |
| | | .el-checkbox__input.is-disabled |
| | | + span.el-checkbox__label { |
| | | color: #606266; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .completeproductstructure-checkout .el-checkbox__inner::after { |
| | | border: 1px solid #fff !important; |
| | | border-left: 0 !important; |
| | | border-top: 0 !important; |
| | | cursor: pointer !important; |
| | | } |
| | | |
| | | .packageInspect-bom-div { |
| | | width: 100%; |
| | | margin-bottom: 5px; |
| | | } |
| | | |
| | | .packageInspect-technology-div { |
| | | width: 100%; |
| | | margin-bottom: 5px; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .packageInspect-technology-div .el-collapse { |
| | | border-top: 0px; |
| | | border-bottom: 0px; |
| | | } |
| | | |
| | | .structure-detail-table th.gutter { |
| | | display: table-cell !important; |
| | | width: 10px !important; |
| | | } |
| | | |
| | | .structure-detail-table colgroup.gutter { |
| | | display: table-cell !important; |
| | | width: 10px !important; |
| | | } |
| | | |
| | | .final-product-checkout .el-card__header { |
| | | padding: 0px 20px; |
| | | border-bottom: 0px; |
| | | } |
| | | |
| | | .final-product-checkout .el-card__body { |
| | | padding: 0px 20px 20px; |
| | | } |
| | | |
| | | .orimaterial-quantity .el-card__header { |
| | | padding: 0px 20px; |
| | | border-bottom: 0px; |
| | | } |
| | | |
| | | .orimaterial-quantity .el-card__body { |
| | | padding: 0px 20px 20px; |
| | | } |
| | | |
| | | .packageInspect-materialcost-table th.gutter { |
| | | display: table-cell !important; |
| | | width: 10px !important; |
| | | } |
| | | |
| | | .packageInspect-materialcost-table colgroup.gutter { |
| | | display: table-cell !important; |
| | | width: 10px !important; |
| | | } |
| | | |
| | | .GooFlow .ico .ico_start:before { |
| | | color: red; |
| | | } |
| | | .highlight-tab-class { |
| | | color: #006eff; |
| | | background: #e4e7ed; |
| | | border-top: 1px solid #006eff; |
| | | } |
| | | .unhighlight-tab-class { |
| | | border: 1px solid #e4e7ed; |
| | | border-bottom: none; |
| | | } |
| | | .avue-crud__menu{ |
| | | min-height: 0px; |
| | | } |
| | | </style> |
| | |
| | | column: [ |
| | | { |
| | | minWidth: '120', |
| | | prop: 'orderNumber', |
| | | label: '订åç¼å·', |
| | | prop: 'proInsNo', |
| | | label: 'è¿ç¨æ£éªç¼å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'orderNumber', |
| | | label: '订åç¼å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'material', |
| | | label: '产ååç§°', |
| | | isTrue: true, |
| | |
| | | <div class="formwrapper"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è¿ç¨æ£éªç¼å·ï¼"> |
| | | <el-input @blur="selectInfoByOrderId" disabled |
| | | v-model="processInspectVo.proInsNo" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="订åå·ï¼"> |
| | | <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.orderNumber" placeholder="请è¾å
¥è®¢åå·" autocomplete="off" /> |
| | |
| | | autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è§æ ¼åå·ï¼"> |
| | | <el-input disabled v-model="processInspectVo.specs" placeholder="请è¾å
¥è§æ ¼åå·" |
| | | autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item label="å·¥åºåç§°"> |
| | | <el-select style="width: 100%" :disabled="processInspectVo.id != null" |
| | |
| | | autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ°éï¼"> |
| | | <el-input v-model="processInspectVo.quantity" placeholder="请è¾å
¥æ°é" autocomplete="off" |
| | |
| | | empiricalValueAddMaxNumber: 0, |
| | | processInspectVo: { |
| | | id: null, |
| | | proInsNo: null, |
| | | material: null, |
| | | materialCode: null, |
| | | orderNumber: "ZTTIC20230001", |
| | |
| | | if (id != null) { |
| | | queryById(id).then(res => { |
| | | let result = res.data.data |
| | | this.processInspectVo.proInsNo = result.proInsNo |
| | | this.processInspectVo.orderNumber = result.orderNumber |
| | | this.processInspectVo.materialCode = result.materialCode |
| | | this.processInspectVo.material = result.material |
| | |
| | | minWidth: 100 |
| | | } |
| | | }, |
| | | materialType: [{label:'åæææ£éª',value:'åæææ£éª'},{label:'è¿ç¨æ£éª',value:'è¿ç¨æ£éª'},{label:'äº§åæ£éª',value:'äº§åæ£éª'}], |
| | | materialType: [{label:'åæææ£éª',value:'åæææ£éª'},{label:'è¿ç¨æ£éª',value:'è¿ç¨æ£éª'},{label:'äº§åæ£éª',value:'äº§åæ£éª'},{label:'å
è£
æ£éª',value:'å
è£
æ£éª'}], |
| | | StateList: [{label:'å
¨é¨',value:''},{label:'å·²æäº¤å®¡æ ¸',value:'1'},{label:'å¾
å¤ç',value:'0'},{label:'å·²å¤ç',value:'2'}], |
| | | insStateList: [{label:'å
¶ä»',value:''},{label:'ççµ',value:'1'}], |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="qrcode"> |
| | | <div class="code"> |
| | | <!-- decodeæ¯æ«æç»æç彿°ï¼torchç¨äºæ¯å¦éè¦æå¼æçµçï¼initç¨äºæ£æ¥è¯¥è®¾å¤æ¯å¦è½å¤è°ç¨æå头çæéï¼cameraå¯ç¨äºæå¼å颿è
å颿å头 --> |
| | | <qrcode-drop-zone @decode="onDecode"> |
| | | <qrcode-stream @decode="onDecode" :torch="torchActive" @init="onInit" :camera="camera" /> |
| | | </qrcode-drop-zone> |
| | | <div class="code-button"> |
| | | <button @click="switchCamera">ç¸æºå转</button> |
| | | <button @click="ClickFlash">æå¼æçµç</button> |
| | | <button @click="turnCameraOff">å
³éç¸æº</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | // å¼ç¨vue-qrcode-readeræä»¶ |
| | | import { QrcodeStream, QrcodeDropZone, QrcodeCapture } from 'vue-qrcode-reader' |
| | | |
| | | export default { |
| | | name: 'Approve', |
| | | props: { |
| | | camera: { |
| | | type: String, |
| | | default: 'rear', |
| | | }, |
| | | torchActive: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | qrcode: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | noStreamApiSupport: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | }, |
| | | data() { |
| | | return {} |
| | | }, |
| | | created() { |
| | | console.log(222222222222224564646); |
| | | }, |
| | | |
| | | components: { |
| | | // 注åç»ä»¶ |
| | | QrcodeStream, |
| | | QrcodeDropZone, |
| | | QrcodeCapture, |
| | | }, |
| | | methods: { |
| | | // æ«ç ç»æåè° |
| | | onDecode(result) { |
| | | this.$emit('onDecode', result) |
| | | }, |
| | | // ç¸æºå转 |
| | | switchCamera() { |
| | | this.$emit('switchCamera') |
| | | }, |
| | | // å
³éç¸æºï¼ï¼ï¼ï¼ï¼ï¼ |
| | | turnCameraOff() { |
| | | this.$emit('turnCameraOff') |
| | | }, |
| | | // æå¼æçµç |
| | | ClickFlash() { |
| | | this.$emit('ClickFlash') |
| | | }, |
| | | // æ£æ¥æ¯å¦è°ç¨æå头 |
| | | onInit(promise) { |
| | | this.$emit('onInit', promise) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | @refreshDataList="getData" |
| | | ></RawMaterialForm> |
| | | <el-dialog |
| | | top="10vh" |
| | | top="7vh" |
| | | title="æå°é¢è§" |
| | | :visible.sync="printDialogVisible" |
| | | width="60%"> |
| | | <div style="width:100%;height: 60vh;overflow-y: scroll;"> |
| | | width="70%"> |
| | | <div style="width:90%;margin-left:5%;height: 60vh;overflow-y: scroll;"> |
| | | <printTemplate id="printRaw" :formData="printFormData"></printTemplate> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | </template> |
| | | <script> |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | import { getRawInspectList,delObj,exportRawMaterial,getObj } from '@/api/quality/rawMaterial' |
| | | import { getRawInspectList,delObj,exportRawMaterial,getObj,downloadReport } from '@/api/quality/rawMaterial' |
| | | import RawMaterialForm from './rawMaterial-form' |
| | | import * as fecha from 'element-ui/lib/utils/date' |
| | | import { mapGetters } from 'vuex' |
| | | import PrintJS from 'print-js' |
| | | import { transformZip } from '@/util/fileTransform' |
| | | import printTemplate from './rawMaterial-print.vue' |
| | | export default { |
| | | data() { |
| | |
| | | resultData:[], |
| | | addOrUpdateVisible: false, |
| | | type: [1], |
| | | multipleSelection: [], |
| | | prelang: 'rawMaterial', |
| | | ajaxFun: getRawInspectList, |
| | | options: { |
| | |
| | | column: [ |
| | | { |
| | | minWidth: '120', |
| | | prop: 'code', |
| | | label: 'åææç¼ç ', |
| | | prop: 'rawInsNo', |
| | | label: 'åæææ£éªç¼å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | render: { fun: this.addOrUpdateHandle } |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'code', |
| | | label: 'åææç¼ç ', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | |
| | | }, |
| | | ], |
| | | toolbar: [ |
| | | { |
| | | text: 'æ°å¢', |
| | | type: 'primary', |
| | | fun: this.addOrUpdateHandle |
| | | }], |
| | | operator: [{ |
| | | text: 'æå°', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.previewFun, |
| | | show: { |
| | | val: [ |
| | | '1', |
| | | '0' |
| | | ], |
| | | key: 'judgeState' |
| | | { |
| | | text: 'æ°å¢', |
| | | type: 'primary', |
| | | fun: this.addOrUpdateHandle |
| | | }, |
| | | { |
| | | text: 'ä¸è½½æ£éªæ¥å', |
| | | type: 'primary', |
| | | fun: this.downloadReport |
| | | } |
| | | }, |
| | | ], |
| | | operator: [ |
| | | // { |
| | | // text: 'æå°', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.previewFun, |
| | | // show: { |
| | | // val: [ |
| | | // '1', |
| | | // '0' |
| | | // ], |
| | | // key: 'judgeState' |
| | | // } |
| | | // }, |
| | | { |
| | | text: 'ä½åº', |
| | | type: 'text', |
| | |
| | | RawMaterialForm, |
| | | printTemplate, |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | created() { }, |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | }, |
| | |
| | | } |
| | | }, |
| | | methods:{ |
| | | downloadReport(){ |
| | | let selection = this.multipleSelection |
| | | if(!selection || selection.length < 1){ |
| | | this.$message.error("请å
éæ©æ£éªæ°æ®") |
| | | return |
| | | }else{ |
| | | let arr = selection.filter(s=>{ |
| | | return s.judgeState==null || s.judgeState=='' |
| | | }) |
| | | if(arr.length > 0){ |
| | | this.$message.error("åªè½éæ©å·²æ£æµçæ°æ®") |
| | | return |
| | | } |
| | | let ids = [] |
| | | selection.forEach(ele=>{ |
| | | ids.push(ele.id) |
| | | }) |
| | | downloadReport({ids : ids}).then(res=>{ |
| | | transformZip(res) |
| | | }).catch(error=>{ |
| | | console.log(error) |
| | | }) |
| | | } |
| | | }, |
| | | //æ¥çæ¥åæé® |
| | | previewFun(row){ |
| | | getObj(row.id).then(res=>{ |
| | |
| | | PrintJS({ |
| | | printable: "printRaw", |
| | | type: "html", |
| | | maxWidth: 880, |
| | | // header: "åæææ£æµæ¥å", |
| | | style: '@page {margin: 10mm 5mm;}', |
| | | targetStyles: ["*"], |
| | | style: `@page {margin: 0mm 5mm;size: A4;} |
| | | html {zoom:100%;} |
| | | @media print { |
| | | html,body{ |
| | | width:200mm; |
| | | height:297mm; |
| | | } |
| | | }`, |
| | | ignoreElements: ["no-ignore"], |
| | | orientation: 'portrait' |
| | | }); |
| | |
| | | }, |
| | | // æ°å¢ / ä¿®æ¹ |
| | | addOrUpdateHandle(row) { |
| | | console.log(row); |
| | | this.$router.push({ |
| | | name: 'rawMaterialForm', |
| | | query: { |
| | |
| | | }, |
| | | getData() { |
| | | this.$refs.rawMaterialTable.getDataList() |
| | | |
| | | }, |
| | | // tableèªå¸¦äºä»¶ |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val |
| | | // æ ¹æ®ç¶æï¼ç¦ç¨è¡¨å¤´æé® |
| | | // çéåºéä¸è®°å½çç¶æ |
| | | var stateArr = val.map(function(value, index) { |
| | | return value.coState |
| | | }) |
| | | // var stateArr = val.map(function(value, index) { |
| | | // return value.coState |
| | | // }) |
| | | // éä¸ç¶ææ°ç»å
ç´ å»é |
| | | var uniqueStateArr = [] |
| | | for (var i = 0; i < stateArr.length; i++) { |
| | | if (uniqueStateArr.indexOf(stateArr[i]) == -1) { |
| | | uniqueStateArr.push(stateArr[i]) |
| | | } |
| | | } |
| | | // var uniqueStateArr = [] |
| | | // for (var i = 0; i < stateArr.length; i++) { |
| | | // if (uniqueStateArr.indexOf(stateArr[i]) == -1) { |
| | | // uniqueStateArr.push(stateArr[i]) |
| | | // } |
| | | // } |
| | | // 循ç¯èªå®ä¹æé®ï¼å¤ææ¯ä¸ªæé®çpermitArræ¯å¦å®å
¨å
å«éä¸ç¶æï¼è¥å®å
¨å
å«ï¼åæé®äº®ï¼å¦åæé®ç° |
| | | for (var i = 0; i < this.stateTagArr.length; i++) { |
| | | if ( |
| | | uniqueStateArr.every((val) => |
| | | this.stateTagArr[i].permitArr.length <= 0 |
| | | ? true |
| | | : this.stateTagArr[i].permitArr.includes(val) |
| | | ) |
| | | ) { |
| | | this.stateTagArr[i].disabled = false |
| | | } else { |
| | | this.stateTagArr[i].disabled = true |
| | | } |
| | | } |
| | | this.multipleSelection = val |
| | | // for (var i = 0; i < this.stateTagArr.length; i++) { |
| | | // if ( |
| | | // uniqueStateArr.every((val) => |
| | | // this.stateTagArr[i].permitArr.length <= 0 |
| | | // ? true |
| | | // : this.stateTagArr[i].permitArr.includes(val) |
| | | // ) |
| | | // ) { |
| | | // this.stateTagArr[i].disabled = false |
| | | // } else { |
| | | // this.stateTagArr[i].disabled = true |
| | | // } |
| | | // } |
| | | }, |
| | | } |
| | | } |
| | |
| | | label-width="110px"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="åæææ£éªç¼å·" prop="rawInsNo"> |
| | | <el-input v-model="dataForm.rawInsNo" disabled> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="é¶ä»¶å·" prop="code"> |
| | | <el-input v-model="dataForm.code" :disabled="resultVal!=null && dataForm.id!=null"> |
| | | <el-button |
| | |
| | | icon="el-icon-search" |
| | | :disabled="resultVal!=null && dataForm.id!=null" |
| | | @click="queryCode()"></el-button> |
| | | <!-- <el-button |
| | | slot="append" |
| | | icon="el-icon-full-screen" |
| | | :disabled="resultVal!=null && dataForm.id!=null" |
| | | @click="Turnonthecamera"></el-button> --> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | disabled> |
| | | |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è§æ ¼åå·" prop="specs"> |
| | | <el-input v-model="dataForm.specs" disabled></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è§æ ¼åå·" prop="specs"> |
| | | <el-input v-model="dataForm.specs" disabled></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item prop="unit" label="åä½"> |
| | | <el-input |
| | |
| | | <el-input v-model="dataForm.number" :disabled="resultVal!=null" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item prop="projectName" label="项ç®åç§°"> |
| | | <el-form-item prop="projectName" label="项ç®åç§°" v-if="dataForm.id!=null"> |
| | | <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName"> |
| | | <el-input v-model="dataForm.projectName" disabled ></el-input> |
| | | </el-tooltip> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¥æ£æ¥æ" prop="createTime" v-if="dataForm.id!=null"> |
| | | <el-input v-model="dataForm.createTime" disabled /> |
| | |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请å
éæ©è®¾å¤ï¼" placement="top-start"> |
| | | <el-select @blur="changeState(scope.row, index)" style="width:100%" allow-create filterable default-first-option |
| | | <el-select @blur="changeState(scope.row, index)" style="width:100%" allow-create filterable default-first-option |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" |
| | | v-model="scope.row.testValueList[index]" |
| | | placeholder="请è¾å
¥æéæ©æ£æµå¼" @change="updateTestValue(scope.row,scope.$index)"> |
| | |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | |
| | | |
| | | |
| | | <el-table-column prop="deviceName" label="è¯éªè®¾å¤" min-width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | |
| | | <el-table-column prop="note" label="æ£éªæè¿°" width="260" > |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input @blur="changeState(scope.row, note)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="æ£éªæè¿°"></el-input> |
| | | <el-input @blur="changeState(scope.row, scope.$index)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="æ£éªæè¿°"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | |
| | | |
| | | <div class="rawMaterial-result"> |
| | | <el-row> |
| | | <el-col :span="24">æ£éªç»è®º</el-col> |
| | |
| | | <el-button type="primary" @click="submitSave()">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- <qrcode :qrcode="qrcode" v-show="qrcode" :camera="camera" /> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | updateRawInspectsById, |
| | | updateDeviceById, } from '@/api/quality/rawMaterial' |
| | | import rawMaterialPartDialog from '@/views/common/rawMaterial-part' |
| | | // import qrcode from './QrcodeReader.vue' |
| | | export default { |
| | | computed:{}, |
| | | components:{ |
| | | rawMaterialPartDialog |
| | | rawMaterialPartDialog, |
| | | // qrcode |
| | | // qrcode: () => import('./QrcodeReader.vue'), |
| | | }, |
| | | data(){ |
| | | return{ |
| | | qrcode: false, |
| | | torchActive: false, |
| | | camera: 'off', |
| | | userdata:[], |
| | | currentRow:[], |
| | | userlist:[], |
| | |
| | | this.$refs.table.doLayout(); |
| | | }) |
| | | }, |
| | | mounted(){ |
| | | created(){ |
| | | this.dataForm.id = this.$route.query.id |
| | | this.resultVal = this.$route.query.resultVal |
| | | if(this.resultVal == null){ |
| | |
| | | }, |
| | | }, |
| | | methods:{ |
| | | changeName(index,row){ |
| | | this.projectList.forEach(item=>{ |
| | | if(row.name == item.name){ |
| | | this.list[index].unit = item.unit |
| | | this.list[index].required = item.required |
| | | } |
| | | }) |
| | | }, |
| | | // æå¼ç¸æº |
| | | Turnonthecamera() { |
| | | this.qrcode = true |
| | | this.camera = 'rear' |
| | | console.log(2222222); |
| | | }, |
| | | // æ«ç ç»æåè° |
| | | // onDecode(result) { |
| | | // console.log(result) |
| | | // this.turnCameraOff() |
| | | // }, |
| | | // ç¸æºå转 |
| | | // switchCamera() { |
| | | // switch (this.camera) { |
| | | // case 'front': |
| | | // this.camera = 'rear' |
| | | // break |
| | | // case 'rear': |
| | | // this.camera = 'front' |
| | | // break |
| | | // default: |
| | | // this.$toast('é误') |
| | | // } |
| | | // }, |
| | | // å
³éç¸æº |
| | | // turnCameraOff() { |
| | | // this.camera = 'off' |
| | | // this.qrcode = false |
| | | // }, |
| | | // æå¼æçµç |
| | | // ClickFlash() { |
| | | // switch (this.torchActive) { |
| | | // case true: |
| | | // this.torchActive = false |
| | | // break |
| | | // case false: |
| | | // this.torchActive = true |
| | | // break |
| | | // default: |
| | | // this.$toast('é误') |
| | | // } |
| | | // }, |
| | | |
| | | // æ£æ¥æ¯å¦è°ç¨æå头 |
| | | // async onInit(promise) { |
| | | // try { |
| | | // await promise |
| | | // } catch (error) { |
| | | // if (error.name === 'StreamApiNotSupportedError') { |
| | | // } else if (error.name === 'NotAllowedError') { |
| | | // this.errorMessage = 'Hey! I need access to your camera' |
| | | // } else if (error.name === 'NotFoundError') { |
| | | // this.errorMessage = 'Do you even have a camera on your device?' |
| | | // } else if (error.name === 'NotSupportedError') { |
| | | // this.errorMessage = |
| | | // 'Seems like this page is served in non-secure context (HTTPS, localhost or file://)' |
| | | // } else if (error.name === 'NotReadableError') { |
| | | // this.errorMessage = |
| | | // "Couldn't access your camera. Is it already in use?" |
| | | // } else if (error.name === 'OverconstrainedError') { |
| | | // this.errorMessage = |
| | | // "Constraints don't match any installed camera. Did you asked for the front camera although there is none?" |
| | | // } else { |
| | | // this.errorMessage = 'UNKNOWN ERROR: ' + error.message |
| | | // } |
| | | // } |
| | | // }, |
| | | // 确认åè° |
| | | selectPart(param, nodePart, index) { |
| | | if (typeof param !== 'undefined') { |
| | | this.dataForm.rawInsNo = param.rawInsNo |
| | | this.dataForm.code = param.code |
| | | this.dataForm.name = param.name |
| | | this.dataForm.formTime = param.formTime |
| | |
| | | } |
| | | this.showPart = true |
| | | }, |
| | | |
| | | updateDevice(row, index) { |
| | | let rowId=JSON.stringify(row.rpId) |
| | | updateDeviceById({ deviceId: row.deviceId, rpId: row.rpId }).then(res => { |
| | | this.list.forEach(obj => { |
| | | obj.children.forEach(c=>{ |
| | | if(c.rpId==rowId){ |
| | | c.testValue = '' |
| | | c.testState = null |
| | | c.testValueList = [] |
| | | c.note='' |
| | | } |
| | | }) |
| | | }) |
| | | }).catch(error => { |
| | | console.log(error) |
| | | }) |
| | | }, |
| | | |
| | | // updateDevice(row,index){ |
| | | // if(this.dataForm.id != null){ |
| | | // updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{ |
| | | // this.inspectionItems.forEach(obj => { |
| | | // this.list[index-1].testValue = '' |
| | | // this.list[index-1].testState = null |
| | | // this.list[index-1].testValueList = [] |
| | | // this.list[index-1].note = '' |
| | | |
| | | // }) |
| | | // }).catch(error=>{ |
| | | // console.log(error) |
| | | // }) |
| | | // } |
| | | // }, |
| | | updateDeviceById({ deviceId: row.deviceId, rpId: row.rpId }).then(res => { |
| | | row.testValue = null |
| | | row.testState = null |
| | | row.testValueList = [] |
| | | row.note = null |
| | | }).catch(error => { |
| | | console.log(error) |
| | | }) |
| | | }, |
| | | checkTestState(){ |
| | | let resultVal = '1' |
| | | this.list.forEach(item=>{ |
| | | if(item.children){ |
| | | if(obj.testState == 0){ |
| | | resultVal = '0' |
| | | } |
| | | item.children.forEach(ele=>{ |
| | | if(ele.testState == 0){ |
| | | resultVal = '0' |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.resultVal = resultVal |
| | |
| | | number: this.unqualifiedNum, |
| | | } |
| | | updateRawInspectsById(data).then(res => { |
| | | if(res.data.code == 0){ |
| | | if(res.data.code == 0 && (res.data.data=='1'|| res.data.data=='0')){ |
| | | sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data) |
| | | this.$message.success("䏿¥æå"); |
| | | this.dialogVisible = false |
| | | }else{ |
| | | this.$message.error("䏿¥å¤±è´¥ï¼",res.data.data); |
| | | } |
| | | this.dialogVisible = false |
| | | this.checkTestState() |
| | | }); |
| | | this.checkTestState() |
| | | }, |
| | | addTeatValueColumn(){ |
| | | this.empiricalValueAdd = this.empiricalValueAdd + 1; |
| | |
| | | if (arr.length > this.empiricalValueAdd) { |
| | | this.empiricalValueAdd = arr.length |
| | | } |
| | | }) |
| | | this.list.push(ele) |
| | | }) |
| | | }else{ |
| | | ele.children.push({ |
| | | deviceId: null, |
| | |
| | | userName: null, |
| | | testValue: '', |
| | | testValueList: [], |
| | | note: '', |
| | | note: null, |
| | | testState: '' |
| | | }) |
| | | this.list.push(ele) |
| | |
| | | |
| | | }, |
| | | delTeatValueColumn(){ |
| | | if (this.empiricalValueAdd - 1 === 0) { } else { |
| | | if (this.empiricalValueAdd - 1 > 0) { |
| | | if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { |
| | | this.empiricalValueAdd = this.empiricalValueAdd - 1; |
| | | this.list.forEach(i => { |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | updateTestValue(row,index){ |
| | | console.log(row); |
| | | if(row.rpId == null){ |
| | | |
| | | |
| | | return |
| | | } |
| | | let val = row.testValueList.join(","); |
| | |
| | | this.$message.error(error) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | init(){ |
| | | if(this.dataForm.id){ |
| | | getObj(this.dataForm.id).then(res=>{ |
| | | let data = res.data.data |
| | | this.dataForm.rawInsNo = data.rawInsNo |
| | | this.dataForm.name = data.name |
| | | this.dataForm.formTime = data.formTime |
| | | this.dataForm.code = data.code |
| | |
| | | if(obj.userName){ |
| | | userNameList.push(obj.userName) |
| | | } |
| | | |
| | | if(obj.testValue){ |
| | | arr = obj.testValue.split(",") |
| | | } |
| | | if (arr.length > this.empiricalValueAdd) { |
| | | this.empiricalValueAdd = arr.length |
| | | } |
| | | this.empiricalValueAdd = arr.length |
| | | } |
| | | let o = { |
| | | deviceId: obj.deviceId, |
| | | deviceName: obj.deviceName, |
| | |
| | | } |
| | | }, |
| | | changeState(row, index) { |
| | | console.log(row) |
| | | if (row.rpId != null && row.rpId != '') { |
| | | let val = "" |
| | | row.testValueList.forEach(e => { |
| | | val += e + "," |
| | | }) |
| | | |
| | | // if (note === undefined || note === '' || note === null) { |
| | | // return |
| | | // } |
| | | console.log(val) |
| | | val = val.slice(0, -1); |
| | | if (val === undefined || val === '' || val === null) { |
| | | return |
| | | } |
| | | |
| | | |
| | | let obj = { |
| | | deviceId: row.deviceId, |
| | | rpId: row.rpId, |
| | | testValue: val, |
| | | note: row.note |
| | | |
| | | } |
| | | console.log(obj) |
| | | updateRawInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.$message.success("æ´æ°æå") |
| | | } else { |
| | | this.$message.error("æ´æ°å¤±è´¥") |
| | | } |
| | | this.init() |
| | | }) |
| | | if (row.rpId != null && row.rpId != '') { |
| | | let val = row.testValueList.join(",") |
| | | if (val === undefined || val === '' || val === null) { |
| | | return |
| | | } |
| | | }, |
| | | |
| | | |
| | | |
| | | let obj = { |
| | | deviceId: row.deviceId, |
| | | rpId: row.rpId, |
| | | testValue: val, |
| | | note: row.note |
| | | } |
| | | updateRawInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.$message.success("æ´æ°æå") |
| | | } else { |
| | | this.$message.error("æ´æ°å¤±è´¥") |
| | | } |
| | | this.init() |
| | | }) |
| | | } |
| | | }, |
| | | // å é¤åé¡¹ç® |
| | | delChildren(row,index,isParent) { |
| | | if(isParent){ |
| | |
| | | }, |
| | | //æ·»å åé¡¹ç® |
| | | addChildren(row){ |
| | | console.log(row); |
| | | let obj = { |
| | | deviceId: null, |
| | | deviceName: null, |
| | |
| | | row.children.push(obj) |
| | | }, |
| | | save(){ |
| | | |
| | | let data = this.dataForm |
| | | console.log('--------',data); |
| | | console.log("-----",this.list); |
| | | this.list.forEach(item=>{ |
| | | item.children.forEach(c=>{ |
| | | let arr=c.testValueList |
| | | let val='' |
| | | arr.forEach(a=>{ |
| | | val+=a+"," |
| | | }) |
| | | let end=val.substring(0,val.length-1) |
| | | c.testValue=end |
| | | c.testValue=c.testValueList.join(",") |
| | | }) |
| | | }) |
| | | data.rawInsProducts = this.list |
| | |
| | | <template> |
| | | <div style="word-wrap:break-word;text-justify-trim:punctuation"> |
| | | <div class="WordSection1" style="layout-grid:15.6pt;"> |
| | | <div align="center"> |
| | | <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" width="629" |
| | | style="width:620pt;border-collapse:collapse;border:1pt solid windowtext"> |
| | | <tbody> |
| | | <tr> |
| | | <td width="199" rowspan="2" style="width:149.45pt;border:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:12.0pt;font-family:"Arial",sans-serif"><img width="174" |
| | | height="58" id="logo" src="../../../../public/img/image001.jpg" |
| | | alt="IMG_256"></span></p> |
| | | </td> |
| | | <td width="226" style="width:169.65pt;border:solid windowtext 1.0pt;border-left: |
| | | 1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <div> |
| | | <div class="page" style="word-wrap:break-word;text-justify-trim:punctuation" :key="i" v-for="(project,i) in projectList"> |
| | | <div style="width:100%;height:10pt"></div> |
| | | <div class="WordSection1" style="layout-grid:15.6pt;"> |
| | | <div align="center"> |
| | | <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" width="629" |
| | | style="width:620pt;border-collapse:collapse;border:1pt solid windowtext"> |
| | | <tbody> |
| | | <tr> |
| | | <td width="199" rowspan="2" style="width:149.45pt;border:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:12.0pt;font-family:"Arial",sans-serif"><img width="174" |
| | | height="58" id="logo" src="../../../../public/img/image001.jpg" |
| | | alt="IMG_256"></span></p> |
| | | </td> |
| | | <td width="226" style="width:169.65pt;border:solid windowtext 1.0pt;border-left: |
| | | 1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:10.0pt;font-family:å®ä½">è®°å½åç§°ï¼æ£éªè®°å½è¡¨</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">Table: Inspection |
| | | Record</span></p> |
| | | </td> |
| | | <td width="204" style="width:152.8pt;border:solid windowtext 1.0pt;border-left: |
| | | 1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:10.0pt;font-family:å®ä½">ä¿åæéï¼</span><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">25</span><span |
| | | style="font-size:10.0pt;font-family:å®ä½">å¹´</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">Storage Life: 25 |
| | | years</span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="226" style="width:169.65pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext; |
| | | border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:10.0pt;font-family:å®ä½">è®°å½ç¼å·ï¼</span><a name="OLE_LINK1"><span |
| | | lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">ZTT/QR-8.6-07</span></a><span |
| | | style="font-size:10.0pt;font-family:å®ä½">ï¼</span><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">A/0</span><span |
| | | style="font-size:10.0pt;font-family:å®ä½">ï¼</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">Record No.: |
| | | ZTT/QR-8.6-07</span></p> |
| | | </td> |
| | | <td width="204" style="width:152.8pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext; |
| | | border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:10.0pt;font-family:å®ä½">彿¡£é¨é¨ï¼è´¨éä¿è¯é¨</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">Department: QC</span> |
| | | </p> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | <p class="MsoNormal" align="center" style="margin-top:7.8pt;margin-bottom:3pt;text-align:center"> |
| | | <span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> </span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">æ£éªè®°å½è¡¨</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif">-</span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">æºå 工件</span><span style="font-size:10.0pt;font-family:"Arial",sans-serif"> </span><span style="font-size:10.0pt;font-family:å®ä½">ï¼</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif">Inpection Record-machining </span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">ï¼</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> </span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">页ç ï¼</span> |
| | | <span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> Page No.</span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">ï¼ï¼</span> |
| | | <span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> |
| | | {{i+1}} |
| | | </span> |
| | | </p> |
| | | <div align="center"> |
| | | <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" width="628" |
| | | style="width:620pt;border-collapse:collapse;border:1pt solid windowtext"> |
| | | <tbody> |
| | | <tr> |
| | | <td width="121" colspan="2" style="width:120pt;height:50pt;border:solid windowtext 1.0pt;padding:1pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">é¶ä»¶åç§°</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Part Description</span> |
| | | </p> |
| | | </td> |
| | | <td width="127" colspan="5" style="width:95.5pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="project.name"></span> |
| | | </p> |
| | | </td> |
| | | <td width="113" colspan="3" style="width:84.95pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">å</span><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif"> |
| | | </span><span style="font-size:9.0pt;font-family:å®ä½">å·</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Model</span></p> |
| | | </td> |
| | | <td width="86" colspan="4" style="width:64.65pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="project.specs"></span></p> |
| | | </td> |
| | | <td width="72" colspan="2" style="width:54.35pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">å å·¥åå·</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Order No.</span></p> |
| | | </td> |
| | | <td width="128" colspan="3" style="width:96.0pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="project.rmessage.split(',')[0]"></span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="101" colspan="2" style="width:110pt;height:50pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 1.4pt 0.2cm 1.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">æ£éªä»ªå¨</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Inspection |
| | | instrument</span></p> |
| | | </td> |
| | | <td width="127" colspan="5" style="width:95.5pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="deviceStr"></span></p> |
| | | </td> |
| | | <td width="113" colspan="3" style="width:84.95pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">æ£éªæ°é</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Quantity to |
| | | check</span></p> |
| | | </td> |
| | | <td width="86" colspan="4" style="width:64.65pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="project.number"></span></p> |
| | | </td> |
| | | <td width="72" colspan="2" style="width:54.35pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">ä¾è´§åä½</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Supplier</span></p> |
| | | </td> |
| | | <td width="128" colspan="3" style="width:96.0pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="project.supplier"></span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="145" colspan="3" style="width:109.1pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 0.4pt 0.2cm 0.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">æ£éªé¡¹ç®</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Inspection Item</span> |
| | | </p> |
| | | </td> |
| | | <td width="408" colspan="14" style="width:306.35pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">æ£éªç»æï¼å®æµå¼ï¼</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Test result (Measured |
| | | value)</span></p> |
| | | </td> |
| | | <td width="74" rowspan="2" colspan="2" style="width:55.8pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 3.4pt 0.2cm 3.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">å¤å®</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Conclusion</span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="145" colspan="5" style="width:109.1pt;height:40pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.4cm 5.4pt 0.4cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">ææ¯è¦æ±</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Technical |
| | | Requirement</span></p> |
| | | </td> |
| | | <td width="59" colspan="4" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 4.4pt 0.2cm 4.4pt"> |
| | | <div class="MsoNormal" align="center" style="text-align:center"> |
| | | <span style="font-size:9.0pt;font-family:å®ä½">å
¬å·®</span> |
| | | <p lang="EN-US" style="font-size:9.0pt;text-align: center;font-family:"Arial",sans-serif">TOL</p> |
| | | </div> |
| | | </td> |
| | | <td width="43" v-for="(item,index) in columnLength" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">{{(item+(i*columnLength)) | formateNum}}</span></p> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <tbody v-for="(item,index) in project.children" :key="index"> |
| | | <tr style="height:19.85pt"> |
| | | <td width="85" colspan="2" :rowspan="item.children.length" style="width:63.95pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-family:å®ä½" v-text="item.rpFather"></span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"></span></p> |
| | | </td> |
| | | <td width="60" colspan="3" style="width:65.15pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="item.children[0].rpName"></span></p> |
| | | </td> |
| | | <td width="59" colspan="4" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="item.children[0].required"></span></p> |
| | | </td> |
| | | <td width="43" v-for="(val,index) in item.children[0].testValList" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{val}}</span></p> |
| | | </td> |
| | | <td width="74" colspan="2" style="width:70pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt"> |
| | | <p v-if="item.children[0].testState=='1'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">åæ ¼</span></p> |
| | | <p v-if="item.children[0].testState=='0'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">ä¸åæ ¼</span></p> |
| | | <p v-else class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"></span></p> |
| | | </td> |
| | | </tr> |
| | | <tr class="pageTr" style="height:19.85pt" v-for="(j,index) in (item.children.slice(1))" :key="index"> |
| | | <td width="60" colspan="3" style="width:45.15pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{j.rpName}}</span></p> |
| | | </td> |
| | | <td width="59" colspan="4" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{j.required}}</span></p> |
| | | </td> |
| | | <td width="59" v-for="(testValue,index) in j.testValList" :key="index" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{testValue}}</span></p> |
| | | </td> |
| | | <td width="43" colspan="2" style="width:70pt;border:1pt solid windowtext;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif"> |
| | | {{ j.testState | formatState}} |
| | | </span> |
| | | </p> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <!-- bottom --> |
| | | <tr style="height:40.95pt" class="pageTr"> |
| | | <td width="145" colspan="3" style="width:109.1pt;border:solid windowtext 1.0pt; |
| | | border-top:1pt solid windowtext;padding:0cm 5.4pt 0cm 5.4pt;height:40.95pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:10.0pt;font-family:å®ä½">è®°å½åç§°ï¼æ£éªè®°å½è¡¨</span></p> |
| | | style="font-family:å®ä½">å¤</span><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"> |
| | | </span><span style="font-family:å®ä½">注</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">Table: Inspection |
| | | Record</span></p> |
| | | style="font-family:"Arial",sans-serif">Remark</span></p> |
| | | </td> |
| | | <td width="204" style="width:152.8pt;border:solid windowtext 1.0pt;border-left: |
| | | 1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:10.0pt;font-family:å®ä½">ä¿åæéï¼</span><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">25</span><span |
| | | style="font-size:10.0pt;font-family:å®ä½">å¹´</span></p> |
| | | <td width="483" colspan="16" style="width:362.15pt;border-top:1pt solid windowtext;border-left: |
| | | 1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt;height:40.95pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">Storage Life: 25 |
| | | years</span></p> |
| | | style="font-family:"Arial",sans-serif"> </span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="226" style="width:169.65pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext; |
| | | border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <td width="145" colspan="3" style="width:109.1pt;border:none; |
| | | border-top:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:10.0pt;font-family:å®ä½">è®°å½ç¼å·ï¼</span><a name="OLE_LINK1"><span |
| | | lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">ZTT/QR-8.6-07</span></a><span |
| | | style="font-size:10.0pt;font-family:å®ä½">ï¼</span><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">A/0</span><span |
| | | style="font-size:10.0pt;font-family:å®ä½">ï¼</span></p> |
| | | style="font-family:å®ä½">æ£éªå</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">Record No.: |
| | | ZTT/QR-8.6-07</span></p> |
| | | style="font-family:"Arial",sans-serif">Inspector</span></p> |
| | | </td> |
| | | <td width="204" style="width:152.8pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext; |
| | | border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:10.0pt;font-family:å®ä½">彿¡£é¨é¨ï¼è´¨éä¿è¯é¨</span></p> |
| | | <td width="120" colspan="4" style="width:90.25pt;border-top:1pt solid windowtext;border-left: |
| | | 1pt solid windowtext;border-bottom:none;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:10.0pt;font-family:"Arial",sans-serif">Department: QC</span> |
| | | style="font-family:"Arial",sans-serif" v-text="tableData.createUser"></span></p> |
| | | </td> |
| | | <td width="82" colspan="4" style="width:61.35pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext; |
| | | border-bottom:none;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-family:å®ä½">æ¥</span><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"> |
| | | </span><span style="font-family:å®ä½">æ</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">Date</span></p> |
| | | </td> |
| | | <td width="80" colspan="3" style="width:60.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext; |
| | | border-bottom:none;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="tableData.creatTime.split(' ')[0]"></span></p> |
| | | </td> |
| | | <td width="83" dis colspan="3" style="width:62.25pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:none;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span style="font-family:å®ä½">审</span> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif"> </span> |
| | | <span style="font-family:å®ä½">æ ¸</span> |
| | | </p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif">Audit</span> |
| | | </p> |
| | | </td> |
| | | <td width="117" colspan="2" style="width:88.1pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:none;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif"> </span> |
| | | </p> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <tr height="0"> |
| | | <td width="85" style="border:none"></td> |
| | | <td width="16" style="border:none"></td> |
| | | <td width="44" style="border:none"></td> |
| | | <td width="59" style="border:none"></td> |
| | | <td width="23" style="border:none"></td> |
| | | <td width="19" style="border:none"></td> |
| | | <td width="18" style="border:none"></td> |
| | | <td width="27" style="border:none"></td> |
| | | <td width="43" style="border:none"></td> |
| | | <td width="6" style="border:none"></td> |
| | | <td width="6" style="border:none"></td> |
| | | <td width="32" style="border:none"></td> |
| | | <td width="43" style="border:none"></td> |
| | | <td width="6" style="border:none"></td> |
| | | <td width="40" style="border:none"></td> |
| | | <td width="32" style="border:none"></td> |
| | | <td width="11" style="border:none"></td> |
| | | <td width="43" style="border:none"></td> |
| | | <td width="74" style="border:none"></td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | <p class="MsoNormal" align="center" style="margin-top:7.8pt;margin-bottom:3pt;text-align:center"> |
| | | <span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> </span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">æ£éªè®°å½è¡¨</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif">-</span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">æºå 工件</span><span style="font-size:10.0pt;font-family:"Arial",sans-serif"> </span><span style="font-size:10.0pt;font-family:å®ä½">ï¼</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif">Inpection Record-machining </span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">ï¼</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> </span> |
| | | <span style="font-size:10.0pt;font-family:å®ä½">页ç ï¼</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> Page No.</span><span style="font-size:10.0pt;font-family:å®ä½">ï¼ï¼</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> </span> |
| | | </p> |
| | | <div align="center"> |
| | | <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" width="628" |
| | | style="width:620pt;border-collapse:collapse;border:1pt solid windowtext"> |
| | | <tbody> |
| | | <tr> |
| | | <td width="121" colspan="2" style="width:120pt;height:50pt;border:solid windowtext 1.0pt;padding:1pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">é¶ä»¶åç§°</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Part Description</span> |
| | | </p> |
| | | </td> |
| | | <td width="127" colspan="5" style="width:95.5pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="tableData.name"></span> |
| | | </p> |
| | | </td> |
| | | <td width="113" colspan="3" style="width:84.95pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">å</span><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif"> |
| | | </span><span style="font-size:9.0pt;font-family:å®ä½">å·</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Model</span></p> |
| | | </td> |
| | | <td width="86" colspan="4" style="width:64.65pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="tableData.specs"></span></p> |
| | | </td> |
| | | <td width="72" colspan="2" style="width:54.35pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">å å·¥åå·</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Order No.</span></p> |
| | | </td> |
| | | <td width="128" colspan="3" style="width:96.0pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="tableData.rmessage.split(',')[0]"></span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="101" colspan="2" style="width:110pt;height:50pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 1.4pt 0.2cm 1.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">æ£éªä»ªå¨</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Inspection |
| | | instrument</span></p> |
| | | </td> |
| | | <td width="127" colspan="5" style="width:95.5pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="deviceStr"></span></p> |
| | | </td> |
| | | <td width="113" colspan="3" style="width:84.95pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">æ£éªæ°é</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Quantity to |
| | | check</span></p> |
| | | </td> |
| | | <td width="86" colspan="4" style="width:64.65pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="tableData.number"></span></p> |
| | | </td> |
| | | <td width="72" colspan="2" style="width:54.35pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">ä¾è´§åä½</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Supplier</span></p> |
| | | </td> |
| | | <td width="128" colspan="3" style="width:96.0pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="tableData.supplier"></span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="145" colspan="3" style="width:109.1pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 0.4pt 0.2cm 0.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">æ£éªé¡¹ç®</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Inspection Item</span> |
| | | </p> |
| | | </td> |
| | | <td width="408" colspan="15" style="width:306.35pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">æ£éªç»æï¼å®æµå¼ï¼</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Test result (Measured |
| | | value)</span></p> |
| | | </td> |
| | | <td width="74" rowspan="2" style="width:55.8pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 3.4pt 0.2cm 3.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">å¤å®</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Conclusion</span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="145" colspan="3" style="width:109.1pt;height:40pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.4cm 5.4pt 0.4cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:å®ä½">ææ¯è¦æ±</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Technical |
| | | Requirement</span></p> |
| | | </td> |
| | | <td width="59" colspan="3" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 4.4pt 0.2cm 4.4pt"> |
| | | <div class="MsoNormal" align="center" style="text-align:center"> |
| | | <span style="font-size:9.0pt;font-family:å®ä½">å
¬å·®</span> |
| | | <p lang="EN-US" style="font-size:9.0pt;text-align: center;font-family:"Arial",sans-serif">TOL</p> |
| | | </div> |
| | | </td> |
| | | <td width="43" v-for="(item,index) in columnLength" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">{{item>9?item:'0'+item}}</span></p> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <tbody v-for="(item,index) in projectList" :key="index"> |
| | | <tr style="height:19.85pt"> |
| | | <td width="85" :rowspan="item.children.length" style="width:63.95pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-family:å®ä½" v-text="item.rpFather"></span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"></span></p> |
| | | </td> |
| | | <td width="60" colspan="2" style="width:65.15pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="item.children[0].rpName"></span></p> |
| | | </td> |
| | | <td width="59" colspan="3" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="item.children[0].required"></span></p> |
| | | </td> |
| | | <td width="43" v-for="(val,index) in item.children[0].testValueList" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{val}}</span></p> |
| | | </td> |
| | | <td width="74" style="width:70pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt"> |
| | | <p v-if="item.children[0].testState=='1'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">åæ ¼</span></p> |
| | | <p v-if="item.children[0].testState=='0'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">ä¸åæ ¼</span></p> |
| | | <p v-else class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"></span></p> |
| | | </td> |
| | | </tr> |
| | | <tr class="pageTr" style="height:19.85pt" v-for="(j,index) in (item.children.slice(1))" :key="index"> |
| | | <td width="60" colspan="2" style="width:45.15pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{j.rpName}}</span></p> |
| | | </td> |
| | | <td width="59" colspan="3" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{j.required}}</span></p> |
| | | </td> |
| | | <td width="59" v-for="(testValue,index) in j.testValueList" :key="index" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{testValue}}</span></p> |
| | | </td> |
| | | <td width="43" colspan="1" style="width:70pt;border:1pt solid windowtext;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif"> |
| | | {{ j.testState | formatState}} |
| | | </span> |
| | | </p> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <!-- bottom --> |
| | | <tr style="height:40.95pt" class="pageTr"> |
| | | <td width="145" colspan="3" style="width:109.1pt;border:solid windowtext 1.0pt; |
| | | border-top:1pt solid windowtext;padding:0cm 5.4pt 0cm 5.4pt;height:40.95pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-family:å®ä½">å¤</span><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"> |
| | | </span><span style="font-family:å®ä½">注</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">Remark</span></p> |
| | | </td> |
| | | <td width="483" colspan="16" style="width:362.15pt;border-top:1pt solid windowtext;border-left: |
| | | 1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt;height:40.95pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"> </span></p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="145" colspan="3" style="width:109.1pt;border:none; |
| | | border-top:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-family:å®ä½">æ£éªå</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">Inspector</span></p> |
| | | </td> |
| | | <td width="120" colspan="4" style="width:90.25pt;border-top:1pt solid windowtext;border-left: |
| | | 1pt solid windowtext;border-bottom:none;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="tableData.createUser"></span></p> |
| | | </td> |
| | | <td width="82" colspan="4" style="width:61.35pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext; |
| | | border-bottom:none;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-family:å®ä½">æ¥</span><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"> |
| | | </span><span style="font-family:å®ä½">æ</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">Date</span></p> |
| | | </td> |
| | | <td width="80" colspan="3" style="width:60.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext; |
| | | border-bottom:none;border-right:solid windowtext 1.0pt; |
| | | padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="tableData.creatTime.split(' ')[0]"></span></p> |
| | | </td> |
| | | <td width="83" colspan="3" style="width:62.25pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:none;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span style="font-family:å®ä½">审</span> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif"> </span> |
| | | <span style="font-family:å®ä½">æ ¸</span> |
| | | </p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif">Audit</span> |
| | | </p> |
| | | </td> |
| | | <td width="117" colspan="2" style="width:88.1pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:none;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif"> </span> |
| | | </p> |
| | | </td> |
| | | </tr> |
| | | <tr height="0"> |
| | | <td width="85" style="border:none"></td> |
| | | <td width="16" style="border:none"></td> |
| | | <td width="44" style="border:none"></td> |
| | | <td width="59" style="border:none"></td> |
| | | <td width="23" style="border:none"></td> |
| | | <td width="19" style="border:none"></td> |
| | | <td width="18" style="border:none"></td> |
| | | <td width="27" style="border:none"></td> |
| | | <td width="43" style="border:none"></td> |
| | | <td width="6" style="border:none"></td> |
| | | <td width="6" style="border:none"></td> |
| | | <td width="32" style="border:none"></td> |
| | | <td width="43" style="border:none"></td> |
| | | <td width="6" style="border:none"></td> |
| | | <td width="40" style="border:none"></td> |
| | | <td width="32" style="border:none"></td> |
| | | <td width="11" style="border:none"></td> |
| | | <td width="43" style="border:none"></td> |
| | | <td width="74" style="border:none"></td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | <p class="MsoNormal"><span lang="EN-US"> </span></p> |
| | | <p class="MsoNormal"><span lang="EN-US"> </span></p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | } |
| | | } |
| | | }, |
| | | created(){ |
| | | this.tableData = this.formData |
| | | this.initData() |
| | | }, |
| | | watch:{ |
| | | formData(newVal){ |
| | | if(newVal){ |
| | | this.projectList = [] |
| | | this.tableData = newVal |
| | | this.initData() |
| | | } |
| | | } |
| | | }, |
| | | data(){ |
| | | return{ |
| | | tableData: null, |
| | | projectList: [], |
| | | deviceStr: null, |
| | | childrenData: [], |
| | | columnLength: 12, |
| | | columnLength: 8, |
| | | } |
| | | }, |
| | | filters:{ |
| | |
| | | return null |
| | | } |
| | | return null |
| | | }, |
| | | formateNum(val){ |
| | | if(val!=null && val < 10){ |
| | | return '0'+val |
| | | } |
| | | return val |
| | | } |
| | | }, |
| | | methods:{ |
| | | initData(){ |
| | | let deviceNameList = [] |
| | | let maxLen = 0 |
| | | let pageSize = 0 |
| | | if(this.tableData.children){ |
| | | this.tableData.children.forEach(e => { |
| | | this.projectList.push(e) |
| | | if(e.children){ |
| | | e.children.forEach(o =>{ |
| | | if(o.testValue){ |
| | | let testValList = o.testValue.split(",") |
| | | if( testValList.length > maxLen){ |
| | | maxLen = testValList.length |
| | | } |
| | | } |
| | | if(o.deviceName){ |
| | | deviceNameList.push(o.deviceName) |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | pageSize = Math.ceil(Number(maxLen)/Number(this.columnLength)) |
| | | this.tableData.children.forEach(ele=>{ |
| | | if(ele.children){ |
| | | ele.children.forEach(obj =>{ |
| | | let testValList = [] |
| | | if(obj.testValue){ |
| | | testValList = obj.testValue.split(",") |
| | | } |
| | | let size = (this.columnLength*pageSize) - (testValList.length) |
| | | obj.testValList = testValList |
| | | for(var i=0;i<size;i++){ |
| | | obj.testValList.push('') |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | this.pageDataFun(pageSize,this.tableData) |
| | | this.deviceStr = Array.from(new Set(deviceNameList)).join(",") |
| | | }, |
| | | initProjectList(list){ |
| | | //è·åæ¯é¡µçæ£éªé¡¹ç® |
| | | pageDataFun(pageSize,data){ |
| | | let tabData = [] |
| | | if(pageSize>0 && data){ |
| | | for(var i=0;i<pageSize;i++){ |
| | | let obj = JSON.parse(JSON.stringify(data)) |
| | | if(obj.children){ |
| | | obj.children.forEach(o=>{ |
| | | if(o.children){ |
| | | o.children.forEach(e=>{ |
| | | if(e.testValList){ |
| | | let colLen = this.columnLength |
| | | let start = colLen*i |
| | | let end = ((1+i)*colLen) |
| | | e.testValList = e.testValList.slice(start,end) |
| | | tabData.push(obj) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.initRow(obj.children) |
| | | } |
| | | } |
| | | } |
| | | this.projectList = tabData |
| | | }, |
| | | initRow(list){ |
| | | const data = { |
| | | deviceId: '', |
| | | deviceName: '', |
| | |
| | | rpUnit: '', |
| | | testState: null, |
| | | userName: '', |
| | | testValueList: new Array(this.columnLength) |
| | | testValList: new Array(this.columnLength) |
| | | } |
| | | let rowNum = 15 |
| | | let columnNum = this.columnLength |
| | | if(list && list.length<2){ |
| | | list.forEach(item=>{ |
| | | if(item.children && item.children.length < rowNum){ |
| | | rowNum-=item.children.length |
| | | for(let j=0;j<item.children.length;j++){ |
| | | let arr = [] |
| | | if(item.children[j].testValue){ |
| | | arr = item.children[j].testValue.split(",") |
| | | } |
| | | item.children[j].testValueList = arr |
| | | if(item.children[0].testValueList.length< columnNum ){ |
| | | let num = columnNum - item.children[j].testValueList.length |
| | | for(let i=0;i<num;i++){ |
| | | item.children[j].testValueList.push("") |
| | | } |
| | | } |
| | | } |
| | | for(let i=0;i< rowNum;i++){ |
| | | item.children.push(data) |
| | | } |
| | |
| | | list.forEach(item=>{ |
| | | if(item.children){ |
| | | size+=item.children.length |
| | | item.children.forEach(obj=>{ |
| | | if(obj.testValue){ |
| | | let testValueList = obj.testValue.split(",") |
| | | obj.testValueList = testValueList |
| | | if(testValueList.length < columnNum){ |
| | | let len = columnNum-testValueList.length |
| | | for(var i=0;i<len;i++){ |
| | | obj.testValueList.push("") |
| | | } |
| | | } |
| | | }else{ |
| | | obj.testValueList = new Array(12) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | if(size < rowNum){ |
| | |
| | | } |
| | | } |
| | | } |
| | | this.projectList = list |
| | | } |
| | | }, |
| | | }, |
| | | created(){ |
| | | this.tableData = this.formData |
| | | this.initData() |
| | | this.initProjectList(this.projectList) |
| | | }, |
| | | watch:{ |
| | | formData(newVal){ |
| | | if(newVal){ |
| | | this.projectList = [] |
| | | this.tableData = newVal |
| | | this.initData() |
| | | this.initProjectList(this.projectList) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | .pageTr{ |
| | | page-break-inside: avoid; |
| | | } |
| | | .page{ |
| | | page-break-inside: avoid; |
| | | } |
| | | div.WordSection1{ |
| | | page : WordSection1; |
| | | } |
| | |
| | | align="center" |
| | | width="50" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="æ¯å¦å¼ç¨å·¥èºåæ°" |
| | | prop="isReference" |
| | | align="center" |
| | |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.wireCore"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column label="åæ°ç¼å·" prop="code" align="center" /> |
| | | <el-table-column |
| | | label="忰项" |
| | |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.parameterFormat"></el-input> |
| | | </template> |
| | | </el-table-column><el-table-column |
| | | label="æµè¯æ¹æ³" |
| | | prop="purpose" |
| | | align="center" |
| | | width="80" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.purpose"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æµè¯ç®ç" |
| | | prop="method" |
| | | align="center" |
| | | width="80" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.method"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <!-- <el-table-column |
| | | label="éé" |
| | | prop="aisle" |
| | | align="center" |
| | |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.position"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column label="åä½" prop="unit" align="center" /> |
| | | <!--<el-table-column label="åæ°ç±»å" prop="type" align="center" :formatter="getParam"/>--> |
| | | <el-table-column label="æä½" align="center"> |
| | |
| | | v-if="editable" |
| | | >æå
¥ |
| | | </el-button> |
| | | <el-button |
| | | <!-- <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click.stop="editTestStandardParam(scope.row)" |
| | | v-if="editable && scope.row.id != null" |
| | | >å
¬å¼ |
| | | </el-button> |
| | | </el-button> --> |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | |
| | | ZttMonacoEditor, |
| | | operationDialog |
| | | }, |
| | | watch:{ |
| | | visible(newVal){ |
| | | if(!newVal){ |
| | | this.dataForm = { |
| | | id: 0, |
| | | standardName: '', |
| | | standardNo: '', |
| | | remark: '', |
| | | judgeFormula: '', |
| | | inspectionType: null, |
| | | operationId: null, |
| | | operationNo: null, |
| | | operationName: null, |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.funcs = funcForStandard() |
| | | this.constants = constantForStandard() |
| | |
| | | if (this.dataForm.id) { |
| | | getTestStandard(this.dataForm.id).then((response) => { |
| | | this.dataForm = response.data.data |
| | | this.$refs.templateJudgmentCondition.setVal( |
| | | this.dataForm.judgeFormula == null |
| | | ? '' |
| | | : this.dataForm.judgeFormula |
| | | ) |
| | | // this.$refs.templateJudgmentCondition.setVal( |
| | | // this.dataForm.judgeFormula == null |
| | | // ? '' |
| | | // : this.dataForm.judgeFormula |
| | | // ) |
| | | }) |
| | | this.params = [] |
| | | getTestStandardParams( |
| | |
| | | // 表åæäº¤ |
| | | dataFormSubmit() { |
| | | this.isSubmit = true |
| | | // æ ¡éªå¤å®å
¬å¼ |
| | | let judgeFormula = this.$refs.templateJudgmentCondition.getVal() |
| | | // æ¿æ¢å
¬å¼ä¸çpi常é为3.14 |
| | | if (judgeFormula.length > 0) { |
| | | const piExistIndex = judgeFormula.indexOf('pi') |
| | | if (piExistIndex >= 0) { |
| | | judgeFormula = judgeFormula.replace(/pi/g, '3.14') |
| | | } |
| | | } |
| | | // æ¿æ¢å
¬å¼ä¸çpassAll()彿°ä¸ºtrue |
| | | if (judgeFormula.length > 0) { |
| | | const piExistIndex = judgeFormula.indexOf('passAll()') |
| | | if (piExistIndex >= 0) { |
| | | judgeFormula = judgeFormula.replace(/passAll[(][)]/g, 'true') |
| | | } |
| | | } |
| | | // å
å¤å®å
¬å¼ä¸å½æ°æ ¼å¼æ¯å¦æ£ç¡®ï¼åç¨é»è®¤å¼è®¡ç®åºå½æ°å¼ï¼æ¿æ¢è¿å
¬å¼ï¼æåå°å
¬å¼ä¸å©ä½çåæ°è¿è¡é»è®¤å¼æ¿æ¢ï¼å©ç¨js eval彿°è¿è¡å
¬å¼æ ¡éª |
| | | let flag = true |
| | | let funcEl |
| | | for (let j = 0; j < this.funcs.length; j++) { |
| | | funcEl = this.funcs[j] |
| | | // 计ç®å½æ°å
³é®å¨å
¬å¼ä¸åºç°çæ¬¡æ° |
| | | const num = this.getNumCharInStr(judgeFormula, funcEl.name, 0) |
| | | // forå¾ªç¯æ¬¡æ°æ ¡éªæ¿æ¢ |
| | | for (let k = 0; k < num; k++) { |
| | | const existIndex = judgeFormula.indexOf(funcEl.name) |
| | | if (existIndex >= 0) { |
| | | // 彿°å
³é®åå¨å
¬å¼ä¸åå¨ |
| | | const prefixStr = judgeFormula.substring(0, existIndex) |
| | | const startToEndStr = judgeFormula.substring( |
| | | existIndex + funcEl.name.length |
| | | ) |
| | | if (startToEndStr.length > 0) { |
| | | const paramStartIndex = startToEndStr.indexOf('(') |
| | | const paramEndIndex = startToEndStr.indexOf(')') |
| | | if (paramStartIndex === 0 && paramEndIndex > 0) { |
| | | const suffixStr = startToEndStr.substring(paramEndIndex + 1) |
| | | const paramStr = startToEndStr.substring( |
| | | paramStartIndex + 1, |
| | | paramEndIndex |
| | | ) |
| | | if (paramStr.trim() !== '') { |
| | | const paramArr = paramStr.split(',') |
| | | if (paramArr.length > 0) { |
| | | if ( |
| | | (funcEl.singleParam && paramArr.length === 1) || |
| | | !funcEl.singleParam |
| | | ) { |
| | | let paramFlag = true |
| | | for (let i = 0; i < paramArr.length; i++) { |
| | | const param = this.params.find( |
| | | (item) => |
| | | paramArr[i].trim() === 'V[' + item.code + ']' |
| | | ) |
| | | if (param !== undefined) { |
| | | } else { |
| | | flag = false |
| | | paramFlag = false |
| | | this.$message.error('彿°åæ°ä¸åå¨') |
| | | } |
| | | } |
| | | if (paramFlag) { |
| | | if (funcEl.returnType === 'number') { |
| | | judgeFormula = prefixStr + '1' + suffixStr |
| | | } else { |
| | | judgeFormula = prefixStr + 'true' + suffixStr |
| | | } |
| | | } else { |
| | | break |
| | | } |
| | | } else { |
| | | flag = false |
| | | this.$message.error('彿°åæ°ä¸ªæ°ä¸æ£ç¡®') |
| | | break |
| | | } |
| | | } else { |
| | | break |
| | | } |
| | | } else { |
| | | flag = false |
| | | this.$message.error('彿°å¿
é¡»è¦æåæ°') |
| | | break |
| | | } |
| | | } else { |
| | | flag = false |
| | | this.$message.error( |
| | | '彿°éå
å«å·¦å³å°æ¬å·ï¼ä¸å·¦ä¾§å°æ¬å·éç´§é»å½æ°' |
| | | ) |
| | | break |
| | | } |
| | | } else { |
| | | flag = false |
| | | this.$message.error('彿°éå
å«å·¦å³å°æ¬å·') |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (flag) { |
| | | // å°å
¬å¼ä¸å©ä½çåæ°è¿è¡é»è®¤å¼æ¿æ¢ |
| | | let param |
| | | for (let x = 0; x < this.params.length; x++) { |
| | | param = this.params[x] |
| | | // 计ç®åæ°å¨å
¬å¼ä¸åºç°çæ¬¡æ° |
| | | const num = this.getNumCharInStr( |
| | | judgeFormula, |
| | | 'V[' + param.code + ']', |
| | | 0 |
| | | ) |
| | | // forå¾ªç¯æ¬¡æ°æ ¡éªæ¿æ¢ |
| | | for (let y = 0; y < num; y++) { |
| | | const existIndex = judgeFormula.indexOf('V[' + param.code + ']') |
| | | if (existIndex >= 0) { |
| | | const prefixStr = judgeFormula.substring(0, existIndex) |
| | | const suffixStr = judgeFormula.substring( |
| | | existIndex + ('V[' + param.code + ']').length |
| | | ) |
| | | judgeFormula = prefixStr + this.getRandom() + suffixStr |
| | | } |
| | | } |
| | | } |
| | | try { |
| | | eval(judgeFormula) |
| | | } catch (exception) { |
| | | flag = false |
| | | } |
| | | if (flag) { |
| | | this.dataForm.judgeFormula = this.$refs.templateJudgmentCondition.getVal() |
| | | this.$refs.dataForm.validate((valid) => { |
| | | if (valid) { |
| | | if (this.dataForm.id) { |
| | | putTestStandard(this.dataForm).then((data) => { |
| | | this.$message.success('ä¿®æ¹æå') |
| | | this.visible = false |
| | | this.isSubmit = false |
| | | this.$emit('refreshDataList') |
| | | }) |
| | | } else { |
| | | addTestStandard(this.dataForm).then((data) => { |
| | | this.$message.success('æ·»å æå') |
| | | this.visible = false |
| | | this.isSubmit = false |
| | | this.$emit('refreshDataList') |
| | | }) |
| | | } |
| | | } else { |
| | | this.$refs.dataForm.validate((valid) => { |
| | | if (valid) { |
| | | if (this.dataForm.id) { |
| | | putTestStandard(this.dataForm).then((data) => { |
| | | this.$message.success('ä¿®æ¹æå') |
| | | this.visible = false |
| | | this.isSubmit = false |
| | | } |
| | | }) |
| | | this.$emit('refreshDataList') |
| | | }) |
| | | } else { |
| | | addTestStandard(this.dataForm).then((data) => { |
| | | this.$message.success('æ·»å æå') |
| | | this.visible = false |
| | | this.isSubmit = false |
| | | this.$emit('refreshDataList') |
| | | }) |
| | | } |
| | | } else { |
| | | this.isSubmit = false |
| | | this.$message.error('å
¬å¼æ ¼å¼é误ï¼è¯·ä»ç»æ£æ¥') |
| | | } |
| | | } else { |
| | | this.isSubmit = false |
| | | } |
| | | }) |
| | | // æ ¡éªå¤å®å
¬å¼ |
| | | // let judgeFormula = this.$refs.templateJudgmentCondition.getVal() |
| | | // // æ¿æ¢å
¬å¼ä¸çpi常é为3.14 |
| | | // if (judgeFormula.length > 0) { |
| | | // const piExistIndex = judgeFormula.indexOf('pi') |
| | | // if (piExistIndex >= 0) { |
| | | // judgeFormula = judgeFormula.replace(/pi/g, '3.14') |
| | | // } |
| | | // } |
| | | // // æ¿æ¢å
¬å¼ä¸çpassAll()彿°ä¸ºtrue |
| | | // if (judgeFormula.length > 0) { |
| | | // const piExistIndex = judgeFormula.indexOf('passAll()') |
| | | // if (piExistIndex >= 0) { |
| | | // judgeFormula = judgeFormula.replace(/passAll[(][)]/g, 'true') |
| | | // } |
| | | // } |
| | | // // å
å¤å®å
¬å¼ä¸å½æ°æ ¼å¼æ¯å¦æ£ç¡®ï¼åç¨é»è®¤å¼è®¡ç®åºå½æ°å¼ï¼æ¿æ¢è¿å
¬å¼ï¼æåå°å
¬å¼ä¸å©ä½çåæ°è¿è¡é»è®¤å¼æ¿æ¢ï¼å©ç¨js eval彿°è¿è¡å
¬å¼æ ¡éª |
| | | // let flag = true |
| | | // let funcEl |
| | | // for (let j = 0; j < this.funcs.length; j++) { |
| | | // funcEl = this.funcs[j] |
| | | // // 计ç®å½æ°å
³é®å¨å
¬å¼ä¸åºç°çæ¬¡æ° |
| | | // const num = this.getNumCharInStr(judgeFormula, funcEl.name, 0) |
| | | // // forå¾ªç¯æ¬¡æ°æ ¡éªæ¿æ¢ |
| | | // for (let k = 0; k < num; k++) { |
| | | // const existIndex = judgeFormula.indexOf(funcEl.name) |
| | | // if (existIndex >= 0) { |
| | | // // 彿°å
³é®åå¨å
¬å¼ä¸åå¨ |
| | | // const prefixStr = judgeFormula.substring(0, existIndex) |
| | | // const startToEndStr = judgeFormula.substring( |
| | | // existIndex + funcEl.name.length |
| | | // ) |
| | | // if (startToEndStr.length > 0) { |
| | | // const paramStartIndex = startToEndStr.indexOf('(') |
| | | // const paramEndIndex = startToEndStr.indexOf(')') |
| | | // if (paramStartIndex === 0 && paramEndIndex > 0) { |
| | | // const suffixStr = startToEndStr.substring(paramEndIndex + 1) |
| | | // const paramStr = startToEndStr.substring( |
| | | // paramStartIndex + 1, |
| | | // paramEndIndex |
| | | // ) |
| | | // if (paramStr.trim() !== '') { |
| | | // const paramArr = paramStr.split(',') |
| | | // if (paramArr.length > 0) { |
| | | // if ( |
| | | // (funcEl.singleParam && paramArr.length === 1) || |
| | | // !funcEl.singleParam |
| | | // ) { |
| | | // let paramFlag = true |
| | | // for (let i = 0; i < paramArr.length; i++) { |
| | | // const param = this.params.find( |
| | | // (item) => |
| | | // paramArr[i].trim() === 'V[' + item.code + ']' |
| | | // ) |
| | | // if (param !== undefined) { |
| | | // } else { |
| | | // flag = false |
| | | // paramFlag = false |
| | | // this.$message.error('彿°åæ°ä¸åå¨') |
| | | // } |
| | | // } |
| | | // if (paramFlag) { |
| | | // if (funcEl.returnType === 'number') { |
| | | // judgeFormula = prefixStr + '1' + suffixStr |
| | | // } else { |
| | | // judgeFormula = prefixStr + 'true' + suffixStr |
| | | // } |
| | | // } else { |
| | | // break |
| | | // } |
| | | // } else { |
| | | // flag = false |
| | | // this.$message.error('彿°åæ°ä¸ªæ°ä¸æ£ç¡®') |
| | | // break |
| | | // } |
| | | // } else { |
| | | // break |
| | | // } |
| | | // } else { |
| | | // flag = false |
| | | // this.$message.error('彿°å¿
é¡»è¦æåæ°') |
| | | // break |
| | | // } |
| | | // } else { |
| | | // flag = false |
| | | // this.$message.error( |
| | | // '彿°éå
å«å·¦å³å°æ¬å·ï¼ä¸å·¦ä¾§å°æ¬å·éç´§é»å½æ°' |
| | | // ) |
| | | // break |
| | | // } |
| | | // } else { |
| | | // flag = false |
| | | // this.$message.error('彿°éå
å«å·¦å³å°æ¬å·') |
| | | // break |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // if (flag) { |
| | | // // å°å
¬å¼ä¸å©ä½çåæ°è¿è¡é»è®¤å¼æ¿æ¢ |
| | | // let param |
| | | // for (let x = 0; x < this.params.length; x++) { |
| | | // param = this.params[x] |
| | | // // 计ç®åæ°å¨å
¬å¼ä¸åºç°çæ¬¡æ° |
| | | // const num = this.getNumCharInStr( |
| | | // judgeFormula, |
| | | // 'V[' + param.code + ']', |
| | | // 0 |
| | | // ) |
| | | // // forå¾ªç¯æ¬¡æ°æ ¡éªæ¿æ¢ |
| | | // for (let y = 0; y < num; y++) { |
| | | // const existIndex = judgeFormula.indexOf('V[' + param.code + ']') |
| | | // if (existIndex >= 0) { |
| | | // const prefixStr = judgeFormula.substring(0, existIndex) |
| | | // const suffixStr = judgeFormula.substring( |
| | | // existIndex + ('V[' + param.code + ']').length |
| | | // ) |
| | | // judgeFormula = prefixStr + this.getRandom() + suffixStr |
| | | // } |
| | | // } |
| | | // } |
| | | // try { |
| | | // eval(judgeFormula) |
| | | // } catch (exception) { |
| | | // flag = false |
| | | // } |
| | | // if (flag) { |
| | | // this.dataForm.judgeFormula = this.$refs.templateJudgmentCondition.getVal() |
| | | |
| | | // } else { |
| | | // this.isSubmit = false |
| | | // this.$message.error('å
¬å¼æ ¼å¼é误ï¼è¯·ä»ç»æ£æ¥') |
| | | // } |
| | | // } else { |
| | | // this.isSubmit = false |
| | | // } |
| | | }, |
| | | openOperationDialog() { |
| | | this.showOperate = true |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¿ä»£å·" prop="alternativeNo"> |
| | | <!-- <el-form-item label="æ¿ä»£å·" prop="alternativeNo"> |
| | | <el-input |
| | | v-model="treeForm.alternativeNo" |
| | | placeholder="æ¿ä»£å·" |
| | | disabled |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item label="æ¿ä»£æè¿°" prop="alternativeDesc"> |
| | | <!-- <el-form-item label="æ¿ä»£æè¿°" prop="alternativeDesc"> |
| | | <el-input |
| | | v-model="treeForm.alternativeDesc" |
| | | placeholder="æ¿ä»£æè¿°" |
| | | disabled |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item label="ç»ç¼é¢è²"> |
| | | <el-input |
| | | v-model="treeForm.insulationColor" |
| | | placeholder="ç»ç¼é¢è²" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¤å¥é¢è²"> |
| | | <!-- --> |
| | | <!-- <el-form-item label="æ¤å¥é¢è²"> |
| | | <el-input v-model="treeForm.sheathColor" placeholder="æ¤å¥é¢è²"> |
| | | </el-input> |
| | | </el-form-item> |
| | |
| | | placeholder="ç¹æ§1" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | <el-table-column label="é¶ä»¶åç§°" prop="partName"></el-table-column> |
| | | <el-table-column label="åä½" prop="unit"></el-table-column> |
| | | <el-table-column label="æ°é" prop="qpa"></el-table-column> |
| | | <el-table-column label="çæ°" prop="discNum"></el-table-column> |
| | | <!-- <el-table-column label="çæ°" prop="discNum"></el-table-column> --> |
| | | </el-table> |
| | | <!-- <el-table |
| | | class="tree-select-table" |
| | |
| | | import { |
| | | fetchList, |
| | | delObj, |
| | | addByStructure |
| | | addByStructure, |
| | | } from '@/api/technology/completeproductstructure' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | import { mapGetters } from 'vuex' |
| | | import { changeState } from '../../../api/technology/completeproductstructure' |
| | | import { remote } from '@/api/admin/dict' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | uploadInfo: { |
| | | // æ¯å¦å±ç¤ºä¸ä¼ EXCEL以å对åºçurl |
| | | isShow: true, |
| | | url: 'mes/bom/uploadExcel' |
| | | url: 'mes/bom/uploadExcel', |
| | | }, |
| | | prelang: 'completeProductStructure', |
| | | options: { |
| | |
| | | isRefresh: true, // æ¯å¦æ¾ç¤ºå·æ°æé® |
| | | isShowHide: true, // æ¯å¦æ¾ç¤ºæ¾å½±æé® |
| | | isSearch: false, // é«çº§æ¥è¯¢æé® |
| | | defaultOrderBy: { column: 'id', direction: 'desc' } |
| | | defaultOrderBy: { column: 'id', direction: 'desc' }, |
| | | }, |
| | | table: { |
| | | total: 0, |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | render: { fun: this.addOrUpdateHandle } |
| | | render: { fun: this.addOrUpdateHandle }, |
| | | }, |
| | | // é¶ä»¶åç§° |
| | | { |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | // é¶ä»¶å· |
| | | { |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | |
| | | // ç¶æ |
| | |
| | | formatVal = '已忶' |
| | | } |
| | | return formatVal |
| | | } |
| | | }, |
| | | }, |
| | | |
| | | // ç±»å |
| | |
| | | formatter: this.formatBomTypeDbType, |
| | | optList: () => { |
| | | return this.bomTypeDbOptions |
| | | } |
| | | }, |
| | | }, |
| | | // çæ¬å· |
| | | { |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | |
| | | // æ¿ä»£å· |
| | | { |
| | | minWidth: '120', |
| | | prop: 'alternativeNo', |
| | | label: 'æ¿ä»£å·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'alternativeNo', |
| | | // label: 'æ¿ä»£å·', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | |
| | | // æ¿ä»£æè¿° |
| | | { |
| | | minWidth: '120', |
| | | prop: 'alternativeDesc', |
| | | label: 'æ¿ä»£æè¿°', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'alternativeDesc', |
| | | // label: 'æ¿ä»£æè¿°', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | |
| | | // ç»ç¼é¢è² |
| | | { |
| | | minWidth: '120', |
| | | prop: 'insulationColor', |
| | | label: 'ç»ç¼é¢è²', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'insulationColor', |
| | | // label: 'ç»ç¼é¢è²', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | // æ¤å¥é¢è² |
| | | { |
| | | minWidth: '120', |
| | | prop: 'sheathColor', |
| | | label: 'æ¤å¥é¢è²', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'sheathColor', |
| | | // label: 'æ¤å¥é¢è²', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | // ç¹æ§1 |
| | | { |
| | | minWidth: '120', |
| | | prop: 'characteristicOne', |
| | | label: 'ç¹æ§1', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'characteristicOne', |
| | | // label: 'ç¹æ§1', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | // å建人 |
| | | { |
| | | minWidth: '120', |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | // å建æ¶é´ |
| | | { |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange' |
| | | } |
| | | searchInfoType: 'datetimerange', |
| | | }, |
| | | ], |
| | | toolbar: [ |
| | | // { |
| | |
| | | text: '产åç»æçæBOM', |
| | | fun: this.addByStructureHandle, |
| | | disabled: false, |
| | | permitArr: [] |
| | | permitArr: [], |
| | | }, |
| | | { |
| | | text: 'æ¹å', |
| | |
| | | this.approveHandle('ACCEPT') |
| | | }, |
| | | disabled: false, |
| | | permitArr: ['01draft'] |
| | | permitArr: ['01draft'], |
| | | }, |
| | | { |
| | | text: 'æ¤å', |
| | |
| | | this.approveHandle('REVOKE') |
| | | }, |
| | | disabled: false, |
| | | permitArr: ['02accepted'] |
| | | permitArr: ['02accepted'], |
| | | }, |
| | | { |
| | | text: 'æç»', |
| | |
| | | this.approveHandle('CANCEL') |
| | | }, |
| | | disabled: false, |
| | | permitArr: ['02accepted'] |
| | | permitArr: ['02accepted'], |
| | | }, |
| | | { |
| | | text: 'å é¤', |
| | |
| | | this.deleteAll() |
| | | }, |
| | | disabled: false, |
| | | permitArr: [] |
| | | } |
| | | permitArr: [], |
| | | }, |
| | | ], |
| | | operator: [ |
| | | { |
| | | text: 'å é¤', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | } |
| | | fun: this.deleteHandle, |
| | | }, |
| | | ], |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: 'æä½', |
| | | width: 100, |
| | | minWidth: 100 |
| | | } |
| | | minWidth: 100, |
| | | }, |
| | | }, |
| | | stateOptionList: [ |
| | | { |
| | | value: '01draft', |
| | | label: 'è稿' |
| | | label: 'è稿', |
| | | }, |
| | | { |
| | | value: '02accepted', |
| | | label: 'å·²æ¥å' |
| | | label: 'å·²æ¥å', |
| | | }, |
| | | { |
| | | value: '03cancelled', |
| | | label: '已忶' |
| | | } |
| | | label: '已忶', |
| | | }, |
| | | ], |
| | | bomTypeDbOptions: [] |
| | | bomTypeDbOptions: [], |
| | | } |
| | | }, |
| | | components: { |
| | | ttable |
| | | ttable, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | ...mapGetters(['permissions']), |
| | | }, |
| | | activated() { |
| | | this.getData() |
| | |
| | | addOrUpdateHandle(row) { |
| | | this.$router.push({ |
| | | name: 'completeProductStructure', |
| | | params: { id: row == null ? null : row.id } |
| | | params: { id: row == null ? null : row.id }, |
| | | }) |
| | | }, |
| | | // æäº§åç»æçæBOM |
| | | addByStructureHandle() { |
| | | addByStructure() |
| | | this.$message({ |
| | | message: 'å·²å¨åå°çæBOMï¼è¯·æ§è¡ç»æåå·æ°é¡µé¢', |
| | | type: 'success' |
| | | addByStructure().then((res) => { |
| | | let result = Array.from(new Set(res.data.data)) |
| | | this.$message.success(result.join(',')) |
| | | this.getData() |
| | | }) |
| | | // this.$message({ |
| | | // message: 'å·²å¨åå°çæBOMï¼è¯·æ§è¡ç»æåå·æ°é¡µé¢', |
| | | // type: 'success', |
| | | // }) |
| | | }, |
| | | // å é¤ |
| | | deleteHandle(row) { |
| | |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | closeOnClickModal: false |
| | | closeOnClickModal: false, |
| | | }) |
| | | .then(function() { |
| | | .then(function () { |
| | | const ids = [] |
| | | ids.push(row.id) |
| | | return delObj(ids) |
| | |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | closeOnClickModal: false |
| | | closeOnClickModal: false, |
| | | }) |
| | | .then(function() { |
| | | .then(function () { |
| | | const ids = that.multipleSelection.map((item) => { |
| | | return item.id |
| | | }) |
| | |
| | | handleSelectionChange(val) { |
| | | // æ ¹æ®ç¶æï¼ç¦ç¨è¡¨å¤´æé® |
| | | // çéåºéä¸è®°å½çç¶æ |
| | | var stateArr = val.map(function(value, index) { |
| | | var stateArr = val.map(function (value, index) { |
| | | return value.state |
| | | }) |
| | | // éä¸ç¶ææ°ç»å
ç´ å»é |
| | |
| | | }, |
| | | getStateOptionList() { |
| | | return this.stateOptionList |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | multipleSelection: [], |
| | | uploadInfo: { |
| | | // æ¯å¦å±ç¤ºä¸ä¼ EXCEL以å对åºçurl |
| | | isShow: true, |
| | | isShow: false, |
| | | url: '/mes/operation/excel/upload' |
| | | }, |
| | | prelang: 'operation', |
| | |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'outsideOpItem', |
| | | label: 'å¤é¨å·¥åºé¡¹ç®', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.formatOutsideOpItem, |
| | | optList: () => { |
| | | return this.outsideOpItemOptions |
| | | } |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'outsideOpItem', |
| | | // label: 'å¤é¨å·¥åºé¡¹ç®', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'select', |
| | | // formatter: this.formatOutsideOpItem, |
| | | // optList: () => { |
| | | // return this.outsideOpItemOptions |
| | | // } |
| | | // }, |
| | | // 夿³¨ |
| | | { |
| | | minWidth: '120', |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="çç»äººå" prop="crewSize"> |
| | | <el-form-item label="çç»äººå" prop="crewSize"> |
| | | <el-input |
| | | v-model="dataForm.crewSize" |
| | | placeholder="çç»äººå" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="å¤é¨å·¥åºé¡¹ç®" prop="outsideOpItem"> |
| | | <el-select |
| | | v-model="dataForm.outsideOpItem" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="padding-top: 10px"> |
| | | <!-- <el-row style="padding-top: 10px"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="é
置项"> |
| | | <el-checkbox-group |
| | |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-row> --> |
| | | </el-form> |
| | | </div> |
| | | |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="å ç´ åä½" prop="runTimeCodeDb" :rules="disabled ? [{required: false}] : dataRule.runTimeCodeDb"> |
| | | <el-select |
| | | v-model="dataForm.runTimeCodeDb" |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æºå¨è¿è½¬å ç´ " prop="machRunFactor" :rules="disabled ? [{required: false}] : dataRule.machRunFactor"> |
| | | <el-input |
| | |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-row> --> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="人工类å«" prop="laborClassNo"> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="å¤é¨å·¥åºé¡¹ç®" prop="outsideOpItem"> |
| | | <el-select |
| | | v-model="dataForm.outsideOpItem" |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | <el-col :span="12"> </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | noShowTip: false |
| | | }, |
| | | // æ¯å¦ä¸ºä¸»å·¥èº |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'master', |
| | | label: '主工èº', |
| | |
| | | formatter: (row, column, cellValue) => { |
| | | return cellValue == true ? 'æ¯' : 'å¦' |
| | | } |
| | | }, |
| | | }, */ |
| | | // ç¶æ |
| | | { |
| | | minWidth: '120', |
| | |
| | | searchInfoType: 'datetimerange' |
| | | }, |
| | | // æ¿ä»£ |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'alternativeNo', |
| | | label: 'æ¿ä»£', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | }, */ |
| | | // æ¿ä»£æè¿° |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'alternativeDesc', |
| | | label: 'æ¿ä»£æè¿°', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | }, */ |
| | | // æ¯å¦å·²åæ¥è³IFS |
| | | // { |
| | | // minWidth: '120', |
| | |
| | | style="width: 280px" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="wireCore" label="线è¯"> |
| | | <!-- <el-form-item prop="wireCore" label="线è¯"> |
| | | <el-input |
| | | v-model="dataForm.wireCore" |
| | | placeholder="线è¯" |
| | | style="width: 60px" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item label="BOM" prop="bomId"> |
| | | <el-select :disabled="dataForm.id != null" v-model="dataForm.bomId" placeholder="" filterable> |
| | | <el-option |
| | |
| | | >{{ dataForm.ifsSync ? 'æ¯' : 'å¦' }}</span |
| | | > |
| | | </el-form-item> --> |
| | | <el-form-item label="主工èº" prop="master"> |
| | | <!-- <el-form-item label="主工èº" prop="master"> |
| | | <el-switch v-model="dataForm.master"> </el-switch> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | <span v-if="!editable">{{ scope.row.operationName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | prop="outsideOpItem" |
| | | label="å¤é¨å·¥åºé¡¹ç®" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | prop="partName" |
| | | label="é¶ä»¶" |
| | |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | prop="runTimeCodeDb" |
| | | label="å ç´ åä½" |
| | | align="center" |
| | |
| | | label="å³å设置æ¶é´" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | prop="laborClassNo" |
| | | label="人工类å«" |
| | |
| | | </el-input> |
| | | </div> |
| | | |
| | | <el-divider content-position="left">é
置项</el-divider> |
| | | <!-- <el-divider content-position="left">é
置项</el-divider> |
| | | |
| | | <div class="node-content-config"> |
| | | <el-checkbox-group |
| | |
| | | >å·¥åé¢ç</el-checkbox-button |
| | | > |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> --> |
| | | |
| | | <!-- <el-divider content-position="left">è½å</el-divider> |
| | | <div class="node-content"> |
| | |
| | | } |
| | | }, |
| | | // æ¯å¦ä¸ºé»è®¤ç»æ |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'master', |
| | | label: 'é»è®¤ç»æ', |
| | |
| | | formatter: (row, column, cellValue) => { |
| | | return cellValue == true ? 'æ¯' : 'å¦' |
| | | } |
| | | }, |
| | | }, */ |
| | | // æè¿° |
| | | { |
| | | minWidth: '120', |
| | |
| | | >{{ dataForm.ifsSync ? 'æ¯' : 'å¦' }}</span |
| | | > |
| | | </el-form-item> --> |
| | | <el-form-item label="é»è®¤ç»æ" prop="master"> |
| | | <!-- <el-form-item label="é»è®¤ç»æ" prop="master"> |
| | | <el-checkbox v-model="dataForm.master"></el-checkbox> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | |
| | | <el-table-column label="åä½" prop="unit" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="çæ°(ç)" prop="discNum" align="center"> |
| | | <!-- <el-table-column label="çæ°(ç)" prop="discNum" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="small" |
| | |
| | | scope.row.discNum |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="å¾å·" prop="drawingNumber" align="center"> |
| | | </el-table-column> --> |
| | | <el-table-column align="center" label="æä½" width="85px"> |
| | |
| | | </div> |
| | | <div style="display:flex;align-items:center;margin-left:10px;"> |
| | | <div> |
| | | <span>åºä½æè¿°ï¼</span> |
| | | <span>åºä½åç§°ï¼</span> |
| | | </div> |
| | | <div> |
| | | <el-input |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column type="index" width="50" label="åºå·"> </el-table-column> |
| | | <el-table-column prop="locationNo" label="åºä½å·" align="center"> |
| | | <el-table-column prop="locNo" label="åºä½å·" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="locationDesc" |
| | | label="åºä½æè¿°" |
| | | prop="locName" |
| | | label="åºä½åç§°" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="locationGroupDesc" |
| | | label="åºä½ç»æè¿°" |
| | | prop="locType" |
| | | label="åºä½ç±»å" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="locationTypeDesc" |
| | | label="åºä½ç±»åæè¿°" |
| | | prop="ifsLocation" |
| | | label="ifsåºä½" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="ifsLocationGroup" |
| | | label="ifsåºä½ç»" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | |
| | | </el-dialog> |
| | | </template> |
| | | <script> |
| | | import { getIfsLocationByGroup } from '@/api/warehouse/location' |
| | | import { getIfsLocationByGroupCopyAll } from '@/api/warehouse/location' |
| | | import { updateBatchPalletTransportsDetail } from '@/api/warehouse/pallettransports' |
| | | export default { |
| | | components: {}, |
| | |
| | | // æ¥è¯¢ifsåºä½å表 |
| | | queryLocation() { |
| | | this.ifsLocationData = [] |
| | | getIfsLocationByGroup({ |
| | | getIfsLocationByGroupCopyAll({ |
| | | locationNo: this.dataForm.locationNo, |
| | | locationDesc: this.dataForm.locationDesc |
| | | }).then((response) => { |
| | | if (response.data.code === 0) { |
| | | if (response.data.code == 0) { |
| | | const _data = response.data.data |
| | | this.ifsLocationData = _data.map((item, index) => { |
| | | return { |
| | | id: index + 1, |
| | | locationNo: item.LOCATION_NO, |
| | | locationDesc: item.LOCATION_DESC, |
| | | locationGroupDesc: item.LOCATION_GROUP_DESC, |
| | | locationTypeDesc: item.LOCATION_TYPE_DESC, |
| | | locNo: item.locNo, |
| | | locName: item.locName, |
| | | locType: item.locType, |
| | | ifsLocation: item.ifsLocation, |
| | | ifsLocationGroup: item.ifsLocationGroup, |
| | | commonChecked: false |
| | | } |
| | | }) |
| | |
| | | this.detailList.forEach((item) => { |
| | | transportsDetails.push({ |
| | | id: item.id, |
| | | toIfsLocationName: this.currLocationRow.locationDesc, |
| | | toIfsLocationNo: this.currLocationRow.locationNo |
| | | toIfsLocationName: this.currLocationRow.locName, |
| | | toIfsLocationNo: this.currLocationRow.locNo |
| | | }) |
| | | }) |
| | | updateBatchPalletTransportsDetail(transportsDetails) |
| | |
| | | </div> |
| | | <div style="display:flex;align-items:center;margin-left:10px;"> |
| | | <div> |
| | | <span>åºä½æè¿°ï¼</span> |
| | | <span>åºä½åç§°ï¼</span> |
| | | </div> |
| | | <div> |
| | | <el-input |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column type="index" width="50" label="åºå·"> </el-table-column> |
| | | <el-table-column prop="locationNo" label="åºä½å·" align="center"> |
| | | <el-table-column prop="locNo" label="åºä½å·" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="locationDesc" |
| | | label="åºä½æè¿°" |
| | | prop="locName" |
| | | label="åºä½åç§°" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="locationGroupDesc" |
| | | label="åºä½ç»æè¿°" |
| | | prop="locType" |
| | | label="åºä½ç±»å" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <template scope="scope"> |
| | | {{formatLocType(scope.row.locType)}} |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | prop="ifsLocation" |
| | | label="ifsåºä½" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="locationTypeDesc" |
| | | label="åºä½ç±»åæè¿°" |
| | | prop="ifsLocationGroup" |
| | | label="ifsåºä½ç»" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="innerVisible = false">å æ¶</el-button> |
| | |
| | | </el-dialog> |
| | | </template> |
| | | <script> |
| | | import { getIfsLocationByGroup } from '@/api/warehouse/location' |
| | | import { getIfsLocationByGroupCopyAll } from '@/api/warehouse/location' |
| | | import { updateBatchPalletTransportsMaterial } from '@/api/warehouse/pallettransports' |
| | | import Template from '../../quality/parts/template.vue' |
| | | import { remote } from '../../../api/admin/dict' |
| | | export default { |
| | | components: {}, |
| | | components: {Template}, |
| | | props: { |
| | | currshowlist: { |
| | | type: Boolean, |
| | |
| | | } |
| | | } |
| | | }, |
| | | filters:{ |
| | | |
| | | }, |
| | | data() { |
| | | return { |
| | | innerVisible: false, |
| | | locTypeOption: [], |
| | | isSubmit: false, |
| | | dataForm: { |
| | | locationNo: null, |
| | | locationDesc: null |
| | | locationNo: '', |
| | | locationDesc: '' |
| | | }, |
| | | ifsLocationData: [], |
| | | currLocationRow: null |
| | | } |
| | | }, |
| | | created() { |
| | | this.getLoc() |
| | | }, |
| | | methods: { |
| | | formatLocType(val){ |
| | | let list = this.locTypeOption |
| | | let index = list.findIndex(ele=>{ |
| | | return ele.value == val |
| | | }) |
| | | if(index!=null){ |
| | | return list[index].label |
| | | } |
| | | return null |
| | | }, |
| | | // æ¥è¯¢ifsåºä½å表 |
| | | queryLocation() { |
| | | this.ifsLocationData = [] |
| | | getIfsLocationByGroup({ |
| | | getIfsLocationByGroupCopyAll({ |
| | | locationNo: this.dataForm.locationNo, |
| | | locationDesc: this.dataForm.locationDesc |
| | | }).then((response) => { |
| | | if (response.data.code === 0) { |
| | | if (response.data.code == 0) { |
| | | const _data = response.data.data |
| | | this.ifsLocationData = _data.map((item, index) => { |
| | | return { |
| | | id: index + 1, |
| | | locationNo: item.LOCATION_NO, |
| | | locationDesc: item.LOCATION_DESC, |
| | | locationGroupDesc: item.LOCATION_GROUP_DESC, |
| | | locationTypeDesc: item.LOCATION_TYPE_DESC, |
| | | locNo: item.locNo, |
| | | locName: item.locName, |
| | | locType: item.locType, |
| | | ifsLocation: item.ifsLocation, |
| | | ifsLocationGroup: item.ifsLocationGroup, |
| | | commonChecked: false |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | // è·ååºä½ç±»åçæ°æ®åå
¸ |
| | | getLoc() { |
| | | remote('warehouse_type').then((response) => { |
| | | if (response.data.code === 0) { |
| | | this.locTypeOption = response.data.data |
| | | } |
| | | console.log(response); |
| | | }) |
| | | }, |
| | | // åè¡éä¸ |
| | |
| | | saveSelectRow() { |
| | | this.isSubmit = true |
| | | const transportsMaterials = [] |
| | | console.log(`output->this.transportsList`,this.transportsList) |
| | | this.transportsList.forEach((item) => { |
| | | transportsMaterials.push({ |
| | | id: item.id, |
| | | toIfsLocationName: this.currLocationRow.locationDesc, |
| | | toIfsLocationNo: this.currLocationRow.locationNo |
| | | toIfsLocationName: this.currLocationRow.locName, |
| | | toIfsLocationNo: this.currLocationRow.locNo |
| | | }) |
| | | }) |
| | | updateBatchPalletTransportsMaterial(transportsMaterials) |
| | |
| | | <template> |
| | | <el-dialog |
| | | width="65%" |
| | | title="IFSåºåç©æ" |
| | | top="5vh" |
| | | :visible.sync="innerVisible" |
| | | append-to-body |
| | | @close="$emit('update:currshowlist', false)" |
| | | :show="currshowlist" |
| | | class="part-dialog" |
| | | > |
| | | <el-dialog width="65%" title="IFSåºåç©æ" top="5vh" :visible.sync="innerVisible" append-to-body |
| | | @close="$emit('update:currshowlist', false)" :show="currshowlist" class="part-dialog"> |
| | | <div> |
| | | <span>éæ±æ°éï¼</span |
| | | ><span style="color:Red;">{{ |
| | | <span>éæ±æ°éï¼</span><span style="color:Red;">{{ |
| | | materialRow == null |
| | | ? '' |
| | | : materialRow.surplusQuantity - totalPlanMoveQuality |
| | | ? '' |
| | | : materialRow.surplusQuantity - totalPlanMoveQuality |
| | | }}</span> |
| | | </div> |
| | | <el-table |
| | | class="ifs-stock-table" |
| | | :data="ifsStockData" |
| | | style="width: 100%;" |
| | | height="450px" |
| | | border |
| | | @selection-change="ifsStockSelectionChange" |
| | | stripe |
| | | ref="ifsStockTable" |
| | | > |
| | | <el-table class="ifs-stock-table" :data="ifsStockData" style="width: 100%;" height="450px" border |
| | | @selection-change="ifsStockSelectionChange" stripe ref="ifsStockTables"> |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column type="index" width="50" label="åºå·"> </el-table-column> |
| | | <el-table-column |
| | | prop="partNo" |
| | | label="é¶ä»¶å·" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="partNo" label="é¶ä»¶å·" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="partDesc" |
| | | label="é¶ä»¶æè¿°" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="partDesc" label="é¶ä»¶æè¿°" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="locationDesc" |
| | | label="åºä½" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="locationDesc" label="åºä½" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="batchNo" |
| | | label="æ¹æ¬¡å·" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="batchNo" label="æ¹æ¬¡å·" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="wdr" |
| | | label="WDR" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="wdr" label="WDR" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="optaskNo" |
| | | label="å·¥å" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="optaskNo" label="å·¥å" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="available" |
| | | label="å¯ç¨åºåæ°é" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="available" label="å¯ç¨åºåæ°é" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="planMoveQuality" |
| | | label="计åç§»åºæ°é" |
| | | align="center" |
| | | > |
| | | <el-table-column prop="planMoveQuality" label="计åç§»åºæ°é" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.planMoveQuality" |
| | | @blur="blurChangeCallback(scope.row)" |
| | | ></el-input> |
| | | <el-input v-model="scope.row.planMoveQuality" @blur="blurChangeCallback(scope.row)"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="åä½" align="center"> |
| | |
| | | </el-table> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="innerVisible = false">å æ¶</el-button> |
| | | <el-button |
| | | type="primary" |
| | | :disabled="isSubmit" |
| | | v-thinclick="`saveSelectRow`" |
| | | >ç¡® å®</el-button |
| | | > |
| | | <el-button type="primary" v-thinclick="`saveSelectRow`">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | flagMsg = |
| | | flagMsg + '第' + (i + 1) + 'è¡ï¼è®¡åç§»åºæ°éæå¤å
ä½å°æ°ï¼' |
| | | } else { |
| | | console.log( |
| | | 'this.ifsStockData[i].planMoveQuality', |
| | | this.ifsStockData[i].planMoveQuality |
| | | ) |
| | | console.log( |
| | | 'this.ifsStockData[i].available', |
| | | this.ifsStockData[i].available |
| | | ) |
| | | console.log( |
| | | this.ifsStockData[i].planMoveQuality > |
| | | this.ifsStockData[i].available |
| | | ) |
| | | // console.log( |
| | | // 'this.ifsStockData[i].planMoveQuality', |
| | | // this.ifsStockData[i].planMoveQuality |
| | | // ) |
| | | // console.log( |
| | | // 'this.ifsStockData[i].available', |
| | | // this.ifsStockData[i].available |
| | | // ) |
| | | // console.log( |
| | | // this.ifsStockData[i].planMoveQuality > |
| | | // this.ifsStockData[i].available |
| | | // ) |
| | | if ( |
| | | this.ifsStockData[i].planMoveQuality > |
| | | this.ifsStockData[i].available |
| | |
| | | partDesc: item.partDesc, |
| | | batchNo: item.batchNo, |
| | | wdr: item.wdr, |
| | | serialNo: item.serialNo, |
| | | engChgLevel: item.engChgLevel, |
| | | configurationId: item.configurationId, |
| | | activitySeq: item.activitySeq, |
| | | transferQuantity: item.planMoveQuality, |
| | | fromIfsLocationNo: item.locationNo, |
| | | transportsMaterialId: this.materialRow.id, |
| | | toIfsLocationNo: this.materialRow.toIfsLocationNo, |
| | | toIfsLocationName: this.materialRow.toIfsLocationName, |
| | | partId: this.materialRow.partId, |
| | | transportsId: this.transportsRow.id, |
| | | operationTaskId: item.optaskId, |
| | | operationTaskNo: item.optaskNo, |
| | |
| | | } else { |
| | | this.$message.error('æ·»å ç§»åºæç»å¤±è´¥') |
| | | } |
| | | this.isSubmit = false |
| | | this.isSubmit = true |
| | | }) |
| | | .catch(() => { |
| | | this.isSubmit = false |
| | | this.isSubmit = true |
| | | }) |
| | | } else { |
| | | this.$message.error('è¯·éæ©IFSåºåç©æ') |
| | |
| | | this.isSubmit = false |
| | | } |
| | | }, |
| | | initData() {} |
| | | initData() { } |
| | | }, |
| | | watch: { |
| | | currshowlist() { |
| | |
| | | id: index + 1, |
| | | partNo: item.PART_NO, |
| | | partDesc: item.PART_DESC, |
| | | locationDesc: item.LOCATION_DESC, |
| | | locationDesc: item.LOCATION_NO, |
| | | locationNo: item.LOCATION_NO, |
| | | batchNo: item.LOT_BATCH_NO, |
| | | wdr: item.WAIV_DEV_REJ_NO, |
| | | available: Number(item.QTY_AVAILABLE), |
| | | unit: item.UNIT_MEAS_DESC, |
| | | engChgLevel: item.ENG_CHG_LEVEL, |
| | | serialNo: item.SERIAL_NO, |
| | | configurationId: item.CONFIGURATION_ID, |
| | | activitySeq: item.ACTIVITY_SEQ, |
| | | planMoveQuality: Number(item.QTY_AVAILABLE), |
| | | partId: this.materialRow.partId, |
| | | optaskNo: this.optask != null ? this.optask.optaskNo : null, |
| | | optaskId: this.optask != null ? this.optask.id : null |
| | | }) |
| | |
| | | } |
| | | } |
| | | }) |
| | | console.log(`output->this.ifsStockData`,this.ifsStockData) |
| | | }) |
| | | } |
| | | } |
| | |
| | | .part-dialog .el-dialog__header { |
| | | padding: 10px 20px 10px; |
| | | } |
| | | |
| | | .part-dialog .el-dialog__header .el-dialog__headerbtn { |
| | | top: 10px; |
| | | } |
| | | |
| | | .part-dialog .el-dialog__body { |
| | | padding: 5px 20px; |
| | | } |
| | |
| | | <basic-container> |
| | | <el-row> |
| | | <el-col :span="9"> |
| | | <ttable |
| | | :table="table" |
| | | @currentChange="palletTransportsChange" |
| | | :uploadInfo="uploadInfo" |
| | | :prelang="prelang" |
| | | :options="options" |
| | | :ajaxFun="ajaxFun" |
| | | :fixedHeight="palletTransportsFixedHeight" |
| | | ref="pallettransportsTable" |
| | | > |
| | | <ttable :table="table" @currentChange="palletTransportsChange" :uploadInfo="uploadInfo" :prelang="prelang" |
| | | :options="options" :ajaxFun="ajaxFun" :fixedHeight="palletTransportsFixedHeight" ref="pallettransportsTable"> |
| | | <template #toolbar> |
| | | <el-button |
| | | v-if="permissions.warehouse_pallettransports_add" |
| | | type="primary" |
| | | @click="addOrUpdateHandle()" |
| | | >æ°å¢</el-button |
| | | > |
| | | <el-button v-if="permissions.warehouse_pallettransports_add" type="primary" |
| | | @click="addOrUpdateHandle()">æ°å¢</el-button> |
| | | </template> |
| | | </ttable> |
| | | <div |
| | | style="margin:0px 20px 0px;display:flex;height:36px;justify-content: space-between;align-items:center;" |
| | | > |
| | | <div style="margin:0px 20px 0px;display:flex;height:36px;justify-content: space-between;align-items:center;"> |
| | | <div> |
| | | <span style="font-weight:bold;">对åºå·¥å</span> |
| | | </div> |
| | | <div></div> |
| | | </div> |
| | | <div style="padding:0px 20px 0px;"> |
| | | <el-table |
| | | class="pallet-transports-optask-table" |
| | | :data="palletTransportsOptaskData" |
| | | style="width: 100%;" |
| | | v-adaptive="{ bottomOffset: 20, fixedHeight: 0 }" |
| | | height="100px" |
| | | border |
| | | highlight-current-row |
| | | @row-click="optaskRowClick" |
| | | stripe |
| | | ref="palletTransportsOptaskTable" |
| | | > |
| | | <el-table class="pallet-transports-optask-table" :data="palletTransportsOptaskData" |
| | | style="width: 100%;" |
| | | v-adaptive="{ bottomOffset: 20, fixedHeight: 0 }" height="100px" border highlight-current-row |
| | | @row-click="optaskRowClick" stripe ref="palletTransportsOptaskTable"> |
| | | <el-table-column align="center" width="55" label="åé"> |
| | | <template slot-scope="scope"> |
| | | <el-checkbox |
| | | class="optask-table-single-checkbox" |
| | | v-model="scope.row.commonChecked" |
| | | disabled |
| | | ></el-checkbox> |
| | | <el-checkbox class="optask-table-single-checkbox" v-model="scope.row.commonChecked" |
| | | disabled></el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="optaskNo" |
| | | label="å·¥åå·" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="optaskNo" label="å·¥åå·" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="partName" |
| | | label="é¶ä»¶" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="partName" label="é¶ä»¶" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="workCenter" |
| | | label="å·¥ä½ä¸å¿" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="workCenter" label="å·¥ä½ä¸å¿" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="workstationName" |
| | | label="å·¥ä½ç«" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="workstationName" label="å·¥ä½ç«" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="plannedQuantity" |
| | | label="è®¡åæ°é" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="plannedQuantity" label="è®¡åæ°é" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="unit" |
| | | label="åä½" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="unit" label="åä½" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="15" style="padding-left: 10px;padding-right: 10px"> |
| | | <div |
| | | style="display:flex;height:36px;justify-content: space-between;align-items:center;" |
| | | > |
| | | <div style="display:flex;height:36px;justify-content: space-between;align-items:center;"> |
| | | <div><span style="font-weight:bold;">ç©æéæ±</span></div> |
| | | <div> |
| | | <el-button |
| | | type="text" |
| | | v-if="permissions.warehouse_pallettransports_demand_add" |
| | | @click="openPartDialog" |
| | | >æ°å¢</el-button |
| | | ><el-button |
| | | type="text" |
| | | v-if="permissions.warehouse_pallettransports_ifs" |
| | | @click="openLocationDialog" |
| | | >IFSè³åºä½</el-button |
| | | > |
| | | <el-button type="text" v-if="permissions.warehouse_pallettransports_demand_add" |
| | | @click="openPartDialog">æ°å¢</el-button><el-button type="text" |
| | | v-if="permissions.warehouse_pallettransports_ifs" @click="openLocationDialog">ç§»è³åºä½</el-button> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <el-table |
| | | class="pallet-transports-material-table" |
| | | :data="palletTransportsMaterialData" |
| | | style="width: 100%;" |
| | | height="350px" |
| | | border |
| | | @selection-change="palletTransportsMaterialSelectionChange" |
| | | stripe |
| | | ref="palletTransportsMaterialTable" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column |
| | | prop="partNo" |
| | | label="é¶ä»¶å·" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table class="pallet-transports-material-table" @current-change="handleCurrentChange" :data="palletTransportsMaterialData" style="width: 100%;" |
| | | height="350px" border stripe |
| | | ref="palletTransportsMaterialTable"> |
| | | <!--åéæ¡ @selection-change="palletTransportsMaterialSelectionChange"--> |
| | | <el-table-column align="center" width="55" label="åé"> |
| | | <template slot-scope="scope"> |
| | | <el-checkbox v-model="scope.row.commonChecked" @change="handleCurrentChange(scope.row)" ></el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="partNo" label="é¶ä»¶å·" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="partDesc" |
| | | label="é¶ä»¶æè¿°" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="partDesc" label="é¶ä»¶æè¿°" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="demandQuantity" |
| | | label="éæ±æ°é" |
| | | align="center" |
| | | > |
| | | <el-table-column prop="demandQuantity" label="éæ±æ°é" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-show="scope.row.canEdit" |
| | | v-model="scope.row.demandQuantity" |
| | | ></el-input> |
| | | <el-input v-show="scope.row.canEdit" v-model="scope.row.demandQuantity"></el-input> |
| | | <span v-show="!scope.row.canEdit">{{ |
| | | scope.row.demandQuantity |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="transferQuantity" |
| | | label="ç§»åºæ°é" |
| | | align="center" |
| | | > |
| | | <el-table-column prop="transferQuantity" label="ç§»åºæ°é" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="surplusQuantity" |
| | | label="å©ä½æ°é" |
| | | align="center" |
| | | > |
| | | <el-table-column prop="surplusQuantity" label="å©ä½æ°é" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="计éåä½" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="toIfsLocationNo" |
| | | label="IFSè³åºä½" |
| | | align="center" |
| | | > |
| | | <el-table-column prop="toIfsLocationNo" label="ç§»è³åºä½" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" align="center" width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | v-show="!scope.row.canEdit" |
| | | type="text" |
| | | :disabled="scope.row.detailExistState" |
| | | @click="scope.row.canEdit = true" |
| | | >ç¼è¾</el-button |
| | | > |
| | | <el-button |
| | | v-show="scope.row.canEdit" |
| | | type="text" |
| | | :disabled="scope.row.detailExistState" |
| | | @click="updateMaterial(scope.row)" |
| | | >ä¿å</el-button |
| | | > |
| | | <el-button |
| | | type="text" |
| | | :disabled="scope.row.detailExistState" |
| | | @click="delMaterial(scope.row)" |
| | | >å é¤</el-button |
| | | > |
| | | <!-- <el-button v-show="!scope.row.canEdit" type="text" :disabled="scope.row.detailExistState" |
| | | @click="scope.row.canEdit = true">ç¼è¾</el-button> --> |
| | | <!-- <el-button v-show="scope.row.canEdit" type="text" :disabled="scope.row.detailExistState" |
| | | @click="updateMaterial(scope.row)">ä¿å</el-button> --> |
| | | <el-button type="text" :disabled="scope.row.detailExistState" |
| | | @click="delMaterial(scope.row)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div |
| | | style="margin-top:10px;display:flex;height:36px;justify-content: space-between;align-items:center;" |
| | | > |
| | | <div style="margin-top:10px;display:flex;height:36px;justify-content: space-between;align-items:center;"> |
| | | <div> |
| | | <span style="font-weight:bold;">ç§»åºæç»</span |
| | | ><span style="color:red;" |
| | | >({{ |
| | | palletTransportsMaterialMultipleSelection.length > 0 |
| | | ? palletTransportsMaterialMultipleSelection[ |
| | | palletTransportsMaterialMultipleSelection.length - 1 |
| | | ].partDesc |
| | | : '' |
| | | }})</span |
| | | > |
| | | <span style="font-weight:bold;">ç§»åºæç»</span> |
| | | <span style="color:red;">({{ |
| | | palletTransportsMaterialMultipleSelection.length > 0 |
| | | ? palletTransportsMaterialMultipleSelection[ |
| | | palletTransportsMaterialMultipleSelection.length - 1 |
| | | ].partDesc |
| | | : '' |
| | | }})</span> |
| | | </div> |
| | | <div> |
| | | <el-button |
| | | type="primary" |
| | | v-if="permissions.warehouse_pallettransports_detail_add" |
| | | round |
| | | @click="openStockDialog" |
| | | >æ·»å æç»</el-button |
| | | > |
| | | <el-button |
| | | type="warning" |
| | | v-if="permissions.warehouse_pallettransports_detail_library" |
| | | round |
| | | @click="openDetailLocationDialog" |
| | | >ä¸é®è³åºä½</el-button |
| | | > |
| | | <el-button |
| | | type="success" |
| | | v-if="permissions.warehouse_pallettransports_detail_execute" |
| | | round |
| | | @click="executeMove" |
| | | >æ§ è¡</el-button |
| | | > |
| | | <el-button type="primary" v-if="permissions.warehouse_pallettransports_detail_add" round |
| | | @click="getPalletTransportsDetailData">æ·»å æç»</el-button> |
| | | <!-- <el-button type="warning" v-if="permissions.warehouse_pallettransports_detail_library" round |
| | | @click="openDetailLocationDialog">ä¸é®è³åºä½</el-button> --> |
| | | <el-button type="success" v-if="permissions.warehouse_pallettransports_detail_execute" round |
| | | @click="executeMove">æ§ è¡</el-button> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <el-table |
| | | class="pallet-transports-detail-table" |
| | | :data="palletTransportsDetailData" |
| | | style="width: 100%;" |
| | | v-adaptive="{ bottomOffset: 20, fixedHeight: 0 }" |
| | | height="100px" |
| | | border |
| | | @selection-change="palletTransportsDetailSelectionChange" |
| | | stripe |
| | | ref="palletTransportsDetailTable" |
| | | > |
| | | <el-table class="pallet-transports-detail-table" :data="palletTransportsDetailData" style="width: 100%;" |
| | | v-adaptive="{ bottomOffset: 20, fixedHeight: 0 }" height="100px" border |
| | | @selection-change="palletTransportsDetailSelectionChange" stripe ref="palletTransportsDetailTable"> |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column |
| | | prop="partNo" |
| | | label="é¶ä»¶å·" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="part_no" label="é¶ä»¶å·" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="partDesc" |
| | | label="é¶ä»¶æè¿°" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="part_desc" label="é¶ä»¶æè¿°" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="batchNo" |
| | | label="æ¹æ¬¡å·" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | <!-- <el-table-column prop="batchNo" label="æ¹æ¬¡å·" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="wdr" label="WDR" align="center"> |
| | | </el-table-column> --> |
| | | <el-table-column prop="operation_task_no" label="å·¥å" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="operationTaskNo" |
| | | label="å·¥å" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="transferQuantity" |
| | | label="ç§»åºæ°é" |
| | | align="center" |
| | | > |
| | | <el-table-column prop="transfer_quantity" label="ç§»åºæ°é" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="åä½" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="fromIfsLocationNo" |
| | | label="IFSä»åºä½" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="toIfsLocationNo" |
| | | label="IFSè³åºä½" |
| | | align="center" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-link |
| | | type="primary" |
| | | @click="openSingleLocationDialog(scope.row)" |
| | | >{{ scope.row.toIfsLocationNo }}</el-link |
| | | > |
| | | </template> |
| | | <!-- <el-table-column prop="fromIfsLocationNo" label="IFSä»åºä½" align="center"> |
| | | </el-table-column> --> |
| | | <el-table-column prop="to_ifs_location_no" label="ç§»è³åºä½" align="center"> |
| | | <!-- <template slot-scope="scope"> |
| | | <el-link type="primary" @click="openSingleLocationDialog(scope.row)">{{ scope.row.toIfsLocationNo |
| | | }}</el-link> |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column prop="state" label="ç¶æ" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | scope.row.state == null |
| | | ? '' |
| | | : scope.row.state === '01initial' |
| | | ? '' |
| | | : scope.row.state === '01initial' |
| | | ? 'å·²å建' |
| | | : 'å·²æ§è¡' |
| | | }}</span> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="æä½" align="center" width="85"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | @click="openEditStockDialog(scope.row)" |
| | | :disabled="scope.row.state === '01initial' ? false : true" |
| | | >ç¼è¾</el-button |
| | | > |
| | | <el-button |
| | | type="text" |
| | | @click="delDetail(scope.row)" |
| | | :disabled="scope.row.state === '01initial' ? false : true" |
| | | >å é¤</el-button |
| | | > |
| | | <!-- <el-button type="text" @click="openEditStockDialog(scope.row)" |
| | | :disabled="scope.row.state === '01initial' ? false : true">ç¼è¾</el-button> --> |
| | | <el-button type="text" @click="delDetail(scope.row)" |
| | | :disabled="scope.row.state === '01initial' ? false : true">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <!-- å¼¹çª, æ°å¢ / ä¿®æ¹ --> |
| | | <pallettransportsFormDialog |
| | | :currshowlist.sync="showPallettransportsForm" |
| | | :palletTransportsId="palletTransportsId" |
| | | @refreshPalletTransports="getPallettransportsData" |
| | | /> |
| | | <pallettransportsFormDialog :currshowlist.sync="showPallettransportsForm" :palletTransportsId="palletTransportsId" |
| | | @refreshPalletTransports="getPallettransportsData" /> |
| | | <!-- å¼¹çª, é¶ä»¶å表 --> |
| | | <partDialog |
| | | :currshowlist.sync="showPart" |
| | | @listenToPartEvent="selectPartCallback" |
| | | /> |
| | | <partDialog :currshowlist.sync="showPart" @listenToPartEvent="selectPartCallback" /> |
| | | <!-- å¼¹çª, IFSåºä½å表 --> |
| | | <ifsLocationDialog |
| | | :currshowlist.sync="showLocation" |
| | | :transportsList="palletTransportsMaterialMultipleSelection" |
| | | @refreshDataList="selectLocationCallback" |
| | | /> |
| | | <ifsLocationDialog :currshowlist.sync="showLocation" :transportsList="palletTransportsMaterialMultipleSelection" |
| | | @refreshDataList="selectLocationCallback" /> |
| | | <!-- å¼¹çª, IFSåºåå表 --> |
| | | <ifsStockDialog |
| | | :currshowlist.sync="showStock" |
| | | :materialRow="materialRow" |
| | | :transportsRow="currPalletTransportsRow" |
| | | :optask="currOptask" |
| | | @refreshDataList="addIfsStockCallback" |
| | | /> |
| | | <ifsStockDialog :currshowlist.sync="showStock" :materialRow="materialRow" :transportsRow="currPalletTransportsRow" |
| | | :optask="currOptask" @refreshDataList="addIfsStockCallback" /> |
| | | <!-- å¼¹çª, ç¼è¾IFSåºåå表 --> |
| | | <detailIfsStockDialog |
| | | :currshowlist.sync="showDetailStock" |
| | | :materialRow="materialRow" |
| | | :transportsRow="currPalletTransportsRow" |
| | | :detailRow="currDetailRow" |
| | | @refreshDataList="addIfsStockCallback" |
| | | /> |
| | | <detailIfsStockDialog :currshowlist.sync="showDetailStock" :materialRow="materialRow" |
| | | :transportsRow="currPalletTransportsRow" :detailRow="currDetailRow" @refreshDataList="addIfsStockCallback" /> |
| | | <!-- å¼¹çª, æç»çIFSåºä½å表 --> |
| | | <detailIfsLocationDialog |
| | | :currshowlist.sync="showDetailLocation" |
| | | :detailList="detailList" |
| | | @refreshDataList="selectDetailLocationCallback" |
| | | /> |
| | | <detailIfsLocationDialog :currshowlist.sync="showDetailLocation" :detailList="detailList" |
| | | @refreshDataList="selectDetailLocationCallback" /> |
| | | </basic-container> |
| | | </div> |
| | | </template> |
| | |
| | | delPalletTransportsMaterialObj, |
| | | palletTransportsDetailFetchList, |
| | | delPalletTransportsDetailObj, |
| | | executeMoveLocation |
| | | executeMoveLocation, |
| | | selectAll, |
| | | } from '@/api/warehouse/pallettransports' |
| | | import { getByPalletTransId } from '@/api/plan/operationtask' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | |
| | | import detailIfsLocationDialog from './detail-ifslocation-form' |
| | | import adaptive from '@/util/adaptive' |
| | | import { mapGetters } from 'vuex' |
| | | |
| | | import { saveBatchPalletTransportsDetail } from '@/api/warehouse/pallettransports' |
| | | export default { |
| | | data() { |
| | | return { |
| | | partDesc: null, |
| | | ajaxFun: palletTransportsFetchList, |
| | | currPalletTransportsRow: null, |
| | | palletTransportsMaterialMultipleSelection: [], |
| | |
| | | isShow: false, |
| | | url: '' |
| | | }, |
| | | WorkOrder:{}, |
| | | datalistAPI:'', |
| | | prelang: 'pallettransports', |
| | | options: { |
| | | height: 300, // é»è®¤é«åº¦-为äºè¡¨å¤´åºå® |
| | |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | }, |
| | | created() {}, |
| | | watch:{ |
| | | palletTransportsMaterialMultipleSelection(newVal){ |
| | | if(newVal.length>0){ |
| | | this.palletTransportsMaterialSelectionChange(newVal) |
| | | }else{ |
| | | this.palletTransportsDetailData = [] |
| | | } |
| | | } |
| | | }, |
| | | created() { }, |
| | | methods: { |
| | | // åè¡éä¸ |
| | | handleCurrentChange(row) { |
| | | this.palletTransportsMaterialData.forEach((item) => { |
| | | // æä»,æ¯æ¬¡éæ©æ¶æå
¶ä»é项齿¸
é¤ |
| | | if (item.id !== row.id) { |
| | | item.commonChecked = false |
| | | }else{ |
| | | item.commonChecked = true |
| | | } |
| | | }) |
| | | this.palletTransportsMaterialSelectionChange([row]) |
| | | console.log(row); |
| | | }, |
| | | // å·¥èºç±»åä¸ææ ¼å¼å |
| | | formatStateType(row, column, cellValue) { |
| | | this.stateOptions.forEach((obj) => { |
| | |
| | | unit: item.unit, |
| | | transportsId: item.transportsId, |
| | | detailExistState: item.detailExistState, |
| | | canEdit: false |
| | | canEdit: false, |
| | | commonChecked: false |
| | | } |
| | | this.palletTransportsMaterialData.push(palletTransportsMaterial) |
| | | }) |
| | |
| | | } |
| | | }) |
| | | }, |
| | | // è·åç§»åºæç»æ°æ®å表 |
| | | getPalletTransportsDetailData() { |
| | | this.palletTransportsDetailData = [] |
| | | if (this.palletTransportsMaterialMultipleSelection.length > 0) { |
| | | const currPalletTransportsMaterial = this |
| | | .palletTransportsMaterialMultipleSelection[ |
| | | this.palletTransportsMaterialMultipleSelection.length - 1 |
| | | ] |
| | | const queryParam = Object.assign( |
| | | { |
| | | current: 1, |
| | | size: 200 |
| | | }, |
| | | { |
| | | transportsMaterialId: currPalletTransportsMaterial.id |
| | | } |
| | | ) |
| | | palletTransportsDetailFetchList(queryParam).then((response) => { |
| | | const resData = response.data |
| | | if (resData.code === 0) { |
| | | this.palletTransportsDetailData = resData.data.records |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | // æ°å¢ / ä¿®æ¹ |
| | | addOrUpdateHandle(row) { |
| | | if (row != null) { |
| | |
| | | closeOnClickModal: false, |
| | | type: 'warning' |
| | | }) |
| | | .then(function() { |
| | | .then(function () { |
| | | return delPalletTransportsObj(row.id) |
| | | }) |
| | | .then((data) => { |
| | |
| | | this.palletTransportsMaterialData = [] |
| | | this.palletTransportsDetailData = [] |
| | | }) |
| | | .catch(() => {}) |
| | | .catch(() => { }) |
| | | }, |
| | | // æå¼é¶ä»¶å表 |
| | | openPartDialog() { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | // æå¼ifsç©æåºåå表 |
| | | openStockDialog() { |
| | | if (this.palletTransportsMaterialMultipleSelection.length > 0) { |
| | | this.showStock = true |
| | | } else { |
| | | this.$message.error('请å
éæ©ç©æéæ±') |
| | | } |
| | | // è·åç§»åºæç»æ°æ®å表 |
| | | getPalletTransportsDetailData() { |
| | | // console.log("对åºå·¥å",this.WorkOrder); |
| | | // console.log("éä¸ç©æéæ±",this.palletTransportsMaterialMultipleSelection); |
| | | let transportsDetails =[] |
| | | transportsDetails = this.palletTransportsMaterialMultipleSelection.map(el =>{ |
| | | return{ |
| | | partNo:el.partNo, |
| | | partDesc: el.partDesc, |
| | | transferQuantity: el.surplusQuantity, |
| | | toIfsLocationNo:el.toIfsLocationNo, |
| | | toIfsLocationName: el.toIfsLocationName, |
| | | transportsId: el.transportsId, |
| | | transportsMaterialId:el.id, |
| | | operationTaskNo:this.WorkOrder.optaskNo, |
| | | operationTaskId:this.WorkOrder.id, |
| | | unit: el.unit, |
| | | }}) |
| | | // this.palletTransportsDetailData = transportsDetails |
| | | if (transportsDetails.length > 0) { |
| | | let selectionList = this.palletTransportsMaterialMultipleSelection |
| | | saveBatchPalletTransportsDetail(transportsDetails) |
| | | .then((response) => { |
| | | const resData = response.data |
| | | if (resData.code === 0) { |
| | | this.innerVisible = false |
| | | this.$message.success('æ·»å ç§»åºæç»æå') |
| | | let materialRow = selectionList[selectionList.length - 1] |
| | | console.log("materialRow-----",materialRow); |
| | | this.palletTransportsMaterialData.forEach(ele=>{ |
| | | if(ele.id==materialRow.id){ |
| | | console.log("ele-------",ele); |
| | | ele.transferQuantity = materialRow.surplusQuantity |
| | | ele.surplusQuantity = 0 |
| | | } |
| | | }) |
| | | } else { |
| | | this.$message.error('æ·»å ç§»åºæç»å¤±è´¥') |
| | | } |
| | | // this.getPalletTransportsMaterialData() |
| | | this.palletTransportsMaterialSelectionChange(selectionList) |
| | | }) |
| | | // .catch(() => { |
| | | // }) |
| | | } |
| | | }, |
| | | // æ·»å ifsç©æåºååè° |
| | | addIfsStockCallback() { |
| | | // å·æ°ç©æéæ±ãå·æ°ç§»åºæç» |
| | | // this.getPalletTransportsMaterialData() |
| | | // å·æ°è´§çè¿è¾ä»»å¡å表 |
| | | // if (this.showStock) { |
| | | // this.getPallettransportsData() |
| | | // } |
| | | const currRow = this.currPalletTransportsRow |
| | | this.getPallettransportsData().then(() => { |
| | | if (currRow) { |
| | |
| | | }, |
| | | // æå¼å个æç»æ¹éæ´æ°åºä½å¼¹æ¡ |
| | | openSingleLocationDialog(row) { |
| | | console.log(row); |
| | | if (row.state === '01initial') { |
| | | this.detailList = [] |
| | | this.detailList.push(row) |
| | | this.showDetailLocation = true |
| | | // this.showDetailLocation = true |
| | | } else { |
| | | this.$message.error('ç§»åºæç»å·²æ§è¡') |
| | | } |
| | |
| | | }, |
| | | palletTransportsMaterialSelectionChange(val) { |
| | | this.palletTransportsMaterialMultipleSelection = val |
| | | if (this.palletTransportsMaterialMultipleSelection.length > 0) { |
| | | const currPalletTransportsMaterial = this |
| | | .palletTransportsMaterialMultipleSelection[ |
| | | this.palletTransportsMaterialMultipleSelection.length - 1 |
| | | ] |
| | | this.materialRow = currPalletTransportsMaterial |
| | | } else { |
| | | this.materialRow = null |
| | | console.log(this.palletTransportsMaterialMultipleSelection); |
| | | if(val && val.length>0){ |
| | | let ids =[] |
| | | this.palletTransportsMaterialMultipleSelection.forEach(el =>{ids.push(el.id)}) |
| | | let pId = ids[ids.length - 1]; |
| | | console.log(pId); |
| | | if(pId!=null){ |
| | | selectAll({ |
| | | transportsId:this.currPalletTransportsRow.id, |
| | | transportsMaterialId: pId |
| | | }).then((res) =>{ |
| | | this.palletTransportsDetailData = [] |
| | | if(res.data.data){ |
| | | this.palletTransportsDetailData.push(res.data.data) |
| | | } |
| | | }) |
| | | }else{ |
| | | this.palletTransportsDetailData = [] |
| | | } |
| | | } |
| | | this.getPalletTransportsDetailData() |
| | | }, |
| | | palletTransportsDetailSelectionChange(val) { |
| | | this.palletTransportsDetailMultipleSelection = val |
| | |
| | | }) |
| | | }, |
| | | optaskRowClick(row, column) { |
| | | this.WorkOrder = row |
| | | this.palletTransportsOptaskData.forEach((item) => { |
| | | if (row.id !== item.id) { |
| | | item.commonChecked = false |
| | |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .pallet-transports-material-table >>> .el-table__header th { |
| | | .pallet-transports-material-table>>>.el-table__header th { |
| | | color: #666666; |
| | | } |
| | | |
| | | .pallet-transports-material-table >>> th { |
| | | .pallet-transports-material-table>>>th { |
| | | padding: 3px 0px; |
| | | height: 31px; |
| | | } |
| | | .pallet-transports-material-table >>> td { |
| | | |
| | | .pallet-transports-material-table>>>td { |
| | | padding: 1px 0 0 0; |
| | | } |
| | | |
| | | .pallet-transports-detail-table >>> .el-table__header th { |
| | | .pallet-transports-detail-table>>>.el-table__header th { |
| | | color: #666666; |
| | | } |
| | | |
| | | .pallet-transports-detail-table >>> th { |
| | | .pallet-transports-detail-table>>>th { |
| | | padding: 3px 0px; |
| | | height: 31px; |
| | | } |
| | | .pallet-transports-detail-table >>> td { |
| | | |
| | | .pallet-transports-detail-table>>>td { |
| | | padding: 1px 0 0 0; |
| | | } |
| | | |
| | | .pallet-transports-optask-table >>> .el-table__header th { |
| | | .pallet-transports-optask-table>>>.el-table__header th { |
| | | color: #666666; |
| | | } |
| | | |
| | | .pallet-transports-optask-table >>> th { |
| | | .pallet-transports-optask-table>>>th { |
| | | padding: 3px 0px; |
| | | height: 31px; |
| | | } |
| | | .pallet-transports-optask-table >>> td { |
| | | |
| | | .pallet-transports-optask-table>>>td { |
| | | padding: 1px 0 0 0; |
| | | } |
| | | .optask-table-single-checkbox |
| | | >>> .el-checkbox__input.is-disabled.is-checked |
| | | .el-checkbox__inner { |
| | | |
| | | .optask-table-single-checkbox>>>.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { |
| | | background-color: #006eff; |
| | | border-color: #006eff; |
| | | } |
| | | .optask-table-single-checkbox |
| | | >>> .el-checkbox__input.is-disabled |
| | | .el-checkbox__inner { |
| | | |
| | | .optask-table-single-checkbox>>>.el-checkbox__input.is-disabled .el-checkbox__inner { |
| | | background-color: #ffffff; |
| | | cursor: pointer; |
| | | } |
| | | .optask-table-single-checkbox >>> .el-checkbox__inner::after { |
| | | |
| | | .optask-table-single-checkbox>>>.el-checkbox__inner::after { |
| | | border: 1px solid #fff !important; |
| | | border-left: 0 !important; |
| | | border-top: 0 !important; |
| | | cursor: pointer !important; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | * é
ç½®åè: |
| | | * https://cli.vuejs.org/zh/config/ |
| | | */ |
| | | // const url = 'http://192.168.2.7:9999' |
| | | //const url = 'http://192.168.2.7:9999' |
| | | //const url = 'http://192.168.32.45:9999' |
| | | // const url = 'http://192.168.0.23:9999' |
| | | |
| | | // const url = 'http://192.168.0.60:9999' |
| | | const url = 'http://localhost:9999' |
| | | const url = 'http://localhost:9999' |
| | | |
| | | // const url = 'http://ztt-gateway:9999' |
| | | const localUrl = 'http://localhost:8089' |