zhanbo.xu

feat: 合并代码

...@@ -174,6 +174,18 @@ export function getCustomerList(data) { ...@@ -174,6 +174,18 @@ export function getCustomerList(data) {
174 }, 174 },
175 }); 175 });
176 } 176 }
177 +// /exportSummary/exportSummaryList
178 +export function getNewCustomerList(data) {
179 + return request({
180 + url: "/bus-customer/exportSummary/get/customers",
181 + method: "post",
182 + data: {
183 + pageIndex: 1,
184 + pageSize: 1000,
185 + ...data,
186 + },
187 + });
188 +}
177 189
178 //获取口岸表数据 190 //获取口岸表数据
179 export function getPortList(data) { 191 export function getPortList(data) {
......
1 -import request from '@/utils/request' 1 +import request from "@/utils/request";
2 2
3 /** 3 /**
4 * 汇总申请单查询 4 * 汇总申请单查询
...@@ -14,46 +14,56 @@ import request from '@/utils/request' ...@@ -14,46 +14,56 @@ import request from '@/utils/request'
14 * @param data.pageIndex 当前页码 14 * @param data.pageIndex 当前页码
15 * @param data.pageSize 分页最大数据量 15 * @param data.pageSize 分页最大数据量
16 */ 16 */
17 -export function searchExportSummaryList(data){ 17 +export function searchExportSummaryList(data) {
18 return request({ 18 return request({
19 - url: '/bus-customer/exportSummary/exportSummaryList', 19 + url: "/bus-customer/exportSummary/exportSummaryList",
20 - method: 'post', 20 + method: "post",
21 data: data, 21 data: data,
22 - }) 22 + });
23 } 23 }
24 24
25 /** 25 /**
26 * 查询汇总回执 26 * 查询汇总回执
27 * @param data.copNo 企业唯一编号 27 * @param data.copNo 企业唯一编号
28 */ 28 */
29 -export function getExportSummaryReceiptData(data){ 29 +export function getExportSummaryReceiptData(data) {
30 return request({ 30 return request({
31 - url: '/bus-customer/exportSummary/receipt/' + data.copNo, 31 + url: "/bus-customer/exportSummary/receipt/" + data.copNo,
32 - method: 'get', 32 + method: "get",
33 - }) 33 + });
34 } 34 }
35 35
36 /** 36 /**
37 * 获取汇总申请单详情 37 * 获取汇总申请单详情
38 * @param data.id 汇总申请单id 38 * @param data.id 汇总申请单id
39 */ 39 */
40 -export function getExportSummaryDetail(data){ 40 +export function getExportSummaryDetail(data) {
41 return request({ 41 return request({
42 - url: '/bus-customer/exportSummary/exportSummaryDetail/' + data.id, 42 + url: "/bus-customer/exportSummary/exportSummaryDetail/" + data.id,
43 - method: 'get', 43 + method: "get",
44 - }) 44 + });
45 } 45 }
46 46
47 -
48 /** 47 /**
49 * 汇总申报 48 * 汇总申报
50 * @param data 49 * @param data
51 * @returns {*} 50 * @returns {*}
52 */ 51 */
53 -export function declareSummaryApplication(data){ 52 +export function declareSummaryApplication(data) {
53 + return request({
54 + url: "/bus-customer/exportSummary/declare",
55 + method: "post",
56 + data: data,
57 + });
58 +}
59 +
60 +// POST
61 +// ​/exportSummary​/get​/customers
62 +// 根据条件获取可以汇总申报的企业
63 +export function getCustomers(data) {
54 return request({ 64 return request({
55 - url:'/bus-customer/exportSummary/declare', 65 + url: "/bus-customer/exportSummary/get/customers",
56 - method:'post', 66 + method: "post",
57 - data:data 67 + data: data,
58 - }) 68 + });
59 } 69 }
......
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
39 ? '数据加载中' 39 ? '数据加载中'
40 : $t('portEntry.emptyText') 40 : $t('portEntry.emptyText')
41 " 41 "
42 - height="350px" 42 + :height="tableHeight + 'px'"
43 - maxHeight="500px" 43 + :maxHeight="tableHeight + 'px'"
44 rowKey="id" 44 rowKey="id"
45 > 45 >
46 </Table> 46 </Table>
...@@ -90,6 +90,7 @@ export default { ...@@ -90,6 +90,7 @@ export default {
90 data() { 90 data() {
91 return { 91 return {
92 tableLoading: false, 92 tableLoading: false,
93 + tableHeight: 350,
93 }; 94 };
94 }, 95 },
95 computed: { 96 computed: {
...@@ -97,7 +98,17 @@ export default { ...@@ -97,7 +98,17 @@ export default {
97 return this.$store.state.viewOption.loadingDatas; 98 return this.$store.state.viewOption.loadingDatas;
98 }, 99 },
99 }, 100 },
101 + mounted() {
102 + this.calculateTableHeight();
103 + window.addEventListener("resize", this.calculateTableHeight);
104 + },
105 + beforeDestroy() {
106 + window.removeEventListener("resize", this.calculateTableHeight);
107 + },
100 methods: { 108 methods: {
109 + calculateTableHeight() {
110 + this.tableHeight = window.innerHeight - 300;
111 + },
101 //弹框关闭 112 //弹框关闭
102 popoverClose() { 113 popoverClose() {
103 this.$emit("popoverClose"); 114 this.$emit("popoverClose");
......
1 <template> 1 <template>
2 - <div style="height: 100%;"> 2 + <div style="height: 100%">
3 - <el-form 3 + <el-form
4 - class="fedexFormStyle fedexRowEditFormStyle" 4 + class="fedexFormStyle fedexRowEditFormStyle"
5 - ref="editRowForm" 5 + ref="editRowForm"
6 - :model="tableRowformData" 6 + :model="tableRowformData"
7 - :rules="tableRowFormRules" 7 + :rules="tableRowFormRules"
8 - label-position="top" 8 + label-position="top"
9 - size="small" 9 + size="small"
10 - > 10 + >
11 - <el-row :gutter="5"> 11 + <el-row :gutter="5">
12 - <el-col :span="4"> 12 + <el-col :span="4">
13 - <Formitem label="企业商品货号" prop="enterpriseProductCode"> 13 + <Formitem label="企业商品货号" prop="enterpriseProductCode">
14 - <el-input 14 + <el-input
15 - type="text" 15 + type="text"
16 - class="inputShadow" 16 + class="inputShadow"
17 - id="inputInner--enterpriseProductCode" 17 + id="inputInner--enterpriseProductCode"
18 - resize="none" 18 + resize="none"
19 - v-model="tableRowformData.enterpriseProductCode" 19 + v-model="tableRowformData.enterpriseProductCode"
20 - clearable 20 + clearable
21 - placeholder="" 21 + placeholder=""
22 - ></el-input> 22 + ></el-input>
23 - </Formitem> 23 + </Formitem>
24 - </el-col> 24 + </el-col>
25 - <el-col :span="4"> 25 + <el-col :span="4">
26 - <Formitem label="企业商品名称" prop="enterpriseProductName"> 26 + <Formitem label="企业商品名称" prop="enterpriseProductName">
27 - <el-input 27 + <el-input
28 - type="text" 28 + type="text"
29 - class="inputShadow" 29 + class="inputShadow"
30 - id="inputInner--enterpriseProductName" 30 + id="inputInner--enterpriseProductName"
31 - resize="none" 31 + resize="none"
32 - v-model="tableRowformData.enterpriseProductName" 32 + v-model="tableRowformData.enterpriseProductName"
33 - clearable 33 + clearable
34 - placeholder="" 34 + placeholder=""
35 - ></el-input> 35 + ></el-input>
36 - </Formitem> 36 + </Formitem>
37 - </el-col> 37 + </el-col>
38 - <el-col :span="4"> 38 + <el-col :span="4">
39 - <Formitem label="企业商品描述" prop="enterpriseProductDescribe"> 39 + <Formitem label="企业商品描述" prop="enterpriseProductDescribe">
40 - <el-input 40 + <el-input
41 - type="textarea" 41 + type="textarea"
42 - class="inputShadow" 42 + class="inputShadow"
43 - id="inputInner--enterpriseProductDescribe" 43 + id="inputInner--enterpriseProductDescribe"
44 - resize="none" 44 + resize="none"
45 - v-model="tableRowformData.enterpriseProductDescribe" 45 + v-model="tableRowformData.enterpriseProductDescribe"
46 - clearable 46 + clearable
47 - placeholder="" 47 + placeholder=""
48 - ></el-input> 48 + ></el-input>
49 - </Formitem> 49 + </Formitem>
50 - </el-col> 50 + </el-col>
51 - <el-col :span="4"> 51 + <el-col :span="4">
52 - <Formitem label="商品名称" prop="productName"> 52 + <Formitem label="商品名称" prop="productName">
53 - <el-input 53 + <el-input
54 - type="text" 54 + type="text"
55 - class="inputShadow" 55 + class="inputShadow"
56 - id="inputInner--productName" 56 + id="inputInner--productName"
57 - resize="none" 57 + resize="none"
58 - v-model="tableRowformData.productName" 58 + v-model="tableRowformData.productName"
59 - clearable 59 + clearable
60 - placeholder="" 60 + placeholder=""
61 - ></el-input> 61 + ></el-input>
62 - </Formitem> 62 + </Formitem>
63 - </el-col> 63 + </el-col>
64 - <el-col :span="4"> 64 + <el-col :span="4">
65 - <Formitem label="商品编码" prop="productCode"> 65 + <Formitem label="商品编码" prop="productCode">
66 - <el-input 66 + <el-input
67 - type="text" 67 + type="text"
68 - class="inputShadow" 68 + class="inputShadow"
69 - id="inputInner--productCode" 69 + id="inputInner--productCode"
70 - resize="none" 70 + resize="none"
71 - v-model="tableRowformData.productCode" 71 + v-model="tableRowformData.productCode"
72 - clearable 72 + clearable
73 - placeholder="" 73 + placeholder=""
74 - ></el-input> 74 + ></el-input>
75 - </Formitem> 75 + </Formitem>
76 - </el-col> 76 + </el-col>
77 - <el-col :span="4"> 77 + <el-col :span="4">
78 - <Formitem label="规格型号" prop="model"> 78 + <Formitem label="规格型号" prop="model">
79 - <el-input 79 + <el-input
80 - type="text" 80 + type="text"
81 - class="inputShadow" 81 + class="inputShadow"
82 - id="inputInner--model" 82 + id="inputInner--model"
83 - resize="none" 83 + resize="none"
84 - v-model="tableRowformData.model" 84 + v-model="tableRowformData.model"
85 - clearable 85 + clearable
86 - placeholder="" 86 + placeholder=""
87 - ></el-input> 87 + ></el-input>
88 - </Formitem> 88 + </Formitem>
89 - </el-col> 89 + </el-col>
90 - </el-row> 90 + </el-row>
91 - <el-row :gutter="5"> 91 + <el-row :gutter="5">
92 - <el-col :span="4"> 92 + <el-col :span="4">
93 - <Formitem label="账册备案料号" prop="accountBookMaterialNumber"> 93 + <Formitem label="账册备案料号" prop="accountBookMaterialNumber">
94 - <el-input 94 + <el-input
95 - type="text" 95 + type="text"
96 - class="inputShadow" 96 + class="inputShadow"
97 - id="inputInner--accountBookMaterialNumber" 97 + id="inputInner--accountBookMaterialNumber"
98 - resize="none" 98 + resize="none"
99 - v-model="tableRowformData.accountBookMaterialNumber" 99 + v-model="tableRowformData.accountBookMaterialNumber"
100 - clearable 100 + clearable
101 - placeholder="" 101 + placeholder=""
102 - ></el-input> 102 + ></el-input>
103 - </Formitem> 103 + </Formitem>
104 - </el-col> 104 + </el-col>
105 - <el-col :span="4"> 105 + <el-col :span="4">
106 - <Formitem label="条形码" prop="barCode"> 106 + <Formitem label="条形码" prop="barCode">
107 - <el-input 107 + <el-input
108 - type="text" 108 + type="text"
109 - class="inputShadow" 109 + class="inputShadow"
110 - id="inputInner--barCode" 110 + id="inputInner--barCode"
111 - resize="none" 111 + resize="none"
112 - v-model="tableRowformData.barCode" 112 + v-model="tableRowformData.barCode"
113 - clearable 113 + clearable
114 - placeholder="" 114 + placeholder=""
115 - ></el-input> 115 + ></el-input>
116 - </Formitem> 116 + </Formitem>
117 - </el-col> 117 + </el-col>
118 - <el-col :span="4"> 118 + <el-col :span="4">
119 - <Formitem label="目的国(地区)代码" prop="destinationCountryRegionCode"> 119 + <Formitem
120 - <el-select 120 + label="目的国(地区)代码"
121 - type="text" 121 + prop="destinationCountryRegionCode"
122 - id="inputInner--destinationCountryRegionCode" 122 + >
123 - v-model="tableRowformData.destinationCountryRegionCode" 123 + <el-select
124 - clearable 124 + type="text"
125 - filterable 125 + id="inputInner--destinationCountryRegionCode"
126 - placeholder="" 126 + v-model="tableRowformData.destinationCountryRegionCode"
127 - > 127 + clearable
128 - <el-option 128 + filterable
129 - v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE" 129 + placeholder=""
130 - :key="index" 130 + >
131 - :label="item.itemChineseName" 131 + <el-option
132 - :value="item.itemCode" 132 + v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
133 - ></el-option> 133 + :key="index"
134 - </el-select> 134 + :label="item.itemChineseName"
135 - </Formitem> 135 + :value="item.itemCode"
136 - </el-col> 136 + ></el-option>
137 - <el-col :span="4"> 137 + </el-select>
138 - <Formitem label="计量单位" prop="unit"> 138 + </Formitem>
139 - <el-select 139 + </el-col>
140 - type="text" 140 + <el-col :span="4">
141 - id="inputInner--unit" 141 + <Formitem label="计量单位" prop="unit">
142 - v-model="tableRowformData.unit" 142 + <el-select
143 - clearable 143 + type="text"
144 - filterable 144 + id="inputInner--unit"
145 - placeholder="" 145 + v-model="tableRowformData.unit"
146 - > 146 + clearable
147 - <el-option 147 + filterable
148 - v-for="(item, index) in $store.getters.dict.MEASUREMENT_UNIT" 148 + placeholder=""
149 - :key="index" 149 + >
150 - :label="item.itemChineseName" 150 + <el-option
151 - :value="item.itemValue" 151 + v-for="(item, index) in $store.getters.dict.MEASUREMENT_UNIT"
152 - ></el-option> 152 + :key="index"
153 - </el-select> 153 + :label="item.itemChineseName"
154 - </Formitem> 154 + :value="item.itemValue"
155 - </el-col> 155 + ></el-option>
156 - <el-col :span="4"> 156 + </el-select>
157 - <Formitem label="数量" prop="qty"> 157 + </Formitem>
158 - <el-input 158 + </el-col>
159 - type="number" 159 + <el-col :span="4">
160 - class="inputShadow" 160 + <Formitem label="数量" prop="qty">
161 - id="inputInner--qty" 161 + <el-input
162 - resize="none" 162 + type="number"
163 - v-model.number="tableRowformData.qty" 163 + class="inputShadow"
164 - clearable 164 + id="inputInner--qty"
165 - placeholder="" 165 + resize="none"
166 - ></el-input> 166 + v-model.number="tableRowformData.qty"
167 - </Formitem> 167 + clearable
168 - </el-col> 168 + placeholder=""
169 - <el-col :span="4"> 169 + ></el-input>
170 - <Formitem label="法定数量" prop="legalQty"> 170 + </Formitem>
171 - <el-input 171 + </el-col>
172 - type="number" 172 + <el-col :span="4">
173 - class="inputShadow" 173 + <Formitem label="法定数量" prop="legalQty">
174 - id="inputInner--legalQty" 174 + <el-input
175 - resize="none" 175 + type="number"
176 - v-model="tableRowformData.legalQty" 176 + class="inputShadow"
177 - clearable 177 + id="inputInner--legalQty"
178 - placeholder="" 178 + resize="none"
179 - ></el-input> 179 + v-model="tableRowformData.legalQty"
180 - </Formitem> 180 + clearable
181 - </el-col> 181 + placeholder=""
182 - </el-row> 182 + ></el-input>
183 - <el-row :gutter="5"> 183 + </Formitem>
184 - <el-col :span="4"> 184 + </el-col>
185 - <Formitem label="币制" prop="currency"> 185 + </el-row>
186 - <el-select 186 + <el-row :gutter="5">
187 - type="text" 187 + <el-col :span="4">
188 - id="inputInner--currency" 188 + <Formitem label="法定计量单位">
189 - v-model="tableRowformData.currency" 189 + <el-input
190 - clearable 190 + class="inputShadow"
191 - filterable 191 + id="inputInner--unitLegalFirstCode"
192 - placeholder="" 192 + resize="none"
193 - > 193 + :disabled="true"
194 - <el-option 194 + :value="
195 - v-for="(item, index) in $store.getters.dict.CURRENCY" 195 + mapDicDatas(
196 - :key="index" 196 + $store.getters.dict.MEASUREMENT_UNIT,
197 - :label="item.itemChineseName" 197 + tableRowformData.unitLegalFirstCode
198 - :value="item.itemValue" 198 + )
199 - ></el-option> 199 + "
200 - </el-select> 200 + ></el-input>
201 - </Formitem> 201 + </Formitem>
202 - </el-col> 202 + </el-col>
203 - <el-col :span="4"> 203 + <el-col :span="4">
204 - <Formitem label="单价" prop="price"> 204 + <Formitem label="币制" prop="currency">
205 - <el-input 205 + <el-select
206 - type="number" 206 + type="text"
207 - class="inputShadow" 207 + id="inputInner--currency"
208 - id="inputInner--price" 208 + v-model="tableRowformData.currency"
209 - resize="none" 209 + clearable
210 - v-model="tableRowformData.price" 210 + filterable
211 - clearable 211 + placeholder=""
212 - placeholder="" 212 + >
213 - ></el-input> 213 + <el-option
214 - </Formitem> 214 + v-for="(item, index) in $store.getters.dict.CURRENCY"
215 - </el-col> 215 + :key="index"
216 - <el-col :span="4"> 216 + :label="item.itemChineseName"
217 - <Formitem label="总价" prop="totalPrice"> 217 + :value="item.itemValue"
218 - <el-input 218 + ></el-option>
219 - type="number" 219 + </el-select>
220 - class="inputShadow" 220 + </Formitem>
221 - id="inputInner--totalPrice" 221 + </el-col>
222 - resize="none" 222 + <el-col :span="4">
223 - v-model="tableRowformData.totalPrice" 223 + <Formitem label="单价" prop="price">
224 - clearable 224 + <el-input
225 - placeholder="" 225 + type="number"
226 - ></el-input> 226 + class="inputShadow"
227 - </Formitem> 227 + id="inputInner--price"
228 - </el-col> 228 + resize="none"
229 - <el-col :span="4"> 229 + v-model="tableRowformData.price"
230 - <Formitem label="净重" prop="netWeight"> 230 + clearable
231 - <el-input 231 + placeholder=""
232 - type="number" 232 + ></el-input>
233 - class="inputShadow" 233 + </Formitem>
234 - id="inputInner--netWeight" 234 + </el-col>
235 - resize="none" 235 + <el-col :span="4">
236 - v-model="tableRowformData.netWeight" 236 + <Formitem label="总价" prop="totalPrice">
237 - clearable 237 + <el-input
238 - placeholder="" 238 + type="number"
239 - ></el-input> 239 + class="inputShadow"
240 - </Formitem> 240 + id="inputInner--totalPrice"
241 - </el-col> 241 + resize="none"
242 - <el-col :span="8"> 242 + v-model="tableRowformData.totalPrice"
243 - <Formitem label="备注" prop="remark"> 243 + clearable
244 - <el-input 244 + placeholder=""
245 - type="text" 245 + ></el-input>
246 - class="inputShadow" 246 + </Formitem>
247 - id="inputInner--remark" 247 + </el-col>
248 - resize="none" 248 + <el-col :span="4">
249 - v-model="tableRowformData.remark" 249 + <Formitem label="净重" prop="netWeight">
250 - clearable 250 + <el-input
251 - placeholder="" 251 + type="number"
252 - ></el-input> 252 + class="inputShadow"
253 - </Formitem> 253 + id="inputInner--netWeight"
254 - </el-col> 254 + resize="none"
255 - </el-row> 255 + v-model="tableRowformData.netWeight"
256 - </el-form> 256 + clearable
257 - <p class="formRowDataOperate"><a @click="cancelEditRowData">取消</a> <a @click="rowFormDataSave">保存</a></p> 257 + placeholder=""
258 - </div> 258 + ></el-input>
259 - </template> 259 + </Formitem>
260 + </el-col>
261 + <el-col :span="8">
262 + <Formitem label="备注" prop="remark">
263 + <el-input
264 + type="text"
265 + class="inputShadow"
266 + id="inputInner--remark"
267 + resize="none"
268 + v-model="tableRowformData.remark"
269 + clearable
270 + placeholder=""
271 + ></el-input>
272 + </Formitem>
273 + </el-col>
274 + </el-row>
275 + </el-form>
276 + <p class="formRowDataOperate">
277 + <a @click="cancelEditRowData">取消</a>
278 + <a @click="rowFormDataSave">保存</a>
279 + </p>
280 + </div>
281 +</template>
260 282
261 - <script> 283 +<script>
262 - 284 +export default {
263 - export default { 285 + props: {
264 - props: { 286 + rowDatas: {
265 - rowDatas: { 287 + type: Object,
266 - type: Object, 288 + default: () => ({}),
267 - default: ()=>({}),
268 - },
269 }, 289 },
270 - data() { 290 + },
271 - var checkFractionalPart = (rule, value, callback) => { 291 + data() {
272 - if (value < 0) { 292 + var checkFractionalPart = (rule, value, callback) => {
273 - callback(new Error('数值不能为负')); 293 + if (value < 0) {
274 - } 294 + callback(new Error("数值不能为负"));
275 - if (value !== '' && value !== undefined) { 295 + }
276 - const regex = /^\d{0,14}(\.\d{1,5})?$/; 296 + if (value !== "" && value !== undefined) {
277 - if (!regex.test(value)) { 297 + const regex = /^\d{0,14}(\.\d{1,5})?$/;
278 - callback(new Error('整数最多14位,小数最多5位')); 298 + if (!regex.test(value)) {
279 - } else { 299 + callback(new Error("整数最多14位,小数最多5位"));
280 - callback();
281 - }
282 } else { 300 } else {
283 callback(); 301 callback();
284 } 302 }
285 - }; 303 + } else {
286 - var checkNegativeNum = (rule, value, callback) => { 304 + callback();
287 - if (value < 0) { 305 + }
288 - callback(new Error('数值不能为负')); 306 + };
289 - } else { 307 + var checkNegativeNum = (rule, value, callback) => {
290 - callback(); 308 + if (value < 0) {
291 - } 309 + callback(new Error("数值不能为负"));
292 - }; 310 + } else {
293 - var checkQty = (rule, value, callback) => { 311 + callback();
294 - if (!Number.isInteger(value)) { 312 + }
295 - callback(new Error('请输入整数值')); 313 + };
314 + var checkQty = (rule, value, callback) => {
315 + if (value === undefined || value === null || value === "") {
316 + callback(new Error("请输入数值"));
317 + return;
318 + }
319 +
320 + if (isNaN(value)) {
321 + callback(new Error("请输入有效的数字"));
322 + return;
323 + }
324 +
325 + if (value < 0) {
326 + callback(new Error("数值不能为负"));
327 + return;
328 + }
329 +
330 + const valueStr = value.toString();
331 +
332 + const parts = valueStr.split(".");
333 + const integerPart = parts[0];
334 + const decimalPart = parts[1] || "";
335 +
336 + if (integerPart.length > 14) {
337 + callback(new Error("整数部分最多14位"));
338 + return;
339 + }
340 +
341 + if (decimalPart.length > 5) {
342 + callback(new Error("小数部分最多5位"));
343 + return;
344 + }
345 +
346 + callback();
347 + };
348 + return {
349 + tableRowformData: {},
350 + tableRowFormRules: {
351 + enterpriseProductCode: [
352 + { required: true, message: "请输入企业商品货号", trigger: "blur" },
353 + { max: 30, message: "长度不能超过30个字符", trigger: "blur" },
354 + ],
355 + enterpriseProductName: [
356 + { required: true, message: "请输入企业商品名称", trigger: "blur" },
357 + { max: 250, message: "长度不能超过250个字符", trigger: "blur" },
358 + ],
359 + enterpriseProductDescribe: [
360 + { max: 1000, message: "长度不能超过1000个字符", trigger: "blur" },
361 + ],
362 + productName: [
363 + { required: true, message: "请输入商品名称", trigger: "blur" },
364 + { max: 250, message: "长度不能超过250个字符", trigger: "blur" },
365 + ],
366 + productCode: [
367 + { required: true, message: "请输入商品编码", trigger: "blur" },
368 + { max: 10, message: "长度不能超过10个字符", trigger: "blur" },
369 + ],
370 + model: [
371 + { required: true, message: "请输入规格型号", trigger: "blur" },
372 + { max: 250, message: "长度不能超过250个字符", trigger: "blur" },
373 + ],
374 + accountBookMaterialNumber: [
375 + { max: 30, message: "长度不能超过30个字符", trigger: "blur" },
376 + ],
377 + barCode: [
378 + { max: 50, message: "长度不能超过50个字符", trigger: "blur" },
379 + ],
380 + destinationCountryRegionCode: [
381 + {
382 + required: true,
383 + message: "请选择目的国(地区)代码",
384 + trigger: "change",
385 + },
386 + ],
387 + unit: [
388 + { required: true, message: "请选择计量单位", trigger: "change" },
389 + ],
390 + qty: [
391 + { required: true, message: "请输入数量", trigger: "blur" },
392 + { validator: checkQty, trigger: "blur" },
393 + ],
394 + legalQty: [
395 + { required: true, message: "请输入法定数量", trigger: "blur" },
396 + { validator: checkFractionalPart, trigger: "blur" },
397 + ],
398 + currency: [
399 + { required: true, message: "请选择币制", trigger: "change" },
400 + ],
401 + price: [
402 + { required: true, message: "请输入单价", trigger: "blur" },
403 + { validator: checkNegativeNum, trigger: "blur" },
404 + ],
405 + totalPrice: [
406 + { required: true, message: "请输入总价", trigger: "blur" },
407 + { validator: checkNegativeNum, trigger: "blur" },
408 + ],
409 + netWeight: [
410 + { required: true, message: "请输入净重", trigger: "blur" },
411 + { validator: checkFractionalPart, trigger: "blur" },
412 + ],
413 + remark: [
414 + { max: 1000, message: "长度不能超过1000个字符", trigger: "blur" },
415 + ],
416 + },
417 + };
418 + },
419 + methods: {
420 + mapDicDatas(dicArr, code) {
421 + if (code != "" && code) {
422 + return dicArr.filter((item) => item.itemCode == code)[0]
423 + .itemChineseName;
424 + } else {
425 + return "";
426 + }
427 + },
428 + rowFormDataSave() {
429 + this.$refs.editRowForm.validate((valid) => {
430 + if (valid) {
431 + this.$emit("rowFormDataSave", {
432 + gnum: this.rowDatas.row.gnum,
433 + tableRowformData: this.tableRowformData,
434 + });
435 + this.tableRowformData = {};
296 } else { 436 } else {
297 - if (value < 0) { 437 + return false;
298 - callback(new Error('数值不能为负'));
299 - } else {
300 - const valueStr = value.toString();
301 - if (valueStr.length > 14) {
302 - callback(new Error('最多14位'));
303 - } else {
304 - callback();
305 - }
306 - }
307 - }
308 - };
309 - return {
310 - tableRowformData:{},
311 - tableRowFormRules:{
312 - enterpriseProductCode: [
313 - { required: true, message: '请输入企业商品货号', trigger: 'blur' },
314 - { max: 30, message: '长度不能超过30个字符', trigger: 'blur' }
315 - ],
316 - enterpriseProductName: [
317 - { required: true, message: '请输入企业商品名称', trigger: 'blur' },
318 - { max: 250, message: '长度不能超过250个字符', trigger: 'blur' }
319 - ],
320 - enterpriseProductDescribe: [
321 - { max: 1000, message: '长度不能超过1000个字符', trigger: 'blur' }
322 - ],
323 - productName: [
324 - { required: true, message: '请输入商品名称', trigger: 'blur' },
325 - { max: 250, message: '长度不能超过250个字符', trigger: 'blur' }
326 - ],
327 - productCode: [
328 - { required: true, message: '请输入商品编码', trigger: 'blur' },
329 - { max: 10, message: '长度不能超过10个字符', trigger: 'blur' }
330 - ],
331 - model: [
332 - { required: true, message: '请输入规格型号', trigger: 'blur' },
333 - { max: 250, message: '长度不能超过250个字符', trigger: 'blur' }
334 - ],
335 - accountBookMaterialNumber: [
336 - { max: 30, message: '长度不能超过30个字符', trigger: 'blur' }
337 - ],
338 - barCode: [
339 - { max: 50, message: '长度不能超过50个字符', trigger: 'blur' }
340 - ],
341 - destinationCountryRegionCode: [
342 - { required: true, message: '请选择目的国(地区)代码', trigger: 'change' }
343 - ],
344 - unit: [
345 - { required: true, message: '请选择计量单位', trigger: 'change' }
346 - ],
347 - qty: [
348 - { required: true, message: '请输入数量', trigger: 'blur' },
349 - { validator: checkQty, trigger: 'blur' }
350 - ],
351 - legalQty: [
352 - { required: true, message: '请输入法定数量', trigger: 'blur' },
353 - { validator: checkFractionalPart, trigger: 'blur' }
354 - ],
355 - currency: [
356 - { required: true, message: '请选择币制', trigger: 'change' }
357 - ],
358 - price: [
359 - { required: true, message: '请输入单价', trigger: 'blur' },
360 - { validator: checkNegativeNum, trigger: 'blur' }
361 - ],
362 - totalPrice: [
363 - { required: true, message: '请输入总价', trigger: 'blur' },
364 - { validator: checkNegativeNum, trigger: 'blur' }
365 - ],
366 - netWeight: [
367 - { required: true, message: '请输入净重', trigger: 'blur' },
368 - { validator: checkFractionalPart, trigger: 'blur' }
369 - ],
370 - remark: [
371 - { max: 1000, message: '长度不能超过1000个字符', trigger: 'blur' }
372 - ],
373 } 438 }
374 - }; 439 + });
375 }, 440 },
376 - methods: { 441 + cancelEditRowData() {
377 - rowFormDataSave(){ 442 + this.tableRowformData = {};
378 - this.$refs.editRowForm.validate((valid) => { 443 + this.$emit("cancelEditRowData", this.rowDatas.row.gnum - 1);
379 - if (valid) { 444 + },
380 - this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData}) 445 + // validate() {
381 - this.tableRowformData = {} 446 + // return this.$refs.editRowForm.validate((valid)=>{
382 - } else { 447 + // if(valid){
383 - return false; 448 + // console.log("tg2")
384 - } 449 + // this.$emit('updateLastItemValid', true);
385 - }) 450 + // }else {
386 - }, 451 + // console.log("wtg2")
387 - cancelEditRowData(){ 452 + // this.$emit('updateLastItemValid', false); // 通知父组件校验未通过
388 - this.tableRowformData = {} 453 + // }
389 - this.$emit('cancelEditRowData',this.rowDatas.row.gnum-1) 454 + // });
390 - }, 455 + // },
391 - // validate() { 456 + async validate() {
392 - // return this.$refs.editRowForm.validate((valid)=>{ 457 + return new Promise((resolve, reject) => {
393 - // if(valid){ 458 + this.$refs.editRowForm.validate((valid) => {
394 - // console.log("tg2") 459 + if (valid) {
395 - // this.$emit('updateLastItemValid', true); 460 + // console.log("tg2")
396 - // }else { 461 + this.$emit("rowFormDataSave", {
397 - // console.log("wtg2") 462 + gnum: this.rowDatas.row.gnum,
398 - // this.$emit('updateLastItemValid', false); // 通知父组件校验未通过 463 + tableRowformData: this.tableRowformData,
399 - // } 464 + });
400 - // }); 465 + this.tableRowformData = {};
401 - // }, 466 + this.$emit("updateLastItemValid", true);
402 - async validate() { 467 + resolve(true);
403 - return new Promise((resolve, reject) => { 468 + } else {
404 - this.$refs.editRowForm.validate((valid) => { 469 + // console.log("wtg2")
405 - if (valid) { 470 + this.$emit("updateLastItemValid", false);
406 - // console.log("tg2") 471 + resolve(false);
407 - this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData}) 472 + }
408 - this.tableRowformData = {}
409 - this.$emit('updateLastItemValid', true);
410 - resolve(true);
411 - } else {
412 - // console.log("wtg2")
413 - this.$emit('updateLastItemValid', false);
414 - resolve(false);
415 - }
416 - });
417 }); 473 });
418 - }, 474 + });
419 }, 475 },
420 - }; 476 + },
421 - </script> 477 +};
478 +</script>
422 479
423 - <style lang="scss" scoped> 480 +<style lang="scss" scoped>
424 - .addNewItem{ 481 +.addNewItem {
425 - display: flex; 482 + display: flex;
426 - justify-content: flex-start; 483 + justify-content: flex-start;
427 - align-items: center; 484 + align-items: center;
428 - color:#007AB7; 485 + color: #007ab7;
429 - line-height: 38px; 486 + line-height: 38px;
430 - cursor: pointer; 487 + cursor: pointer;
431 - i{ 488 + i {
432 - margin-right: 3px; 489 + margin-right: 3px;
433 - }
434 - span{
435 - font-size: 13px;
436 - font-weight: 500;
437 - }
438 - }
439 - .formRowDataOperate{
440 - text-align: center;
441 - padding: 0 20px;
442 - a{
443 - color: #007AB7;
444 - font-weight: 600;
445 - &:first-child{
446 - margin-right: 5px;
447 - }
448 - }
449 } 490 }
450 - .fedexRowEditFormStyle .el-form-item{ 491 + span {
451 - background-color: #ffffff; 492 + font-size: 13px;
452 - box-shadow: 0 2px 4px 0 #E5F2F8CC; 493 + font-weight: 500;
453 - border-left: 1px solid #E5F2F8CC;
454 - // margin-bottom: 30px;
455 } 494 }
456 - .fedexRowEditFormStyle .el-form-item:has(.formError){ 495 +}
457 - margin-bottom: 25px!important; 496 +.formRowDataOperate {
458 - } 497 + text-align: center;
459 - .fedexRowEditFormStyle .activeBorder{ 498 + padding: 0 20px;
460 - border-left: 3px solid #007AB7; 499 + a {
500 + color: #007ab7;
501 + font-weight: 600;
502 + &:first-child {
503 + margin-right: 5px;
504 + }
461 } 505 }
462 - </style> 506 +}
507 +.fedexRowEditFormStyle .el-form-item {
508 + background-color: #ffffff;
509 + box-shadow: 0 2px 4px 0 #e5f2f8cc;
510 + border-left: 1px solid #e5f2f8cc;
511 + // margin-bottom: 30px;
512 +}
513 +.fedexRowEditFormStyle .el-form-item:has(.formError) {
514 + margin-bottom: 25px !important;
515 +}
516 +.fedexRowEditFormStyle .activeBorder {
517 + border-left: 3px solid #007ab7;
518 +}
519 +</style>
......
1 <template> 1 <template>
2 - <div class="entry" v-loading="loadings.entryLoading"> 2 + <div class="entry" v-loading="loadings.entryLoading">
3 - <div class="entryTitle"> 3 + <div class="entryTitle">
4 - <div>申报数据编辑</div> 4 + <div>申报数据编辑</div>
5 - <div> 5 + <div>
6 - <el-button class="entrySaveButton" @click="back">返 回</el-button> 6 + <el-button class="entrySaveButton" @click="back">返 回</el-button>
7 - </div>
8 </div> 7 </div>
9 - <section :class="{partsHidden:!isFold}"> 8 + </div>
10 - <el-form 9 + <section :class="{ partsHidden: !isFold }">
11 - class="fedexFormStyle fedexFormEditStyle" 10 + <el-form
12 - ref="editForm" 11 + class="fedexFormStyle fedexFormEditStyle"
13 - :model="formData" 12 + ref="editForm"
14 - :rules="formRules" 13 + :model="formData"
15 - label-position="top" 14 + :rules="formRules"
16 - size="small" 15 + label-position="top"
17 - > 16 + size="small"
18 - <el-row :gutter="5"> 17 + >
19 - <el-col :span="3"> 18 + <el-row :gutter="5">
20 - <Formitem label="电商企业名称" prop="ebccode"> 19 + <el-col :span="3">
21 - <el-select 20 + <Formitem label="电商企业名称" prop="ebccode">
22 - type="text" 21 + <el-select
23 - id="inputInner--ebccode" 22 + type="text"
24 - v-model="formData.ebccode" 23 + id="inputInner--ebccode"
25 - clearable 24 + v-model="formData.ebccode"
26 - filterable 25 + clearable
27 - placeholder="" 26 + filterable
28 - > 27 + placeholder=""
29 - <el-option 28 + >
30 - v-for="(item, index) in ebcDataList"
31 - :key="index"
32 - :label="item.ecomEntName"
33 - :value="item.ecomEntCode"
34 - ></el-option>
35 - </el-select>
36 - </Formitem>
37 - </el-col>
38 - <el-col :span="3">
39 - <Formitem label="物流企业" prop="logisticsCode">
40 - <el-input
41 - type="text"
42 - class="inputShadow"
43 - id="inputInner--logisticsCode"
44 - resize="none"
45 - v-model="formData.logisticsCode"
46 - disabled
47 - clearable
48 - placeholder=""
49 - ></el-input>
50 - </Formitem>
51 - </el-col>
52 - <!-- 订单编号 -->
53 - <el-col :span="3">
54 - <Formitem label="订单编号" prop="orderNo">
55 - <el-input
56 - type="text"
57 - class="inputShadow"
58 - id="inputInner--orderNo"
59 - resize="none"
60 - v-model="formData.orderNo"
61 - clearable
62 - placeholder=""
63 - ></el-input>
64 - </Formitem>
65 - </el-col>
66 - <!-- 电商平台名称 -->
67 - <el-col :span="3">
68 - <Formitem label="物流运单编号" prop="logisticsNo">
69 - <el-input
70 - type="text"
71 - class="inputShadow"
72 - id="inputInner--logisticsNo"
73 - resize="none"
74 - v-model="formData.logisticsNo"
75 - clearable
76 - placeholder=""
77 - ></el-input>
78 - </Formitem>
79 - </el-col>
80 - <!-- 电商企业代码 -->
81 - <el-col :span="6">
82 - <Formitem label="申报地海关" prop="declareCustomsCode">
83 - <el-select
84 - type="text"
85 - id="inputInner--declareCustomsCode"
86 - v-model="formData.declareCustomsCode"
87 - filterable
88 - clearable
89 - placeholder=""
90 - >
91 <el-option 29 <el-option
92 - v-for="(item, index) in declareCustomsDataList" 30 + v-for="(item, index) in ebcDataList"
93 - :key="index" 31 + :key="index"
94 - :label="item.declarationPortCode" 32 + :label="item.ecomEntName"
95 - :value="item.declarationPortCode" 33 + :value="item.ecomEntCode"
96 - ></el-option> 34 + ></el-option>
97 - </el-select> 35 + </el-select>
98 - </Formitem> 36 + </Formitem>
99 - </el-col> 37 + </el-col>
100 - <!-- 电商企业 -->
101 - <el-col :span="3">
102 - <Formitem label="出口日期" prop="exportDate">
103 - <el-date-picker
104 - class="inputInner--createTime"
105 - id="inputInner--exportDate"
106 - v-model="formData.exportDate"
107 - type="date"
108 - format="yyyy-MM-dd"
109 - prefix-icon="none"
110 - value-format="yyyy-MM-dd"
111 - />
112 - </Formitem>
113 - </el-col>
114 -
115 - <!-- 商品金额 -->
116 <el-col :span="3"> 38 <el-col :span="3">
117 - <Formitem label="商品金额" prop="goodsValue"> 39 + <Formitem label="物流企业" prop="logisticsCode">
118 - <el-input 40 + <el-input
119 - type="number" 41 + type="text"
120 - class="inputShadow" 42 + class="inputShadow"
121 - id="inputInner--goodsValue" 43 + id="inputInner--logisticsCode"
122 - resize="none" 44 + resize="none"
123 - v-model="formData.goodsValue" 45 + v-model="formData.logisticsCode"
124 - disabled 46 + disabled
125 - clearable 47 + clearable
126 - placeholder="" 48 + placeholder=""
127 - ></el-input> 49 + ></el-input>
128 - </Formitem> 50 + </Formitem>
129 - </el-col> 51 + </el-col>
130 - </el-row> 52 + <!-- 订单编号 -->
131 - <el-row :gutter="5"> 53 + <el-col :span="3">
132 - <!-- 运杂费 --> 54 + <Formitem label="订单编号" prop="orderNo">
133 - <el-col :span="3"> 55 + <el-input
134 - <Formitem label="运杂费" prop="miscellaneousFreight"> 56 + type="text"
135 - <el-input 57 + class="inputShadow"
136 - type="number" 58 + id="inputInner--orderNo"
137 - class="inputShadow" 59 + resize="none"
138 - id="inputInner--miscellaneousFreight" 60 + v-model="formData.orderNo"
139 - resize="none" 61 + clearable
140 - v-model="formData.miscellaneousFreight" 62 + placeholder=""
141 - clearable 63 + ></el-input>
142 - placeholder="" 64 + </Formitem>
143 - ></el-input> 65 + </el-col>
144 - </Formitem> 66 + <!-- 电商平台名称 -->
145 - </el-col> 67 + <el-col :span="3">
146 - <!-- 币制 --> 68 + <Formitem label="物流运单编号" prop="logisticsNo">
147 - <el-col :span="3"> 69 + <el-input
148 - <Formitem label="币制" prop="currency"> 70 + type="text"
149 - <el-select 71 + class="inputShadow"
150 - type="text" 72 + id="inputInner--logisticsNo"
151 - id="inputInner--currency" 73 + resize="none"
152 - v-model="formData.currency" 74 + v-model="formData.logisticsNo"
153 - filterable 75 + clearable
154 - clearable 76 + placeholder=""
155 - placeholder="" 77 + ></el-input>
156 - > 78 + </Formitem>
157 - <el-option 79 + </el-col>
158 - v-for="(item, index) in $store.getters.dict.CURRENCY" 80 + <!-- 电商企业代码 -->
159 - :key="index" 81 + <el-col :span="6">
160 - :label="item.itemChineseName" 82 + <Formitem label="申报地海关" prop="declareCustomsCode">
161 - :value="item.itemValue" 83 + <el-select
162 - ></el-option> 84 + type="text"
163 - </el-select> 85 + id="inputInner--declareCustomsCode"
164 - </Formitem> 86 + v-model="formData.declareCustomsCode"
165 - </el-col> 87 + filterable
166 - <!-- 申报状态 --> 88 + clearable
167 - <el-col :span="6"> 89 + placeholder=""
168 - <Formitem label="主要货物信息" prop="mainGoodsInfo"> 90 + >
169 - <el-input 91 + <el-option
170 - type="text" 92 + v-for="(item, index) in declareCustomsDataList"
171 - class="inputShadow" 93 + :key="index"
172 - id="inputInner--mainGoodsInfo" 94 + :label="item.declarationPortCode"
173 - resize="none" 95 + :value="item.declarationPortCode"
174 - v-model="formData.mainGoodsInfo" 96 + ></el-option>
175 - clearable 97 + </el-select>
176 - placeholder="" 98 + </Formitem>
177 - ></el-input> 99 + </el-col>
178 - </Formitem> 100 + <!-- 电商企业 -->
179 - </el-col> 101 + <el-col :span="3">
180 - <!-- 申报类型 --> 102 + <Formitem label="出口日期" prop="exportDate">
181 - <el-col :span="3"> 103 + <el-date-picker
182 - <Formitem label="贸易方式" prop="appType"> 104 + class="inputInner--createTime"
183 - <el-input 105 + id="inputInner--exportDate"
184 - type="text" 106 + v-model="formData.exportDate"
185 - class="inputShadow" 107 + type="date"
186 - id="inputInner--appType" 108 + format="yyyy-MM-dd"
187 - resize="none" 109 + prefix-icon="none"
188 - v-model="formData.appType" 110 + value-format="yyyy-MM-dd"
189 - disabled
190 - clearable
191 - placeholder=""
192 - ></el-input>
193 - </Formitem>
194 - </el-col>
195 - <!-- 申报日期 -->
196 - <el-col :span="3">
197 - <Formitem label="航班号" prop="flightNumber">
198 - <el-input
199 - type="text"
200 - class="inputShadow"
201 - id="inputInner--flightNumber"
202 - resize="none"
203 - v-model="formData.flightNumber"
204 - clearable
205 - placeholder=""
206 - ></el-input>
207 - </Formitem>
208 - </el-col>
209 - <!-- 备注 -->
210 - <el-col :span="3">
211 - <Formitem label="提运单号" prop="billno">
212 - <el-input
213 - type="text"
214 - class="inputShadow"
215 - id="inputInner--billno"
216 - resize="none"
217 - v-model="formData.billno"
218 - clearable
219 - placeholder=""
220 - ></el-input>
221 - </Formitem>
222 - </el-col>
223 - <el-col :span="3">
224 - <Formitem label="总包号" prop="totalPackageNo">
225 - <el-input
226 - type="text"
227 - class="inputShadow"
228 - id="inputInner--totalPackageNo"
229 - resize="none"
230 - v-model="formData.totalPackageNo"
231 - clearable
232 - placeholder=""
233 - ></el-input>
234 - </Formitem>
235 - </el-col>
236 -
237 - </el-row>
238 - <el-row :gutter="5">
239 - <el-col :span="3">
240 - <Formitem label="监管场所代码" prop="regulatoryVenueCode">
241 - <el-input
242 - type="text"
243 - class="inputShadow"
244 - id="inputInner--regulatoryVenueCode"
245 - resize="none"
246 - v-model="formData.regulatoryVenueCode"
247 - clearable
248 - placeholder=""
249 - ></el-input>
250 - </Formitem>
251 - </el-col>
252 - <el-col :span="3">
253 - <Formitem label="许可证号" prop="licenseKey">
254 - <el-input
255 - type="text"
256 - class="inputShadow"
257 - id="inputInner--licenseKey"
258 - resize="none"
259 - v-model="formData.licenseKey"
260 - clearable
261 - placeholder=""
262 - ></el-input>
263 - </Formitem>
264 - </el-col>
265 - <el-col :span="3">
266 - <Formitem label="运抵国(地区)" prop="destinationCountryRegion">
267 - <el-select
268 - type="text"
269 - id="inputInner--destinationCountryRegion"
270 - v-model="formData.destinationCountryRegion"
271 - clearable
272 - filterable
273 - placeholder=""
274 - >
275 - <el-option
276 - v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
277 - :key="index"
278 - :label="item.itemChineseName"
279 - :value="item.itemCode"
280 - ></el-option>
281 - </el-select>
282 - </Formitem>
283 - </el-col>
284 - <el-col :span="3">
285 - <Formitem label="指运港代码" prop="portCode">
286 - <el-select
287 - type="text"
288 - id="inputInner--portCode"
289 - v-model="formData.portCode"
290 - clearable
291 - filterable
292 - placeholder=""
293 - >
294 - <el-option
295 - v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
296 - :key="index"
297 - :label="item.itemChineseName"
298 - :value="item.itemCode"
299 - ></el-option>
300 - </el-select>
301 - </Formitem>
302 - </el-col>
303 - <el-col :span="3">
304 - <Formitem label="运费" prop="freight">
305 - <el-input
306 - type="number"
307 - class="inputShadow"
308 - id="inputInner--freight"
309 - resize="none"
310 - v-model="formData.freight"
311 - :min="0"
312 - clearable
313 - placeholder=""
314 - ></el-input>
315 - </Formitem>
316 - </el-col>
317 - <el-col :span="3">
318 - <Formitem label="运费币制" prop="freightCurrency">
319 - <el-select
320 - type="text"
321 - id="inputInner--freightCurrency"
322 - v-model="formData.freightCurrency"
323 - clearable
324 - filterable
325 - placeholder=""
326 - >
327 - <el-option
328 - v-for="(item, index) in $store.getters.dict.CURRENCY"
329 - :key="index"
330 - :label="item.itemChineseName"
331 - :value="item.itemValue"
332 - ></el-option>
333 - </el-select>
334 - </Formitem>
335 - </el-col>
336 - <el-col :span="3">
337 - <Formitem label="运费标志" prop="freightTag">
338 - <el-select
339 - type="text"
340 - id="inputInner--freightTag"
341 - v-model="formData.freightTag"
342 - clearable
343 - placeholder=""
344 - >
345 - <el-option
346 - v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
347 - :key="index"
348 - :label="item.itemChineseName"
349 - :value="item.itemValue"
350 - ></el-option>
351 - </el-select>
352 - </Formitem>
353 - </el-col>
354 - <el-col :span="3">
355 - <Formitem label="保费" prop="insuredfee">
356 - <el-input
357 - type="number"
358 - class="inputShadow"
359 - id="inputInner--insuredfee"
360 - resize="none"
361 - v-model="formData.insuredfee"
362 - clearable
363 - placeholder=""
364 - ></el-input>
365 - </Formitem>
366 - </el-col>
367 -
368 - </el-row>
369 - <el-row :gutter="5">
370 - <el-col :span="3">
371 - <Formitem label="保费币制" prop="insuredfeeCurrency">
372 - <el-select
373 - type="text"
374 - id="inputInner--insuredfeeCurrency"
375 - v-model="formData.insuredfeeCurrency"
376 - clearable
377 - filterable
378 - placeholder=""
379 - >
380 - <el-option
381 - v-for="(item, index) in $store.getters.dict.CURRENCY"
382 - :key="index"
383 - :label="item.itemChineseName"
384 - :value="item.itemValue"
385 - ></el-option>
386 - </el-select>
387 - </Formitem>
388 - </el-col>
389 - <el-col :span="3">
390 - <Formitem label="保费标志" prop="insuredfeeTag">
391 - <el-select
392 - type="text"
393 - id="inputInner--insuredfeeTag"
394 - v-model="formData.insuredfeeTag"
395 - clearable
396 - placeholder=""
397 - >
398 - <el-option
399 - v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
400 - :key="index"
401 - :label="item.itemChineseName"
402 - :value="item.itemValue"
403 - ></el-option>
404 - </el-select>
405 - </Formitem>
406 - </el-col>
407 - <el-col :span="3">
408 - <Formitem label="包装种类代码" prop="packageTypeCode">
409 - <el-select
410 - type="text"
411 - id="inputInner--packageTypeCode"
412 - v-model="formData.packageTypeCode"
413 - clearable
414 - placeholder=""
415 - >
416 - <el-option
417 - v-for="(item, index) in $store.getters.dict.PACKAGE_TYPE_CODE"
418 - :key="index"
419 - :label="item.itemChineseName"
420 - :value="item.itemCode"
421 - ></el-option>
422 - </el-select>
423 - </Formitem>
424 - </el-col>
425 - <el-col :span="3">
426 - <Formitem label="件数" prop="packNo">
427 - <el-input
428 - class="inputShadow"
429 - id="inputInner--packNo"
430 - resize="none"
431 - maxlength="9"
432 - v-model.number="formData.packNo"
433 - clearable
434 - placeholder=""
435 - ></el-input>
436 - </Formitem>
437 - </el-col>
438 - <el-col :span="3">
439 - <Formitem label="毛重(公斤)" prop="weight">
440 - <el-input
441 - type="number"
442 - class="inputShadow"
443 - id="inputInner--weight"
444 - resize="none"
445 - v-model="formData.weight"
446 - clearable
447 - placeholder=""
448 - ></el-input>
449 - </Formitem>
450 - </el-col>
451 - <el-col :span="3">
452 - <Formitem label="净重(公斤)" prop="netWeight">
453 - <el-input
454 - type="number"
455 - class="inputShadow"
456 - id="inputInner--netWeight"
457 - resize="none"
458 - v-model="formData.netWeight"
459 - disabled
460 - clearable
461 - placeholder=""
462 - ></el-input>
463 - </Formitem>
464 - </el-col>
465 - <el-col :span="6">
466 - <Formitem label="备注" prop="remark">
467 - <el-input
468 - type="text"
469 - class="inputShadow"
470 - id="inputInner--remark"
471 - resize="none"
472 - v-model="formData.remark"
473 - clearable
474 - placeholder=""
475 - ></el-input>
476 - </Formitem>
477 - </el-col>
478 - </el-row>
479 - </el-form>
480 - </section>
481 - <div class="fold-unfold">
482 - <img v-if="isFold" src="@/assets/images/fold.png" @click="()=>isFold = false" alt="">
483 - <img v-if="!isFold" src="@/assets/images/unfold.png" @click="()=>isFold = true" alt="">
484 - </div>
485 - <div class="entryTitle" style="margin-top: 10px">商品明细</div>
486 - <section style="position:relative">
487 - <Table
488 - class="fedexDetialTable fedexSreachTable editableTable"
489 - ref="entryTable"
490 - :pagination="false"
491 - :data="detailData"
492 - :headerData="detialHeaderData"
493 - :border="true"
494 - :order="true"
495 - :noWidth="0"
496 - :rowKey="'gnum'"
497 - :expandRowKeys="expandRowKeys"
498 - >
499 - <template slot="rowDataEdit" slot-scope="props">
500 - <RowDataEditForm
501 - ref="rowEditForm"
502 - :rowDatas="props"
503 - @cancelEditRowData="cancelEditRowData"
504 - @rowFormDataSave="rowFormDataSave"
505 - @updateLastItemValid="handleUpdateLastItemValid"
506 /> 111 />
112 + </Formitem>
113 + </el-col>
114 +
115 + <!-- 商品金额 -->
116 + <el-col :span="3">
117 + <Formitem label="商品金额" prop="goodsValue">
118 + <el-input
119 + type="number"
120 + class="inputShadow"
121 + id="inputInner--goodsValue"
122 + resize="none"
123 + v-model="formData.goodsValue"
124 + disabled
125 + clearable
126 + placeholder=""
127 + ></el-input>
128 + </Formitem>
129 + </el-col>
130 + </el-row>
131 + <el-row :gutter="5">
132 + <!-- 运杂费 -->
133 + <el-col :span="3">
134 + <Formitem label="运杂费" prop="miscellaneousFreight">
135 + <el-input
136 + type="number"
137 + class="inputShadow"
138 + id="inputInner--miscellaneousFreight"
139 + resize="none"
140 + v-model="formData.miscellaneousFreight"
141 + clearable
142 + placeholder=""
143 + ></el-input>
144 + </Formitem>
145 + </el-col>
146 + <!-- 币制 -->
147 + <el-col :span="3">
148 + <Formitem label="币制" prop="currency">
149 + <el-select
150 + type="text"
151 + id="inputInner--currency"
152 + v-model="formData.currency"
153 + filterable
154 + clearable
155 + placeholder=""
156 + >
157 + <el-option
158 + v-for="(item, index) in $store.getters.dict.CURRENCY"
159 + :key="index"
160 + :label="item.itemChineseName"
161 + :value="item.itemValue"
162 + ></el-option>
163 + </el-select>
164 + </Formitem>
165 + </el-col>
166 + <!-- 申报状态 -->
167 + <el-col :span="6">
168 + <Formitem label="主要货物信息" prop="mainGoodsInfo">
169 + <el-input
170 + type="text"
171 + class="inputShadow"
172 + id="inputInner--mainGoodsInfo"
173 + resize="none"
174 + v-model="formData.mainGoodsInfo"
175 + clearable
176 + placeholder=""
177 + ></el-input>
178 + </Formitem>
179 + </el-col>
180 + <!-- 申报类型 -->
181 + <el-col :span="3">
182 + <Formitem label="贸易方式" prop="appType">
183 + <el-input
184 + type="text"
185 + class="inputShadow"
186 + id="inputInner--appType"
187 + resize="none"
188 + v-model="formData.appType"
189 + disabled
190 + clearable
191 + placeholder=""
192 + ></el-input>
193 + </Formitem>
194 + </el-col>
195 + <!-- 申报日期 -->
196 + <el-col :span="3">
197 + <Formitem label="航班号" prop="flightNumber">
198 + <el-input
199 + type="text"
200 + class="inputShadow"
201 + id="inputInner--flightNumber"
202 + resize="none"
203 + v-model="formData.flightNumber"
204 + clearable
205 + placeholder=""
206 + ></el-input>
207 + </Formitem>
208 + </el-col>
209 + <!-- 备注 -->
210 + <el-col :span="3">
211 + <Formitem label="提运单号" prop="billno">
212 + <el-input
213 + type="text"
214 + class="inputShadow"
215 + id="inputInner--billno"
216 + resize="none"
217 + v-model="formData.billno"
218 + clearable
219 + placeholder=""
220 + ></el-input>
221 + </Formitem>
222 + </el-col>
223 + <el-col :span="3">
224 + <Formitem label="总包号" prop="totalPackageNo">
225 + <el-input
226 + type="text"
227 + class="inputShadow"
228 + id="inputInner--totalPackageNo"
229 + resize="none"
230 + v-model="formData.totalPackageNo"
231 + clearable
232 + placeholder=""
233 + ></el-input>
234 + </Formitem>
235 + </el-col>
236 + </el-row>
237 + <el-row :gutter="5">
238 + <el-col :span="3">
239 + <Formitem label="监管场所代码" prop="regulatoryVenueCode">
240 + <el-input
241 + type="text"
242 + class="inputShadow"
243 + id="inputInner--regulatoryVenueCode"
244 + resize="none"
245 + v-model="formData.regulatoryVenueCode"
246 + clearable
247 + placeholder=""
248 + ></el-input>
249 + </Formitem>
250 + </el-col>
251 + <el-col :span="3">
252 + <Formitem label="许可证号" prop="licenseKey">
253 + <el-input
254 + type="text"
255 + class="inputShadow"
256 + id="inputInner--licenseKey"
257 + resize="none"
258 + v-model="formData.licenseKey"
259 + clearable
260 + placeholder=""
261 + ></el-input>
262 + </Formitem>
263 + </el-col>
264 + <el-col :span="3">
265 + <Formitem label="运抵国(地区)" prop="destinationCountryRegion">
266 + <el-select
267 + type="text"
268 + id="inputInner--destinationCountryRegion"
269 + v-model="formData.destinationCountryRegion"
270 + clearable
271 + filterable
272 + placeholder=""
273 + >
274 + <el-option
275 + v-for="(item, index) in $store.getters.dict
276 + .COUNTRY_REGION_CODE"
277 + :key="index"
278 + :label="item.itemChineseName"
279 + :value="item.itemCode"
280 + ></el-option>
281 + </el-select>
282 + </Formitem>
283 + </el-col>
284 + <el-col :span="3">
285 + <Formitem label="指运港代码" prop="portCode">
286 + <el-select
287 + type="text"
288 + id="inputInner--portCode"
289 + v-model="formData.portCode"
290 + clearable
291 + filterable
292 + placeholder=""
293 + >
294 + <el-option
295 + v-for="(item, index) in $store.getters.dict
296 + .COUNTRY_REGION_CODE"
297 + :key="index"
298 + :label="item.itemChineseName"
299 + :value="item.itemCode"
300 + ></el-option>
301 + </el-select>
302 + </Formitem>
303 + </el-col>
304 + <el-col :span="3">
305 + <Formitem label="运费" prop="freight">
306 + <el-input
307 + type="number"
308 + class="inputShadow"
309 + id="inputInner--freight"
310 + resize="none"
311 + v-model="formData.freight"
312 + :min="0"
313 + clearable
314 + placeholder=""
315 + ></el-input>
316 + </Formitem>
317 + </el-col>
318 + <el-col :span="3">
319 + <Formitem label="运费币制" prop="freightCurrency">
320 + <el-select
321 + type="text"
322 + id="inputInner--freightCurrency"
323 + v-model="formData.freightCurrency"
324 + clearable
325 + filterable
326 + placeholder=""
327 + >
328 + <el-option
329 + v-for="(item, index) in $store.getters.dict.CURRENCY"
330 + :key="index"
331 + :label="item.itemChineseName"
332 + :value="item.itemValue"
333 + ></el-option>
334 + </el-select>
335 + </Formitem>
336 + </el-col>
337 + <el-col :span="3">
338 + <Formitem label="运费标志" prop="freightTag">
339 + <el-select
340 + type="text"
341 + id="inputInner--freightTag"
342 + v-model="formData.freightTag"
343 + clearable
344 + placeholder=""
345 + >
346 + <el-option
347 + v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
348 + :key="index"
349 + :label="item.itemChineseName"
350 + :value="item.itemValue"
351 + ></el-option>
352 + </el-select>
353 + </Formitem>
354 + </el-col>
355 + <el-col :span="3">
356 + <Formitem label="保费" prop="insuredfee">
357 + <el-input
358 + type="number"
359 + class="inputShadow"
360 + id="inputInner--insuredfee"
361 + resize="none"
362 + v-model="formData.insuredfee"
363 + clearable
364 + placeholder=""
365 + ></el-input>
366 + </Formitem>
367 + </el-col>
368 + </el-row>
369 + <el-row :gutter="5">
370 + <el-col :span="3">
371 + <Formitem label="保费币制" prop="insuredfeeCurrency">
372 + <el-select
373 + type="text"
374 + id="inputInner--insuredfeeCurrency"
375 + v-model="formData.insuredfeeCurrency"
376 + clearable
377 + filterable
378 + placeholder=""
379 + >
380 + <el-option
381 + v-for="(item, index) in $store.getters.dict.CURRENCY"
382 + :key="index"
383 + :label="item.itemChineseName"
384 + :value="item.itemValue"
385 + ></el-option>
386 + </el-select>
387 + </Formitem>
388 + </el-col>
389 + <el-col :span="3">
390 + <Formitem label="保费标志" prop="insuredfeeTag">
391 + <el-select
392 + type="text"
393 + id="inputInner--insuredfeeTag"
394 + v-model="formData.insuredfeeTag"
395 + clearable
396 + placeholder=""
397 + >
398 + <el-option
399 + v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
400 + :key="index"
401 + :label="item.itemChineseName"
402 + :value="item.itemValue"
403 + ></el-option>
404 + </el-select>
405 + </Formitem>
406 + </el-col>
407 + <el-col :span="3">
408 + <Formitem label="包装种类代码" prop="packageTypeCode">
409 + <el-select
410 + type="text"
411 + id="inputInner--packageTypeCode"
412 + v-model="formData.packageTypeCode"
413 + clearable
414 + placeholder=""
415 + >
416 + <el-option
417 + v-for="(item, index) in $store.getters.dict.PACKAGE_TYPE_CODE"
418 + :key="index"
419 + :label="item.itemChineseName"
420 + :value="item.itemCode"
421 + ></el-option>
422 + </el-select>
423 + </Formitem>
424 + </el-col>
425 + <el-col :span="3">
426 + <Formitem label="件数" prop="packNo">
427 + <el-input
428 + class="inputShadow"
429 + id="inputInner--packNo"
430 + resize="none"
431 + maxlength="9"
432 + v-model.number="formData.packNo"
433 + clearable
434 + placeholder=""
435 + ></el-input>
436 + </Formitem>
437 + </el-col>
438 + <el-col :span="3">
439 + <Formitem label="毛重(公斤)" prop="weight">
440 + <el-input
441 + type="number"
442 + class="inputShadow"
443 + id="inputInner--weight"
444 + resize="none"
445 + v-model="formData.weight"
446 + clearable
447 + placeholder=""
448 + ></el-input>
449 + </Formitem>
450 + </el-col>
451 + <el-col :span="3">
452 + <Formitem label="净重(公斤)" prop="netWeight">
453 + <el-input
454 + type="number"
455 + class="inputShadow"
456 + id="inputInner--netWeight"
457 + resize="none"
458 + v-model="formData.netWeight"
459 + disabled
460 + clearable
461 + placeholder=""
462 + ></el-input>
463 + </Formitem>
464 + </el-col>
465 + <el-col :span="6">
466 + <Formitem label="备注" prop="remark">
467 + <el-input
468 + type="text"
469 + class="inputShadow"
470 + id="inputInner--remark"
471 + resize="none"
472 + v-model="formData.remark"
473 + clearable
474 + placeholder=""
475 + ></el-input>
476 + </Formitem>
477 + </el-col>
478 + </el-row>
479 + </el-form>
480 + </section>
481 + <div class="fold-unfold">
482 + <img
483 + v-if="isFold"
484 + src="@/assets/images/fold.png"
485 + @click="() => (isFold = false)"
486 + alt=""
487 + />
488 + <img
489 + v-if="!isFold"
490 + src="@/assets/images/unfold.png"
491 + @click="() => (isFold = true)"
492 + alt=""
493 + />
494 + </div>
495 + <div class="entryTitle" style="margin-top: 10px">商品明细</div>
496 + <section style="position: relative">
497 + <Table
498 + class="fedexDetialTable fedexSreachTable editableTable"
499 + ref="entryTable"
500 + :pagination="false"
501 + :data="detailData"
502 + :headerData="detialHeaderData"
503 + :border="true"
504 + :order="true"
505 + :noWidth="0"
506 + :rowKey="'gnum'"
507 + :expandRowKeys="expandRowKeys"
508 + >
509 + <template slot="rowDataEdit" slot-scope="props">
510 + <RowDataEditForm
511 + ref="rowEditForm"
512 + :rowDatas="props"
513 + @cancelEditRowData="cancelEditRowData"
514 + @rowFormDataSave="rowFormDataSave"
515 + @updateLastItemValid="handleUpdateLastItemValid"
516 + />
517 + </template>
518 + <template v-slot:destinationCountryRegionCode="scope">
519 + <span>{{
520 + mapDicDatas(
521 + $store.getters.dict.COUNTRY_REGION_CODE,
522 + scope.row.destinationCountryRegionCode
523 + )
524 + }}</span>
525 + </template>
526 + <template v-slot:unit="scope">
527 + <span>{{
528 + mapDicDatas($store.getters.dict.MEASUREMENT_UNIT, scope.row.unit)
529 + }}</span>
530 + </template>
531 + <template v-slot:unitLegalFirstCode="scope">
532 + <span>{{
533 + mapDicDatas(
534 + $store.getters.dict.MEASUREMENT_UNIT,
535 + scope.row.unitLegalFirstCode
536 + )
537 + }}</span>
538 + </template>
539 + <template v-slot:currency="scope">
540 + <span>{{
541 + mapCurrencyDatas($store.getters.dict.CURRENCY, scope.row.currency)
542 + }}</span>
543 + </template>
544 + <template slot="optionColumn">
545 + <el-table-column align="left" label="操作" width="100">
546 + <template slot-scope="scope">
547 + <el-button type="text" @click="updateRow(scope.row)">
548 + 修改
549 + </el-button>
550 + <el-button type="text" @click="deleteRow(scope.row)">
551 + 删除
552 + </el-button>
507 </template> 553 </template>
508 - <template v-slot:destinationCountryRegionCode="scope"> 554 + </el-table-column>
509 - <span>{{ mapDicDatas($store.getters.dict.COUNTRY_REGION_CODE, scope.row.destinationCountryRegionCode) }}</span> 555 + </template>
510 - </template> 556 + </Table>
511 - <template v-slot:unit="scope"> 557 + </section>
512 - <span>{{ mapDicDatas($store.getters.dict.MEASUREMENT_UNIT, scope.row.unit) }}</span> 558 + <div class="addNewItem">
513 - </template> 559 + <i class="el-icon-circle-plus-outline" @click="addNewItem"></i>
514 - <template v-slot:currency="scope"> 560 + <span @click="addNewItem">添加新商品</span>
515 - <span>{{ mapCurrencyDatas($store.getters.dict.CURRENCY, scope.row.currency) }}</span> 561 + </div>
516 - </template> 562 + <div style="margin-top: 20px; text-align: center">
517 - <template slot="optionColumn"> 563 + <el-button
518 - <el-table-column align="left" label="操作" width="100">
519 - <template slot-scope="scope">
520 - <el-button type="text" @click="updateRow(scope.row)"> 修改 </el-button>
521 - <el-button type="text" @click="deleteRow(scope.row)"> 删除 </el-button>
522 - </template>
523 - </el-table-column>
524 - </template>
525 - </Table>
526 - </section>
527 - <div class="addNewItem">
528 - <i class="el-icon-circle-plus-outline" @click="addNewItem"></i>
529 - <span @click="addNewItem">添加新商品</span>
530 - </div>
531 - <div style="margin-top: 20px; text-align: center">
532 - <el-button
533 class="entrySaveButton entrySaveButton-background revokeSubmitBtn" 564 class="entrySaveButton entrySaveButton-background revokeSubmitBtn"
534 type="primary" 565 type="primary"
535 @click="submitEditedReportDatas" 566 @click="submitEditedReportDatas"
536 - >保存</el-button> 567 + >保存</el-button
537 - <el-button 568 + >
538 - class="entrySaveButton" 569 + <el-button class="entrySaveButton" @click="back">返回</el-button>
539 - @click="back"
540 - >返回</el-button>
541 - </div>
542 </div> 570 </div>
543 - </template> 571 + </div>
572 +</template>
544 573
545 - <script> 574 +<script>
546 - import RowDataEditForm from "./RowDataEditForm.vue"; 575 +import RowDataEditForm from "./RowDataEditForm.vue";
547 - import { getCustomerList, getPortList, getDeclareData, updateDeclareData } from "@/api/declareData-api.js"; 576 +import {
548 - import { getDictData } from '@/api/system/dict-api.js' 577 + getCustomerList,
549 - import item from "@/layout/components/Sidebar/Item.vue"; 578 + getPortList,
550 - export default { 579 + getDeclareData,
551 - name: "", 580 + updateDeclareData,
552 - components: { RowDataEditForm }, 581 +} from "@/api/declareData-api.js";
553 - data() { 582 +import { getDictData } from "@/api/system/dict-api.js";
554 - var checkNegativeNum = (rule, value, callback) => { 583 +import item from "@/layout/components/Sidebar/Item.vue";
555 - if (value < 0) { 584 +export default {
556 - callback(new Error('数值不能为负')); 585 + name: "",
557 - } else { 586 + components: { RowDataEditForm },
558 - callback(); 587 + data() {
559 - } 588 + var checkNegativeNum = (rule, value, callback) => {
560 - }; 589 + if (value < 0) {
561 - var checkInsuredFee = (rule, value, callback) => { 590 + callback(new Error("数值不能为负"));
562 - if (value < 0) { 591 + } else {
563 - callback(new Error('数值不能为负')); 592 + callback();
593 + }
594 + };
595 + var checkInsuredFee = (rule, value, callback) => {
596 + if (value < 0) {
597 + callback(new Error("数值不能为负"));
598 + }
599 + if (value !== "" && value !== undefined) {
600 + const regex = /^\d{0,14}(\.\d{1,5})?$/;
601 + if (!regex.test(value)) {
602 + callback(new Error("整数最多14位,小数最多5位"));
603 + } else {
604 + callback();
564 } 605 }
565 - if (value !== '' && value !== undefined) { 606 + } else {
566 - const regex = /^\d{0,14}(\.\d{1,5})?$/; 607 + callback();
567 - if (!regex.test(value)) { 608 + }
568 - callback(new Error('整数最多14位,小数最多5位')); 609 + };
569 - } else { 610 + var checkPackNo = (rule, value, callback) => {
570 - callback(); 611 + if (!Number.isInteger(value)) {
571 - } 612 + callback(new Error("请输入整数值"));
613 + } else {
614 + if (value < 0) {
615 + callback(new Error("数值不能为负"));
572 } else { 616 } else {
573 callback(); 617 callback();
574 } 618 }
575 - }; 619 + }
576 - var checkPackNo = (rule, value, callback) => { 620 + };
577 - if (!Number.isInteger(value)) { 621 + return {
578 - callback(new Error('请输入整数值')); 622 + ebcDataList: [],
579 - } else { 623 + declareCustomsDataList: [],
580 - if (value < 0) { 624 + declareId: null,
581 - callback(new Error('数值不能为负')); 625 + formData: {
582 - } else { 626 + appType: 9610,
583 - callback(); 627 + },
584 - } 628 + formRules: {
585 - } 629 + ebccode: [
586 - }; 630 + { required: true, message: "请选择电商企业", trigger: "change" },
587 - return { 631 + ],
588 - ebcDataList:[], 632 + logisticsCode: [
589 - declareCustomsDataList:[], 633 + { required: true, message: "请选择物流企业", trigger: "change" },
590 - declareId: null, 634 + ],
591 - formData: { 635 + orderNo: [
592 - appType:9610 636 + { required: true, message: "请输入订单编号", trigger: "blur" },
637 + { max: 60, message: "长度不能超过60个字符", trigger: "blur" },
638 + ],
639 + logisticsNo: [
640 + { required: true, message: "请输入物流运单编号", trigger: "blur" },
641 + { max: 80, message: "长度不能超过80个字符", trigger: "blur" },
642 + ],
643 + declareCustomsCode: [
644 + { required: true, message: "请选择申报地海关", trigger: "change" },
645 + ],
646 + exportDate: [{ message: "请选择出口日期", trigger: "change" }],
647 + goodsValue: [
648 + { required: true, message: "请输入商品金额", trigger: "blur" },
649 + ],
650 + miscellaneousFreight: [
651 + { validator: checkNegativeNum, trigger: "blur" },
652 + ],
653 + currency: [
654 + { required: true, message: "请选择币制", trigger: "change" },
655 + ],
656 + mainGoodsInfo: [
657 + { required: true, message: "请输入主要物品信息", trigger: "blur" },
658 + { max: 200, message: "长度不能超过200个字符", trigger: "blur" },
659 + ],
660 + flightNumber: [
661 + { required: true, message: "请输入航班号", trigger: "blur" },
662 + { max: 32, message: "长度不能超过32个字符", trigger: "blur" },
663 + ],
664 + billno: [
665 + { required: true, message: "请输入提运单号", trigger: "blur" },
666 + { max: 37, message: "长度不能超过37个字符", trigger: "blur" },
667 + ],
668 + totalPackageNo: [
669 + { max: 37, message: "长度不能超过37个字符", trigger: "blur" },
670 + ],
671 + regulatoryVenueCode: [
672 + { max: 10, message: "长度不能超过10个字符", trigger: "blur" },
673 + ],
674 + licenseKey: [
675 + { max: 19, message: "长度不能超过19个字符", trigger: "blur" },
676 + ],
677 + destinationCountryRegion: [
678 + { required: true, message: "请选择运抵国", trigger: "change" },
679 + ],
680 + portCode: [
681 + { required: true, message: "请选择运指运港代码", trigger: "change" },
682 + ],
683 + freight: [
684 + { required: true, message: "请输入运费", trigger: "blur" },
685 + { validator: checkNegativeNum, trigger: "blur" },
686 + ],
687 + freightCurrency: [
688 + { required: true, message: "请选择运费币制", trigger: "change" },
689 + ],
690 + freightTag: [
691 + { required: true, message: "请选择运费标志", trigger: "change" },
692 + ],
693 + insuredfee: [
694 + { required: true, message: "请输入保费", trigger: "blur" },
695 + { validator: checkInsuredFee, trigger: "blur" },
696 + ],
697 + insuredfeeCurrency: [
698 + { required: true, message: "请输入保费币制", trigger: "blur" },
699 + ],
700 + insuredfeeTag: [
701 + { required: true, message: "请输选择保费标志", trigger: "change" },
702 + ],
703 + packageTypeCode: [
704 + { required: true, message: "请选择包装种类代码", trigger: "change" },
705 + ],
706 + packNo: [
707 + { required: true, message: "请输入件数", trigger: "blur" },
708 + { validator: checkPackNo, trigger: "blur" },
709 + ],
710 + weight: [
711 + { required: true, message: "请输入毛重", trigger: "blur" },
712 + { validator: checkNegativeNum, trigger: "blur" },
713 + ],
714 + netWeight: [{ required: true, message: "请输入净重", trigger: "blur" }],
715 + remark: [
716 + { max: 1000, message: "长度不能超过1000个字符", trigger: "blur" },
717 + ],
718 + },
719 + detailData: [],
720 + detialHeaderData: [
721 + {
722 + value: "rowDataEdit",
723 + expand: true,
724 + width: 0,
593 }, 725 },
594 - formRules:{ 726 + {
595 - ebccode: [ 727 + name: "企业商品货号",
596 - { required: true, message: '请选择电商企业', trigger: 'change' }, 728 + value: "enterpriseProductCode",
597 - ], 729 + width: "",
598 - logisticsCode: [ 730 + align: "left",
599 - { required: true, message: '请选择物流企业', trigger: 'change' },
600 - ],
601 - orderNo: [
602 - { required: true, message: '请输入订单编号', trigger: 'blur' },
603 - { max: 60, message: '长度不能超过60个字符', trigger: 'blur' }
604 - ],
605 - logisticsNo: [
606 - { required: true, message: '请输入物流运单编号', trigger: 'blur' },
607 - { max: 80, message: '长度不能超过80个字符', trigger: 'blur' }
608 - ],
609 - declareCustomsCode: [
610 - { required: true, message: '请选择申报地海关', trigger: 'change' }
611 - ],
612 - exportDate: [
613 - { message: '请选择出口日期', trigger: 'change' }
614 - ],
615 - goodsValue: [
616 - { required: true, message: '请输入商品金额', trigger: 'blur' }
617 - ],
618 - miscellaneousFreight:[
619 - { validator: checkNegativeNum, trigger: 'blur' }
620 - ],
621 - currency: [
622 - { required: true, message: '请选择币制', trigger: 'change' }
623 - ],
624 - mainGoodsInfo: [
625 - { required: true, message: '请输入主要物品信息', trigger: 'blur' },
626 - { max: 200, message: '长度不能超过200个字符', trigger: 'blur' }
627 - ],
628 - flightNumber: [
629 - { required: true, message: '请输入航班号', trigger: 'blur' },
630 - { max: 32, message: '长度不能超过32个字符', trigger: 'blur' }
631 - ],
632 - billno: [
633 - { required: true, message: '请输入提运单号', trigger: 'blur' },
634 - { max: 37, message: '长度不能超过37个字符', trigger: 'blur' }
635 - ],
636 - totalPackageNo: [
637 - { max: 37, message: '长度不能超过37个字符', trigger: 'blur' }
638 - ],
639 - regulatoryVenueCode: [
640 - { max: 10, message: '长度不能超过10个字符', trigger: 'blur' }
641 - ],
642 - licenseKey: [
643 - { max: 19, message: '长度不能超过19个字符', trigger: 'blur' }
644 - ],
645 - destinationCountryRegion: [
646 - { required: true, message: '请选择运抵国', trigger: 'change' }
647 - ],
648 - portCode: [
649 - { required: true, message: '请选择运指运港代码', trigger: 'change' }
650 - ],
651 - freight: [
652 - { required: true, message: '请输入运费', trigger: 'blur' },
653 - { validator: checkNegativeNum, trigger: 'blur' }
654 - ],
655 - freightCurrency: [
656 - { required: true, message: '请选择运费币制', trigger: 'change' }
657 - ],
658 - freightTag: [
659 - { required: true, message: '请选择运费标志', trigger: 'change' }
660 - ],
661 - insuredfee: [
662 - { required: true, message: '请输入保费', trigger: 'blur' },
663 - { validator: checkInsuredFee, trigger: 'blur' }
664 - ],
665 - insuredfeeCurrency: [
666 - { required: true, message: '请输入保费币制', trigger: 'blur' }
667 - ],
668 - insuredfeeTag: [
669 - { required: true, message: '请输选择保费标志', trigger: 'change' }
670 - ],
671 - packageTypeCode: [
672 - { required: true, message: '请选择包装种类代码', trigger: 'change' }
673 - ],
674 - packNo: [
675 - { required: true, message: '请输入件数', trigger: 'blur' },
676 - { validator: checkPackNo, trigger: 'blur' }
677 - ],
678 - weight: [
679 - { required: true, message: '请输入毛重', trigger: 'blur' },
680 - { validator: checkNegativeNum, trigger: 'blur' }
681 - ],
682 - netWeight: [
683 - { required: true, message: '请输入净重', trigger: 'blur' }
684 - ],
685 - remark: [
686 - { max: 1000, message: '长度不能超过1000个字符', trigger: 'blur' }
687 - ]
688 }, 731 },
689 - detailData: [],
690 - detialHeaderData: [
691 { 732 {
692 - value: "rowDataEdit", 733 + name: "企业商品名称",
693 - expand:true, 734 + value: "enterpriseProductName",
694 - width:0, 735 + width: "",
695 - }, 736 + align: "left",
696 - {
697 - name: "企业商品货号",
698 - value: "enterpriseProductCode",
699 - width: "",
700 - align: "left",
701 - },
702 - {
703 - name: "企业商品名称",
704 - value: "enterpriseProductName",
705 - width: "",
706 - align: "left",
707 - },
708 - {
709 - name: "企业商品描述",
710 - value: "enterpriseProductDescribe",
711 - width: "",
712 - align: "left",
713 - },
714 - {
715 - name: "商品名称",
716 - value: "productName",
717 - width: "",
718 - align: "left",
719 - },
720 - {
721 - name: "商品编码",
722 - value: "productCode",
723 - width: "",
724 - align: "left",
725 -
726 - },
727 - {
728 - name: "规格型号",
729 - value: "model",
730 - width: "",
731 - align: "left",
732 -
733 - },
734 - {
735 - name: "账册备案料号",
736 - value: "accountBookMaterialNumber",
737 - width: "",
738 - align: "left",
739 - },
740 - {
741 - name: "条形码",
742 - value: "barCode",
743 - width: "",
744 - align: "left",
745 - },
746 - {
747 - name: "目的国(地区)代码",
748 - value: "destinationCountryRegionCode",
749 - width: "",
750 - align: "left",
751 - slot:true
752 - },
753 - {
754 - name: "计量单位",
755 - value: "unit",
756 - width: "",
757 - align: "left",
758 - slot:true
759 - },
760 - {
761 - name: "数量",
762 - value: "qty",
763 - width: "",
764 - align: "left",
765 - },
766 - {
767 - name: "法定数量",
768 - value: "legalQty",
769 - width: "",
770 - align: "left",
771 - },
772 - {
773 - name: "币制",
774 - value: "currency",
775 - width: "",
776 - align: "left",
777 - slot:true
778 - },
779 - {
780 - name: "单价",
781 - value: "price",
782 - width: "",
783 - align: "left",
784 - },
785 - {
786 - name: "总价",
787 - value: "totalPrice",
788 - width: "",
789 - align: "left",
790 - },
791 - {
792 - name: "净重",
793 - value: "netWeight",
794 - width: "",
795 - align: "left",
796 - },
797 - {
798 - name: "备注",
799 - value: "remark",
800 - width: "",
801 - align: "left",
802 - },
803 - ],
804 - loadings: {
805 - entryLoading: false,
806 }, 737 },
807 - logtableType: true, 738 + {
808 - expandRowKeys:[], 739 + name: "企业商品描述",
809 - isFold: false, 740 + value: "enterpriseProductDescribe",
810 - // 用于保存原始数据 741 + width: "",
811 - originalDetailData: {}, 742 + align: "left",
812 - // 当前编辑行的 gnum 743 + },
813 - currentRowKey: null, 744 + {
814 - lastItemValid: true, // 默认值为 true,表示没有新增项或上一次新增项通过了校验 745 + name: "商品名称",
815 - }; 746 + value: "productName",
816 - }, 747 + width: "",
817 - created() { 748 + align: "left",
818 - if (this.$route.params.data) { 749 + },
819 - this.declareId = this.$route.params.data.declareId; 750 + {
820 - this.queryDeclareData(this.declareId) 751 + name: "商品编码",
821 - this.queryCustomerList() 752 + value: "productCode",
822 - this.queryPortList() 753 + width: "",
754 + align: "left",
755 + },
756 + {
757 + name: "规格型号",
758 + value: "model",
759 + width: "",
760 + align: "left",
761 + },
762 + {
763 + name: "账册备案料号",
764 + value: "accountBookMaterialNumber",
765 + width: "",
766 + align: "left",
767 + },
768 + {
769 + name: "条形码",
770 + value: "barCode",
771 + width: "",
772 + align: "left",
773 + },
774 + {
775 + name: "目的国(地区)代码",
776 + value: "destinationCountryRegionCode",
777 + width: "",
778 + align: "left",
779 + slot: true,
780 + },
781 + {
782 + name: "计量单位",
783 + value: "unit",
784 + width: "",
785 + align: "left",
786 + slot: true,
787 + },
788 + {
789 + name: "数量",
790 + value: "qty",
791 + width: "",
792 + align: "left",
793 + },
794 + {
795 + name: "法定数量",
796 + value: "legalQty",
797 + width: "",
798 + align: "left",
799 + },
800 + {
801 + name: "法定计量单位",
802 + value: "unitLegalFirstCode",
803 + width: "",
804 + align: "left",
805 + slot: true,
806 + },
807 + {
808 + name: "币制",
809 + value: "currency",
810 + width: "",
811 + align: "left",
812 + slot: true,
813 + },
814 + {
815 + name: "单价",
816 + value: "price",
817 + width: "",
818 + align: "left",
819 + },
820 + {
821 + name: "总价",
822 + value: "totalPrice",
823 + width: "",
824 + align: "left",
825 + },
826 + {
827 + name: "净重",
828 + value: "netWeight",
829 + width: "",
830 + align: "left",
831 + },
832 + {
833 + name: "备注",
834 + value: "remark",
835 + width: "",
836 + align: "left",
837 + },
838 + ],
839 + loadings: {
840 + entryLoading: false,
841 + },
842 + logtableType: true,
843 + expandRowKeys: [],
844 + isFold: false,
845 + // 用于保存原始数据
846 + originalDetailData: {},
847 + // 当前编辑行的 gnum
848 + currentRowKey: null,
849 + lastItemValid: true, // 默认值为 true,表示没有新增项或上一次新增项通过了校验
850 + };
851 + },
852 + created() {
853 + if (this.$route.params.data) {
854 + this.declareId = this.$route.params.data.declareId;
855 + this.queryDeclareData(this.declareId);
856 + this.queryCustomerList();
857 + this.queryPortList();
858 + } else {
859 + this.back();
860 + }
861 + },
862 + beforeRouteLeave(to, from, next) {
863 + if (to.name === "ReportingData") {
864 + // 设置一个标志表示需要刷新数据
865 + to.meta.needsRefresh = true;
866 + }
867 + next();
868 + },
869 + methods: {
870 + mapDicDatas(dicArr, code) {
871 + if (code != "" && code) {
872 + return dicArr.filter((item) => item.itemCode == code)[0]
873 + .itemChineseName;
823 } else { 874 } else {
824 - this.back(); 875 + return "";
825 } 876 }
826 }, 877 },
827 - beforeRouteLeave(to, from, next) { 878 + mapCurrencyDatas(dicArr, code) {
828 - if (to.name === 'ReportingData') { 879 + if (code != "") {
829 - // 设置一个标志表示需要刷新数据 880 + return dicArr.filter((item) => item.itemValue == code)[0]
830 - to.meta.needsRefresh = true; 881 + .itemChineseName;
882 + } else {
883 + return "";
831 } 884 }
832 - next();
833 }, 885 },
834 - methods: { 886 + //获取客户下拉列表数据
835 - mapDicDatas(dicArr, code){ 887 + queryCustomerList() {
836 - if (code != "") { 888 + getCustomerList()
837 - return dicArr.filter(item => item.itemCode == code)[0].itemChineseName 889 + .then((res) => {
890 + if (res.code == 200) {
891 + this.ebcDataList = res.data.value;
838 } else { 892 } else {
839 - return '' 893 + this.ebcDataList = [];
840 } 894 }
841 - 895 + })
842 - }, 896 + .catch((err) => {
843 - mapCurrencyDatas(dicArr, code){ 897 + console.log(err);
844 - if (code != "") { 898 + });
845 - return dicArr.filter(item => item.itemValue == code)[0].itemChineseName 899 + },
900 + //获取口岸表数据
901 + queryPortList() {
902 + getPortList()
903 + .then((res) => {
904 + if (res.code == 200) {
905 + this.declareCustomsDataList = res.data.value;
846 } else { 906 } else {
847 - return '' 907 + this.declareCustomsDataList = [];
848 } 908 }
909 + })
910 + .catch((err) => {
911 + console.log(err);
912 + });
913 + },
914 + //获取申报数据
915 + queryDeclareData(declareId) {
916 + getDeclareData({ declareId })
917 + .then((res) => {
918 + // console.log(1111, res)
919 + if (res.code == 200) {
920 + res.data.declare.orderNo = res.data.declare.orderno;
921 + this.formData = res.data.declare;
922 + this.formData.appType = 9610;
923 + this.detailData = res.data.product.length
924 + ? res.data.product.map((item, index) => {
925 + item.gnum = index + 1;
926 + return item;
927 + })
928 + : [];
929 + } else {
930 + this.detailData = [];
931 + this.formData = {};
932 + }
933 + })
934 + .catch((err) => {
935 + console.log(err);
936 + });
937 + },
849 938
850 - }, 939 + hiddenLogTable() {
851 - //获取客户下拉列表数据 940 + this.logtableType = !this.logtableType;
852 - queryCustomerList(){ 941 + },
853 - getCustomerList().then(res =>{ 942 + back() {
854 - if (res.code == 200) { 943 + this.$router.go(-1);
855 - this.ebcDataList = res.data.value 944 + },
856 - } else {
857 - this.ebcDataList = []
858 - }
859 -
860 - }).catch(err =>{
861 - console.log(err)
862 - })
863 - },
864 - //获取口岸表数据
865 - queryPortList(){
866 - getPortList().then(res =>{
867 - if (res.code == 200) {
868 - this.declareCustomsDataList = res.data.value
869 - } else {
870 - this.declareCustomsDataList = []
871 - }
872 -
873 - }).catch(err =>{
874 - console.log(err)
875 - })
876 - },
877 - //获取申报数据
878 - queryDeclareData(declareId) {
879 - getDeclareData({declareId}).then(res =>{
880 - // console.log(1111, res)
881 - if (res.code == 200) {
882 - res.data.declare.orderNo = res.data.declare.orderno
883 - this.formData = res.data.declare
884 - this.formData.appType=9610
885 - this.detailData = res.data.product.length ? res.data.product.map((item, index) =>{
886 - item.gnum = index+1
887 - return item
888 - }) : []
889 - } else {
890 - this.detailData = []
891 - this.formData = {}
892 - }
893 -
894 - }).catch(err =>{
895 - console.log(err)
896 - })
897 - },
898 -
899 - hiddenLogTable() {
900 - this.logtableType = !this.logtableType;
901 - },
902 - back() {
903 - this.$router.go(-1);
904 - },
905 945
906 - //添加新商品 946 + //添加新商品
907 - async addNewItem() { 947 + async addNewItem() {
908 - // 如果上一次新增的 item 没有通过校验,则不允许新增 948 + // 如果上一次新增的 item 没有通过校验,则不允许新增
909 - //console.log("this",this.lastItemValid) 949 + //console.log("this",this.lastItemValid)
910 - // if (!this.lastItemValid) { 950 + // if (!this.lastItemValid) {
911 - // console.log(11) 951 + // console.log(11)
912 - // this.$message.warning('请先完善新增的商品信息'); 952 + // this.$message.warning('请先完善新增的商品信息');
913 - // return; 953 + // return;
914 - // } 954 + // }
915 - // 获取最后一个 item 的引用 955 + // 获取最后一个 item 的引用
916 - const lastItem = this.detailData[this.detailData.length - 1]; 956 + const lastItem = this.detailData[this.detailData.length - 1];
917 - // 如果存在上一次新增的 item,则进行校验 957 + // 如果存在上一次新增的 item,则进行校验
918 - if (lastItem) { 958 + if (lastItem) {
919 - // 获取 RowDataEditForm 组件的引用 959 + // 获取 RowDataEditForm 组件的引用
920 - const rowEditForm = this.$refs.rowEditForm; 960 + const rowEditForm = this.$refs.rowEditForm;
921 - if (rowEditForm) { 961 + if (rowEditForm) {
922 - // 调用校验方法 962 + // 调用校验方法
923 - const isValid = await rowEditForm.validate(); 963 + const isValid = await rowEditForm.validate();
924 - // console.log("y:",this.lastItemValid) 964 + // console.log("y:",this.lastItemValid)
925 - // console.log("!",isValid) 965 + // console.log("!",isValid)
926 - if (!isValid) { 966 + if (!isValid) {
927 // console.log(22) 967 // console.log(22)
928 - this.lastItemValid = false; // 标记上一次新增的 item 未通过校验 968 + this.lastItemValid = false; // 标记上一次新增的 item 未通过校验
929 - this.$message.warning('请先完善新增的商品信息'); 969 + this.$message.warning("请先完善新增的商品信息");
930 - return; 970 + return;
931 - }
932 } 971 }
933 } 972 }
934 - // 校验通过,允许新增 item 973 + }
935 - let orderNum = this.detailData.at(-1) === undefined ? 1 : this.detailData.at(-1).gnum + 1; 974 + // 校验通过,允许新增 item
936 - this.detailData.push({ 975 + let orderNum =
937 - "gnum":orderNum, 976 + this.detailData.at(-1) === undefined
938 - "accountBookMaterialNumber": "", 977 + ? 1
939 - "barCode": "", 978 + : this.detailData.at(-1).gnum + 1;
940 - "currency": "", 979 + this.detailData.push({
941 - "destinationCountryRegionCode": "", 980 + gnum: orderNum,
942 - "enterpriseProductCode": "", 981 + accountBookMaterialNumber: "",
943 - "enterpriseProductDescribe": "", 982 + barCode: "",
944 - "enterpriseProductName": "", 983 + currency: "",
945 - "legalQty": 0, 984 + destinationCountryRegionCode: "",
946 - "model": "", 985 + enterpriseProductCode: "",
947 - "netWeight": 0, 986 + enterpriseProductDescribe: "",
948 - "price": 0, 987 + enterpriseProductName: "",
949 - "productCode": "", 988 + legalQty: 0,
950 - "productName": "", 989 + model: "",
951 - "qty": 0, 990 + netWeight: 0,
952 - "remark": "", 991 + price: 0,
953 - "totalPrice": 0, 992 + productCode: "",
954 - "unit": "", 993 + productName: "",
955 - "isNew": true // 添加 isNew 标志 994 + qty: 0,
956 - }); 995 + remark: "",
996 + totalPrice: 0,
997 + unit: "",
998 + isNew: true, // 添加 isNew 标志
999 + });
957 1000
958 - this.$nextTick(() => { 1001 + this.$nextTick(() => {
959 - this.expandRowKeys = [orderNum]; 1002 + this.expandRowKeys = [orderNum];
960 - this.lastItemValid = true; // 重置标志位 1003 + this.lastItemValid = true; // 重置标志位
961 - }); 1004 + });
962 - }, 1005 + },
963 - updateRow(row){ 1006 + updateRow(row) {
964 - if (this.expandRowKeys.length > 0) return 1007 + if (this.expandRowKeys.length > 0) return;
965 - this.expandRowKeys = [row.gnum] 1008 + this.expandRowKeys = [row.gnum];
966 - this.currentRowKey = row.gnum; // 设置当前行的 gnum 1009 + this.currentRowKey = row.gnum; // 设置当前行的 gnum
967 1010
968 - // 保存原始数据 1011 + // 保存原始数据
969 - this.originalDetailData[row.gnum] = { ...row }; 1012 + this.originalDetailData[row.gnum] = { ...row };
970 1013
971 - let obj = {} 1014 + let obj = {};
972 - for (let key in row) { 1015 + for (let key in row) {
973 - obj[key] = row[key] 1016 + obj[key] = row[key];
974 - } 1017 + }
975 1018
976 - this.$nextTick(()=>{ 1019 + this.$nextTick(() => {
977 - this.$refs.rowEditForm.tableRowformData = obj 1020 + this.$refs.rowEditForm.tableRowformData = obj;
978 - // const table = this.$refs.entryTable.$el.querySelector('.el-table__body-wrapper'); 1021 + // const table = this.$refs.entryTable.$el.querySelector('.el-table__body-wrapper');
979 - // table.scrollTop = row.gnum*51+10 1022 + // table.scrollTop = row.gnum*51+10
980 - }) 1023 + });
981 - }, 1024 + },
982 - getTotalNumber(){ 1025 + getTotalNumber() {
983 - let totalNetWeight = 0; 1026 + let totalNetWeight = 0;
984 - let totalGoodsValue = 0 1027 + let totalGoodsValue = 0;
985 - for (let i=0; i<this.detailData.length; i++) { 1028 + for (let i = 0; i < this.detailData.length; i++) {
986 - totalNetWeight += Number(this.detailData[i].netWeight) 1029 + totalNetWeight += Number(this.detailData[i].netWeight);
987 - totalGoodsValue += Number(this.detailData[i].totalPrice) 1030 + totalGoodsValue += Number(this.detailData[i].totalPrice);
988 - } 1031 + }
989 - this.formData.netWeight = totalNetWeight.toFixed(5) 1032 + this.formData.netWeight = totalNetWeight.toFixed(5);
990 - this.formData.goodsValue = totalGoodsValue.toFixed(5) 1033 + this.formData.goodsValue = totalGoodsValue.toFixed(5);
991 - }, 1034 + },
992 - deleteRow(row){ 1035 + deleteRow(row) {
993 - this.detailData = this.detailData.filter(item => item.gnum !=row.gnum).map((item, index) =>{ 1036 + this.detailData = this.detailData
994 - item.gnum = index+1 1037 + .filter((item) => item.gnum != row.gnum)
995 - return item 1038 + .map((item, index) => {
996 - }) 1039 + item.gnum = index + 1;
997 - this.$nextTick(()=>{ 1040 + return item;
998 - this.getTotalNumber() 1041 + });
999 - this.expandRowKeys = [] 1042 + this.$nextTick(() => {
1000 - this.detailData.length 1043 + this.getTotalNumber();
1001 - this.lastItemValid = this.detailData.length === row.index;
1002 - })
1003 - },
1004 - rowFormDataSave(props){
1005 - this.detailData.map(item =>{
1006 - if (item.gnum == props.gnum) {
1007 - item = Object.assign(item, props.tableRowformData)
1008 - return item
1009 - }
1010 - })
1011 - this.expandRowKeys = []
1012 - this.$nextTick(()=>{
1013 - this.lastItemValid = true;
1014 - this.getTotalNumber()
1015 - })
1016 - },
1017 - cancelEditRowData(index) {
1018 - this.lastItemValid = true; // 重置标志位
1019 this.expandRowKeys = []; 1044 this.expandRowKeys = [];
1020 - if (index !== undefined) { 1045 + this.detailData.length;
1021 - const gnum = this.detailData[index].gnum; 1046 + this.lastItemValid = this.detailData.length === row.index;
1022 - if (this.detailData[index].isNew) { 1047 + });
1023 - // 如果是新添加的项,则删除该项 1048 + },
1024 - this.detailData.splice(index, 1); 1049 + rowFormDataSave(props) {
1025 - } else { 1050 + this.detailData.map((item) => {
1026 - // 否则,恢复原始数据 1051 + if (item.gnum == props.gnum) {
1027 - if (this.originalDetailData[gnum]) { 1052 + item = Object.assign(item, props.tableRowformData);
1028 - this.detailData[index] = { ...this.originalDetailData[gnum] }; 1053 + return item;
1029 - delete this.originalDetailData[gnum]; // 删除保存的原始数据
1030 - }
1031 - }
1032 } 1054 }
1033 - }, 1055 + });
1034 - // 更新 lastItemValid 1056 + this.expandRowKeys = [];
1035 - handleUpdateLastItemValid(isValid) { 1057 + this.$nextTick(() => {
1036 - this.lastItemValid = isValid; 1058 + this.lastItemValid = true;
1037 - }, 1059 + this.getTotalNumber();
1038 - //提交更新数据 1060 + });
1039 - submitEditedReportDatas(){ 1061 + },
1040 - this.$refs.editForm.validate((valid) => { 1062 + cancelEditRowData(index) {
1041 - if (valid) { 1063 + this.lastItemValid = true; // 重置标志位
1042 - let data = { 1064 + this.expandRowKeys = [];
1043 - declare: this.formData, 1065 + if (index !== undefined) {
1044 - product: this.detailData 1066 + const gnum = this.detailData[index].gnum;
1045 - } 1067 + if (this.detailData[index].isNew) {
1046 - updateDeclareData(data).then(res =>{ 1068 + // 如果是新添加的项,则删除该项
1047 - if (res.code == 200) { 1069 + this.detailData.splice(index, 1);
1048 - this.msgSuccess("数据更新成功"); 1070 + } else {
1049 - this.queryDeclareData(this.declareId) 1071 + // 否则,恢复原始数据
1050 - this.lastItemValid = true; 1072 + if (this.originalDetailData[gnum]) {
1051 - } else { 1073 + this.detailData[index] = { ...this.originalDetailData[gnum] };
1052 - this.alertWarningMsg(res.message); 1074 + delete this.originalDetailData[gnum]; // 删除保存的原始数据
1053 - }
1054 -
1055 - }).catch(err =>{
1056 - console.log(err)
1057 - })
1058 - } else {
1059 - return false;
1060 } 1075 }
1061 - }); 1076 + }
1062 - },
1063 - //取消编辑
1064 - cancelEditedReportDatas(){
1065 -
1066 } 1077 }
1067 }, 1078 },
1068 - }; 1079 + // 更新 lastItemValid
1069 - </script> 1080 + handleUpdateLastItemValid(isValid) {
1081 + this.lastItemValid = isValid;
1082 + },
1083 + //提交更新数据
1084 + submitEditedReportDatas() {
1085 + this.$refs.editForm.validate((valid) => {
1086 + if (valid) {
1087 + let data = {
1088 + declare: this.formData,
1089 + product: this.detailData,
1090 + };
1091 + updateDeclareData(data)
1092 + .then((res) => {
1093 + if (res.code == 200) {
1094 + this.msgSuccess("数据更新成功");
1095 + this.queryDeclareData(this.declareId);
1096 + this.lastItemValid = true;
1097 + } else {
1098 + this.alertWarningMsg(res.message);
1099 + }
1100 + })
1101 + .catch((err) => {
1102 + console.log(err);
1103 + });
1104 + } else {
1105 + return false;
1106 + }
1107 + });
1108 + },
1109 + //取消编辑
1110 + cancelEditedReportDatas() {},
1111 + },
1112 +};
1113 +</script>
1070 1114
1071 - <style scoped lang="scss"> 1115 +<style scoped lang="scss">
1072 - .entry { 1116 +.entry {
1117 + width: 100%;
1118 + height: 100%;
1119 + padding: 10px;
1120 + background-color: #fff;
1121 + overflow: auto;
1122 +
1123 + .entryInformation {
1073 width: 100%; 1124 width: 100%;
1074 height: 100%; 1125 height: 100%;
1075 - padding: 10px;
1076 - background-color: #fff;
1077 - overflow: auto;
1078 -
1079 - .entryInformation {
1080 - width: 100%;
1081 - height: 100%;
1082 - }
1083 -
1084 - .entryTitle {
1085 - display: flex;
1086 - justify-content: space-between;
1087 - font-weight: 600;
1088 - font-weight: 16px;
1089 - color: #000;
1090 - margin-bottom: 10px;
1091 - }
1092 -
1093 - .titleBorder {
1094 - border-bottom: 1px solid #333;
1095 - }
1096 } 1126 }
1097 - .addNewItem{ 1127 +
1128 + .entryTitle {
1098 display: flex; 1129 display: flex;
1099 - justify-content: flex-start; 1130 + justify-content: space-between;
1100 - align-items: center; 1131 + font-weight: 600;
1101 - color:#007AB7; 1132 + font-weight: 16px;
1102 - line-height: 38px; 1133 + color: #000;
1103 - i{ 1134 + margin-bottom: 10px;
1104 - margin-right: 3px;
1105 - }
1106 - span{
1107 - font-size: 13px;
1108 - font-weight: 500;
1109 - cursor: pointer;
1110 - }
1111 } 1135 }
1112 - .formRowDataOperate{ 1136 +
1113 - text-align: right; 1137 + .titleBorder {
1114 - padding: 0 20px; 1138 + border-bottom: 1px solid #333;
1115 - a{
1116 - color: #007AB7;
1117 - font-weight: 600;
1118 - &:first-child{
1119 - margin-right: 5px;
1120 - }
1121 - }
1122 - }
1123 - .fedexFormEditStyle .el-form-item:has(.formError) {
1124 - margin-bottom: 30px !important;
1125 } 1139 }
1126 - .fedexFormEditStyle .el-form-item .formError{ 1140 +}
1127 - padding:0 0.9375rem !important; 1141 +.addNewItem {
1142 + display: flex;
1143 + justify-content: flex-start;
1144 + align-items: center;
1145 + color: #007ab7;
1146 + line-height: 38px;
1147 + i {
1148 + margin-right: 3px;
1128 } 1149 }
1129 - .partsHidden{ 1150 + span {
1130 - height: 164px; 1151 + font-size: 13px;
1131 - overflow: hidden; 1152 + font-weight: 500;
1153 + cursor: pointer;
1132 } 1154 }
1133 - .fold-unfold{ 1155 +}
1134 - display: flex; 1156 +.formRowDataOperate {
1135 - justify-content: center; 1157 + text-align: right;
1136 - padding-top:8px; 1158 + padding: 0 20px;
1137 - img{ 1159 + a {
1138 - width: 22px; 1160 + color: #007ab7;
1161 + font-weight: 600;
1162 + &:first-child {
1163 + margin-right: 5px;
1139 } 1164 }
1140 } 1165 }
1141 - </style> 1166 +}
1167 +.fedexFormEditStyle .el-form-item:has(.formError) {
1168 + margin-bottom: 30px !important;
1169 +}
1170 +.fedexFormEditStyle .el-form-item .formError {
1171 + padding: 0 0.9375rem !important;
1172 +}
1173 +.partsHidden {
1174 + height: 164px;
1175 + overflow: hidden;
1176 +}
1177 +.fold-unfold {
1178 + display: flex;
1179 + justify-content: center;
1180 + padding-top: 8px;
1181 + img {
1182 + width: 22px;
1183 + }
1184 +}
1185 +</style>
......
...@@ -127,6 +127,25 @@ ...@@ -127,6 +127,25 @@
127 </Formitem> 127 </Formitem>
128 </el-col> 128 </el-col>
129 </el-row> 129 </el-row>
130 + <el-row :gutter="5">
131 + <el-col :span="8">
132 + <Formitem
133 + label="汇总申报地海关代码"
134 + prop="exportPortCode"
135 + type="edit"
136 + >
137 + <el-input
138 + type="text"
139 + class="inputShadow"
140 + id="inputInner-edit-exportPortCode"
141 + resize="none"
142 + v-model="formData.exportPortCode"
143 + clearable
144 + placeholder=""
145 + ></el-input>
146 + </Formitem>
147 + </el-col>
148 + </el-row>
130 </el-form> 149 </el-form>
131 </div> 150 </div>
132 <div class="dialogOption entrySave"> 151 <div class="dialogOption entrySave">
...@@ -177,6 +196,7 @@ export default { ...@@ -177,6 +196,7 @@ export default {
177 declarationUnitCompanyName: "", 196 declarationUnitCompanyName: "",
178 dxpid: "", 197 dxpid: "",
179 portCode: "", 198 portCode: "",
199 + exportPortCode: "",
180 }, 200 },
181 rules: { 201 rules: {
182 portCode: [ 202 portCode: [
...@@ -244,6 +264,13 @@ export default { ...@@ -244,6 +264,13 @@ export default {
244 message: "申报单位 (企业名称)不能为空!", 264 message: "申报单位 (企业名称)不能为空!",
245 }, 265 },
246 ], 266 ],
267 + exportPortCode: [
268 + {
269 + required: true,
270 + trigger: "blur",
271 + message: "汇总申报地海关代码不能为空!",
272 + },
273 + ],
247 }, 274 },
248 loadings: { 275 loadings: {
249 dialogLoading: false, 276 dialogLoading: false,
...@@ -348,6 +375,7 @@ export default { ...@@ -348,6 +375,7 @@ export default {
348 declarationUnitCompanyName: "", 375 declarationUnitCompanyName: "",
349 dxpid: "", 376 dxpid: "",
350 portCode: "", 377 portCode: "",
378 + exportPortCode: "",
351 }; 379 };
352 this.$emit("close"); 380 this.$emit("close");
353 }, 381 },
......
...@@ -255,7 +255,8 @@ ...@@ -255,7 +255,8 @@
255 ref="entryTable" 255 ref="entryTable"
256 :data="tableData" 256 :data="tableData"
257 :headerData="headerData" 257 :headerData="headerData"
258 - :height="tableMaxheight" 258 + :height="tableMaxheight + 'px'"
259 + :maxHeight="tableMaxheight + 'px'"
259 :border="true" 260 :border="true"
260 :pagination="true" 261 :pagination="true"
261 :order="false" 262 :order="false"
...@@ -633,7 +634,7 @@ export default { ...@@ -633,7 +634,7 @@ export default {
633 departureLoading: false, // 离境单申报加载状态 634 departureLoading: false, // 离境单申报加载状态
634 }, 635 },
635 textareaVisible: {}, 636 textareaVisible: {},
636 - tableMaxheight: null, 637 + tableMaxheight: 500,
637 outerVisible: false, 638 outerVisible: false,
638 dropdownName: "一键申报", 639 dropdownName: "一键申报",
639 dropdownCode: "full", 640 dropdownCode: "full",
...@@ -645,17 +646,13 @@ export default { ...@@ -645,17 +646,13 @@ export default {
645 }, 646 },
646 created() { 647 created() {
647 this.search(0); 648 this.search(0);
648 - // this.getCancellationReasons() 649 + this.calculateTableHeight();
649 }, 650 },
650 mounted() { 651 mounted() {
651 - this.tableMaxheight = window.innerHeight - 280; 652 + window.addEventListener("resize", this.calculateTableHeight);
652 - window.addEventListener( 653 + },
653 - "resize", 654 + beforeDestroy() {
654 - () => { 655 + window.removeEventListener("resize", this.calculateTableHeight);
655 - this.tableMaxheight = window.innerHeight - 280;
656 - },
657 - false
658 - );
659 }, 656 },
660 watch: { 657 watch: {
661 $route(val, oldval) { 658 $route(val, oldval) {
...@@ -673,6 +670,9 @@ export default { ...@@ -673,6 +670,9 @@ export default {
673 }); 670 });
674 }, 671 },
675 methods: { 672 methods: {
673 + calculateTableHeight() {
674 + this.tableMaxheight = window.innerHeight - 300;
675 + },
676 //查询申报数据 676 //查询申报数据
677 search(val) { 677 search(val) {
678 this.loadings.sreachLoading = true; 678 this.loadings.sreachLoading = true;
...@@ -886,7 +886,7 @@ export default { ...@@ -886,7 +886,7 @@ export default {
886 // } 886 // }
887 this.search(1); 887 this.search(1);
888 this.outerVisible = false; 888 this.outerVisible = false;
889 - this.tableMaxheight = window.innerHeight - 280; 889 + this.tableMaxheight = window.innerHeight - 300;
890 this.$forceUpdate(); 890 this.$forceUpdate();
891 }, 891 },
892 popoverChange(val) { 892 popoverChange(val) {
......
...@@ -9,24 +9,24 @@ ...@@ -9,24 +9,24 @@
9 > 9 >
10 <el-row class="row-border"> 10 <el-row class="row-border">
11 <!-- 提运单号 --> 11 <!-- 提运单号 -->
12 -<!-- <el-col :span="5">--> 12 + <!-- <el-col :span="5">-->
13 -<!-- <Formitem label="提运单号" prop="billNo">--> 13 + <!-- <Formitem label="提运单号" prop="billNo">-->
14 -<!-- <el-input--> 14 + <!-- <el-input-->
15 -<!-- type="text"--> 15 + <!-- type="text"-->
16 -<!-- class="inputShadow"--> 16 + <!-- class="inputShadow"-->
17 -<!-- id="inputInner&#45;&#45;billNo"--> 17 + <!-- id="inputInner&#45;&#45;billNo"-->
18 -<!-- resize="none"--> 18 + <!-- resize="none"-->
19 -<!-- v-model="sreachFormData.billNo"--> 19 + <!-- v-model="sreachFormData.billNo"-->
20 -<!-- clearable--> 20 + <!-- clearable-->
21 -<!-- placeholder=""--> 21 + <!-- placeholder=""-->
22 -<!-- ></el-input>--> 22 + <!-- ></el-input>-->
23 -<!--&lt;!&ndash; <FormTextareaInput&ndash;&gt;--> 23 + <!--&lt;!&ndash; <FormTextareaInput&ndash;&gt;-->
24 -<!--&lt;!&ndash; :formData="sreachFormData"&ndash;&gt;--> 24 + <!--&lt;!&ndash; :formData="sreachFormData"&ndash;&gt;-->
25 -<!--&lt;!&ndash; dataKey="billNo"&ndash;&gt;--> 25 + <!--&lt;!&ndash; dataKey="billNo"&ndash;&gt;-->
26 -<!--&lt;!&ndash; @formChange="formChange"&ndash;&gt;--> 26 + <!--&lt;!&ndash; @formChange="formChange"&ndash;&gt;-->
27 -<!--&lt;!&ndash; />&ndash;&gt;--> 27 + <!--&lt;!&ndash; />&ndash;&gt;-->
28 -<!-- </Formitem>--> 28 + <!-- </Formitem>-->
29 -<!-- </el-col>--> 29 + <!-- </el-col>-->
30 <!-- 预录入编号 --> 30 <!-- 预录入编号 -->
31 <el-col :span="5"> 31 <el-col :span="5">
32 <Formitem label="预录入编号" prop="preNo"> 32 <Formitem label="预录入编号" prop="preNo">
...@@ -135,7 +135,11 @@ ...@@ -135,7 +135,11 @@
135 placeholder="" 135 placeholder=""
136 > 136 >
137 <el-option 137 <el-option
138 - v-for="(item, index) in $store.getters.dict.RECEIPT_STATUS.filter(fItem => fItem.itemChineseName !== '已提交')" 138 + v-for="(
139 + item, index
140 + ) in $store.getters.dict.RECEIPT_STATUS.filter(
141 + (fItem) => fItem.itemChineseName !== '已提交'
142 + )"
139 :key="index" 143 :key="index"
140 :label="item.itemChineseName" 144 :label="item.itemChineseName"
141 :value="item.itemValue" 145 :value="item.itemValue"
...@@ -144,47 +148,47 @@ ...@@ -144,47 +148,47 @@
144 </Formitem> 148 </Formitem>
145 </el-col> 149 </el-col>
146 <!-- 入库时间 --> 150 <!-- 入库时间 -->
147 -<!-- <el-col :span="5">--> 151 + <!-- <el-col :span="5">-->
148 -<!-- <Formitem label="入库时间" prop="startTime" :activeType="true">--> 152 + <!-- <Formitem label="入库时间" prop="startTime" :activeType="true">-->
149 -<!-- <el-date-picker--> 153 + <!-- <el-date-picker-->
150 -<!-- class="inputInner&#45;&#45;startTime"--> 154 + <!-- class="inputInner&#45;&#45;startTime"-->
151 -<!-- id="inputInner&#45;&#45;startTime"--> 155 + <!-- id="inputInner&#45;&#45;startTime"-->
152 -<!-- v-model="sreachFormData.startTime"--> 156 + <!-- v-model="sreachFormData.startTime"-->
153 -<!-- type="daterange"--> 157 + <!-- type="daterange"-->
154 -<!-- format="yyyy-MM-dd"--> 158 + <!-- format="yyyy-MM-dd"-->
155 -<!-- prefix-icon="none"--> 159 + <!-- prefix-icon="none"-->
156 -<!-- value-format="yyyy-MM-dd"--> 160 + <!-- value-format="yyyy-MM-dd"-->
157 -<!-- range-separator="至"--> 161 + <!-- range-separator="至"-->
158 -<!-- @change="dateChange"--> 162 + <!-- @change="dateChange"-->
159 -<!-- />--> 163 + <!-- />-->
160 -<!-- </Formitem>--> 164 + <!-- </Formitem>-->
161 -<!-- </el-col>--> 165 + <!-- </el-col>-->
162 <!-- 报文序号 --> 166 <!-- 报文序号 -->
163 -<!-- <el-col :span="5">--> 167 + <!-- <el-col :span="5">-->
164 -<!-- <Formitem label="报文序号" prop="msgSeqNo">--> 168 + <!-- <Formitem label="报文序号" prop="msgSeqNo">-->
165 -<!-- <el-input--> 169 + <!-- <el-input-->
166 -<!-- type="text"--> 170 + <!-- type="text"-->
167 -<!-- class="inputShadow"--> 171 + <!-- class="inputShadow"-->
168 -<!-- id="inputInner&#45;&#45;msgSeqNo"--> 172 + <!-- id="inputInner&#45;&#45;msgSeqNo"-->
169 -<!-- resize="none"--> 173 + <!-- resize="none"-->
170 -<!-- v-model="sreachFormData.msgSeqNo"--> 174 + <!-- v-model="sreachFormData.msgSeqNo"-->
171 -<!-- clearable--> 175 + <!-- clearable-->
172 -<!-- placeholder=""--> 176 + <!-- placeholder=""-->
173 -<!-- ></el-input>--> 177 + <!-- ></el-input>-->
174 -<!-- </Formitem>--> 178 + <!-- </Formitem>-->
175 -<!-- </el-col>--> 179 + <!-- </el-col>-->
176 </el-row> 180 </el-row>
177 </el-form> 181 </el-form>
178 -<!-- <div class="optionButton">--> 182 + <!-- <div class="optionButton">-->
179 -<!-- <el-button--> 183 + <!-- <el-button-->
180 -<!-- class="entrySaveButton"--> 184 + <!-- class="entrySaveButton"-->
181 -<!-- size="small"--> 185 + <!-- size="small"-->
182 -<!-- icon="el-icon-download"--> 186 + <!-- icon="el-icon-download"-->
183 -<!-- @click="downloadData"--> 187 + <!-- @click="downloadData"-->
184 -<!-- >--> 188 + <!-- >-->
185 -<!-- 导出--> 189 + <!-- 导出-->
186 -<!-- </el-button>--> 190 + <!-- </el-button>-->
187 -<!-- </div>--> 191 + <!-- </div>-->
188 <Table 192 <Table
189 class="fedexDetialTable fedexSreachTable" 193 class="fedexDetialTable fedexSreachTable"
190 ref="entryTable" 194 ref="entryTable"
...@@ -220,7 +224,8 @@ ...@@ -220,7 +224,8 @@
220 @popoverClose="popoverClose" 224 @popoverClose="popoverClose"
221 > 225 >
222 <div slot="title"> 226 <div slot="title">
223 - <span style="font-weight: 700; color: #515a6e">汇总申请单编号:</span 227 + <span style="font-weight: 700; color: #515a6e"
228 + >汇总申请单编号:</span
224 >{{ scope.row.sumNo }} 229 >{{ scope.row.sumNo }}
225 </div> 230 </div>
226 <div slot="buttonLabel"> 231 <div slot="buttonLabel">
...@@ -242,7 +247,7 @@ ...@@ -242,7 +247,7 @@
242 <script> 247 <script>
243 import { 248 import {
244 searchExportSummaryList, 249 searchExportSummaryList,
245 - getExportSummaryReceiptData 250 + getExportSummaryReceiptData,
246 } from "@/api/exportSummary-api"; 251 } from "@/api/exportSummary-api";
247 export default { 252 export default {
248 name: "ExportBillQuery", 253 name: "ExportBillQuery",
...@@ -325,7 +330,13 @@ export default { ...@@ -325,7 +330,13 @@ export default {
325 }, 330 },
326 { 331 {
327 name: "收发货人汇总标志", 332 name: "收发货人汇总标志",
328 - value:"summaryFlag", 333 + value: "summaryFlag",
334 + width: "",
335 + align: "left",
336 + },
337 + {
338 + name: "申报时间",
339 + value: "createTime",
329 width: "", 340 width: "",
330 align: "left", 341 align: "left",
331 }, 342 },
...@@ -443,7 +454,7 @@ export default { ...@@ -443,7 +454,7 @@ export default {
443 }) 454 })
444 .finally(() => { 455 .finally(() => {
445 this.$nextTick(() => { 456 this.$nextTick(() => {
446 - this.$store.dispatch('setLoadingState', false) 457 + this.$store.dispatch("setLoadingState", false);
447 this.$refs.returnStatusPopover.tableLoading = false; 458 this.$refs.returnStatusPopover.tableLoading = false;
448 }); 459 });
449 }); 460 });
......
...@@ -16,21 +16,21 @@ ...@@ -16,21 +16,21 @@
16 > 16 >
17 <el-row :gutter="5"> 17 <el-row :gutter="5">
18 <!-- 提运单号 --> 18 <!-- 提运单号 -->
19 -<!-- <el-col :span="3">--> 19 + <!-- <el-col :span="3">-->
20 -<!-- <Formitem label="提运单号" prop="billNo">--> 20 + <!-- <Formitem label="提运单号" prop="billNo">-->
21 -<!-- <el-input--> 21 + <!-- <el-input-->
22 -<!-- type="text"--> 22 + <!-- type="text"-->
23 -<!-- class="inputShadow"--> 23 + <!-- class="inputShadow"-->
24 -<!-- id="inputInner&#45;&#45;billNo"--> 24 + <!-- id="inputInner&#45;&#45;billNo"-->
25 -<!-- resize="none"--> 25 + <!-- resize="none"-->
26 -<!-- v-model="formData.billNo"--> 26 + <!-- v-model="formData.billNo"-->
27 -<!-- clearable--> 27 + <!-- clearable-->
28 -<!-- placeholder=""--> 28 + <!-- placeholder=""-->
29 -<!-- ></el-input>--> 29 + <!-- ></el-input>-->
30 -<!-- </Formitem>--> 30 + <!-- </Formitem>-->
31 -<!-- </el-col>--> 31 + <!-- </el-col>-->
32 <!-- 电子口岸编号 --> 32 <!-- 电子口岸编号 -->
33 - <el-col :span="3"> 33 + <el-col :span="6">
34 <Formitem label="电子口岸编号" prop="preNo"> 34 <Formitem label="电子口岸编号" prop="preNo">
35 <el-input 35 <el-input
36 type="text" 36 type="text"
...@@ -62,21 +62,21 @@ ...@@ -62,21 +62,21 @@
62 </el-select> 62 </el-select>
63 </Formitem> 63 </Formitem>
64 </el-col> 64 </el-col>
65 -<!-- <el-col :span="3">--> 65 + <!-- <el-col :span="3">-->
66 -<!-- <Formitem label="业务状态" prop="">--> 66 + <!-- <Formitem label="业务状态" prop="">-->
67 -<!-- <el-select--> 67 + <!-- <el-select-->
68 -<!-- type="text"--> 68 + <!-- type="text"-->
69 -<!-- id="inputInner&#45;&#45;appType"--> 69 + <!-- id="inputInner&#45;&#45;appType"-->
70 -<!-- v-model="formData.businessStatus"--> 70 + <!-- v-model="formData.businessStatus"-->
71 -<!-- clearable--> 71 + <!-- clearable-->
72 -<!-- placeholder=""--> 72 + <!-- placeholder=""-->
73 -<!-- >--> 73 + <!-- >-->
74 74
75 -<!-- </el-select>--> 75 + <!-- </el-select>-->
76 -<!-- </Formitem>--> 76 + <!-- </Formitem>-->
77 -<!-- </el-col>--> 77 + <!-- </el-col>-->
78 <!-- 汇总申请编号 --> 78 <!-- 汇总申请编号 -->
79 - <el-col :span="3"> 79 + <el-col :span="6">
80 <Formitem label="汇总申请编号" prop="sumNo"> 80 <Formitem label="汇总申请编号" prop="sumNo">
81 <el-input 81 <el-input
82 type="text" 82 type="text"
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
104 </Formitem> 104 </Formitem>
105 </el-col> 105 </el-col>
106 <!-- 报关单位名称 --> 106 <!-- 报关单位名称 -->
107 - <el-col :span="12"> 107 + <el-col :span="6">
108 <Formitem label="报关单位名称" prop="declAgentName"> 108 <Formitem label="报关单位名称" prop="declAgentName">
109 <el-input 109 <el-input
110 type="text" 110 type="text"
...@@ -289,9 +289,9 @@ ...@@ -289,9 +289,9 @@
289 ></el-input> 289 ></el-input>
290 </Formitem> 290 </Formitem>
291 </el-col> 291 </el-col>
292 - <!-- 入库时间 --> 292 + <!-- 入库时间=>申报时间 -->
293 <el-col :span="3"> 293 <el-col :span="3">
294 - <Formitem label="入库时间" prop="createTime"> 294 + <Formitem label="申报时间" prop="createTime">
295 <el-input 295 <el-input
296 type="text" 296 type="text"
297 class="inputShadow" 297 class="inputShadow"
......
1 <template> 1 <template>
2 - <div style="background-color: #FFFFFF;height: 100%"> 2 + <div style="background-color: #ffffff; height: 100%">
3 <div class="title"> 3 <div class="title">
4 - <div> 4 + <div></div>
5 - </div> 5 + <div>汇总申报信息</div>
6 - <div>
7 - 汇总申报信息
8 - </div>
9 </div> 6 </div>
10 <div class="content"> 7 <div class="content">
11 <el-form 8 <el-form
...@@ -26,6 +23,7 @@ ...@@ -26,6 +23,7 @@
26 clearable 23 clearable
27 filterable 24 filterable
28 placeholder="" 25 placeholder=""
26 + @change="searchUserData"
29 > 27 >
30 <el-option 28 <el-option
31 v-for="(item, index) in portInfo" 29 v-for="(item, index) in portInfo"
...@@ -37,7 +35,7 @@ ...@@ -37,7 +35,7 @@
37 </Formitem> 35 </Formitem>
38 </el-col> 36 </el-col>
39 <el-col :span="10"> 37 <el-col :span="10">
40 - <Formitem label="申报地海关" prop="customsCode"> 38 + <Formitem label="清单申报地海关" prop="customsCode">
41 <el-select 39 <el-select
42 type="text" 40 type="text"
43 id="inputInner--customsCode" 41 id="inputInner--customsCode"
...@@ -57,25 +55,6 @@ ...@@ -57,25 +55,6 @@
57 </el-row> 55 </el-row>
58 <el-row :gutter="5" type="flex" justify="center"> 56 <el-row :gutter="5" type="flex" justify="center">
59 <el-col :span="10"> 57 <el-col :span="10">
60 - <Formitem label="电商企业名称" prop="ebpcode">
61 - <el-select
62 - type="text"
63 - id="inputInner--ebpcode"
64 - v-model="formData.ebpcode"
65 - clearable
66 - filterable
67 - placeholder=""
68 - >
69 - <el-option
70 - v-for="(item, index) in ebcDataList"
71 - :key="index"
72 - :label="item.ecomEntName"
73 - :value="item.ecomEntCode"
74 - ></el-option>
75 - </el-select>
76 - </Formitem>
77 - </el-col>
78 - <el-col :span="10">
79 <Formitem label="申报方式" prop="declareType"> 58 <Formitem label="申报方式" prop="declareType">
80 <el-select 59 <el-select
81 type="text" 60 type="text"
...@@ -93,10 +72,8 @@ ...@@ -93,10 +72,8 @@
93 </el-select> 72 </el-select>
94 </Formitem> 73 </Formitem>
95 </el-col> 74 </el-col>
96 - </el-row>
97 - <el-row :gutter="5" type="flex" justify="center">
98 <el-col :span="10"> 75 <el-col :span="10">
99 - <Formitem label="创建时间" prop="time" :activeType="true"> 76 + <Formitem label="创建时间" prop="time">
100 <el-date-picker 77 <el-date-picker
101 class="inputInner--time" 78 class="inputInner--time"
102 id="inputInner--time" 79 id="inputInner--time"
...@@ -107,10 +84,32 @@ ...@@ -107,10 +84,32 @@
107 value-format="yyyy-MM-dd" 84 value-format="yyyy-MM-dd"
108 range-separator="至" 85 range-separator="至"
109 @change="dateChange" 86 @change="dateChange"
110 - style="background-color: #f2f2f2;" 87 + style="background-color: #f2f2f2"
111 /> 88 />
112 </Formitem> 89 </Formitem>
113 </el-col> 90 </el-col>
91 + </el-row>
92 + <el-row :gutter="5" type="flex" justify="center">
93 + <el-col :span="10">
94 + <Formitem label="电商企业名称" prop="ebpcode">
95 + <el-select
96 + type="text"
97 + id="inputInner--ebpcode"
98 + v-model="formData.ebpcode"
99 + clearable
100 + filterable
101 + placeholder=""
102 + @focus.stop="getCustomerList"
103 + >
104 + <el-option
105 + v-for="(item, index) in ebcDataList"
106 + :key="index"
107 + :label="item.ecomEntName"
108 + :value="item.ecomEntCode"
109 + ></el-option>
110 + </el-select>
111 + </Formitem>
112 + </el-col>
114 <el-col :span="5"> 113 <el-col :span="5">
115 <Formitem label="发货人汇总" prop="summaryFlag"> 114 <Formitem label="发货人汇总" prop="summaryFlag">
116 <el-select 115 <el-select
...@@ -151,75 +150,81 @@ ...@@ -151,75 +150,81 @@
151 </el-form> 150 </el-form>
152 </div> 151 </div>
153 <div class="entrySave"> 152 <div class="entrySave">
154 - <el-button 153 + <el-button class="entrySaveButton" @click="submit">提交</el-button>
155 - class="entrySaveButton" 154 + <el-button class="entrySaveButton" @click="cancel">取消</el-button>
156 - @click="submit"
157 - >提交</el-button
158 - >
159 - <el-button
160 - class="entrySaveButton"
161 - @click="cancel"
162 - >取消</el-button
163 - >
164 </div> 155 </div>
165 </div> 156 </div>
166 </template> 157 </template>
167 158
168 <script> 159 <script>
169 import { getCurrUserPortInfo } from "@/api/system/user.js"; 160 import { getCurrUserPortInfo } from "@/api/system/user.js";
170 -import { getCustomerList} from "@/api/declareData-api.js"; 161 +import { getNewCustomerList } from "@/api/declareData-api.js";
171 -import { getDictData } from '@/api/system/dict-api.js' 162 +import { getDictData } from "@/api/system/dict-api.js";
172 import { declareSummaryApplication } from "@/api/exportSummary-api.js"; 163 import { declareSummaryApplication } from "@/api/exportSummary-api.js";
173 export default { 164 export default {
174 name: "", 165 name: "",
175 data() { 166 data() {
176 return { 167 return {
177 - formRules:{ 168 + formRules: {
178 - portCode:[ 169 + portCode: [
179 - { required: true, message: '请选择出口口岸', trigger: 'change' }, 170 + { required: true, message: "请选择出口口岸", trigger: "change" },
180 ], 171 ],
181 - customsCode:[ 172 + customsCode: [
182 - { required: true, message: '请选择申报地海关', trigger: 'change' }, 173 + { required: true, message: "请选择申报地海关", trigger: "change" },
183 ], 174 ],
184 ebpcode: [ 175 ebpcode: [
185 - { required: true, message: '请选择电商企业', trigger: 'change' }, 176 + { required: true, message: "请选择电商企业", trigger: "change" },
186 ], 177 ],
187 declareType: [ 178 declareType: [
188 - { required: true, message: '请选择申报方式', trigger: 'change' }, 179 + { required: true, message: "请选择申报方式", trigger: "change" },
189 ], 180 ],
190 - time: [ 181 + time: [
191 { 182 {
192 - type: 'array', 183 + type: "array",
193 required: true, 184 required: true,
194 - message: '请选择完整的日期区间', 185 + message: "请选择完整的日期区间",
195 - trigger: 'change' 186 + trigger: "change",
196 - } 187 + },
197 ], 188 ],
198 summaryFlag: [ 189 summaryFlag: [
199 - { required: true, message: '请选择发货人汇总', trigger: 'change' }, 190 + { required: true, message: "请选择发货人汇总", trigger: "change" },
200 ], 191 ],
201 itemNameFlag: [ 192 itemNameFlag: [
202 - { required: true, message: '请选择商品名汇总', trigger: 'change' }, 193 + { required: true, message: "请选择商品名汇总", trigger: "change" },
203 ], 194 ],
204 }, 195 },
205 - formData:{}, 196 + formData: {
206 - portInfo:[], 197 + portCode: "",
207 - ebcDataList:[], 198 + customsCode: "",
208 - summaryFlag:[], 199 + ebpcode: "",
209 - itemNameFlag:[], 200 + declareType: "",
210 - declareType:[] 201 + time: [],
202 + summaryFlag: "",
203 + itemNameFlag: "",
204 + },
205 + portInfo: [],
206 + ebcDataList: [],
207 + summaryFlag: [],
208 + itemNameFlag: [],
209 + declareType: [],
211 }; 210 };
212 }, 211 },
213 created() { 212 created() {
214 - this.getCurrUserPortInfo() 213 + this.getCurrUserPortInfo();
215 - this.getCustomerList() 214 + this.getCustomerList();
216 - this.getSummaryFlag() 215 + this.getSummaryFlag();
217 - this.getItemNameFlag() 216 + this.getItemNameFlag();
218 - this.getDeclareType() 217 + },
218 + mounted() {
219 + this.getDeclareType();
219 }, 220 },
220 methods: { 221 methods: {
222 + searchUserData(val) {
223 + this.formData.customsCode = val;
224 + this.formData.ebpcode = "";
225 + },
221 //获取当前用户的口岸信息 226 //获取当前用户的口岸信息
222 - getCurrUserPortInfo(){ 227 + getCurrUserPortInfo() {
223 getCurrUserPortInfo() 228 getCurrUserPortInfo()
224 .then((res) => { 229 .then((res) => {
225 if (res.code === "200") { 230 if (res.code === "200") {
...@@ -231,23 +236,27 @@ export default { ...@@ -231,23 +236,27 @@ export default {
231 }); 236 });
232 }, 237 },
233 //获取客户下拉列表数据 238 //获取客户下拉列表数据
234 - getCustomerList(){ 239 + getCustomerList() {
235 - getCustomerList().then(res =>{ 240 + let params = {
236 - if (res.code == 200) { 241 + ...this.formData,
237 - this.ebcDataList = res.data.value 242 + };
238 - } else { 243 + getNewCustomerList(params)
239 - this.ebcDataList = [] 244 + .then((res) => {
240 - } 245 + if (res.code == 200) {
241 - 246 + this.ebcDataList = res.data;
242 - }).catch(err =>{ 247 + } else {
243 - console.log(err) 248 + this.ebcDataList = [];
244 - }) 249 + }
250 + })
251 + .catch((err) => {
252 + console.log(err);
253 + });
245 }, 254 },
246 //获取发货人下拉数据 255 //获取发货人下拉数据
247 - getSummaryFlag(){ 256 + getSummaryFlag() {
248 getDictData({ 257 getDictData({
249 - doctCode: "SUMMARY_FLAG" 258 + doctCode: "SUMMARY_FLAG",
250 - }).then(res => { 259 + }).then((res) => {
251 if (res.code == 200) { 260 if (res.code == 200) {
252 this.summaryFlag = res.data; 261 this.summaryFlag = res.data;
253 } else { 262 } else {
...@@ -256,10 +265,10 @@ export default { ...@@ -256,10 +265,10 @@ export default {
256 }); 265 });
257 }, 266 },
258 //获取发货人下拉数据 267 //获取发货人下拉数据
259 - getItemNameFlag(){ 268 + getItemNameFlag() {
260 getDictData({ 269 getDictData({
261 - doctCode: "ITEM_NAME_FLAG" 270 + doctCode: "ITEM_NAME_FLAG",
262 - }).then(res => { 271 + }).then((res) => {
263 if (res.code == 200) { 272 if (res.code == 200) {
264 this.itemNameFlag = res.data; 273 this.itemNameFlag = res.data;
265 } else { 274 } else {
...@@ -267,39 +276,51 @@ export default { ...@@ -267,39 +276,51 @@ export default {
267 } 276 }
268 }); 277 });
269 }, 278 },
270 - cancel(){ 279 + cancel() {
271 - this.$router.push("summaryDataSearch") 280 + this.$router.push("summaryDataSearch");
272 }, 281 },
273 - submit(){ 282 + submit() {
274 this.$refs.editForm.validate((valid) => { 283 this.$refs.editForm.validate((valid) => {
275 if (!valid) { 284 if (!valid) {
276 return; 285 return;
277 } 286 }
278 - declareSummaryApplication(this.formData).then(response => { 287 + declareSummaryApplication(this.formData).then((response) => {
279 - if(response.data){ 288 + if (response.data) {
280 this.msgSuccess("汇总申报成功"); 289 this.msgSuccess("汇总申报成功");
281 - this.$router.push("summaryDataSearch") 290 + this.$router.push("summaryDataSearch");
282 - }else { 291 + } else {
283 - this.msgError(response.message) 292 + this.msgError(response.message);
284 } 293 }
285 - }) 294 + });
286 - }) 295 + });
287 }, 296 },
288 - dateChange(val){ 297 + dateChange(val) {
289 - this.formData.startTime = val[0] + ' 00:00:00' 298 + if (val) {
290 - this.formData.endTime = val[1] + ' 23:59:59' 299 + this.formData.startTime = val[0] + " 00:00:00";
300 + this.formData.endTime = val[1] + " 23:59:59";
301 + } else {
302 + this.formData.startTime = "";
303 + this.formData.endTime = "";
304 + this.formData.time = [];
305 + }
306 + this.formData.ebpcode = "";
291 }, 307 },
292 - getDeclareType(){ 308 + getDeclareType() {
293 getDictData({ 309 getDictData({
294 - doctCode: "DECLARE_TYPE" 310 + doctCode: "DECLARE_TYPE",
295 - }).then(res => { 311 + }).then((res) => {
296 if (res.code == 200) { 312 if (res.code == 200) {
297 this.declareType = res.data; 313 this.declareType = res.data;
314 + console.log(res.data);
315 + this.formData.declareType = this.declareType[0].itemValue;
316 + this.$nextTick(() => {
317 + this.$refs.editForm.clearValidate(["declareType"]);
318 + });
298 } else { 319 } else {
299 this.declareType = []; 320 this.declareType = [];
300 } 321 }
301 }); 322 });
302 - } 323 + },
303 }, 324 },
304 }; 325 };
305 </script> 326 </script>
...@@ -308,7 +329,7 @@ export default { ...@@ -308,7 +329,7 @@ export default {
308 .content { 329 .content {
309 margin-top: 50px; 330 margin-top: 50px;
310 } 331 }
311 -.title{ 332 +.title {
312 font-size: 23px; 333 font-size: 23px;
313 margin-left: 8%; 334 margin-left: 8%;
314 padding-top: 2%; 335 padding-top: 2%;
......