Merge branch 'release-v1.0.8'
# Conflicts: # src/store/modules/permission.js # src/views/customerConfig/dialog.vue
Showing
4 changed files
with
133 additions
and
62 deletions
| ... | @@ -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; | ... | ... |
| ... | @@ -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--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" | ... | ... |
-
Please register or login to post a comment