Showing
7 changed files
with
884 additions
and
442 deletions
| 1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
| 2 | <html> | 2 | <html> |
| 3 | - <head> | 3 | + |
| 4 | - <meta charset="utf-8" /> | 4 | +<head> |
| 5 | - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> | 5 | + <meta charset="utf-8" /> |
| 6 | - <meta name="renderer" content="webkit" /> | 6 | + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> |
| 7 | - <meta | 7 | + <meta name="renderer" content="webkit" /> |
| 8 | - name="viewport" | 8 | + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> |
| 9 | - content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" | 9 | + <meta http-equiv="Content-Security-Policy" content=" |
| 10 | - /> | ||
| 11 | - <meta http-equiv="Content-Security-Policy" content=" | ||
| 12 | worker-src blob:; | 10 | worker-src blob:; |
| 13 | child-src blob: gap:; | 11 | child-src blob: gap:; |
| 14 | img-src 'self' blob: data:; | 12 | img-src 'self' blob: data:; |
| 15 | default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap: content:"> | 13 | default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap: content:"> |
| 16 | - | 14 | + |
| 17 | - | 15 | + |
| 18 | - <link rel="icon" href="<%= BASE_URL %>favicon.ico" /> | 16 | + <link rel="icon" href="<%= BASE_URL %>favicon.ico" /> |
| 19 | - <title><%= webpackConfig.name %></title> | 17 | + <title> |
| 20 | - <!--[if lt IE 11 | 18 | + <%= webpackConfig.name %> |
| 19 | + </title> | ||
| 20 | + <!--[if lt IE 11 | ||
| 21 | ]><script> | 21 | ]><script> |
| 22 | window.location.href = "/html/ie.html"; | 22 | window.location.href = "/html/ie.html"; |
| 23 | </script><! | 23 | </script><! |
| 24 | [endif]--> | 24 | [endif]--> |
| 25 | - <style> | 25 | + <style> |
| 26 | - html, | 26 | + html, |
| 27 | - body, | 27 | + body, |
| 28 | - #app { | 28 | + #app { |
| 29 | - height: 100%; | 29 | + height: 100%; |
| 30 | - margin: 0px; | 30 | + margin: 0px; |
| 31 | - padding: 0px; | 31 | + padding: 0px; |
| 32 | - } | 32 | + } |
| 33 | - .chromeframe { | 33 | + |
| 34 | - margin: 0.2em 0; | 34 | + .chromeframe { |
| 35 | - background: #ccc; | 35 | + margin: 0.2em 0; |
| 36 | - color: #000; | 36 | + background: #ccc; |
| 37 | - padding: 0.2em 0; | 37 | + color: #000; |
| 38 | - } | 38 | + padding: 0.2em 0; |
| 39 | - | 39 | + } |
| 40 | - #loader-wrapper { | 40 | + |
| 41 | - position: fixed; | 41 | + #loader-wrapper { |
| 42 | - top: 0; | 42 | + position: fixed; |
| 43 | - left: 0; | 43 | + top: 0; |
| 44 | - width: 100%; | 44 | + left: 0; |
| 45 | - height: 100%; | 45 | + width: 100%; |
| 46 | - z-index: 999999; | 46 | + height: 100%; |
| 47 | - } | 47 | + z-index: 999999; |
| 48 | - | 48 | + } |
| 49 | - #loader { | 49 | + |
| 50 | - display: block; | 50 | + #loader { |
| 51 | - position: relative; | 51 | + display: block; |
| 52 | - left: 50%; | 52 | + position: relative; |
| 53 | - top: 50%; | 53 | + left: 50%; |
| 54 | - width: 150px; | 54 | + top: 50%; |
| 55 | - height: 150px; | 55 | + width: 150px; |
| 56 | - margin: -75px 0 0 -75px; | 56 | + height: 150px; |
| 57 | - border-radius: 50%; | 57 | + margin: -75px 0 0 -75px; |
| 58 | - border: 3px solid transparent; | 58 | + border-radius: 50%; |
| 59 | - border-top-color: #fff; | 59 | + border: 3px solid transparent; |
| 60 | - -webkit-animation: spin 2s linear infinite; | 60 | + border-top-color: #fff; |
| 61 | - -ms-animation: spin 2s linear infinite; | 61 | + -webkit-animation: spin 2s linear infinite; |
| 62 | - -moz-animation: spin 2s linear infinite; | 62 | + -ms-animation: spin 2s linear infinite; |
| 63 | - -o-animation: spin 2s linear infinite; | 63 | + -moz-animation: spin 2s linear infinite; |
| 64 | - animation: spin 2s linear infinite; | 64 | + -o-animation: spin 2s linear infinite; |
| 65 | - z-index: 1001; | 65 | + animation: spin 2s linear infinite; |
| 66 | - } | 66 | + z-index: 1001; |
| 67 | - | 67 | + } |
| 68 | - #loader:before { | 68 | + |
| 69 | - content: ""; | 69 | + #loader:before { |
| 70 | - position: absolute; | 70 | + content: ""; |
| 71 | - top: 5px; | 71 | + position: absolute; |
| 72 | - left: 5px; | 72 | + top: 5px; |
| 73 | - right: 5px; | 73 | + left: 5px; |
| 74 | - bottom: 5px; | 74 | + right: 5px; |
| 75 | - border-radius: 50%; | 75 | + bottom: 5px; |
| 76 | - border: 3px solid transparent; | 76 | + border-radius: 50%; |
| 77 | - border-top-color: #fff; | 77 | + border: 3px solid transparent; |
| 78 | - -webkit-animation: spin 3s linear infinite; | 78 | + border-top-color: #fff; |
| 79 | - -moz-animation: spin 3s linear infinite; | 79 | + -webkit-animation: spin 3s linear infinite; |
| 80 | - -o-animation: spin 3s linear infinite; | 80 | + -moz-animation: spin 3s linear infinite; |
| 81 | - -ms-animation: spin 3s linear infinite; | 81 | + -o-animation: spin 3s linear infinite; |
| 82 | - animation: spin 3s linear infinite; | 82 | + -ms-animation: spin 3s linear infinite; |
| 83 | - } | 83 | + animation: spin 3s linear infinite; |
| 84 | - | 84 | + } |
| 85 | - #loader:after { | 85 | + |
| 86 | - content: ""; | 86 | + #loader:after { |
| 87 | - position: absolute; | 87 | + content: ""; |
| 88 | - top: 15px; | 88 | + position: absolute; |
| 89 | - left: 15px; | 89 | + top: 15px; |
| 90 | - right: 15px; | 90 | + left: 15px; |
| 91 | - bottom: 15px; | 91 | + right: 15px; |
| 92 | - border-radius: 50%; | 92 | + bottom: 15px; |
| 93 | - border: 3px solid transparent; | 93 | + border-radius: 50%; |
| 94 | - border-top-color: #fff; | 94 | + border: 3px solid transparent; |
| 95 | - -moz-animation: spin 1.5s linear infinite; | 95 | + border-top-color: #fff; |
| 96 | - -o-animation: spin 1.5s linear infinite; | 96 | + -moz-animation: spin 1.5s linear infinite; |
| 97 | - -ms-animation: spin 1.5s linear infinite; | 97 | + -o-animation: spin 1.5s linear infinite; |
| 98 | - -webkit-animation: spin 1.5s linear infinite; | 98 | + -ms-animation: spin 1.5s linear infinite; |
| 99 | - animation: spin 1.5s linear infinite; | 99 | + -webkit-animation: spin 1.5s linear infinite; |
| 100 | - } | 100 | + animation: spin 1.5s linear infinite; |
| 101 | - | 101 | + } |
| 102 | - @-webkit-keyframes spin { | 102 | + |
| 103 | - 0% { | 103 | + @-webkit-keyframes spin { |
| 104 | - -webkit-transform: rotate(0deg); | 104 | + 0% { |
| 105 | - -ms-transform: rotate(0deg); | 105 | + -webkit-transform: rotate(0deg); |
| 106 | - transform: rotate(0deg); | 106 | + -ms-transform: rotate(0deg); |
| 107 | - } | 107 | + transform: rotate(0deg); |
| 108 | - 100% { | 108 | + } |
| 109 | - -webkit-transform: rotate(360deg); | 109 | + |
| 110 | - -ms-transform: rotate(360deg); | 110 | + 100% { |
| 111 | - transform: rotate(360deg); | 111 | + -webkit-transform: rotate(360deg); |
| 112 | - } | 112 | + -ms-transform: rotate(360deg); |
| 113 | - } | 113 | + transform: rotate(360deg); |
| 114 | - | 114 | + } |
| 115 | - @keyframes spin { | 115 | + } |
| 116 | - 0% { | 116 | + |
| 117 | - -webkit-transform: rotate(0deg); | 117 | + @keyframes spin { |
| 118 | - -ms-transform: rotate(0deg); | 118 | + 0% { |
| 119 | - transform: rotate(0deg); | 119 | + -webkit-transform: rotate(0deg); |
| 120 | - } | 120 | + -ms-transform: rotate(0deg); |
| 121 | - 100% { | 121 | + transform: rotate(0deg); |
| 122 | - -webkit-transform: rotate(360deg); | 122 | + } |
| 123 | - -ms-transform: rotate(360deg); | 123 | + |
| 124 | - transform: rotate(360deg); | 124 | + 100% { |
| 125 | - } | 125 | + -webkit-transform: rotate(360deg); |
| 126 | - } | 126 | + -ms-transform: rotate(360deg); |
| 127 | - | 127 | + transform: rotate(360deg); |
| 128 | - #loader-wrapper .loader-section { | 128 | + } |
| 129 | - position: fixed; | 129 | + } |
| 130 | - top: 0; | 130 | + |
| 131 | - width: 51%; | 131 | + #loader-wrapper .loader-section { |
| 132 | - height: 100%; | 132 | + position: fixed; |
| 133 | - background: #4d148c; | 133 | + top: 0; |
| 134 | - z-index: 1000; | 134 | + width: 51%; |
| 135 | - -webkit-transform: translateX(0); | 135 | + height: 100%; |
| 136 | - -ms-transform: translateX(0); | 136 | + background: #4d148c; |
| 137 | - transform: translateX(0); | 137 | + z-index: 1000; |
| 138 | - } | 138 | + -webkit-transform: translateX(0); |
| 139 | - | 139 | + -ms-transform: translateX(0); |
| 140 | - #loader-wrapper .loader-section.section-left { | 140 | + transform: translateX(0); |
| 141 | - left: 0; | 141 | + } |
| 142 | - } | 142 | + |
| 143 | - | 143 | + #loader-wrapper .loader-section.section-left { |
| 144 | - #loader-wrapper .loader-section.section-right { | 144 | + left: 0; |
| 145 | - right: 0; | 145 | + } |
| 146 | - } | 146 | + |
| 147 | - | 147 | + #loader-wrapper .loader-section.section-right { |
| 148 | - .loaded #loader-wrapper .loader-section.section-left { | 148 | + right: 0; |
| 149 | - -webkit-transform: translateX(-100%); | 149 | + } |
| 150 | - -ms-transform: translateX(-100%); | 150 | + |
| 151 | - transform: translateX(-100%); | 151 | + .loaded #loader-wrapper .loader-section.section-left { |
| 152 | - -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); | 152 | + -webkit-transform: translateX(-100%); |
| 153 | - transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); | 153 | + -ms-transform: translateX(-100%); |
| 154 | - } | 154 | + transform: translateX(-100%); |
| 155 | - | 155 | + -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
| 156 | - .loaded #loader-wrapper .loader-section.section-right { | 156 | + transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
| 157 | - -webkit-transform: translateX(100%); | 157 | + } |
| 158 | - -ms-transform: translateX(100%); | 158 | + |
| 159 | - transform: translateX(100%); | 159 | + .loaded #loader-wrapper .loader-section.section-right { |
| 160 | - -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); | 160 | + -webkit-transform: translateX(100%); |
| 161 | - transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); | 161 | + -ms-transform: translateX(100%); |
| 162 | - } | 162 | + transform: translateX(100%); |
| 163 | - | 163 | + -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
| 164 | - .loaded #loader { | 164 | + transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
| 165 | - opacity: 0; | 165 | + } |
| 166 | - -webkit-transition: all 0.3s ease-out; | 166 | + |
| 167 | - transition: all 0.3s ease-out; | 167 | + .loaded #loader { |
| 168 | - } | 168 | + opacity: 0; |
| 169 | - | 169 | + -webkit-transition: all 0.3s ease-out; |
| 170 | - .loaded #loader-wrapper { | 170 | + transition: all 0.3s ease-out; |
| 171 | - visibility: hidden; | 171 | + } |
| 172 | - -webkit-transform: translateY(-100%); | 172 | + |
| 173 | - -ms-transform: translateY(-100%); | 173 | + .loaded #loader-wrapper { |
| 174 | - transform: translateY(-100%); | 174 | + visibility: hidden; |
| 175 | - -webkit-transition: all 0.3s 1s ease-out; | 175 | + -webkit-transform: translateY(-100%); |
| 176 | - transition: all 0.3s 1s ease-out; | 176 | + -ms-transform: translateY(-100%); |
| 177 | - } | 177 | + transform: translateY(-100%); |
| 178 | - | 178 | + -webkit-transition: all 0.3s 1s ease-out; |
| 179 | - .no-js #loader-wrapper { | 179 | + transition: all 0.3s 1s ease-out; |
| 180 | - display: none; | 180 | + } |
| 181 | - } | 181 | + |
| 182 | - | 182 | + .no-js #loader-wrapper { |
| 183 | - .no-js h1 { | 183 | + display: none; |
| 184 | - color: #222222; | 184 | + } |
| 185 | - } | 185 | + |
| 186 | - | 186 | + .no-js h1 { |
| 187 | - #loader-wrapper .load_title { | 187 | + color: #222222; |
| 188 | - font-family: "Open Sans"; | 188 | + } |
| 189 | - color: #fff; | 189 | + |
| 190 | - font-size: 19px; | 190 | + #loader-wrapper .load_title { |
| 191 | - width: 100%; | 191 | + font-family: "Open Sans"; |
| 192 | - text-align: center; | 192 | + color: #fff; |
| 193 | - z-index: 9999999999999; | 193 | + font-size: 19px; |
| 194 | - position: absolute; | 194 | + width: 100%; |
| 195 | - top: 60%; | 195 | + text-align: center; |
| 196 | - opacity: 1; | 196 | + z-index: 9999999999999; |
| 197 | - line-height: 30px; | 197 | + position: absolute; |
| 198 | - } | 198 | + top: 60%; |
| 199 | - | 199 | + opacity: 1; |
| 200 | - #loader-wrapper .load_title span { | 200 | + line-height: 30px; |
| 201 | - font-weight: normal; | 201 | + } |
| 202 | - font-style: italic; | 202 | + |
| 203 | - font-size: 13px; | 203 | + #loader-wrapper .load_title span { |
| 204 | - color: #fff; | 204 | + font-weight: normal; |
| 205 | - opacity: 0.5; | 205 | + font-style: italic; |
| 206 | - } | 206 | + font-size: 13px; |
| 207 | - </style> | 207 | + color: #fff; |
| 208 | - </head> | 208 | + opacity: 0.5; |
| 209 | - <body> | 209 | + } |
| 210 | - <div id="app"> | 210 | + </style> |
| 211 | - <div id="loader-wrapper"> | 211 | +</head> |
| 212 | - <div id="loader"></div> | 212 | + |
| 213 | - <div class="loader-section section-left"></div> | 213 | +<body> |
| 214 | - <div class="loader-section section-right"></div> | 214 | + <div id="app"> |
| 215 | - <div class="load_title">正在加載系統資源,請耐心等待</div> | 215 | + <div id="loader-wrapper"> |
| 216 | - </div> | 216 | + <div id="loader"></div> |
| 217 | + <div class="loader-section section-left"></div> | ||
| 218 | + <div class="loader-section section-right"></div> | ||
| 219 | + <div class="load_title">Loading system resources, please be patient</div> | ||
| 217 | </div> | 220 | </div> |
| 218 | - </body> | 221 | + </div> |
| 219 | -</html> | 222 | +</body> |
| 223 | + | ||
| 224 | +</html> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -1106,4 +1106,59 @@ input:disabled { | ... | @@ -1106,4 +1106,59 @@ input:disabled { |
| 1106 | 1106 | ||
| 1107 | .questionIcon { | 1107 | .questionIcon { |
| 1108 | color: $fedexColor; | 1108 | color: $fedexColor; |
| 1109 | +} | ||
| 1110 | + | ||
| 1111 | +.uploadHistoryDialog { | ||
| 1112 | + .el-dialog__header { | ||
| 1113 | + .el-dialog__title { | ||
| 1114 | + font-size: 18px; | ||
| 1115 | + } | ||
| 1116 | + } | ||
| 1117 | + | ||
| 1118 | + .el-dialog__body { | ||
| 1119 | + padding: 10px 50px !important; | ||
| 1120 | + } | ||
| 1121 | +} | ||
| 1122 | + | ||
| 1123 | +.uploadHistoryTable { | ||
| 1124 | + .el-table__header-wrapper { | ||
| 1125 | + .el-table__header { | ||
| 1126 | + thead { | ||
| 1127 | + tr { | ||
| 1128 | + th { | ||
| 1129 | + background-color: #fff !important; | ||
| 1130 | + } | ||
| 1131 | + } | ||
| 1132 | + } | ||
| 1133 | + } | ||
| 1134 | + } | ||
| 1135 | + | ||
| 1136 | + .el-table__body-wrapper { | ||
| 1137 | + tbody { | ||
| 1138 | + tr { | ||
| 1139 | + td { | ||
| 1140 | + background-color: $formItemBackgroundColor; | ||
| 1141 | + } | ||
| 1142 | + | ||
| 1143 | + .el-table__expand-column { | ||
| 1144 | + .cell { | ||
| 1145 | + .el-table__expand-icon { | ||
| 1146 | + display: none !important; | ||
| 1147 | + } | ||
| 1148 | + } | ||
| 1149 | + } | ||
| 1150 | + | ||
| 1151 | + .el-table__expanded-cell { | ||
| 1152 | + padding: 0px; | ||
| 1153 | + background-color: #fff !important; | ||
| 1154 | + } | ||
| 1155 | + } | ||
| 1156 | + | ||
| 1157 | + tr:hover { | ||
| 1158 | + .el-table__expanded-cell { | ||
| 1159 | + background-color: #fff !important; | ||
| 1160 | + } | ||
| 1161 | + } | ||
| 1162 | + } | ||
| 1163 | + } | ||
| 1109 | } | 1164 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | - <el-form-item | 2 | + <div style="pointer-events: auto" @click="formItemClick"> |
| 3 | - class="fedexFormItem" | 3 | + <el-form-item |
| 4 | - :label="itemLabel" | 4 | + class="fedexFormItem" |
| 5 | - :prop="prop" | 5 | + :label="itemLabel" |
| 6 | - :required="required" | 6 | + :prop="prop" |
| 7 | - :error="error" | 7 | + :required="required" |
| 8 | - :id="'inputOuter-' + type + '-' + prop" | 8 | + :error="error" |
| 9 | - > | 9 | + :id="'inputOuter-' + type + '-' + prop" |
| 10 | - <slot name="title" slot="label"></slot> | 10 | + > |
| 11 | - <slot></slot> | 11 | + <slot name="title" slot="label"></slot> |
| 12 | - <template v-slot:error="scoped"> | 12 | + <el-tooltip |
| 13 | - <div class="formError">{{ scoped.error }}</div> | 13 | + v-if="toolyipShow" |
| 14 | - </template> | 14 | + class="item" |
| 15 | - </el-form-item> | 15 | + effect="dark" |
| 16 | + :content="content" | ||
| 17 | + :disabled="tooltipDisabled" | ||
| 18 | + placement="top" | ||
| 19 | + > | ||
| 20 | + <slot></slot> | ||
| 21 | + </el-tooltip> | ||
| 22 | + <slot v-else></slot> | ||
| 23 | + <template v-slot:error="scoped"> | ||
| 24 | + <div class="formError">{{ scoped.error }}</div> | ||
| 25 | + </template> | ||
| 26 | + </el-form-item> | ||
| 27 | + </div> | ||
| 16 | </template> | 28 | </template> |
| 17 | 29 | ||
| 18 | <script> | 30 | <script> |
| ... | @@ -42,11 +54,25 @@ export default { | ... | @@ -42,11 +54,25 @@ export default { |
| 42 | type: String, | 54 | type: String, |
| 43 | default: "", | 55 | default: "", |
| 44 | }, | 56 | }, |
| 57 | + disabled: { | ||
| 58 | + type: Boolean, | ||
| 59 | + default: true, | ||
| 60 | + }, | ||
| 61 | + toolyipShow: { | ||
| 62 | + type: Boolean, | ||
| 63 | + default: false, | ||
| 64 | + }, | ||
| 65 | + eventType: { | ||
| 66 | + type: Boolean, | ||
| 67 | + default: false, | ||
| 68 | + }, | ||
| 45 | }, | 69 | }, |
| 46 | data() { | 70 | data() { |
| 47 | return { | 71 | return { |
| 48 | itemLabel: this.label, | 72 | itemLabel: this.label, |
| 49 | inputFocusType: false, | 73 | inputFocusType: false, |
| 74 | + content: "", | ||
| 75 | + tooltipDisabled: true, | ||
| 50 | }; | 76 | }; |
| 51 | }, | 77 | }, |
| 52 | watch: { | 78 | watch: { |
| ... | @@ -62,8 +88,13 @@ export default { | ... | @@ -62,8 +88,13 @@ export default { |
| 62 | let outInput = document.querySelector( | 88 | let outInput = document.querySelector( |
| 63 | "#inputOuter-" + this.type + "-" + this.prop | 89 | "#inputOuter-" + this.type + "-" + this.prop |
| 64 | ); //获取formitem | 90 | ); //获取formitem |
| 91 | + let dateEditor = document.querySelector(".el-date-editor"); | ||
| 65 | if (inputInner) { | 92 | if (inputInner) { |
| 93 | + if (inputInner.disabled && this.eventType) { | ||
| 94 | + inputInner.style = "pointer-events:none"; | ||
| 95 | + } | ||
| 66 | //通过input得id是否存在判断效果是否激活 | 96 | //通过input得id是否存在判断效果是否激活 |
| 97 | + this.activeType ? inputInner.classList.add("inputFocus") : ""; | ||
| 67 | inputInner.addEventListener("focus", (e) => { | 98 | inputInner.addEventListener("focus", (e) => { |
| 68 | this.inputFocusType = true; | 99 | this.inputFocusType = true; |
| 69 | inputInner.classList.add("inputFocus"); | 100 | inputInner.classList.add("inputFocus"); |
| ... | @@ -73,12 +104,8 @@ export default { | ... | @@ -73,12 +104,8 @@ export default { |
| 73 | inputInner.addEventListener("blur", (e) => { | 104 | inputInner.addEventListener("blur", (e) => { |
| 74 | if (!e.target.value && !e.target.placeholder) { | 105 | if (!e.target.value && !e.target.placeholder) { |
| 75 | // input失焦时如果无内容则移除active class | 106 | // input失焦时如果无内容则移除active class |
| 76 | - if (this.labelInput) { | 107 | + this.itemLabel = this.label; |
| 77 | - this.itemLabel = this.label; | 108 | + !this.activeType ? inputInner.classList.remove("inputFocus") : ""; |
| 78 | - // labelInputInner_parentNode.style.display = 'inline-block' | ||
| 79 | - } else { | ||
| 80 | - !this.activeType ? inputInner.classList.remove("inputFocus") : ""; | ||
| 81 | - } | ||
| 82 | } else { | 109 | } else { |
| 83 | inputInner.classList.add("inputFocus"); | 110 | inputInner.classList.add("inputFocus"); |
| 84 | } | 111 | } |
| ... | @@ -89,12 +116,8 @@ export default { | ... | @@ -89,12 +116,8 @@ export default { |
| 89 | inputInner.addEventListener("change", (e) => { | 116 | inputInner.addEventListener("change", (e) => { |
| 90 | if (!e.target.value && !e.target.placeholder) { | 117 | if (!e.target.value && !e.target.placeholder) { |
| 91 | // input失焦时如果无内容则移除active class | 118 | // input失焦时如果无内容则移除active class |
| 92 | - if (this.labelInput) { | 119 | + this.itemLabel = this.label; |
| 93 | - this.itemLabel = this.label; | 120 | + !this.activeType ? inputInner.classList.remove("inputFocus") : ""; |
| 94 | - // labelInputInner_parentNode.style.display = 'inline-block' | ||
| 95 | - } else { | ||
| 96 | - !this.activeType ? inputInner.classList.remove("inputFocus") : ""; | ||
| 97 | - } | ||
| 98 | } else { | 121 | } else { |
| 99 | inputInner.classList.add("inputFocus"); | 122 | inputInner.classList.add("inputFocus"); |
| 100 | } | 123 | } |
| ... | @@ -113,7 +136,62 @@ export default { | ... | @@ -113,7 +136,62 @@ export default { |
| 113 | if (inputInner.value) { | 136 | if (inputInner.value) { |
| 114 | inputInner.classList.add("inputFocus"); | 137 | inputInner.classList.add("inputFocus"); |
| 115 | } | 138 | } |
| 139 | + this.content = inputInner.value; | ||
| 116 | }); | 140 | }); |
| 141 | + } else { | ||
| 142 | + if (dateEditor) { | ||
| 143 | + this.activeType | ||
| 144 | + ? document | ||
| 145 | + .querySelector(".inputInner-" + this.type + "-" + this.prop) | ||
| 146 | + .classList.add("inputFocus") | ||
| 147 | + : ""; | ||
| 148 | + if ( | ||
| 149 | + document.querySelector(".inputInner-" + this.type + "-" + this.prop) | ||
| 150 | + ) { | ||
| 151 | + let dataInner = document | ||
| 152 | + .querySelector(".inputInner-" + this.type + "-" + this.prop) | ||
| 153 | + .getElementsByClassName("el-range-input"); | ||
| 154 | + dataInner[0].addEventListener("focus", (e) => { | ||
| 155 | + this.inputFocusType = true; | ||
| 156 | + dataInner[0].classList.add("inputFocus"); | ||
| 157 | + outInput.classList.add("activeBorder"); | ||
| 158 | + }); | ||
| 159 | + | ||
| 160 | + dataInner[1].addEventListener("focus", (e) => { | ||
| 161 | + this.inputFocusType = true; | ||
| 162 | + dataInner[1].classList.add("inputFocus"); | ||
| 163 | + outInput.classList.add("activeBorder"); | ||
| 164 | + }); | ||
| 165 | + | ||
| 166 | + dataInner[0].addEventListener("blur", (e) => { | ||
| 167 | + if (!e.target.value && !e.target.placeholder) { | ||
| 168 | + // input失焦时如果无内容则移除active class | ||
| 169 | + this.itemLabel = this.label; | ||
| 170 | + !this.activeType | ||
| 171 | + ? dataInner[0].classList.remove("inputFocus") | ||
| 172 | + : ""; | ||
| 173 | + } else { | ||
| 174 | + dataInner[0].classList.add("inputFocus"); | ||
| 175 | + } | ||
| 176 | + this.inputFocusType = false; | ||
| 177 | + outInput.classList.remove("activeBorder"); | ||
| 178 | + }); | ||
| 179 | + | ||
| 180 | + dataInner[1].addEventListener("blur", (e) => { | ||
| 181 | + if (!e.target.value && !e.target.placeholder) { | ||
| 182 | + // input失焦时如果无内容则移除active class | ||
| 183 | + this.itemLabel = this.label; | ||
| 184 | + !this.activeType | ||
| 185 | + ? dataInner[1].classList.remove("inputFocus") | ||
| 186 | + : ""; | ||
| 187 | + } else { | ||
| 188 | + dataInner[1].classList.add("inputFocus"); | ||
| 189 | + } | ||
| 190 | + this.inputFocusType = false; | ||
| 191 | + outInput.classList.remove("activeBorder"); | ||
| 192 | + }); | ||
| 193 | + } | ||
| 194 | + } | ||
| 117 | } | 195 | } |
| 118 | }, | 196 | }, |
| 119 | updated() { | 197 | updated() { |
| ... | @@ -123,27 +201,73 @@ export default { | ... | @@ -123,27 +201,73 @@ export default { |
| 123 | let outInput = document.querySelector( | 201 | let outInput = document.querySelector( |
| 124 | "#inputOuter-" + this.type + "-" + this.prop | 202 | "#inputOuter-" + this.type + "-" + this.prop |
| 125 | ); //获取formitem | 203 | ); //获取formitem |
| 204 | + let dateEditor = document.querySelector(".el-date-editor"); | ||
| 126 | this.$nextTick(() => { | 205 | this.$nextTick(() => { |
| 127 | - if (inputInner && inputInner.value) { | 206 | + if (inputInner) { |
| 128 | - inputInner.classList.add("inputFocus"); | 207 | + if ( |
| 208 | + inputInner.value != undefined && | ||
| 209 | + inputInner.value != "" && | ||
| 210 | + inputInner.value != null | ||
| 211 | + ) { | ||
| 212 | + inputInner.classList.add("inputFocus"); | ||
| 213 | + } else { | ||
| 214 | + !this.inputFocusType ? inputInner.classList.remove("inputFocus") : ""; | ||
| 215 | + this.activeType ? inputInner.classList.add("inputFocus") : ""; | ||
| 216 | + } | ||
| 129 | } else { | 217 | } else { |
| 130 | - !this.inputFocusType ? inputInner?.classList.remove("inputFocus") : ""; | 218 | + if (dateEditor) { |
| 219 | + if (this.activeType) { | ||
| 220 | + document.querySelector(".inputInner-" + this.type + "-" + this.prop) | ||
| 221 | + .classList | ||
| 222 | + ? document | ||
| 223 | + .querySelector(".inputInner-" + this.type + "-" + this.prop) | ||
| 224 | + .classList.add("inputFocus") | ||
| 225 | + : ""; | ||
| 226 | + } | ||
| 227 | + } | ||
| 228 | + } | ||
| 229 | + if ( | ||
| 230 | + inputInner && | ||
| 231 | + inputInner.offsetWidth && | ||
| 232 | + inputInner.offsetWidth < inputInner.scrollWidth | ||
| 233 | + ) { | ||
| 234 | + this.content = inputInner.value; | ||
| 235 | + !this.disabled | ||
| 236 | + ? (this.tooltipDisabled = false) | ||
| 237 | + : (this.tooltipDisabled = true); | ||
| 131 | } | 238 | } |
| 132 | }); | 239 | }); |
| 133 | }, | 240 | }, |
| 134 | methods: { | 241 | methods: { |
| 242 | + formItemClick() { | ||
| 243 | + this.$emit("event", this.prop); | ||
| 244 | + }, | ||
| 135 | getDateEditorNode() { | 245 | getDateEditorNode() { |
| 136 | let dateInput = document.getElementsByClassName("el-date-editor"); | 246 | let dateInput = document.getElementsByClassName("el-date-editor"); |
| 137 | dateInput.forEach((item) => { | 247 | dateInput.forEach((item) => { |
| 138 | - item | 248 | + item.querySelector(".el-input__suffix") |
| 139 | - .querySelector(".el-input__suffix") | 249 | + ? item |
| 140 | - .children[0].children[0].classList.add("el-icon-date"); | 250 | + .querySelector(".el-input__suffix") |
| 251 | + .children[0].children[0].classList.add("el-icon-date") | ||
| 252 | + : ""; | ||
| 141 | }); | 253 | }); |
| 142 | let selectInput = document.getElementsByClassName("el-select"); | 254 | let selectInput = document.getElementsByClassName("el-select"); |
| 143 | selectInput.forEach((item) => { | 255 | selectInput.forEach((item) => { |
| 144 | // item.querySelector('.el-input__suffix').children[0].children[0].style.display = 'none' | 256 | // item.querySelector('.el-input__suffix').children[0].children[0].style.display = 'none' |
| 145 | }); | 257 | }); |
| 146 | }, | 258 | }, |
| 259 | + onMouseOver(str) { | ||
| 260 | + if (this.$refs[str]) { | ||
| 261 | + const parentWidth = this.$refs[str].parentNode.offsetWidth; | ||
| 262 | + const contentWidth = this.$refs[str].offsetWidth; | ||
| 263 | + // 判断是否开启tooltip功能 | ||
| 264 | + if (contentWidth > parentWidth) { | ||
| 265 | + this.isShowTooltip = false; | ||
| 266 | + } else { | ||
| 267 | + this.isShowTooltip = true; | ||
| 268 | + } | ||
| 269 | + } | ||
| 270 | + }, | ||
| 147 | }, | 271 | }, |
| 148 | }; | 272 | }; |
| 149 | </script> | 273 | </script> | ... | ... |
| ... | @@ -6,10 +6,10 @@ export default { | ... | @@ -6,10 +6,10 @@ export default { |
| 6 | }, | 6 | }, |
| 7 | // 公用 | 7 | // 公用 |
| 8 | common: { | 8 | common: { |
| 9 | - sureBtn: "確定", | 9 | + sureBtn: "OK", |
| 10 | goBack: "返回", | 10 | goBack: "返回", |
| 11 | submitBtn: "提交", | 11 | submitBtn: "提交", |
| 12 | - cancleBtn: "取消", | 12 | + cancleBtn: "Cancel", |
| 13 | useBtn: "使用", | 13 | useBtn: "使用", |
| 14 | saveBtn: "保存", | 14 | saveBtn: "保存", |
| 15 | closeBtn: "關閉", | 15 | closeBtn: "關閉", |
| ... | @@ -86,8 +86,8 @@ export default { | ... | @@ -86,8 +86,8 @@ export default { |
| 86 | onlineDeclare: "線上申報平臺帳號登錄", | 86 | onlineDeclare: "線上申報平臺帳號登錄", |
| 87 | registerNumber: "註冊線上申報平臺帳號", | 87 | registerNumber: "註冊線上申報平臺帳號", |
| 88 | userInfo: "用戶信息維護", | 88 | userInfo: "用戶信息維護", |
| 89 | - logOut: "退出登錄", | 89 | + logOut: "log out", |
| 90 | - logOutDia: "確定註銷並退出系統嗎?", | 90 | + logOutDia: "Are you sure to log out and exit the system?", |
| 91 | }, | 91 | }, |
| 92 | // 申报输入 | 92 | // 申报输入 |
| 93 | fillIn: { | 93 | fillIn: { | ... | ... |
| ... | @@ -100,7 +100,6 @@ import TopNav from "@/components/TopNav"; | ... | @@ -100,7 +100,6 @@ import TopNav from "@/components/TopNav"; |
| 100 | import Hamburger from "@/components/Hamburger"; | 100 | import Hamburger from "@/components/Hamburger"; |
| 101 | import { removeToken } from "@/utils/auth"; | 101 | import { removeToken } from "@/utils/auth"; |
| 102 | 102 | ||
| 103 | - | ||
| 104 | export default { | 103 | export default { |
| 105 | components: { | 104 | components: { |
| 106 | Breadcrumb, | 105 | Breadcrumb, |
| ... | @@ -109,9 +108,13 @@ export default { | ... | @@ -109,9 +108,13 @@ export default { |
| 109 | }, | 108 | }, |
| 110 | data() { | 109 | data() { |
| 111 | return { | 110 | return { |
| 112 | - lang: localStorage.getItem("lang") || "zh-TW", | 111 | + lang: localStorage.getItem("lang") || "en", |
| 113 | langOptions: [ | 112 | langOptions: [ |
| 114 | { | 113 | { |
| 114 | + label: "English", | ||
| 115 | + value: "en", | ||
| 116 | + }, | ||
| 117 | + { | ||
| 115 | label: "中文繁體", | 118 | label: "中文繁體", |
| 116 | value: "zh-TW", | 119 | value: "zh-TW", |
| 117 | }, | 120 | }, |
| ... | @@ -147,7 +150,7 @@ export default { | ... | @@ -147,7 +150,7 @@ export default { |
| 147 | this.$store.dispatch("app/toggleSideBar"); | 150 | this.$store.dispatch("app/toggleSideBar"); |
| 148 | }, | 151 | }, |
| 149 | async logout() { | 152 | async logout() { |
| 150 | - this.$confirm(this.$t("layout.logOutDia"), "提示", { | 153 | + this.$confirm(this.$t("layout.logOutDia"), "Tip", { |
| 151 | confirmButtonText: this.$t("common.sureBtn"), | 154 | confirmButtonText: this.$t("common.sureBtn"), |
| 152 | cancelButtonText: this.$t("common.cancleBtn"), | 155 | cancelButtonText: this.$t("common.cancleBtn"), |
| 153 | type: "warning", | 156 | type: "warning", |
| ... | @@ -165,7 +168,7 @@ export default { | ... | @@ -165,7 +168,7 @@ export default { |
| 165 | this.$emit("login", "login"); | 168 | this.$emit("login", "login"); |
| 166 | } else if (val == "create") { | 169 | } else if (val == "create") { |
| 167 | this.$emit("login", "create"); | 170 | this.$emit("login", "create"); |
| 168 | - }else if(val == "fedexRegister"){ | 171 | + } else if (val == "fedexRegister") { |
| 169 | this.$emit("login", "fedexRegister"); | 172 | this.$emit("login", "fedexRegister"); |
| 170 | } | 173 | } |
| 171 | }, | 174 | }, | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="loginForm"> | 2 | <div class="loginForm"> |
| 3 | - <FedexAlert v-if="errorTip.length > 0" class="mb20" :tipList="errorTip" @close="errorTipClose" /> | 3 | + <FedexAlert |
| 4 | + v-if="errorTip.length > 0" | ||
| 5 | + class="mb20" | ||
| 6 | + :tipList="errorTip" | ||
| 7 | + @close="errorTipClose" | ||
| 8 | + /> | ||
| 4 | <div v-if="loginType == 'login'"> | 9 | <div v-if="loginType == 'login'"> |
| 5 | <div class="form-title">{{ $t("login.userTitle") }}</div> | 10 | <div class="form-title">{{ $t("login.userTitle") }}</div> |
| 6 | - <!-- <div class="form-tip buttonType" @click="loginType = 'create'"> | 11 | + <el-form |
| 7 | - {{ $t("login.create") }} | 12 | + class="fedexFormStyle" |
| 8 | - </div> --> | 13 | + style="margin-top: 100px" |
| 9 | - <el-form class="fedexFormStyle" style="margin-top: 100px;" ref="loginFormRef" :model="loginForm" :rules="loginRules" label-position="top"> | 14 | + ref="loginFormRef" |
| 15 | + :model="loginForm" | ||
| 16 | + :rules="loginRules" | ||
| 17 | + label-position="top" | ||
| 18 | + > | ||
| 10 | <Formitem :label="$t('login.userNum')" prop="accNo"> | 19 | <Formitem :label="$t('login.userNum')" prop="accNo"> |
| 11 | - <el-input type="text" :id="'inputInner--accNo'" v-model="loginForm.accNo" auto-complete="off"></el-input> | 20 | + <el-input |
| 21 | + type="text" | ||
| 22 | + :id="'inputInner--accNo'" | ||
| 23 | + v-model="loginForm.accNo" | ||
| 24 | + auto-complete="off" | ||
| 25 | + ></el-input> | ||
| 12 | </Formitem> | 26 | </Formitem> |
| 13 | <Formitem :label="$t('login.passWord')" prop="password"> | 27 | <Formitem :label="$t('login.passWord')" prop="password"> |
| 14 | - <el-input type="password" :id="'inputInner--password'" v-model="loginForm.password" show-password | 28 | + <el-input |
| 15 | - auto-complete="off"></el-input> | 29 | + type="password" |
| 30 | + :id="'inputInner--password'" | ||
| 31 | + v-model="loginForm.password" | ||
| 32 | + show-password | ||
| 33 | + auto-complete="off" | ||
| 34 | + ></el-input> | ||
| 16 | </Formitem> | 35 | </Formitem> |
| 17 | <el-checkbox class="mt10" v-model="loginForm.rememberMe">{{ | 36 | <el-checkbox class="mt10" v-model="loginForm.rememberMe">{{ |
| 18 | $t("login.checkPassWord") | 37 | $t("login.checkPassWord") |
| 19 | }}</el-checkbox> | 38 | }}</el-checkbox> |
| 20 | </el-form> | 39 | </el-form> |
| 21 | <div class="form-option"> | 40 | <div class="form-option"> |
| 22 | - <el-button class="entrySaveButton entrySaveButton-background" :loading="loading" size="medium" type="primary" | 41 | + <el-button |
| 23 | - @click.native.prevent="handleLogin"> | 42 | + class="entrySaveButton entrySaveButton-background" |
| 43 | + :loading="loading" | ||
| 44 | + size="medium" | ||
| 45 | + type="primary" | ||
| 46 | + @click.native.prevent="handleLogin" | ||
| 47 | + > | ||
| 24 | <span v-if="!loading">{{ $t("login.loginBtn") }}</span> | 48 | <span v-if="!loading">{{ $t("login.loginBtn") }}</span> |
| 25 | <span v-else>{{ $t("login.loggingBtn") }}</span> | 49 | <span v-else>{{ $t("login.loggingBtn") }}</span> |
| 26 | </el-button> | 50 | </el-button> |
| 27 | - <!-- <div class="rePassword buttonType" @click="loginType = 'reset'"> | ||
| 28 | - {{ $t("login.forgetPassWord") }} | ||
| 29 | - </div> --> | ||
| 30 | </div> | 51 | </div> |
| 31 | </div> | 52 | </div> |
| 32 | <div v-else-if="loginType == 'rePassword'"> | 53 | <div v-else-if="loginType == 'rePassword'"> |
| 33 | <div class="form-title">{{ $t("login.resetPassWord") }}</div> | 54 | <div class="form-title">{{ $t("login.resetPassWord") }}</div> |
| 34 | <div class="form-tip">{{ $t("login.resetTip") }}</div> | 55 | <div class="form-tip">{{ $t("login.resetTip") }}</div> |
| 35 | - <el-form class="fedexFormStyle" ref="rePassword" :model="rePasswordForm" :rules="rePasswordFormRules" | 56 | + <el-form |
| 36 | - label-position="top"> | 57 | + class="fedexFormStyle" |
| 58 | + ref="rePassword" | ||
| 59 | + :model="rePasswordForm" | ||
| 60 | + :rules="rePasswordFormRules" | ||
| 61 | + label-position="top" | ||
| 62 | + > | ||
| 37 | <Formitem :label="$t('login.userNum')" type="rePassword" prop="accNo"> | 63 | <Formitem :label="$t('login.userNum')" type="rePassword" prop="accNo"> |
| 38 | - <el-input type="text" :id="'inputInner-rePassword-accNo'" v-model="rePasswordForm.accNo"></el-input> | 64 | + <el-input |
| 65 | + type="text" | ||
| 66 | + :id="'inputInner-rePassword-accNo'" | ||
| 67 | + v-model="rePasswordForm.accNo" | ||
| 68 | + ></el-input> | ||
| 39 | </Formitem> | 69 | </Formitem> |
| 40 | </el-form> | 70 | </el-form> |
| 41 | <div class="form-option"> | 71 | <div class="form-option"> |
| 42 | - <el-button class="entrySaveButton entrySaveButton-background" size="medium" type="primary" @click="rePassword">{{ | 72 | + <el-button |
| 43 | - $t("login.resetPassWordBtn") }}</el-button> | 73 | + class="entrySaveButton entrySaveButton-background" |
| 44 | - <el-button class="entrySaveButton" size="medium" type="primary" @click="loginType = 'login'">{{ | 74 | + size="medium" |
| 45 | - $t("common.goBack") }}</el-button> | 75 | + type="primary" |
| 76 | + @click="rePassword" | ||
| 77 | + >{{ $t("login.resetPassWordBtn") }}</el-button | ||
| 78 | + > | ||
| 79 | + <el-button | ||
| 80 | + class="entrySaveButton" | ||
| 81 | + size="medium" | ||
| 82 | + type="primary" | ||
| 83 | + @click="loginType = 'login'" | ||
| 84 | + >{{ $t("common.goBack") }}</el-button | ||
| 85 | + > | ||
| 46 | </div> | 86 | </div> |
| 47 | </div> | 87 | </div> |
| 48 | - | 88 | + |
| 49 | <div v-else-if="loginType == 'create'"> | 89 | <div v-else-if="loginType == 'create'"> |
| 50 | <div class="form-title">{{ $t("login.createUserNum") }}</div> | 90 | <div class="form-title">{{ $t("login.createUserNum") }}</div> |
| 51 | <div class="form-tip"></div> | 91 | <div class="form-tip"></div> |
| 52 | - <!-- <div class="form-tip">{{ $t("login.createUserNumTip") }}</div> --> | 92 | + <el-form |
| 53 | - <el-form class="fedexFormStyle" ref="createUserRef" :model="createUserForm" :rules="createUserRules" | 93 | + class="fedexFormStyle" |
| 54 | - label-position="top"> | 94 | + ref="createUserRef" |
| 95 | + :model="createUserForm" | ||
| 96 | + :rules="createUserRules" | ||
| 97 | + label-position="top" | ||
| 98 | + > | ||
| 55 | <el-row :gutter="10"> | 99 | <el-row :gutter="10"> |
| 56 | <el-col :span="12"> | 100 | <el-col :span="12"> |
| 57 | <Formitem :label="$t('login.userNum')" type="create" prop="accNo"> | 101 | <Formitem :label="$t('login.userNum')" type="create" prop="accNo"> |
| 58 | - <el-input type="text" :id="'inputInner-create-accNo'" v-model="createUserForm.accNo" | 102 | + <el-input |
| 59 | - oninput="value = value.replace(/\s+/g,'')" auto-complete="off"></el-input> | 103 | + type="text" |
| 104 | + :id="'inputInner-create-accNo'" | ||
| 105 | + v-model="createUserForm.accNo" | ||
| 106 | + oninput="value = value.replace(/\s+/g,'')" | ||
| 107 | + auto-complete="off" | ||
| 108 | + ></el-input> | ||
| 60 | </Formitem> | 109 | </Formitem> |
| 61 | </el-col> | 110 | </el-col> |
| 62 | <el-col :span="12"> | 111 | <el-col :span="12"> |
| 63 | - <Formitem :label="$t('login.userName')" type="create" prop="userName"> | 112 | + <Formitem |
| 64 | - <el-input type="text" :id="'inputInner-create-userName'" v-model="createUserForm.userName" | 113 | + :label="$t('login.userName')" |
| 65 | - autocomplete="new-password"></el-input> | 114 | + type="create" |
| 115 | + prop="userName" | ||
| 116 | + > | ||
| 117 | + <el-input | ||
| 118 | + type="text" | ||
| 119 | + :id="'inputInner-create-userName'" | ||
| 120 | + v-model="createUserForm.userName" | ||
| 121 | + autocomplete="new-password" | ||
| 122 | + ></el-input> | ||
| 66 | </Formitem> | 123 | </Formitem> |
| 67 | </el-col> | 124 | </el-col> |
| 68 | </el-row> | 125 | </el-row> |
| 69 | <el-row :gutter="10"> | 126 | <el-row :gutter="10"> |
| 70 | <el-col :span="12"> | 127 | <el-col :span="12"> |
| 71 | - <Formitem :label="$t('login.passWord')" type="create" prop="password"> | 128 | + <Formitem |
| 72 | - <el-input type="text" :id="'inputInner-create-password'" v-model="createUserForm.password" show-password | 129 | + :label="$t('login.passWord')" |
| 73 | - autocomplete="new-password"></el-input> | 130 | + type="create" |
| 131 | + prop="password" | ||
| 132 | + > | ||
| 133 | + <el-input | ||
| 134 | + type="text" | ||
| 135 | + :id="'inputInner-create-password'" | ||
| 136 | + v-model="createUserForm.password" | ||
| 137 | + show-password | ||
| 138 | + autocomplete="new-password" | ||
| 139 | + ></el-input> | ||
| 74 | </Formitem> | 140 | </Formitem> |
| 75 | </el-col> | 141 | </el-col> |
| 76 | <el-col :span="12"> | 142 | <el-col :span="12"> |
| 77 | - <Formitem :label="$t('login.confirmPassWord')" type="create" prop="password2"> | 143 | + <Formitem |
| 78 | - <el-input type="text" :id="'inputInner-create-password2'" v-model="createUserForm.password2" show-password | 144 | + :label="$t('login.confirmPassWord')" |
| 79 | - auto-complete="off"></el-input> | 145 | + type="create" |
| 146 | + prop="password2" | ||
| 147 | + > | ||
| 148 | + <el-input | ||
| 149 | + type="text" | ||
| 150 | + :id="'inputInner-create-password2'" | ||
| 151 | + v-model="createUserForm.password2" | ||
| 152 | + show-password | ||
| 153 | + auto-complete="off" | ||
| 154 | + ></el-input> | ||
| 80 | </Formitem> | 155 | </Formitem> |
| 81 | </el-col> | 156 | </el-col> |
| 82 | </el-row> | 157 | </el-row> |
| 83 | <el-row :gutter="10"> | 158 | <el-row :gutter="10"> |
| 84 | <el-col :span="12"> | 159 | <el-col :span="12"> |
| 85 | - <Formitem :label="$t('login.fedexNum')" type="create" prop="fedexAccNo"> | 160 | + <Formitem |
| 86 | - <el-input type="text" :id="'inputInner-create-fedexAccNo'" v-model="createUserForm.fedexAccNo" | 161 | + :label="$t('login.fedexNum')" |
| 87 | - auto-complete="off"></el-input> | 162 | + type="create" |
| 163 | + prop="fedexAccNo" | ||
| 164 | + > | ||
| 165 | + <el-input | ||
| 166 | + type="text" | ||
| 167 | + :id="'inputInner-create-fedexAccNo'" | ||
| 168 | + v-model="createUserForm.fedexAccNo" | ||
| 169 | + auto-complete="off" | ||
| 170 | + ></el-input> | ||
| 88 | </Formitem> | 171 | </Formitem> |
| 89 | </el-col> | 172 | </el-col> |
| 90 | <el-col :span="12"> | 173 | <el-col :span="12"> |
| 91 | - <Formitem :label="$t('login.confirmFedexNum')" type="create" prop="fedexAccNo2"> | 174 | + <Formitem |
| 92 | - <el-input type="text" :id="'inputInner-create-fedexAccNo2'" v-model="createUserForm.fedexAccNo2" | 175 | + :label="$t('login.confirmFedexNum')" |
| 93 | - auto-complete="off"></el-input> | 176 | + type="create" |
| 177 | + prop="fedexAccNo2" | ||
| 178 | + > | ||
| 179 | + <el-input | ||
| 180 | + type="text" | ||
| 181 | + :id="'inputInner-create-fedexAccNo2'" | ||
| 182 | + v-model="createUserForm.fedexAccNo2" | ||
| 183 | + auto-complete="off" | ||
| 184 | + ></el-input> | ||
| 94 | </Formitem> | 185 | </Formitem> |
| 95 | </el-col> | 186 | </el-col> |
| 96 | </el-row> | 187 | </el-row> |
| 97 | <el-row :gutter="10"> | 188 | <el-row :gutter="10"> |
| 98 | <el-col :span="12"> | 189 | <el-col :span="12"> |
| 99 | <Formitem :label="$t('login.emailNum')" type="create" prop="email"> | 190 | <Formitem :label="$t('login.emailNum')" type="create" prop="email"> |
| 100 | - <el-input type="text" :id="'inputInner-create-email'" v-model="createUserForm.email" | 191 | + <el-input |
| 101 | - auto-complete="off"></el-input> | 192 | + type="text" |
| 193 | + :id="'inputInner-create-email'" | ||
| 194 | + v-model="createUserForm.email" | ||
| 195 | + auto-complete="off" | ||
| 196 | + ></el-input> | ||
| 102 | </Formitem> | 197 | </Formitem> |
| 103 | </el-col> | 198 | </el-col> |
| 104 | <el-col :span="12"> | 199 | <el-col :span="12"> |
| 105 | <Formitem :label="$t('login.phone')" type="create" prop="phone"> | 200 | <Formitem :label="$t('login.phone')" type="create" prop="phone"> |
| 106 | - <el-input type="text" :id="'inputInner-create-phone'" maxlength="40" v-model="createUserForm.phone" | 201 | + <el-input |
| 107 | - auto-complete="off"></el-input> | 202 | + type="text" |
| 203 | + :id="'inputInner-create-phone'" | ||
| 204 | + maxlength="40" | ||
| 205 | + v-model="createUserForm.phone" | ||
| 206 | + auto-complete="off" | ||
| 207 | + ></el-input> | ||
| 108 | </Formitem> | 208 | </Formitem> |
| 109 | </el-col> | 209 | </el-col> |
| 110 | </el-row> | 210 | </el-row> |
| 111 | <el-row :gutter="10"> | 211 | <el-row :gutter="10"> |
| 112 | <el-col :span="12"> | 212 | <el-col :span="12"> |
| 113 | - <Formitem :label="$t('login.company')" type="create" prop="companyName"> | 213 | + <Formitem |
| 114 | - <el-input type="text" :id="'inputInner-create-companyName'" v-model="createUserForm.companyName" | 214 | + :label="$t('login.company')" |
| 115 | - auto-complete="off"></el-input> | 215 | + type="create" |
| 216 | + prop="companyName" | ||
| 217 | + > | ||
| 218 | + <el-input | ||
| 219 | + type="text" | ||
| 220 | + :id="'inputInner-create-companyName'" | ||
| 221 | + v-model="createUserForm.companyName" | ||
| 222 | + auto-complete="off" | ||
| 223 | + ></el-input> | ||
| 116 | </Formitem> | 224 | </Formitem> |
| 117 | </el-col> | 225 | </el-col> |
| 118 | <el-col :span="12"> | 226 | <el-col :span="12"> |
| 119 | - <Formitem :label="$t('login.unifyNum')" type="create" prop="unifiedBusinessNum"> | 227 | + <Formitem |
| 120 | - <el-input type="text" :id="'inputInner-create-unifiedBusinessNum'" maxlength="10" | 228 | + :label="$t('login.unifyNum')" |
| 121 | - oninput="value = value.replace(/\s+/g, '')" v-model="createUserForm.unifiedBusinessNum" | 229 | + type="create" |
| 122 | - auto-complete="off"></el-input> | 230 | + prop="unifiedBusinessNum" |
| 231 | + > | ||
| 232 | + <el-input | ||
| 233 | + type="text" | ||
| 234 | + :id="'inputInner-create-unifiedBusinessNum'" | ||
| 235 | + maxlength="10" | ||
| 236 | + oninput="value = value.replace(/\s+/g, '')" | ||
| 237 | + v-model="createUserForm.unifiedBusinessNum" | ||
| 238 | + auto-complete="off" | ||
| 239 | + ></el-input> | ||
| 123 | </Formitem> | 240 | </Formitem> |
| 124 | </el-col> | 241 | </el-col> |
| 125 | </el-row> | 242 | </el-row> |
| 126 | <el-row :gutter="10"> | 243 | <el-row :gutter="10"> |
| 127 | <el-col :span="12"> | 244 | <el-col :span="12"> |
| 128 | - <Formitem :label="$t('login.customsNum')" type="create" prop="customsSerialNum"> | 245 | + <Formitem |
| 129 | - <el-input type="text" :id="'inputInner-create-customsSerialNum'" v-model="createUserForm.customsSerialNum" | 246 | + :label="$t('login.customsNum')" |
| 130 | - auto-complete="off"></el-input> | 247 | + type="create" |
| 248 | + prop="customsSerialNum" | ||
| 249 | + > | ||
| 250 | + <el-input | ||
| 251 | + type="text" | ||
| 252 | + :id="'inputInner-create-customsSerialNum'" | ||
| 253 | + v-model="createUserForm.customsSerialNum" | ||
| 254 | + auto-complete="off" | ||
| 255 | + ></el-input> | ||
| 131 | </Formitem> | 256 | </Formitem> |
| 132 | </el-col> | 257 | </el-col> |
| 133 | </el-row> | 258 | </el-row> |
| 134 | - <el-checkbox class="mt10" v-model="createUserForm.policyFlag" style="margin-right: 0px">{{ $t("login.checkAgree1") | 259 | + <el-checkbox |
| 135 | - }}</el-checkbox><a @click="openPrivacy">{{ $t("login.policy1") }}</a> | 260 | + class="mt10" |
| 261 | + v-model="createUserForm.policyFlag" | ||
| 262 | + style="margin-right: 0px" | ||
| 263 | + >{{ $t("login.checkAgree1") }}</el-checkbox | ||
| 264 | + ><a @click="openPrivacy">{{ $t("login.policy1") }}</a> | ||
| 136 | <el-checkbox v-model="createUserForm.clauseFlag">{{ | 265 | <el-checkbox v-model="createUserForm.clauseFlag">{{ |
| 137 | $t("login.checkAgree2_1") | 266 | $t("login.checkAgree2_1") |
| 138 | }}</el-checkbox> | 267 | }}</el-checkbox> |
| 139 | <span>{{ $t("login.policy2") }}</span> | 268 | <span>{{ $t("login.policy2") }}</span> |
| 140 | - <!-- <a href="">{{ $t("login.policy2") }}</a> --> | 269 | + <span>{{ $t("login.checkAgree2_2") }}</span |
| 141 | - <span>{{ $t("login.checkAgree2_2") }}</span><a @click="openTermPdf">{{ $t("login.policy3") }}</a><span>{{ | 270 | + ><a @click="openTermPdf">{{ $t("login.policy3") }}</a |
| 142 | - $t("login.checkAgree2_3") }}</span> | 271 | + ><span>{{ $t("login.checkAgree2_3") }}</span> |
| 143 | </el-form> | 272 | </el-form> |
| 144 | <div class="form-option"> | 273 | <div class="form-option"> |
| 145 | - <el-button class="entrySaveButton entrySaveButton-background" size="medium" type="primary" @click="createUser">{{ | 274 | + <el-button |
| 146 | - $t("common.submitBtn") }}</el-button> | 275 | + class="entrySaveButton entrySaveButton-background" |
| 147 | - <el-button class="entrySaveButton" size="medium" type="primary" @click="loginType = 'login'">{{ | 276 | + size="medium" |
| 148 | - $t("common.goBack") }}</el-button> | 277 | + type="primary" |
| 278 | + @click="createUser" | ||
| 279 | + >{{ $t("common.submitBtn") }}</el-button | ||
| 280 | + > | ||
| 281 | + <el-button | ||
| 282 | + class="entrySaveButton" | ||
| 283 | + size="medium" | ||
| 284 | + type="primary" | ||
| 285 | + @click="loginType = 'login'" | ||
| 286 | + >{{ $t("common.goBack") }}</el-button | ||
| 287 | + > | ||
| 149 | </div> | 288 | </div> |
| 150 | </div> | 289 | </div> |
| 151 | <div v-else-if="loginType == 'reset'"> | 290 | <div v-else-if="loginType == 'reset'"> |
| 152 | <div class="form-title">忘記了您的用户密碼?</div> | 291 | <div class="form-title">忘記了您的用户密碼?</div> |
| 153 | <div class="form-tip">提供您的用戶帳號</div> | 292 | <div class="form-tip">提供您的用戶帳號</div> |
| 154 | <div class="form-option"> | 293 | <div class="form-option"> |
| 155 | - <el-button class="entrySaveButton entrySaveButton-background" size="medium" type="primary" | 294 | + <el-button |
| 156 | - @click="loginType = 'rePassword'">重置密码</el-button> | 295 | + class="entrySaveButton entrySaveButton-background" |
| 157 | - <el-button class="entrySaveButton" size="medium" type="primary" @click="loginType = 'login'">{{ | 296 | + size="medium" |
| 158 | - $t("common.goBack") }}</el-button> | 297 | + type="primary" |
| 298 | + @click="loginType = 'rePassword'" | ||
| 299 | + >重置密码</el-button | ||
| 300 | + > | ||
| 301 | + <el-button | ||
| 302 | + class="entrySaveButton" | ||
| 303 | + size="medium" | ||
| 304 | + type="primary" | ||
| 305 | + @click="loginType = 'login'" | ||
| 306 | + >{{ $t("common.goBack") }}</el-button | ||
| 307 | + > | ||
| 159 | </div> | 308 | </div> |
| 160 | </div> | 309 | </div> |
| 161 | - <!-- 修改密码 --> | 310 | + <!-- 修改密码 --> |
| 162 | - <div v-else-if="loginType == 'resetPwd'"> | 311 | + <div v-else-if="loginType == 'resetPwd'"> |
| 163 | <div class="form-title"> | 312 | <div class="form-title"> |
| 164 | - {{ $t('login.loginPassword.resetPassword.title') }} | 313 | + {{ $t("login.loginPassword.resetPassword.title") }} |
| 314 | + </div> | ||
| 315 | + <div class="form-tip"> | ||
| 316 | + {{ $t("login.loginPassword.resetPassword.tip") }} | ||
| 165 | </div> | 317 | </div> |
| 166 | - <div class="form-tip">{{ $t('login.loginPassword.resetPassword.tip') }}</div> | 318 | + <el-form |
| 167 | - <el-form class="fedexFormStyle" ref="resetPassword" :model="resetPasswordForm" :rules="resetPasswordRules" | 319 | + class="fedexFormStyle" |
| 168 | - label-position="top"> | 320 | + ref="resetPassword" |
| 169 | - <Formitem :label="$t('login.loginPassword.resetPassword.loginNameLabel')" type="reset" prop="loginName"> | 321 | + :model="resetPasswordForm" |
| 170 | - <el-input type="text" :id="'inputInner-reset-loginName'" v-model="resetPasswordForm.loginName" disabled | 322 | + :rules="resetPasswordRules" |
| 171 | - autocomplete="new-password"></el-input> | 323 | + label-position="top" |
| 324 | + > | ||
| 325 | + <Formitem | ||
| 326 | + :label="$t('login.loginPassword.resetPassword.loginNameLabel')" | ||
| 327 | + type="reset" | ||
| 328 | + prop="loginName" | ||
| 329 | + > | ||
| 330 | + <el-input | ||
| 331 | + type="text" | ||
| 332 | + :id="'inputInner-reset-loginName'" | ||
| 333 | + v-model="resetPasswordForm.loginName" | ||
| 334 | + disabled | ||
| 335 | + autocomplete="new-password" | ||
| 336 | + ></el-input> | ||
| 172 | </Formitem> | 337 | </Formitem> |
| 173 | - <div class="formTitle" style="font-size: 16px;margin-top:30px">{{ | 338 | + <div class="formTitle" style="font-size: 16px; margin-top: 30px"> |
| 174 | - $t('login.loginPassword.resetPassword.password') }}<span class="tip">{{$t('login.loginPassword.resetPassword.passwordTip') }}</span></div> | 339 | + {{ $t("login.loginPassword.resetPassword.password") |
| 175 | - <Formitem :label="$t('login.loginPassword.resetPassword.newPassword')" type="reset" prop="password"> | 340 | + }}<span class="tip">{{ |
| 176 | - <el-input type="password" :id="'inputInner-reset-password'" v-model="resetPasswordForm.password" show-password | 341 | + $t("login.loginPassword.resetPassword.passwordTip") |
| 177 | - autocomplete="new-password"></el-input> | 342 | + }}</span> |
| 343 | + </div> | ||
| 344 | + <Formitem | ||
| 345 | + :label="$t('login.loginPassword.resetPassword.newPassword')" | ||
| 346 | + type="reset" | ||
| 347 | + prop="password" | ||
| 348 | + > | ||
| 349 | + <el-input | ||
| 350 | + type="password" | ||
| 351 | + :id="'inputInner-reset-password'" | ||
| 352 | + v-model="resetPasswordForm.password" | ||
| 353 | + show-password | ||
| 354 | + autocomplete="new-password" | ||
| 355 | + ></el-input> | ||
| 178 | </Formitem> | 356 | </Formitem> |
| 179 | - <Formitem :label="$t('login.loginPassword.resetPassword.confirmPassword')" type="reset" prop="confirmPassword"> | 357 | + <Formitem |
| 180 | - <el-input type="password" :id="'inputInner-reset-confirmPassword'" show-password | 358 | + :label="$t('login.loginPassword.resetPassword.confirmPassword')" |
| 181 | - v-model="resetPasswordForm.confirmPassword" autocomplete="new-password"></el-input> | 359 | + type="reset" |
| 360 | + prop="confirmPassword" | ||
| 361 | + > | ||
| 362 | + <el-input | ||
| 363 | + type="password" | ||
| 364 | + :id="'inputInner-reset-confirmPassword'" | ||
| 365 | + show-password | ||
| 366 | + v-model="resetPasswordForm.confirmPassword" | ||
| 367 | + autocomplete="new-password" | ||
| 368 | + ></el-input> | ||
| 182 | </Formitem> | 369 | </Formitem> |
| 183 | </el-form> | 370 | </el-form> |
| 184 | <div class="form-option"> | 371 | <div class="form-option"> |
| 185 | - <el-button class="entrySaveButton entrySaveButton-background" size="medium" type="primary" :loading="loading" | 372 | + <el-button |
| 186 | - @click="resetPasswordSubmit">{{ $t('common.submitBtn') }}</el-button> | 373 | + class="entrySaveButton entrySaveButton-background" |
| 187 | - <el-button class="entrySaveButton" size="medium" type="primary" @click="loginType = 'login'">{{ | 374 | + size="medium" |
| 188 | - $t('common.goBack') }}</el-button> | 375 | + type="primary" |
| 376 | + :loading="loading" | ||
| 377 | + @click="resetPasswordSubmit" | ||
| 378 | + >{{ $t("common.submitBtn") }}</el-button | ||
| 379 | + > | ||
| 380 | + <el-button | ||
| 381 | + class="entrySaveButton" | ||
| 382 | + size="medium" | ||
| 383 | + type="primary" | ||
| 384 | + @click="loginType = 'login'" | ||
| 385 | + >{{ $t("common.goBack") }}</el-button | ||
| 386 | + > | ||
| 189 | </div> | 387 | </div> |
| 190 | </div> | 388 | </div> |
| 191 | </div> | 389 | </div> |
| 192 | </template> | 390 | </template> |
| 193 | 391 | ||
| 194 | <script> | 392 | <script> |
| 195 | -import { encrypt, decrypt } from "@/utils/jsencrypt"; | 393 | +import { |
| 196 | -import { addUser, getUserByAccNo, updPwd ,resetPwd,verifyResetPwd} from "@/api/login.js"; | 394 | + addUser, |
| 395 | + getUserByAccNo, | ||
| 396 | + updPwd, | ||
| 397 | + resetPwd, | ||
| 398 | + verifyResetPwd, | ||
| 399 | +} from "@/api/login.js"; | ||
| 197 | export default { | 400 | export default { |
| 198 | props: { | 401 | props: { |
| 199 | loginType: { | 402 | loginType: { |
| 200 | type: String, | 403 | type: String, |
| 201 | default: "login", | 404 | default: "login", |
| 202 | - },loginName: { | 405 | + }, |
| 203 | - type: String, | 406 | + loginName: { |
| 204 | - default: '' | 407 | + type: String, |
| 205 | - } | 408 | + default: "", |
| 409 | + }, | ||
| 206 | }, | 410 | }, |
| 207 | data() { | 411 | data() { |
| 208 | return { | 412 | return { |
| ... | @@ -232,33 +436,51 @@ export default { | ... | @@ -232,33 +436,51 @@ export default { |
| 232 | }, | 436 | }, |
| 233 | rePasswordForm: { | 437 | rePasswordForm: { |
| 234 | username: "", | 438 | username: "", |
| 235 | - },//重置密码数据 | 439 | + }, //重置密码数据 |
| 236 | resetPasswordForm: { | 440 | resetPasswordForm: { |
| 237 | - loginName: '', | 441 | + loginName: "", |
| 238 | - password: null, | 442 | + password: null, |
| 239 | - confirmPassword: null, | 443 | + confirmPassword: null, |
| 240 | }, | 444 | }, |
| 241 | - rePasswordData:null, | 445 | + rePasswordData: null, |
| 242 | loginRules: { | 446 | loginRules: { |
| 243 | accNo: [ | 447 | accNo: [ |
| 244 | - { required: true, trigger: "blur", message: "User account cannot be empty." }, | 448 | + { |
| 449 | + required: true, | ||
| 450 | + trigger: "blur", | ||
| 451 | + message: "User account cannot be empty.", | ||
| 452 | + }, | ||
| 245 | ], | 453 | ], |
| 246 | password: [ | 454 | password: [ |
| 247 | - { required: true, trigger: "blur", message: "Password cannot be empty." }, | 455 | + { |
| 456 | + required: true, | ||
| 457 | + trigger: "blur", | ||
| 458 | + message: "Password cannot be empty.", | ||
| 459 | + }, | ||
| 248 | ], | 460 | ], |
| 249 | }, | 461 | }, |
| 250 | rePasswordFormRules: { | 462 | rePasswordFormRules: { |
| 251 | accNo: [ | 463 | accNo: [ |
| 252 | - { required: true, trigger: "blur", message: "User account cannot be empty." }, | 464 | + { |
| 465 | + required: true, | ||
| 466 | + trigger: "blur", | ||
| 467 | + message: "User account cannot be empty.", | ||
| 468 | + }, | ||
| 253 | ], | 469 | ], |
| 254 | }, | 470 | }, |
| 255 | createUserRules: { | 471 | createUserRules: { |
| 256 | accNo: [ | 472 | accNo: [ |
| 257 | - { required: true, trigger: "blur", message: "User account cannot be empty." }, | 473 | + { |
| 474 | + required: true, | ||
| 475 | + trigger: "blur", | ||
| 476 | + message: "User account cannot be empty.", | ||
| 477 | + }, | ||
| 258 | { | 478 | { |
| 259 | validator: (rule, value, callback) => { | 479 | validator: (rule, value, callback) => { |
| 260 | if (this.regExp.pattern.test(value)) { | 480 | if (this.regExp.pattern.test(value)) { |
| 261 | - callback("The username does not allow special characters or spaces!"); | 481 | + callback( |
| 482 | + "The username does not allow special characters or spaces!" | ||
| 483 | + ); | ||
| 262 | } else { | 484 | } else { |
| 263 | getUserByAccNo(value) | 485 | getUserByAccNo(value) |
| 264 | .then((res) => { | 486 | .then((res) => { |
| ... | @@ -400,32 +622,57 @@ export default { | ... | @@ -400,32 +622,57 @@ export default { |
| 400 | ], | 622 | ], |
| 401 | }, | 623 | }, |
| 402 | resetPasswordRules: { | 624 | resetPasswordRules: { |
| 403 | - loginName: [{ required: true, trigger: "blur", message: this.$t('login.loginPassword.formCheck.resetloginName') }], | 625 | + loginName: [ |
| 404 | - password: [{ required: true, trigger: "blur", message: this.$t('login.loginPassword.formCheck.resetPasswordPassword') }, | ||
| 405 | { | 626 | { |
| 406 | - validator: (rule, value, callback) => { | 627 | + required: true, |
| 407 | - | 628 | + trigger: "blur", |
| 408 | - if (!this.regExp.passwordExp.test(value)) { | 629 | + message: this.$t("login.loginPassword.formCheck.resetloginName"), |
| 409 | - callback(this.$t('login.loginPassword.resetPassword.passwordTip')) | 630 | + }, |
| 410 | - } else { | 631 | + ], |
| 411 | - callback() | 632 | + password: [ |
| 412 | - } | 633 | + { |
| 413 | - }, | 634 | + required: true, |
| 414 | - trigger: "blur", | 635 | + trigger: "blur", |
| 415 | - }], | 636 | + message: this.$t( |
| 416 | - confirmPassword: [ | 637 | + "login.loginPassword.formCheck.resetPasswordPassword" |
| 417 | - { required: true, trigger: "blur", message: this.$t('login.loginPassword.formCheck.resetPasswordConfirmPassword1') }, | 638 | + ), |
| 418 | - { | 639 | + }, |
| 419 | - validator: (rule, value, callback) => { | 640 | + { |
| 420 | - if (value != this.resetPasswordForm.password) { | 641 | + validator: (rule, value, callback) => { |
| 421 | - callback(this.$t('login.loginPassword.formCheck.resetPasswordConfirmPassword2')) | 642 | + if (!this.regExp.passwordExp.test(value)) { |
| 422 | - } else { | 643 | + callback( |
| 423 | - callback() | 644 | + this.$t("login.loginPassword.resetPassword.passwordTip") |
| 424 | - } | 645 | + ); |
| 425 | - }, | 646 | + } else { |
| 426 | - trigger: "blur", | 647 | + callback(); |
| 427 | } | 648 | } |
| 428 | - ] | 649 | + }, |
| 650 | + trigger: "blur", | ||
| 651 | + }, | ||
| 652 | + ], | ||
| 653 | + confirmPassword: [ | ||
| 654 | + { | ||
| 655 | + required: true, | ||
| 656 | + trigger: "blur", | ||
| 657 | + message: this.$t( | ||
| 658 | + "login.loginPassword.formCheck.resetPasswordConfirmPassword1" | ||
| 659 | + ), | ||
| 660 | + }, | ||
| 661 | + { | ||
| 662 | + validator: (rule, value, callback) => { | ||
| 663 | + if (value != this.resetPasswordForm.password) { | ||
| 664 | + callback( | ||
| 665 | + this.$t( | ||
| 666 | + "login.loginPassword.formCheck.resetPasswordConfirmPassword2" | ||
| 667 | + ) | ||
| 668 | + ); | ||
| 669 | + } else { | ||
| 670 | + callback(); | ||
| 671 | + } | ||
| 672 | + }, | ||
| 673 | + trigger: "blur", | ||
| 674 | + }, | ||
| 675 | + ], | ||
| 429 | }, | 676 | }, |
| 430 | loading: false, | 677 | loading: false, |
| 431 | redirect: undefined, | 678 | redirect: undefined, |
| ... | @@ -446,23 +693,25 @@ export default { | ... | @@ -446,23 +693,25 @@ export default { |
| 446 | handler: function (route) { | 693 | handler: function (route) { |
| 447 | this.redirect = route.query && route.query.redirect; | 694 | this.redirect = route.query && route.query.redirect; |
| 448 | if (route.query.changePasswordType) { | 695 | if (route.query.changePasswordType) { |
| 449 | - // route.query.changePasswordType == 'resetPwd' ? | 696 | + // route.query.changePasswordType == 'resetPwd' ? |
| 450 | - // this.resetPasswordForm.loginName = route.query.loginname : this.resetPasswordForm.loginName = ''; | 697 | + // this.resetPasswordForm.loginName = route.query.loginname : this.resetPasswordForm.loginName = ''; |
| 451 | - if(route.query.changePasswordType == 'resetPwd' && route.query.loginname){ | 698 | + if ( |
| 452 | - verifyResetPwd(route.query.loginname).then(res => { | 699 | + route.query.changePasswordType == "resetPwd" && |
| 453 | - if(res.code==200){ | 700 | + route.query.loginname |
| 454 | - this.rePasswordData=res; | 701 | + ) { |
| 455 | - this.resetPasswordForm.loginName=res.data; | 702 | + verifyResetPwd(route.query.loginname).then((res) => { |
| 456 | - }else{ | 703 | + if (res.code == 200) { |
| 457 | - this.$alert(res.msg, "提示", { | 704 | + this.rePasswordData = res; |
| 458 | - dangerouslyUseHTMLString: true, | 705 | + this.resetPasswordForm.loginName = res.data; |
| 459 | - type: "error", | 706 | + } else { |
| 460 | - }) | 707 | + this.$alert(res.msg, "提示", { |
| 461 | - this.resetPasswordForm.loginName = '' | 708 | + dangerouslyUseHTMLString: true, |
| 462 | - } | 709 | + type: "error", |
| 463 | - }) | 710 | + }); |
| 464 | - } | 711 | + this.resetPasswordForm.loginName = ""; |
| 465 | - | 712 | + } |
| 713 | + }); | ||
| 714 | + } | ||
| 466 | } | 715 | } |
| 467 | }, | 716 | }, |
| 468 | immediate: true, | 717 | immediate: true, |
| ... | @@ -535,28 +784,32 @@ export default { | ... | @@ -535,28 +784,32 @@ export default { |
| 535 | rePassword() { | 784 | rePassword() { |
| 536 | this.$refs.rePassword.validate((valid) => { | 785 | this.$refs.rePassword.validate((valid) => { |
| 537 | if (valid) { | 786 | if (valid) { |
| 538 | - //根据用户账号发送修改密码邮件 | 787 | + //根据用户账号发送修改密码邮件 |
| 539 | - updPwd(this.rePasswordForm.accNo).then((res) => { | 788 | + updPwd(this.rePasswordForm.accNo) |
| 540 | - if (res.code == 200 ) { | 789 | + .then((res) => { |
| 541 | - this.$alert(this.$t('login.loginPassword.resetPassword.sendEmail'), "提示", { | 790 | + if (res.code == 200) { |
| 542 | - dangerouslyUseHTMLString: true, | 791 | + this.$alert( |
| 543 | - type: "success", | 792 | + this.$t("login.loginPassword.resetPassword.sendEmail"), |
| 544 | - }).then(()=>{ | 793 | + "提示", |
| 545 | - this.loginType="login"; | 794 | + { |
| 546 | - }) | 795 | + dangerouslyUseHTMLString: true, |
| 547 | - | 796 | + type: "success", |
| 548 | - }else{ | 797 | + } |
| 549 | - this.$alert(res.msg, "提示", { | 798 | + ).then(() => { |
| 799 | + this.loginType = "login"; | ||
| 800 | + }); | ||
| 801 | + } else { | ||
| 802 | + this.$alert(res.msg, "提示", { | ||
| 550 | dangerouslyUseHTMLString: true, | 803 | dangerouslyUseHTMLString: true, |
| 551 | type: "warning", | 804 | type: "warning", |
| 552 | - }) | 805 | + }); |
| 553 | - } | 806 | + } |
| 554 | - }).catch((err) => { | 807 | + }) |
| 808 | + .catch((err) => { | ||
| 555 | console.log(err); | 809 | console.log(err); |
| 556 | }); | 810 | }); |
| 557 | } | 811 | } |
| 558 | }); | 812 | }); |
| 559 | - | ||
| 560 | }, | 813 | }, |
| 561 | errorTipClose() { | 814 | errorTipClose() { |
| 562 | this.errorTip = []; | 815 | this.errorTip = []; |
| ... | @@ -567,42 +820,45 @@ export default { | ... | @@ -567,42 +820,45 @@ export default { |
| 567 | openTermPdf() { | 820 | openTermPdf() { |
| 568 | window.open(this.linkList.term); | 821 | window.open(this.linkList.term); |
| 569 | }, | 822 | }, |
| 570 | - //重置密码 | 823 | + //重置密码 |
| 571 | - resetPasswordSubmit() { | 824 | + resetPasswordSubmit() { |
| 572 | this.$refs.resetPassword.validate((valid) => { | 825 | this.$refs.resetPassword.validate((valid) => { |
| 573 | - if(valid){ | 826 | + if (valid) { |
| 574 | // verifyResetPwd(this.resetPasswordForm.loginName).then(res => { | 827 | // verifyResetPwd(this.resetPasswordForm.loginName).then(res => { |
| 575 | - if(this.rePasswordData.code==200){ | 828 | + if (this.rePasswordData.code == 200) { |
| 576 | - resetPwd({accNo:this.rePasswordData.data,newPwd:this.resetPasswordForm.password,newPwd2:this.resetPasswordForm.confirmPassword}).then(res1 =>{ | 829 | + resetPwd({ |
| 577 | - if(res1.code==200){ | 830 | + accNo: this.rePasswordData.data, |
| 831 | + newPwd: this.resetPasswordForm.password, | ||
| 832 | + newPwd2: this.resetPasswordForm.confirmPassword, | ||
| 833 | + }).then((res1) => { | ||
| 834 | + if (res1.code == 200) { | ||
| 578 | this.$alert(res1.msg, "提示", { | 835 | this.$alert(res1.msg, "提示", { |
| 579 | dangerouslyUseHTMLString: true, | 836 | dangerouslyUseHTMLString: true, |
| 580 | type: "success", | 837 | type: "success", |
| 581 | - }).then(()=>{ | 838 | + }).then(() => { |
| 582 | - location.href = '/IcTw/#/login' | 839 | + location.href = "/IcTw/#/login"; |
| 583 | - this.loginType = 'login' | 840 | + this.loginType = "login"; |
| 584 | - }) | 841 | + }); |
| 585 | - }else{ | 842 | + } else { |
| 586 | this.$alert(res1.msg, "提示", { | 843 | this.$alert(res1.msg, "提示", { |
| 587 | dangerouslyUseHTMLString: true, | 844 | dangerouslyUseHTMLString: true, |
| 588 | type: "warning", | 845 | type: "warning", |
| 589 | - }) | 846 | + }); |
| 590 | } | 847 | } |
| 591 | - }) | 848 | + }); |
| 592 | - }else{ | 849 | + } else { |
| 593 | - this.$alert(this.rePasswordData.msg, "提示", { | 850 | + this.$alert(this.rePasswordData.msg, "提示", { |
| 594 | - dangerouslyUseHTMLString: true, | 851 | + dangerouslyUseHTMLString: true, |
| 595 | - type: "warning", | 852 | + type: "warning", |
| 596 | - }) | 853 | + }); |
| 597 | - } | 854 | + } |
| 598 | - // }) | 855 | + // }) |
| 599 | } | 856 | } |
| 600 | - | 857 | + }); |
| 601 | - }) | ||
| 602 | }, | 858 | }, |
| 603 | errorTipClose() { | 859 | errorTipClose() { |
| 604 | - this.errorTip = [] | 860 | + this.errorTip = []; |
| 605 | - } | 861 | + }, |
| 606 | }, | 862 | }, |
| 607 | }; | 863 | }; |
| 608 | </script> | 864 | </script> |
| ... | @@ -657,7 +913,7 @@ export default { | ... | @@ -657,7 +913,7 @@ export default { |
| 657 | margin-top: 100px; | 913 | margin-top: 100px; |
| 658 | 914 | ||
| 659 | .el-button { | 915 | .el-button { |
| 660 | - width: 120px; | 916 | + min-width: 120px; |
| 661 | height: 60px; | 917 | height: 60px; |
| 662 | font-size: 16px; | 918 | font-size: 16px; |
| 663 | } | 919 | } | ... | ... |
| ... | @@ -36,7 +36,7 @@ | ... | @@ -36,7 +36,7 @@ |
| 36 | <div class="buttonItem-icon"> | 36 | <div class="buttonItem-icon"> |
| 37 | <svg-icon class="el-icon-user-solid" icon-class="fedex-login" /> | 37 | <svg-icon class="el-icon-user-solid" icon-class="fedex-login" /> |
| 38 | </div> | 38 | </div> |
| 39 | - <div class="buttonItem-title">在線申報平臺帳號登錄</div> | 39 | + <div class="buttonItem-title">user log in</div> |
| 40 | <div class="textCenter"> | 40 | <div class="textCenter"> |
| 41 | <svg-icon | 41 | <svg-icon |
| 42 | class="el-icon-user-solid" | 42 | class="el-icon-user-solid" |
| ... | @@ -205,14 +205,13 @@ export default { | ... | @@ -205,14 +205,13 @@ export default { |
| 205 | }, | 205 | }, |
| 206 | attrs: { class: "font-style" }, | 206 | attrs: { class: "font-style" }, |
| 207 | }, | 207 | }, |
| 208 | - "註冊完成後請回到FedEx線上申報平臺重新登錄。" | 208 | + "After registration is completed, please return to the FedEx online declaration platform and log in again." |
| 209 | ), | 209 | ), |
| 210 | ]), | 210 | ]), |
| 211 | confirmButtonClass: "confirm-button", | 211 | confirmButtonClass: "confirm-button", |
| 212 | showCancelButton: true, | 212 | showCancelButton: true, |
| 213 | - | 213 | + confirmButtonText: this.$t("common.sureBtn"), |
| 214 | - confirmButtonText: "確定", | 214 | + cancelButtonText: this.$t("common.cancleBtn"), |
| 215 | - cancelButtonText: "取消", | ||
| 216 | iconClass: "el-icon-warning", | 215 | iconClass: "el-icon-warning", |
| 217 | center: true, | 216 | center: true, |
| 218 | // showClose: false, | 217 | // showClose: false, |
| ... | @@ -409,10 +408,10 @@ export default { | ... | @@ -409,10 +408,10 @@ export default { |
| 409 | } | 408 | } |
| 410 | } | 409 | } |
| 411 | .guide-box { | 410 | .guide-box { |
| 412 | - height: 170px; | ||
| 413 | font-size: 16px; | 411 | font-size: 16px; |
| 414 | padding-left: 249px; | 412 | padding-left: 249px; |
| 415 | - padding-top: 48px; | 413 | + padding-top: 24px; |
| 414 | + padding-bottom: 24px; | ||
| 416 | background: #f8f8f8; | 415 | background: #f8f8f8; |
| 417 | .guide { | 416 | .guide { |
| 418 | color: #4d148c; | 417 | color: #4d148c; | ... | ... |
-
Please register or login to post a comment