提交 776f1603 authored 作者: 王鹏飞's avatar 王鹏飞

feat(order): 订单新增导出

上级 085c3de0
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"dayjs": "^1.10.5", "dayjs": "^1.10.5",
"element-ui": "^2.15.2", "element-ui": "^2.15.2",
"js-file-download": "^0.4.12",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"qrcode.vue": "^1.7.0", "qrcode.vue": "^1.7.0",
"vue": "^2.6.12", "vue": "^2.6.12",
...@@ -7556,6 +7557,11 @@ ...@@ -7556,6 +7557,11 @@
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
"dev": true "dev": true
}, },
"node_modules/js-file-download": {
"version": "0.4.12",
"resolved": "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.12.tgz",
"integrity": "sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg=="
},
"node_modules/js-tokens": { "node_modules/js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
...@@ -19703,6 +19709,11 @@ ...@@ -19703,6 +19709,11 @@
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
"dev": true "dev": true
}, },
"js-file-download": {
"version": "0.4.12",
"resolved": "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.12.tgz",
"integrity": "sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg=="
},
"js-tokens": { "js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
......
...@@ -77,6 +77,7 @@ ...@@ -77,6 +77,7 @@
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"dayjs": "^1.10.5", "dayjs": "^1.10.5",
"element-ui": "^2.15.2", "element-ui": "^2.15.2",
"js-file-download": "^0.4.12",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"qrcode.vue": "^1.7.0", "qrcode.vue": "^1.7.0",
"vue": "^2.6.12", "vue": "^2.6.12",
......
...@@ -39,3 +39,10 @@ export function orderSearch(data) { ...@@ -39,3 +39,10 @@ export function orderSearch(data) {
export function getOrderLogs(data) { export function getOrderLogs(data) {
return httpRequest.post('/api/shop/order/logs/search', data) return httpRequest.post('/api/shop/order/logs/search', data)
} }
/**
* 导出订单
*/
export function exportOrder(data) {
return httpRequest.post('/api/shop/order/range/search/download', data, { responseType: 'blob' })
}
...@@ -8,6 +8,11 @@ ...@@ -8,6 +8,11 @@
border border
ref="list" ref="list"
> >
<div class="tab-aside">
<div class="tab-aside-buttons">
<el-button type="primary" size="medium" @click="handleExport">导出</el-button>
</div>
</div>
<el-tabs v-model="activeName" type="card" @tab-click="handleClick"> <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane :label="item.label" :name="item.value" v-for="item in orderStatus" :key="item.value"></el-tab-pane> <el-tab-pane :label="item.label" :name="item.value" v-for="item in orderStatus" :key="item.value"></el-tab-pane>
</el-tabs> </el-tabs>
...@@ -80,12 +85,13 @@ ...@@ -80,12 +85,13 @@
<script> <script>
import dayjs from 'dayjs' import dayjs from 'dayjs'
import fileDownload from 'js-file-download'
// 组件 // 组件
import TableList from '@/components/base/tableList' import TableList from '@/components/base/tableList'
import AppCard from '@/components/base/card' import AppCard from '@/components/base/card'
import GoodsItem from '@/components/goods/goodsItem' import GoodsItem from '@/components/goods/goodsItem'
// 接口 // 接口
import { getOrderSearchList } from '@/api/order' import { getOrderSearchList, exportOrder } from '@/api/order'
export default { export default {
components: { AppCard, TableList, GoodsItem }, components: { AppCard, TableList, GoodsItem },
data() { data() {
...@@ -103,7 +109,14 @@ export default { ...@@ -103,7 +109,14 @@ export default {
], ],
orderStartTime: '', orderStartTime: '',
orderEndTime: '', orderEndTime: '',
orderActiveDay: '' orderActiveDay: '',
params: {
shop_id: this.$store.state.shopId,
search_field: 'spu_name',
search_value: '',
order_status: '',
payment_method: ''
}
} }
}, },
computed: { computed: {
...@@ -112,13 +125,7 @@ export default { ...@@ -112,13 +125,7 @@ export default {
return { return {
remote: { remote: {
httpRequest: getOrderSearchList, httpRequest: getOrderSearchList,
params: { params: this.params,
shop_id: this.$store.state.shopId,
search_field: 'spu_name',
search_value: '',
order_status: '',
payment_method: ''
},
beforeRequest: this.beforeRequest, beforeRequest: this.beforeRequest,
callback: this.callback callback: this.callback
}, },
...@@ -226,6 +233,13 @@ export default { ...@@ -226,6 +233,13 @@ export default {
} }
return map[value] || value return map[value] || value
}, },
// 导出
handleExport() {
exportOrder(this.params).then(response => {
const datetime = dayjs().format('YYYY-MM-DD-HH-mm-ss')
fileDownload(response, `Order_zijing_${datetime}.csv`)
})
},
// tab // tab
handleClick() { handleClick() {
this.$refs.list.refetch(true) this.$refs.list.refetch(true)
...@@ -257,6 +271,14 @@ export default { ...@@ -257,6 +271,14 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.tab-aside {
position: relative;
z-index: 10;
}
.tab-aside-buttons {
position: absolute;
right: 0;
}
::v-deep .filter-buttons { ::v-deep .filter-buttons {
display: block; display: block;
padding-left: 68px; padding-left: 68px;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论