切换导航条
此项目
正在载入...
登录
朱兆平
/
vue_cli
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
xudada
5 months ago
提交
9b1966ed179f5acf92af12c081526e3a0ea5c3b4
1 个父辈
31b5c6c6
电子运单结算导出
显示空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
177 行增加
和
0 行删除
src/api/remote_interface/byont_import.js
src/routes.js
src/views/nav3/statistics.vue
src/api/remote_interface/byont_import.js
查看文件 @
9b1966e
...
...
@@ -32,6 +32,9 @@ export const addTeleAddr = params => {return axios.post(`${base1}/teleaddr/addTe
export
const
delTeleAddr
=
params
=>
{
return
http
.
get
(
`
$
{
base1
}
/teleaddr/
delTeleAddr
`
,
params
);};
export
const
ediTeleAddr
=
params
=>
{
return
axios
.
post
(
`
$
{
base1
}
/teleaddr/
ediTeleAddr
`
,
params
);};
export
const
selectLists
=
params
=>
{
return
http
.
get
(
`
$
{
base1
}
/teleaddr/
selectLists
`
,
params
);};
//结算统计
export
const
selectStatistics
=
params
=>
{
return
http
.
get
(
`
$
{
base1
}
/efre/
selectStatistics
`
,
params
);};
...
...
src/routes.js
查看文件 @
9b1966e
...
...
@@ -189,6 +189,7 @@ import TeleAddr from "./views/nav3/TeleAddr.vue";
//朱总让做的网页在线客服
import
Webdialog
from
'./views/bus/Webdialog.vue'
import
C6Way
from
'./views/nav3/C6Way.vue'
import
DBstatistics
from
'./views/nav3/statistics.vue'
//转运申请
import
Transport
from
'./views/nav4/Transport.vue'
...
...
@@ -276,6 +277,7 @@ let routes = [
{
path
:
'/Webdialog'
,
component
:
Webdialog
,
name
:
'在线客服'
},
{
path
:
'/TeleAddr'
,
component
:
TeleAddr
,
name
:
'电报地址'
},
{
path
:
'/C6Way'
,
component
:
C6Way
,
name
:
'C6货运单'
},
{
path
:
'/DBstatistics'
,
component
:
DBstatistics
,
name
:
'结算统计'
},
]
},
{
...
...
src/views/nav3/statistics.vue
0 → 100644
查看文件 @
9b1966e
<template>
<div>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="">
<div class="block">
<el-date-picker
size="medium"
v-model="value2"
type="datetimerange"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right">
</el-date-picker>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" size="medium" @click="onSubmit">查询</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" size="medium" @click="exportToExcel">导出</el-button>
</el-form-item>
</el-form>
<div style="margin-bottom: 10px"><span style="color: red">总计: {{ totalItems }} 主单: {{ emptyAwbhCount }} 分单: {{ nonEmptyAwbhCount }}</span></div>
<div>
<el-table
size="medium"
:data="tableData"
border
style="width: 100%">
<el-table-column
prop="awba"
label="主单号"
width="180">
</el-table-column>
<el-table-column
prop="awbh"
label="分单号"
width="180">
</el-table-column>
<el-table-column
prop="billtype"
label="单证类型">
</el-table-column>
<el-table-column
prop="costs"
label="应结费用">
</el-table-column>
<el-table-column
prop="flightdate"
label="航班日期">
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import {
selectStatistics
} from '../../api/remote_interface/byont_import';
import XLSX from 'xlsx';
import { saveAs } from 'file-saver';
import moment from 'moment';
export default {
data() {
return {
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
value2: '',
tableData: [],
query:{
starttime:'',
endtime:''
},
formInline:{},
columns: [
{ prop: 'awba', label: '主单号' },
{ prop: 'awbh', label: '分单号' },
{ prop: 'billtype', label: '单证类型' },
{ prop: 'costs', label: '应结费用' },
{ prop: 'flightdate', label: '航班日期' }
]
};
},
computed: {
totalItems() {
return this.tableData.length;
},
emptyAwbhCount() {
return this.tableData.filter(item => !item.awbh).length;
},
nonEmptyAwbhCount() {
return this.tableData.filter(item => item.awbh).length;
}
},
methods:{
onSubmit(){
if(this.value2 !== null && this.value2 !== ""){
this.query.starttime = this.value2[0];
this.query.endtime = this.value2[1];
}else{
return this.$message.error('请选取时间段!')
}
selectStatistics(this.query).then((response) => {
const res = response.data
if (res.code !== '200') {
return this.$message.error('获取消息收发记录,失败!')
}
// 获取列表数据
this.tableData = res.data;
this.$message.success('获取消息收发记录,成功!');
}).catch(error => {
// 关闭加载
this.$message.error(error.toString())
})
},
exportToExcel() {
// 创建一个新的工作簿
const wb = XLSX.utils.book_new();
// 创建一个自定义的头部数组,按照 columns 中的顺序和 label
const header = this.columns.map(col => col.label);
// 将 tableData 转换成二维数组,并添加到 worksheet 中
const data = this.tableData.map(row => this.columns.map(col => row[col.prop]));
// 使用 XLSX.utils.aoa_to_sheet 创建工作表,指定头部
const ws = XLSX.utils.aoa_to_sheet([header, ...data]);
// 添加 worksheet 到 workbook
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
// 生成 Excel 文件并下载
const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
const blob = new Blob([wbout], { type: 'application/octet-stream' });
// 计算明天的日期
const tomorrow = moment().add(1, 'days').format('M月D日');
// 使用 file-saver 保存文件,并使用明天的日期作为文件名
saveAs(blob, `${tomorrow}航班结算统计.xlsx`);
}
}
};
</script>
...
...
请
注册
或
登录
后发表评论