tao.mo

Merge remote-tracking branch 'origin/master'

...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
2 2
3 ```bash 3 ```bash
4 # 克隆项目 4 # 克隆项目
5 -git clone https://gitee.com/y_project/RuoYi-Vue 5 +git clone http://118.178.128.178/Fedex/iClear-Connect-Pre-Clearance.git
6 -
7 # 进入项目目录 6 # 进入项目目录
8 cd IMAC-ui 7 cd IMAC-ui
9 8
...@@ -27,4 +26,4 @@ npm run build:stage ...@@ -27,4 +26,4 @@ npm run build:stage
27 26
28 # 构建生产环境 27 # 构建生产环境
29 npm run build:prod 28 npm run build:prod
30 -```
...\ No newline at end of file ...\ No newline at end of file
29 +```
......
This diff is collapsed. Click to expand it.
1 +<svg width="14" height="12" viewBox="0 0 14 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2 +<path d="M13 1.08571L7 6.14286L1 1" stroke="#007AB7" stroke-miterlimit="10"/>
3 +<path d="M13 5.37087L7 10.428L1 5.28516" stroke="#007AB7" stroke-miterlimit="10"/>
4 +</svg>
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
2 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 2 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3 <svg class="icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3 <svg class="icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4 <defs><style type="text/css"></style></defs> 4 <defs><style type="text/css"></style></defs>
5 -<circle cx="16.5" cy="16.4" r="4" stroke-width="2" stroke-linejoin="round"/> 5 +<circle cx="16.5" cy="16.4" r="4" stroke-width="2" stroke-linejoin="round" stroke="currentColor"/>
6 -<path d="M19 19L23 23" stroke-width="2" stroke-linejoin="round"/> 6 +<path d="M19 19L23 23" stroke-width="2" stroke-linejoin="round" stroke="currentColor"/>
7 -<path d="M19 10V5L14 1H9.8H6L1 5V18H10" stroke-width="2" stroke-linejoin="round"/> 7 +<path d="M19 10V5L14 1H9.8H6L1 5V18H10" stroke-width="2" stroke-linejoin="round" stroke="currentColor"/>
8 -<path d="M10 6V1" stroke-width="2" stroke-linejoin="round"/> 8 +<path d="M10 6V1" stroke-width="2" stroke-linejoin="round" stroke="currentColor"/>
9 -<path d="M1 6H19" stroke-width="2" stroke-linejoin="round"/> 9 +<path d="M1 6H19" stroke-width="2" stroke-linejoin="round" stroke="currentColor"/>
10 </svg> 10 </svg>
......
1 +<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2 +<path d="M8.5 1C4.4 1 1 4.4 1 8.5C1 12.6 4.4 16 8.5 16C12.6 16 16 12.6 16 8.5C16 4.4 12.6 1 8.5 1Z" stroke="#007AB7" stroke-miterlimit="10"/>
3 +<path d="M8.5 13.5C9.05228 13.5 9.5 13.0523 9.5 12.5C9.5 11.9477 9.05228 11.5 8.5 11.5C7.94772 11.5 7.5 11.9477 7.5 12.5C7.5 13.0523 7.94772 13.5 8.5 13.5Z" fill="#007AB7"/>
4 +<path d="M6.5 6.5C6.5 5 7.5 4 8.5 4C9.5 4 10.5 4.5 10.5 6C10.5 6.9 10 7.6 9.5 8C8.6 8.7 8.5 8.6 8.5 9.5V10.5" stroke="#007AB7" stroke-miterlimit="10"/>
5 +</svg>
1 +<svg width="14" height="11" viewBox="0 0 14 11" fill="none" xmlns="http://www.w3.org/2000/svg">
2 +<path d="M13 10.342L7 5.28488L1 10.4277" stroke="#007AB7" stroke-miterlimit="10"/>
3 +<path d="M13 6.05686L7 0.999721L1 6.14258" stroke="#007AB7" stroke-miterlimit="10"/>
4 +</svg>
...@@ -346,6 +346,7 @@ input:disabled { ...@@ -346,6 +346,7 @@ input:disabled {
346 /*标题平移至合适位置*/ 346 /*标题平移至合适位置*/
347 transition: all 0.2s ease; 347 transition: all 0.2s ease;
348 cursor: text; 348 cursor: text;
349 + z-index: 99;
349 } 350 }
350 351
351 .el-form-item__content { 352 .el-form-item__content {
...@@ -1062,4 +1063,102 @@ input:disabled { ...@@ -1062,4 +1063,102 @@ input:disabled {
1062 input::placeholder { 1063 input::placeholder {
1063 color: #409EFF 1064 color: #409EFF
1064 } 1065 }
1066 +}
1067 +
1068 +.el-range-editor {
1069 + width: 100%;
1070 + height: 100%;
1071 +
1072 + .el-range-input {
1073 + padding: 0px;
1074 + }
1075 +
1076 + .el-range-separator {
1077 + line-height: 50px;
1078 + }
1079 +
1080 + input {
1081 + width: 100%;
1082 + height: 100% !important;
1083 + border: none !important;
1084 + background-color: transparent;
1085 + padding-top: 0.775rem;
1086 + // padding-right: 1.15rem;
1087 + padding-left: calc(.6rem + .1875rem);
1088 + font-size: 0.875rem !important;
1089 + }
1090 +
1091 +}
1092 +
1093 +.el-range-editor.el-input__inner {
1094 + padding: 15px 10px 0px 10px;
1095 +}
1096 +
1097 +.el-range-editor {
1098 + .el-range-separator {
1099 + line-height: 35px;
1100 + }
1101 +}
1102 +
1103 +.el-input__inner {
1104 + background-color: transparent !important;
1105 +}
1106 +
1107 +.questionIcon {
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 + }
1065 } 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 },
......
This diff is collapsed. Click to expand it.
...@@ -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;
......
1 -<template>
2 - <el-dialog
3 - class="entryDialog systemDialog"
4 - :title="title"
5 - :visible.sync="outerVisible"
6 - :show-close="false"
7 - :close-on-click-modal="false"
8 - v-loading="loadings.editLoading"
9 - width="25%"
10 - @close="close"
11 - ></el-dialog>
12 -</template>
13 -
14 -<script>
15 -export default {
16 - data() {
17 - return {};
18 - },
19 -};
20 -</script>
21 -
22 -<style lang="scss" scoped>
23 -@import "@/assets/styles/variables.scss";
24 -</style>
This diff is collapsed. Click to expand it.
1 -<template>
2 - <el-dialog
3 - title="下載附件"
4 - :visible.sync="dialogVisible"
5 - width="50%"
6 - :show-close="true"
7 - class="detail-dialog"
8 - >
9 - <Table
10 - class="fedexDetialTable mt20"
11 - :data="tableData"
12 - :headerData="headerData"
13 - :selection="false"
14 - height="400px"
15 - :order="false"
16 - :border="false"
17 - :pagination="false"
18 - :selectFixed="false"
19 - :pageSizes="[20, 30, 50, 100]"
20 - @selectionChange="handleSelectionChange"
21 - :loading="tableLodaing"
22 - >
23 - <template v-slot:name="scope">
24 - <p> {{ scope.row.name }}{{ scope.row.type }}</p>
25 - </template>
26 - <template v-slot:down="scope">
27 - <el-button
28 - class="plain"
29 - size="mini"
30 - @click.native.stop="downLoadOneFile(scope.row)"
31 - :loading="scope.row.downloadLoading"
32 - >下載</el-button
33 - >
34 - </template>
35 - </Table>
36 - <div class="width-btn-box">
37 - <el-button
38 - class="entrySaveButton entrySaveButton-background"
39 - @click="batchDownloadBtn"
40 - style="margin-right: 30px;width: 110px;"
41 - :loading="allDownload"
42 - :disabled="this.tableData<=0"
43 - >
44 - 下載全部
45 - </el-button>
46 - <el-button class="entrySaveButton" style="width: 110px;" @click="closeDialog">取消</el-button>
47 - </div>
48 - </el-dialog>
49 -</template>
50 -<script>
51 -import { getFindSysByDeclareId } from "@/api/fillForm.js";
52 -import { downLoadZip,downLoadFile } from "@/utils/zipdownload";
53 -export default {
54 - components: {},
55 - props: {},
56 - data() {
57 - return {
58 - tableLodaing:false,
59 - allDownload:false,
60 - dialogVisible: false,
61 - declareId: null,
62 - tableData: [],
63 - headerData: [
64 - {
65 - name: "附件名稱",
66 - value: "name",
67 - width: "",
68 - align: "left",
69 - slot: true,
70 - },
71 - {
72 - name: "操作",
73 - value: "down",
74 - width: "100",
75 - align: "center",
76 - slot: true,
77 - },
78 - ],
79 - selectCheckList: [],
80 - customsFileId: null,
81 - };
82 - },
83 - methods: {
84 - // 打开弹窗
85 - openDialog(row) {
86 - this.dialogVisible = true;
87 - this.declareId = row.id;
88 - this.customsFileId = row.customsFileId;
89 - this.getUploadFileList();
90 - },
91 - // 关闭弹窗
92 - closeDialog() {
93 - this.dialogVisible = false;
94 - },
95 - // 选择下载的附件
96 - handleSelectionChange(val) {
97 - this.selectCheckList = val;
98 - },
99 - // 下载
100 - downLoadOneFile(fileRow) {
101 - fileRow.downloadLoading=true;
102 - downLoadFile(
103 - "/icleartw/cusFile/downLoadFile",
104 - fileRow.id,
105 - fileRow.name+ fileRow.type
106 - ).then(() => {
107 -
108 - this.$message.success("下載成功");
109 - this.exportLoading = false;
110 - })
111 - .catch(() => {
112 - this.exportLoading = false;
113 - }).finally(()=>{
114 - fileRow.downloadLoading = false;
115 - })
116 -
117 - },
118 - // 批量下载
119 - batchDownloadBtn() {
120 - this.allDownload=true;
121 - downLoadZip(
122 - "/icleartw/cusFile/downLoadCusFileAll",
123 - this.customsFileId,
124 - "附件"
125 - )
126 - .then(() => {
127 - this.allDownload = false;
128 - this.exportLoading = false;
129 - })
130 - .catch(() => {
131 - this.exportLoading = false;
132 - });
133 - },
134 - // 获取文件列表
135 - getUploadFileList() {
136 - this.tableData=[];
137 - this.tableLodaing=true;
138 - getFindSysByDeclareId(this.declareId).then((res) => {
139 - if (res.code == 200) {
140 - this.tableData = res.data;
141 - if (this.tableData != null) {
142 - this.tableData = this.tableData.map(item => {
143 - return {
144 - ...item,
145 - downloadLoading: false
146 - };
147 - });
148 - }
149 - }else{
150 - this.$message.error(res.msg);
151 - }
152 - }).catch((res)=>{
153 - this.$message.error(res.msg);
154 - }).finally(()=>{
155 - this.tableLodaing = false;
156 - })
157 - },
158 - },
159 -};
160 -</script>
161 -
162 -<style lang="scss" scoped>
163 -.detail-dialog {
164 - .title-box {
165 - font-size: 16px;
166 - font-weight: 600;
167 - // line-height: 22px;
168 - color: #000000;
169 - display: flex;
170 - justify-content: space-between;
171 - .el-button {
172 - padding: 0;
173 - font-size: 12px;
174 - }
175 - }
176 - .content {
177 - color: #333;
178 - font-size: 12px;
179 - .small-title {
180 - margin: 12px 0 4px 0;
181 - font-size: 14px;
182 - }
183 - .info-box {
184 - width: 100%;
185 - height: 50px;
186 - line-height: 17px;
187 - background: #f2f2f2;
188 - padding: 8px;
189 - margin-bottom: 4px;
190 - }
191 - }
192 - .download {
193 - .el-button {
194 - padding: 0;
195 - font-size: 12px;
196 - }
197 - img {
198 - vertical-align: -4px;
199 - }
200 - }
201 - ::v-deep .el-dialog {
202 - padding: 20px 100px;
203 - }
204 - ::v-deep .el-dialog__header {
205 - text-align: center;
206 - }
207 - .width-btn-box {
208 - width: 100%;
209 - text-align: center;
210 - margin-top: 16px;
211 - .el-button {
212 - width: 100px;
213 - }
214 - }
215 - ::v-deep .el-table__body-wrapper .el-table__body tbody tr {
216 - height: 50px;
217 - }
218 -}
219 -</style>
This diff is collapsed. Click to expand it.
1 -export const tableHeaderKeys = [
2 - {
3 - label: "提單號碼",
4 - prop: "deliveryNo",
5 - width: 150,
6 - align: "left",
7 - sort: false,
8 - },
9 - {
10 - label: "報單類別",
11 - prop: "customsDeclarationType",
12 - width: 150,
13 - align: "left",
14 - sort: false,
15 - },
16 - {
17 - label: "操作狀態/時間",
18 - prop: "operStatusAndTime1",
19 - width: 150,
20 - align: "left",
21 - tem:"operStatusAndTime1",
22 - sort: "custom",
23 - },
24 - {
25 - label: "傳送狀態/時間",
26 - prop: "delStatus",
27 - width: 150,
28 - align: "left",
29 - tem: "delStatus",
30 - sort:"custom",
31 -
32 - },
33 - {
34 - label: "操作",
35 - prop: "opt",
36 - width: 150,
37 - align: "center",
38 - tem: "opt",
39 - sort: false,
40 - },
41 -];
This diff is collapsed. Click to expand it.