jiaxing.zhou

Merge branch 'release-v1.0.8'

# Conflicts:
#	src/store/modules/permission.js
#	src/views/customerConfig/dialog.vue
...@@ -138,6 +138,25 @@ ...@@ -138,6 +138,25 @@
138 </el-select> 138 </el-select>
139 </Formitem> 139 </Formitem>
140 </el-col> 140 </el-col>
141 + <!-- 汇总申报状态 -->
142 + <el-col :span="5">
143 + <Formitem label="汇总申报状态" prop="summaryApplicationStatus">
144 + <el-select
145 + type="text"
146 + id="inputInner--summaryApplicationStatus"
147 + v-model="sreachFormData.summaryApplicationStatus"
148 + clearable
149 + placeholder=""
150 + >
151 + <el-option
152 + v-for="(item, index) in $store.getters.dict.RECEIPT_STATUS.filter(fItem => fItem.itemChineseName !== '已提交')"
153 + :key="index"
154 + :label="item.itemChineseName"
155 + :value="item.itemValue"
156 + ></el-option>
157 + </el-select>
158 + </Formitem>
159 + </el-col>
141 <!-- 清单编号 --> 160 <!-- 清单编号 -->
142 <el-col :span="5"> 161 <el-col :span="5">
143 <Formitem label="清单编号" prop="invtNo"> 162 <Formitem label="清单编号" prop="invtNo">
...@@ -241,6 +260,7 @@ export default { ...@@ -241,6 +260,7 @@ export default {
241 logisticsNo: [], 260 logisticsNo: [],
242 orderNo: "", 261 orderNo: "",
243 returnStatus: "", 262 returnStatus: "",
263 + summaryApplicationStatus: "",
244 createTime: [], 264 createTime: [],
245 }, 265 },
246 page: { 266 page: {
...@@ -277,6 +297,12 @@ export default { ...@@ -277,6 +297,12 @@ export default {
277 align: "left", 297 align: "left",
278 }, 298 },
279 { 299 {
300 + name: "清单编号",
301 + value: "invtNo",
302 + width: "",
303 + align: "left"
304 + },
305 + {
280 name: "电商企业代码", 306 name: "电商企业代码",
281 value: "ebpcode", 307 value: "ebpcode",
282 width: "", 308 width: "",
...@@ -295,6 +321,12 @@ export default { ...@@ -295,6 +321,12 @@ export default {
295 align: "left", 321 align: "left",
296 }, 322 },
297 { 323 {
324 + name: "汇总申报状态",
325 + value: "summaryApplicationStatus",
326 + width: "",
327 + align: "left",
328 + },
329 + {
298 name: "创建时间", 330 name: "创建时间",
299 value: "createTime", 331 value: "createTime",
300 width: "", 332 width: "",
......
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
146 type="primary" 146 type="primary"
147 v-loading="loadings.dropDownLoading" 147 v-loading="loadings.dropDownLoading"
148 @command="dropdownChange" 148 @command="dropdownChange"
149 - @click="declareData" 149 + @click="declareData('dropDownLoading', dropdownName, dropdownCode)"
150 > 150 >
151 <svg-icon 151 <svg-icon
152 class="el-icon-user-solid" 152 class="el-icon-user-solid"
...@@ -170,16 +170,36 @@ ...@@ -170,16 +170,36 @@
170 :command="{ code: 'totalScore', name: '清单总分单申报' }" 170 :command="{ code: 'totalScore', name: '清单总分单申报' }"
171 >清单总分单申报</el-dropdown-item 171 >清单总分单申报</el-dropdown-item
172 > 172 >
173 - <el-dropdown-item
174 - :command="{ code: 'cancellation', name: '撤销单申报' }"
175 - >撤销单申报</el-dropdown-item
176 - >
177 - <el-dropdown-item
178 - :command="{ code: 'logisticsDeparture', name: '离境单申报' }"
179 - >离境单申报</el-dropdown-item
180 - >
181 </el-dropdown-menu> 173 </el-dropdown-menu>
182 </el-dropdown> 174 </el-dropdown>
175 + <!-- 离境单申报按钮 -->
176 + <el-button
177 + size="small"
178 + type="primary"
179 + class="dropdown-style-button"
180 + :loading="loadings.departureLoading"
181 + @click="declareData('departureLoading', '离境单申报', 'logisticsDeparture')"
182 + >
183 + <svg-icon
184 + class="el-icon-user-solid"
185 + icon-class="fedexDeclareIcon"
186 + ></svg-icon>
187 + 离境单申报
188 + </el-button>
189 + <!-- 撤销单申报按钮 -->
190 + <el-button
191 + size="small"
192 + type="primary"
193 + class="dropdown-style-button"
194 + :loading="loadings.revokeLoading"
195 + @click="declareData('revokeLoading', '撤销单申报' ,'cancellation')"
196 + >
197 + <svg-icon
198 + class="el-icon-user-solid"
199 + icon-class="fedexDeclareIcon"
200 + ></svg-icon>
201 + 撤销单申报
202 + </el-button>
183 <el-button 203 <el-button
184 class="entrySaveButton" 204 class="entrySaveButton"
185 size="small" 205 size="small"
...@@ -558,6 +578,8 @@ export default { ...@@ -558,6 +578,8 @@ export default {
558 dropDownLoading: false, 578 dropDownLoading: false,
559 logTableLoading: false, 579 logTableLoading: false,
560 exportDeclareLoading:false, 580 exportDeclareLoading:false,
581 + revokeLoading: false, // 撤销单申报加载状态
582 + departureLoading: false, // 离境单申报加载状态
561 }, 583 },
562 textareaVisible: {}, 584 textareaVisible: {},
563 tableMaxheight: null, 585 tableMaxheight: null,
...@@ -743,43 +765,52 @@ export default { ...@@ -743,43 +765,52 @@ export default {
743 this.loadings.exportDeclareLoading = false; 765 this.loadings.exportDeclareLoading = false;
744 }, 766 },
745 767
746 - //申报 768 + /**
747 - declareData() { 769 + * 通用申报方法
748 - if (this.selected.length > 0) { 770 + * @param {string} loadingKey - 加载状态的 key(如 'dropDownLoading', 'departureLoading', 'revokeLoading')
749 - this.loadings.dropDownLoading = true; 771 + * @param {string} dropdownName - 当前操作名称(如 '撤销单申报')
750 - let obj = { 772 + * @param {string} dropdownCode - 当前操作代码(如 'full')
751 - declareIds: [], 773 + */
752 - type: this.dropdownCode, 774 + declareData(loadingKey, dropdownName, dropdownCode) {
775 + if (this.selected.length === 0) {
776 + this.alertWarningMsg("请选择数据!");
777 + return;
778 + }
779 +
780 + // 设置加载状态
781 + this.$set(this.loadings, loadingKey, true);
782 + // 构造请求参数
783 + const obj = {
784 + declareIds: this.selected.map(item => item.declareId),
785 + type: dropdownCode,
753 }; 786 };
754 - this.selected.forEach((item) => {
755 - obj.declareIds.push(item.declareId);
756 - });
757 787
758 - if (this.dropdownName === '撤销单申报') { 788 + // 如果是撤销单申报,显示弹窗并返回
759 - this.revokeVisible = true 789 + if (dropdownName === '撤销单申报') {
760 - return 790 + this.revokeVisible = true;
791 + this.$set(this.loadings, loadingKey, false);
792 + this.dropdownCode = dropdownCode;
793 + return;
761 } 794 }
762 795
796 + // 提交申报数据
763 declareDataUpload(obj) 797 declareDataUpload(obj)
764 .then((res) => { 798 .then((res) => {
765 if (res.code === "200") { 799 if (res.code === "200") {
766 - // this.alertSuccessMsg(res.message);
767 this.alertSuccessMsg("数据已成功提交申报,请等待海关回执。"); 800 this.alertSuccessMsg("数据已成功提交申报,请等待海关回执。");
768 } else { 801 } else {
769 this.alertWarningMsg(res.message); 802 this.alertWarningMsg(res.message);
770 } 803 }
771 - this.loadings.dropDownLoading = false;
772 - this.search(0);
773 }) 804 })
774 .catch((err) => { 805 .catch((err) => {
775 - console.log(err); 806 + console.error(err);
776 - this.loadings.dropDownLoading = false; 807 + this.alertWarningMsg("申报失败,请稍后重试。");
808 + })
809 + .finally(() => {
810 + // 无论成功或失败,都重置加载状态并刷新数据
811 + this.$set(this.loadings, loadingKey, false);
812 + this.search(0);
777 }); 813 });
778 -
779 -
780 - } else {
781 - this.alertWarningMsg("请选择数据!");
782 - }
783 }, 814 },
784 //切换申报模式 815 //切换申报模式
785 dropdownChange(val) { 816 dropdownChange(val) {
...@@ -952,6 +983,7 @@ export default { ...@@ -952,6 +983,7 @@ export default {
952 cancelRevoke(){ 983 cancelRevoke(){
953 this.loadings.dropDownLoading = false; 984 this.loadings.dropDownLoading = false;
954 this.revokeVisible = false 985 this.revokeVisible = false
986 + this.dropdownCode = 'full'
955 }, 987 },
956 update(val) { 988 update(val) {
957 this.$router.push({ 989 this.$router.push({
...@@ -1021,6 +1053,14 @@ export default { ...@@ -1021,6 +1053,14 @@ export default {
1021 display: flex; 1053 display: flex;
1022 justify-content: space-between; 1054 justify-content: space-between;
1023 1055
1056 + /* 使按钮样式与 el-dropdown 一致 */
1057 + .el-button.dropdown-style-button {
1058 + background-color: #ffffff !important;
1059 + border: 2px solid $fedexBottonColor !important; /* 设置边框颜色 */
1060 + color: $fedexBottonColor !important;
1061 + font-size: 12px !important;
1062 + }
1063 +
1024 .el-button { 1064 .el-button {
1025 color: $fedexButton; 1065 color: $fedexButton;
1026 border-color: $fedexButton !important; 1066 border-color: $fedexButton !important;
......
...@@ -188,4 +188,3 @@ ...@@ -188,4 +188,3 @@
188 } 188 }
189 } 189 }
190 </style> 190 </style>
191 -
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -41,15 +41,15 @@ ...@@ -41,15 +41,15 @@
41 ></el-input> 41 ></el-input>
42 </Formitem> 42 </Formitem>
43 </el-col> 43 </el-col>
44 - <!-- 电商企业代码 --> 44 + <!-- 收发货人代码 -->
45 <el-col :span="5"> 45 <el-col :span="5">
46 - <Formitem label="电商企业代码" prop="agentCode"> 46 + <Formitem label="收发货人代码" prop="ebccode">
47 <el-input 47 <el-input
48 type="text" 48 type="text"
49 class="inputShadow" 49 class="inputShadow"
50 - id="inputInner--agentCode" 50 + id="inputInner--ebccode"
51 resize="none" 51 resize="none"
52 - v-model="sreachFormData.agentCode" 52 + v-model="sreachFormData.ebccode"
53 clearable 53 clearable
54 placeholder="" 54 placeholder=""
55 ></el-input> 55 ></el-input>
...@@ -110,9 +110,9 @@ ...@@ -110,9 +110,9 @@
110 </el-button> 110 </el-button>
111 </el-form-item> 111 </el-form-item>
112 </el-col> 112 </el-col>
113 - <!-- 报关企业代码 --> 113 + <!-- 申报企业代码 -->
114 <el-col :span="5"> 114 <el-col :span="5">
115 - <Formitem label="报关企业代码" prop="declagAgentCode"> 115 + <Formitem label="申报企业代码" prop="declagAgentCode">
116 <el-input 116 <el-input
117 type="text" 117 type="text"
118 class="inputShadow" 118 class="inputShadow"
...@@ -160,31 +160,31 @@ ...@@ -160,31 +160,31 @@
160 <!-- </Formitem>--> 160 <!-- </Formitem>-->
161 <!-- </el-col>--> 161 <!-- </el-col>-->
162 <!-- 报文序号 --> 162 <!-- 报文序号 -->
163 - <el-col :span="5"> 163 +<!-- <el-col :span="5">-->
164 - <Formitem label="报文序号" prop="msgSeqNo"> 164 +<!-- <Formitem label="报文序号" prop="msgSeqNo">-->
165 - <el-input 165 +<!-- <el-input-->
166 - type="text" 166 +<!-- type="text"-->
167 - class="inputShadow" 167 +<!-- class="inputShadow"-->
168 - id="inputInner--msgSeqNo" 168 +<!-- id="inputInner&#45;&#45;msgSeqNo"-->
169 - resize="none" 169 +<!-- resize="none"-->
170 - v-model="sreachFormData.msgSeqNo" 170 +<!-- v-model="sreachFormData.msgSeqNo"-->
171 - clearable 171 +<!-- clearable-->
172 - placeholder="" 172 +<!-- placeholder=""-->
173 - ></el-input> 173 +<!-- ></el-input>-->
174 - </Formitem> 174 +<!-- </Formitem>-->
175 - </el-col> 175 +<!-- </el-col>-->
176 </el-row> 176 </el-row>
177 </el-form> 177 </el-form>
178 - <div class="optionButton"> 178 +<!-- <div class="optionButton">-->
179 - <el-button 179 +<!-- <el-button-->
180 - class="entrySaveButton" 180 +<!-- class="entrySaveButton"-->
181 - size="small" 181 +<!-- size="small"-->
182 - icon="el-icon-download" 182 +<!-- icon="el-icon-download"-->
183 - @click="downloadData" 183 +<!-- @click="downloadData"-->
184 - > 184 +<!-- >-->
185 - 导出 185 +<!-- 导出-->
186 - </el-button> 186 +<!-- </el-button>-->
187 - </div> 187 +<!-- </div>-->
188 <Table 188 <Table
189 class="fedexDetialTable fedexSreachTable" 189 class="fedexDetialTable fedexSreachTable"
190 ref="entryTable" 190 ref="entryTable"
......