Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
EcomWeb
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
zhanbo.xu
2025-05-12 11:25:59 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
1957896158b29e50bba1fe68529c0ae0f83dbdde
19578961
1 parent
8db90fc8
feat: 完善功能
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
575 additions
and
210 deletions
src/api/exportList-api.js
src/assets/icons/svg/zidingyi.svg
src/utils/zipdownload.js
src/views/exportListQuery/custom-dialog.vue
src/views/exportListQuery/index.vue
src/views/listBranchQuery/index.vue
src/views/reportingData/index.vue
src/views/reportingData/weight-adjust.vue
src/api/exportList-api.js
View file @
1957896
import
request
from
'@/utils/request'
import
request
from
"@/utils/request"
;
//清单总分单查询
/**
...
...
@@ -14,21 +14,53 @@ import request from '@/utils/request'
* @param pageSize *
*/
export
function
getAllexportList
(
data
)
{
return
request
({
url
:
'/bus-customer/exportList/search'
,
method
:
'post'
,
data
:
data
,
})
return
request
({
url
:
"/bus-customer/exportList/search"
,
method
:
"post"
,
data
:
data
,
});
}
//清单回执
/**
* @param copNo * 运单id
*/
export
function
getListReceiptData
(
data
)
{
return
request
({
url
:
'/bus-customer/exportList/receipt/'
+
data
.
copNo
,
method
:
'get'
,
})
}
\ No newline at end of file
return
request
({
url
:
"/bus-customer/exportList/receipt/"
+
data
.
copNo
,
method
:
"get"
,
});
}
// POST
// /exportList/customizeExcelFormat
// 自定义清单表格导出格式
export
function
getCustomizeExcelFormat
(
data
)
{
return
request
({
url
:
"/bus-customer/exportList/customizeExcelFormat"
,
method
:
"post"
,
data
:
data
,
});
}
// POST
// /exportList/listExport
// 清单导出
export
function
getListExport
(
data
)
{
return
request
({
url
:
"/bus-customer/exportList/listExport"
,
method
:
"post"
,
data
:
data
,
});
}
// GET
// /exportList/getCustomizeExcelFormat
// 获取自定义清单导出格式
export
function
getCustomizeExcel
(
data
)
{
return
request
({
url
:
"/bus-customer/exportList/getCustomizeExcelFormat"
,
method
:
"get"
,
data
:
data
,
});
}
...
...
src/assets/icons/svg/zidingyi.svg
0 → 100644
View file @
1957896
<svg width="16" height="12" viewBox="0 0 16 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 1H16" stroke="#FF6600" stroke-miterlimit="10"/>
<path d="M2 6H14" stroke="#FF6600" stroke-miterlimit="10"/>
<path d="M4 11H12" stroke="#FF6600" stroke-miterlimit="10"/>
</svg>
src/utils/zipdownload.js
View file @
1957896
import
axios
from
'axios'
import
store
from
'@/store'
import
{
getToken
}
from
'@/utils/auth'
import
{
getDownLoadFileStatus
}
from
'@/utils/iClearExp.js'
import
{
alertWarningMsg
}
from
'@/utils/index.js'
import
{
getdownloadExlFileType
}
from
'@/api/custom-api.js'
import
axios
from
"axios"
;
import
store
from
"@/store"
;
import
{
getToken
}
from
"@/utils/auth"
;
import
{
getDownLoadFileStatus
}
from
"@/utils/iClearExp.js"
;
import
{
alertWarningMsg
}
from
"@/utils/index.js"
;
const
mimeMap
=
{
xlsx
:
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
,
xlsm
:
'application/vnd.ms-excel.sheet.macroEnabled.12'
,
xls
:
'application/vnd.ms-excel'
,
zip
:
'application/zip'
,
pdf
:
'application/pdf'
,
png
:
'image/png'
,
jpg
:
'image/jpeg'
,
docx
:
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
}
xlsx
:
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
,
xlsm
:
"application/vnd.ms-excel.sheet.macroEnabled.12"
,
xls
:
"application/vnd.ms-excel"
,
zip
:
"application/zip"
,
pdf
:
"application/pdf"
,
png
:
"image/png"
,
jpg
:
"image/jpeg"
,
docx
:
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
,
}
;
const
apiUrl
=
{
//exl
declareDataModel
:
'/bus-customer/declareData/downloadTemplate'
,
}
declareDataModel
:
"/bus-customer/declareData/downloadTemplate"
,
// 清单查询下载
listExport
:
"/bus-customer/exportList/listExport"
,
};
const
baseUrl
=
process
.
env
.
VUE_APP_BASE_API
const
baseUrl
=
process
.
env
.
VUE_APP_BASE_API
;
export
function
downLoadZip
(
urlStatus
,
str
,
filename
,
type
,
method
,
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
var
url
=
''
if
(
urlStatus
==
'api'
)
{
url
=
baseUrl
+
apiUrl
[
str
]
}
else
if
(
urlStatus
==
'res'
)
{
url
=
str
var
url
=
""
;
if
(
urlStatus
==
"api"
)
{
url
=
baseUrl
+
apiUrl
[
str
]
;
}
else
if
(
urlStatus
==
"res"
)
{
url
=
str
;
}
console
.
log
(
url
);
if
(
method
==
'get'
&&
data
)
{
url
=
url
+
'?'
;
if
(
method
==
"get"
&&
data
)
{
url
=
url
+
"?"
;
for
(
const
propName
of
Object
.
keys
(
data
))
{
const
value
=
data
[
propName
];
var
part
=
encodeURIComponent
(
propName
)
+
"="
;
if
(
value
!==
null
&&
typeof
(
value
)
!==
"undefined"
)
{
if
(
typeof
value
===
'object'
)
{
if
(
value
!==
null
&&
typeof
value
!==
"undefined"
)
{
if
(
typeof
value
===
"object"
)
{
for
(
const
key
of
Object
.
keys
(
value
))
{
let
params
=
propName
+
'['
+
key
+
']'
;
let
params
=
propName
+
"["
+
key
+
"]"
;
var
subPart
=
encodeURIComponent
(
params
)
+
"="
;
url
+=
subPart
+
encodeURIComponent
(
value
[
key
])
+
"&"
;
}
...
...
@@ -50,35 +51,39 @@ export function downLoadZip(urlStatus, str, filename, type, method, data) {
}
}
}
url
=
url
.
slice
(
0
,
-
1
)
url
=
url
.
slice
(
0
,
-
1
)
;
}
axios
({
method
:
method
,
url
:
url
,
data
:
data
,
responseType
:
'blob'
,
responseType
:
"blob"
,
headers
:
{
'Authorization'
:
'Bearer '
+
getToken
(),
"Ver"
:
process
.
env
.
VUE_APP_APIVERSION
,
}
}).
then
(
res
=>
{
if
(
filename
==
null
)
{
if
(
res
.
headers
[
'content-disposition'
])
{
var
patt
=
new
RegExp
(
'filename=([^;]+\\.[^\\.;]+);*'
)
var
contentDisposition
=
decodeURI
(
res
.
headers
[
'content-disposition'
])
var
result
=
patt
.
exec
(
contentDisposition
)
filename
=
result
[
0
].
split
(
'='
)[
1
]
}
else
{
filename
=
'error'
}
}
resolveBlob
(
res
,
mimeMap
[
type
],
filename
)
resolve
()
}).
catch
(()
=>
{
reject
()
Authorization
:
"Bearer "
+
getToken
(),
Ver
:
process
.
env
.
VUE_APP_APIVERSION
,
},
})
})
.
then
((
res
)
=>
{
if
(
filename
==
null
)
{
if
(
res
.
headers
[
"content-disposition"
])
{
var
patt
=
new
RegExp
(
"filename=([^;]+\\.[^\\.;]+);*"
);
var
contentDisposition
=
decodeURI
(
res
.
headers
[
"content-disposition"
]
);
var
result
=
patt
.
exec
(
contentDisposition
);
filename
=
result
[
0
].
split
(
"="
)[
1
];
}
else
{
filename
=
"error"
;
}
}
resolveBlob
(
res
,
mimeMap
[
type
],
filename
);
resolve
();
})
.
catch
(()
=>
{
reject
();
});
});
}
/**
* 解析blob响应内容并下载
...
...
@@ -86,14 +91,14 @@ export function downLoadZip(urlStatus, str, filename, type, method, data) {
* @param {String} mimeType MIME类型
*/
export
function
resolveBlob
(
res
,
mimeType
,
filename
)
{
const
aLink
=
document
.
createElement
(
'a'
)
var
blob
=
new
Blob
([
res
.
data
],
{
type
:
mimeType
})
const
aLink
=
document
.
createElement
(
"a"
);
var
blob
=
new
Blob
([
res
.
data
],
{
type
:
mimeType
})
;
if
(
blob
.
size
<
500
)
{
var
reader
=
new
FileReader
()
reader
.
readAsText
(
blob
,
'utf-8'
)
var
reader
=
new
FileReader
()
;
reader
.
readAsText
(
blob
,
"utf-8"
);
reader
.
onloadend
=
()
=>
{
// 获取文本内容并将其转换为JSON格式
if
(
reader
.
result
&&
reader
.
result
!=
null
&&
reader
.
result
!=
''
)
{
if
(
reader
.
result
&&
reader
.
result
!=
null
&&
reader
.
result
!=
""
)
{
// try {
// JSON.parse(reader.result)
// } catch (error) {
...
...
@@ -101,41 +106,51 @@ export function resolveBlob(res, mimeType, filename) {
// }
if
(
JSON
.
parse
(
reader
.
result
))
{
var
jsonData
=
JSON
.
parse
(
reader
.
result
);
alertWarningMsg
(
jsonData
.
message
)
alertWarningMsg
(
jsonData
.
message
)
;
}
else
{
alertWarningMsg
(
'文件无法下载,请重新生成后再试!'
)
alertWarningMsg
(
"文件无法下载,请重新生成后再试!"
);
}
}
else
{
alertWarningMsg
(
'文件无法下载,请重新生成后再试!'
)
alertWarningMsg
(
"文件无法下载,请重新生成后再试!"
);
}
}
}
;
}
else
{
// //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;
// var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
// var contentDisposition = decodeURI(res.headers['content-disposition'])
// var result = patt.exec(contentDisposition)
var
fileName
=
filename
fileName
=
fileName
.
replace
(
/
\"
/g
,
''
)
aLink
.
href
=
URL
.
createObjectURL
(
blob
)
aLink
.
setAttribute
(
'download'
,
fileName
)
// 设置下载文件名称
document
.
body
.
appendChild
(
aLink
)
aLink
.
click
()
var
fileName
=
filename
;
fileName
=
fileName
.
replace
(
/
\"
/g
,
""
);
aLink
.
href
=
URL
.
createObjectURL
(
blob
)
;
aLink
.
setAttribute
(
"download"
,
fileName
);
// 设置下载文件名称
document
.
body
.
appendChild
(
aLink
)
;
aLink
.
click
()
;
document
.
body
.
removeChild
(
aLink
);
}
}
export
function
downLoadFile
(
url
,
filename
,
type
)
{
const
aLink
=
document
.
createElement
(
'a'
)
const
fileName
=
filename
aLink
.
href
=
URL
.
createObjectURL
(
url
)
aLink
.
setAttribute
(
'download'
,
fileName
)
// 设置下载文件名称
document
.
body
.
appendChild
(
aLink
)
aLink
.
click
()
const
aLink
=
document
.
createElement
(
"a"
);
const
fileName
=
filename
;
aLink
.
href
=
URL
.
createObjectURL
(
url
)
;
aLink
.
setAttribute
(
"download"
,
fileName
);
// 设置下载文件名称
document
.
body
.
appendChild
(
aLink
)
;
aLink
.
click
()
;
document
.
body
.
removeChild
(
aLink
);
}
export
function
formDataDownload
(
str
,
filename
,
type
,
method
,
data
,
exportSign
)
{
store
.
dispatch
(
'SetLoadingType'
,
{
type
:
true
,
text
:
'正在导出中,请稍候!'
})
export
function
formDataDownload
(
str
,
filename
,
type
,
method
,
data
,
exportSign
)
{
store
.
dispatch
(
"SetLoadingType"
,
{
type
:
true
,
text
:
"正在导出中,请稍候!"
,
});
return
new
Promise
((
resolve
,
reject
)
=>
{
let
iframe
=
document
.
createElement
(
"iframe"
);
iframe
.
style
.
display
=
"none"
;
...
...
@@ -156,7 +171,7 @@ export function formDataDownload(str, filename, type, method, data, exportSign)
belongBizTypeInput
.
name
=
"downloadSreachData"
;
belongBizTypeInput
.
value
=
JSON
.
stringify
(
data
);
var
verInput
=
document
.
createElement
(
'input'
)
var
verInput
=
document
.
createElement
(
"input"
);
verInput
.
type
=
"hidden"
;
verInput
.
name
=
"Param_Ver"
;
verInput
.
value
=
process
.
env
.
VUE_APP_APIVERSION
;
...
...
@@ -169,11 +184,13 @@ export function formDataDownload(str, filename, type, method, data, exportSign)
document
.
getElementsByTagName
(
"body"
)[
0
].
removeChild
(
form
);
// 查询导出结果
// getType = setInterval(() => {
getDownLoadFileStatus
(
exportSign
).
then
(()
=>
{
resolve
()
}).
catch
(()
=>
{
reject
()
})
getDownLoadFileStatus
(
exportSign
)
.
then
(()
=>
{
resolve
();
})
.
catch
(()
=>
{
reject
();
});
// getdownloadExlFileType(exportSign).then((res) => {
// if (res.code == '200') {
// if (res.data.extra == 'true') {
...
...
@@ -193,7 +210,7 @@ export function formDataDownload(str, filename, type, method, data, exportSign)
// reject()
// })
// }, 1000);
})
})
;
}
//form.submit()导出xls/xlsx
...
...
@@ -205,23 +222,23 @@ export function formSubmitDownload(url, method, data, exportSign = null) {
document
.
getElementsByTagName
(
"body"
)[
0
].
appendChild
(
iframe
);
var
form
=
document
.
createElement
(
"form"
);
form
.
target
=
"formTarget"
;
form
.
action
=
baseUrl
+
apiUrl
[
url
]
form
.
method
=
method
form
.
action
=
baseUrl
+
apiUrl
[
url
]
;
form
.
method
=
method
;
if
(
data
)
{
let
domObj
=
{}
let
domObj
=
{}
;
data
.
forEach
((
item
,
i
)
=>
{
domObj
[
`input
${
i
}
`
]
=
document
.
createElement
(
"input"
);
domObj
[
`input
${
i
}
`
].
type
=
"hidden"
;
domObj
[
`input
${
i
}
`
].
name
=
item
.
key
;
domObj
[
`input
${
i
}
`
].
value
=
item
.
value
;
form
.
appendChild
(
domObj
[
`input
${
i
}
`
]);
})
})
;
var
tokenInput
=
document
.
createElement
(
"input"
);
tokenInput
.
type
=
"hidden"
;
tokenInput
.
name
=
"Param_Authorization"
;
tokenInput
.
value
=
getToken
();
form
.
appendChild
(
tokenInput
);
var
verInput
=
document
.
createElement
(
'input'
)
var
verInput
=
document
.
createElement
(
"input"
);
verInput
.
type
=
"hidden"
;
verInput
.
name
=
"Param_Ver"
;
verInput
.
value
=
process
.
env
.
VUE_APP_APIVERSION
;
...
...
@@ -231,13 +248,15 @@ export function formSubmitDownload(url, method, data, exportSign = null) {
form
.
submit
();
document
.
getElementsByTagName
(
"body"
)[
0
].
removeChild
(
form
);
if
(
exportSign
!=
null
)
{
getDownLoadFileStatus
(
exportSign
).
then
(()
=>
{
resolve
()
}).
catch
(()
=>
{
reject
()
})
getDownLoadFileStatus
(
exportSign
)
.
then
(()
=>
{
resolve
();
})
.
catch
(()
=>
{
reject
();
});
}
else
{
resolve
()
resolve
()
;
}
})
})
;
}
...
...
src/views/exportListQuery/custom-dialog.vue
0 → 100644
View file @
1957896
<template>
<el-dialog
class="entryDialog classCUploadDialog"
title="自定义内容"
:visible.sync="customVisible"
v-loading="dialogLoading"
:show-close="false"
width="700px"
:close-on-click-modal="false"
>
<div
style="
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 30px;
"
>
<div class="radio-group">
<el-radio-group v-model="radio" @change="radioChange">
<el-radio :label="3">物流运单编号维度</el-radio>
<el-radio :label="6">商品维度</el-radio>
</el-radio-group>
</div>
<template v-if="radio === 3">
<el-transfer
v-model="transferValue"
:data="logisticsWaybillDimension"
filterable
target-order="push"
:props="{ label: 'itemChineseName', key: 'itemValue' }"
:titles="['未选内容', '已选内容']"
></el-transfer>
</template>
<template v-if="radio === 6">
<el-transfer
v-model="transferValue1"
:data="commodityDetailDimension"
filterable
target-order="push"
:props="{ label: 'itemChineseName', key: 'itemValue' }"
:titles="['未选内容', '已选内容']"
></el-transfer>
</template>
</div>
<div class="dialogOption entrySave revokeOperation">
<el-button
class="entrySaveButton entrySaveButton-background revokeSubmitBtn"
type="primary"
@click="formSubmit"
>
确定
</el-button>
<el-button class="entrySaveButton" @click="cancelModify">关闭</el-button>
</div>
</el-dialog>
</template>
<script>
import { getDictData } from "@/api/system/dict-api.js";
import {
getCustomizeExcelFormat,
getCustomizeExcel,
} from "@/api/exportList-api.js";
export default {
props: {
showDialog: {
type: Boolean,
default: false,
},
selectedDatas: {
type: Array,
default: () => [],
},
},
data() {
const generateData = (_) => {
const data = [];
for (let i = 1; i <= 15; i++) {
data.push({
key: i,
label: `备选项 ${i}`,
disabled: i % 4 === 0,
});
}
return data;
};
return {
customVisible: false,
dialogLoading: false,
transferValue: [],
transferValue1: [],
data: generateData(),
radio: 3,
commodityDetailDimension: [],
logisticsWaybillDimension: [],
historyInfo: {},
};
},
watch: {
showDialog(val) {
if (val) {
this.customVisible = val;
this.getList();
}
},
},
created() {},
methods: {
async getList() {
// COMMODITY_DETAIL_DIMENSION 商品明细维度字典code
// LOGISTICS_WAYBILL_DIMENSION 物流运单编号维度字典code
await getDictData({
doctCode: "COMMODITY_DETAIL_DIMENSION",
}).then((res) => {
if (res.code === "200") {
this.commodityDetailDimension = res.data;
}
});
await getDictData({
doctCode: "LOGISTICS_WAYBILL_DIMENSION",
}).then((res) => {
if (res.code === "200") {
this.logisticsWaybillDimension = res.data;
}
});
await getCustomizeExcel({}).then((res) => {
if (res.code === "200") {
this.transferValue = res.data.defaultLogisticsWaybill;
this.transferValue1 = res.data.defaultCommodityDetail;
this.historyInfo = res.data;
this.$nextTick(() => {
this.commodityDetailDimension = this.commodityDetailDimension.map(
(item) => {
return {
...item,
disabled: res.data.defaultCommodityDetail.includes(
item.itemValue
),
};
}
);
this.logisticsWaybillDimension = this.logisticsWaybillDimension.map(
(item) => {
return {
...item,
disabled: res.data.defaultLogisticsWaybill.includes(
item.itemValue
),
};
}
);
});
}
});
},
radioChange(e) {
console.log(e);
if (e === 3) {
this.transferValue = this.historyInfo.defaultLogisticsWaybill;
} else if (e === 6) {
this.transferValue1 = this.historyInfo.defaultCommodityDetail;
}
},
formSubmit() {
let params = {
// 商品明细维度字段
commodityDetailDimension: {},
// 物流运单编号维度
logisticsWaybillDimension: {},
};
// 物流运单编号维度 3
params.logisticsWaybillDimension = this.transferValue.reduce(
(acc, item) => {
const dimension = this.logisticsWaybillDimension?.find(
(dim) => dim?.itemValue === item
);
if (dimension?.itemChineseName) {
acc[dimension.itemChineseName] = item;
}
return acc;
},
{}
);
params.commodityDetailDimension = this.transferValue1.reduce(
(acc, item) => {
const dimension = this.commodityDetailDimension?.find(
(dim) => dim?.itemValue === item
);
if (dimension?.itemChineseName) {
acc[dimension.itemChineseName] = item;
}
return acc;
},
{}
);
console.log("datas==", params);
getCustomizeExcelFormat(params)
.then((res) => {
if (res.code === "200") {
this.msgSuccess("修改成功");
this.cancelModify(1);
} else {
this.alertWarningMsg(res.message);
this.cancelModify(0);
}
})
.catch((err) => {
console.log(err);
this.alertWarningMsg(err.message);
this.cancelModify(0);
});
},
cancelModify(val) {
this.customVisible = false;
this.dialogLoading = false;
this.$emit("cancelModify", val);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/styles/variables.scss";
::v-deep {
.el-transfer-panel .el-checkbox__inner {
height: 17px;
width: 13px;
}
.el-button--primary,
.el-button--primary:hover,
.el-button--primary:focus {
color: #ff6200;
}
}
.revokeOperation {
margin-bottom: 25px;
.revokeSubmitBtn {
margin-right: 30px;
}
}
</style>
src/views/exportListQuery/index.vue
View file @
1957896
...
...
@@ -11,16 +11,6 @@
<!-- 物流运单编号 -->
<el-col :span="5">
<Formitem label="物流运单编号" prop="logisticsNo">
<!-- <el-input
type="text"
class="inputShadow"
id="inputInner--logisticsNo"
resize="none"
v-model="sreachFormData.logisticsNo"
clearable
placeholder=""
></el-input> -->
<FormTextareaInput
:formData="sreachFormData"
dataKey="logisticsNo"
...
...
@@ -40,11 +30,6 @@
clearable
placeholder=""
></el-input>
<!-- <FormTextareaInput
:formData="sreachFormData"
dataKey="billNo"
@formChange="formChange"
/> -->
</Formitem>
</el-col>
<!-- 订单编号 -->
...
...
@@ -181,23 +166,24 @@
</el-form>
<div class="optionButton">
<div>
<!-- <el-button class="entrySaveButton" size="small" @click="downloadData">
<svg-icon
class="el-icon-user-solid"
icon-class="customCodeConfig"
></svg-icon>
汇总申请单
</el-button> -->
</div>
<div>
<!-- <el-button
<el-button
size="small"
type="primary"
class="dropdown-style-button"
@click="customDialogShow = true"
>
<svg-icon class="el-icon-user-solid" icon-class="zidingyi"></svg-icon>
自定义内容
</el-button>
<el-button
class="entrySaveButton"
size="small"
icon="el-icon-download"
@click="downloadData"
>
导出
</el-button>
-->
</el-button>
</div>
</div>
<Table
...
...
@@ -235,30 +221,36 @@
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">提单运号:</span
>
{{ scope.row.billNo }}
<span style="font-weight: 700; color: #515a6e">提单运号:</span
>
{{ scope.row.billNo }}
</div>
<div slot="buttonLabel">
{{ scope.row.returnStatus }}
</div>
</TablePopover>
</template>
<template v-slot:
logistics
No="scope">
<el-button type="text" @click="view(scope.row)">
{{
scope.row.logisticsNo
}}
</el-button>
<template v-slot:
bill
No="scope">
<el-button type="text" @click="view(scope.row)">
{{ scope.row.billNo }}
</el-button>
</template>
</Table>
<CustomDialog :showDialog="customDialogShow" @cancelModify="cancelModify" />
</div>
</template>
<script>
import { getAllexportList, getListReceiptData } from "@/api/exportList-api.js";
import CustomDialog from "./custom-dialog.vue";
export default {
name: "ExportBillQuery",
components: {
CustomDialog,
},
data() {
return {
customDialogShow: false,
sreachFormData: {
billNo: "",
ebpcode: "",
...
...
@@ -284,15 +276,15 @@ export default {
slot: true,
},
{
name: "
物流运单编
号",
value: "
logistics
No",
name: "
提运单
号",
value: "
bill
No",
width: "",
align: "left",
slot: true,
},
{
name: "
提运单
号",
value: "
bill
No",
name: "
物流运单编
号",
value: "
logistics
No",
width: "",
align: "left",
},
...
...
@@ -388,6 +380,9 @@ export default {
},
},
methods: {
cancelModify() {
this.customDialogShow = false;
},
//查询
search(val) {
this.loadings.searchLoading = true;
...
...
@@ -439,7 +434,35 @@ export default {
};
},
//导出
downloadData() {},
downloadData() {
let obj = { ...this.sreachFormData };
obj.pageIndex = this.page.pageIndex;
obj.pageSize = this.page.pageSize;
obj.createTimeStart = "";
obj.createTimeEnd = "";
if (obj.createTime.length > 0) {
obj.createTimeStart = obj.createTime[0];
obj.createTimeEnd = obj.createTime[1];
}
delete obj.createTime;
if (obj.logisticsNo != null && obj.logisticsNo != "") {
obj.logisticsNo = obj.logisticsNo.split("\n");
} else {
obj.logisticsNo = [];
}
// getListExport(obj).then((res) => {
// // 2. 清单查询
// console.log(res);
// });
this.fileDownload
.downLoadZip("api", "listExport", "清单查询.xlsx", "xlsx", "post", {
...obj,
})
.finally(() => {
this.cancelDownload();
});
},
//查询详情
view(val) {
this.$router.push({
...
...
@@ -543,7 +566,8 @@ export default {
padding: 10px;
text-align: right;
display: flex;
justify-content: space-between;
justify-content: flex-end;
gap: 10px;
.el-button {
color: $fedexButton;
...
...
@@ -562,6 +586,18 @@ export default {
background-color: $fedexButton !important;
}
}
/* 使按钮样式与 el-dropdown 一致 */
.el-button.dropdown-style-button {
background-color: #ffffff !important;
border: 2px solid $fedexBottonColor !important; /* 设置边框颜色 */
color: $fedexBottonColor !important;
font-size: 12px !important;
}
.el-button.dropdown-style-button:hover,
.el-button.dropdown-style-button:focus {
color: #ffffff !important;
background-color: $fedexBottonColor !important;
}
}
.texttareaTip {
...
...
src/views/listBranchQuery/index.vue
View file @
1957896
...
...
@@ -48,7 +48,11 @@
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.RECEIPT_STATUS.filter(fItem => fItem.itemChineseName !== '已提交')"
v-for="(
item, index
) in $store.getters.dict.RECEIPT_STATUS.filter(
(fItem) => fItem.itemChineseName !== '已提交'
)"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
...
...
@@ -146,10 +150,10 @@
</div>
</TablePopover>
</template>
<template v-slot:
logistics
No="scope">
<template v-slot:
bill
No="scope">
<el-button type="text" @click="view(scope.row)">{{
scope.row.logistics
No
}}</el-button>
scope.row.bill
No
}}</el-button>
</template>
</Table>
</div>
...
...
@@ -187,15 +191,15 @@ export default {
slot: true,
},
{
name: "
物流运单编
号",
value: "
logistics
No",
name: "
提运单
号",
value: "
bill
No",
width: "",
align: "left",
slot: true
slot: true
,
},
{
name: "
提运单
号",
value: "
bill
No",
name: "
物流运单编
号",
value: "
logistics
No",
width: "",
align: "left",
},
...
...
@@ -359,7 +363,7 @@ export default {
})
.finally(() => {
this.$nextTick(() => {
this.$store.dispatch(
'setLoadingState', false)
this.$store.dispatch(
"setLoadingState", false);
this.$refs.returnStatusPopover.tableLoading = false;
});
});
...
...
src/views/reportingData/index.vue
View file @
1957896
...
...
@@ -535,6 +535,12 @@ export default {
align: "left",
},
{
name: "航班号",
value: "flightNumber",
width: "",
align: "left",
},
{
name: "物流运单编号",
value: "logisticsWaybillNumber",
width: "",
...
...
@@ -976,7 +982,7 @@ export default {
declareIds: this.selected.map((item) => item.declareId),
type: dropdownCode,
};
if (dropdownName === "
一键申报" || dropdownName === "
清单总分单申报") {
if (dropdownName === "清单总分单申报") {
this.dataPreviewVisible = true;
this.dataPreviewTitle = `预览-${dropdownName}`;
this.currentLoadingKey = loadingKey;
...
...
src/views/reportingData/weight-adjust.vue
View file @
1957896
...
...
@@ -5,7 +5,7 @@
:visible.sync="batchModifyVisible"
v-loading="dialogLoading"
:show-close="false"
width="
55
0px"
width="
70
0px"
:close-on-click-modal="false"
>
<div>
...
...
@@ -17,56 +17,68 @@
label-position="left"
size="small"
>
<Formitem label="提运单号" prop="billNo" type="edit">
<el-input
type="text"
id="inputInner-edit-billNo"
class="inputShadow"
resize="none"
v-model="weightForm.billNo"
clearable
placeholder="请输入提运单号"
@change="inputChange"
></el-input>
</Formitem>
<Formitem label="件数" prop="count" type="edit">
<el-input
type="text"
id="inputInner-edit-count"
class="inputShadow"
resize="none"
v-model="weightForm.count"
clearable
disabled
placeholder="请输入件数"
></el-input>
</Formitem>
<Formitem label="原毛重" prop="totalWeight" type="edit">
<el-input
type="text"
id="inputInner-edit-totalWeight"
class="inputShadow"
resize="none"
v-model="weightForm.totalWeight"
clearable
disabled
placeholder="请输入原毛重"
></el-input>
</Formitem>
<Formitem label="修改后毛重" prop="weight" type="edit">
<el-input
type="text"
id="inputInner-edit-weight"
class="inputShadow"
resize="none"
v-model="weightForm.weight"
clearable
placeholder="请输入修改后毛重"
@change="weightChange"
></el-input>
</Formitem>
<Formitem label="" prop="content" type="edit">
<!-- <el-input
<el-row :gutter="5">
<el-col :span="16">
<Formitem label="提运单号" prop="billNo" type="edit">
<el-input
type="text"
id="inputInner-edit-billNo"
class="inputShadow"
resize="none"
v-model="weightForm.billNo"
clearable
placeholder="请输入提运单号"
@change="inputChange"
></el-input>
</Formitem>
</el-col>
<el-col :span="8">
<Formitem label="件数" prop="count" type="edit">
<el-input
type="text"
id="inputInner-edit-count"
class="inputShadow"
resize="none"
v-model="weightForm.count"
clearable
disabled
placeholder="请输入件数"
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="12">
<Formitem label="原毛重" prop="totalWeight" type="edit">
<el-input
type="text"
id="inputInner-edit-totalWeight"
class="inputShadow"
resize="none"
v-model="weightForm.totalWeight"
clearable
disabled
placeholder="请输入原毛重"
></el-input>
</Formitem>
</el-col>
<el-col :span="12">
<Formitem label="修改后毛重" prop="weight" type="edit">
<el-input
type="text"
id="inputInner-edit-weight"
class="inputShadow"
resize="none"
v-model="weightForm.weight"
clearable
placeholder="请输入修改后毛重"
@change="weightChange"
></el-input>
</Formitem>
</el-col>
<el-col :span="24">
<Formitem label="" prop="content" type="edit">
<!-- <el-input
type="textarea"
id="inputInner-edit-content"
class="inputShadow"
...
...
@@ -76,13 +88,15 @@
clearable
placeholder="请输入修改内容"
></el-input> -->
<div class="form-item-tips">
<h2>修改内容</h2>
<div>
{{ weightForm.content }}
</div>
</div>
</Formitem>
<div class="form-item-tips">
<h2>修改内容</h2>
<div>
{{ weightForm.content }}
</div>
</div>
</Formitem>
</el-col>
</el-row>
</el-form>
</div>
<div class="dialogOption entrySave revokeOperation">
...
...
Please
register
or
login
to post a comment