| New file |
| | |
| | | <template> |
| | | <div class="mod-totalWithdrawalStatement"> |
| | | <el-form |
| | | :inline="true" |
| | | :model="dataForm" |
| | | @keyup.enter.native="getDataList(this.page)" |
| | | > |
| | | <el-form-item label="支付方式类型:"> |
| | | <template> |
| | | <el-select v-model="dataForm.status" clearable placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-form-item> |
| | | <el-form-item label="支付方式名称:"> |
| | | <el-input |
| | | v-model="dataForm.orderNumber" |
| | | placeholder="支付方式名称" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="small" |
| | | @click="getDataList()" |
| | | >查询</el-button |
| | | > |
| | | <el-button type="primary" size="small" @click="showConsignmentInfo()" |
| | | >+新增支付方式模板</el-button |
| | | > |
| | | <el-button type="primary" size="small" @click="showConsignmentInfo()" |
| | | >+支付方式类型 多语言配置</el-button |
| | | > |
| | | <el-button @click="clearDatas()" size="small">清空</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="main"> |
| | | <div class="content"> |
| | | <!-- <div class="tit"> |
| | | <el-row style="width:100%"> |
| | | <el-col :span="6"><span class="item product">支付方式类型</span></el-col> |
| | | <el-col :span="6"><span class="item">支付方式名称</span></el-col> |
| | | <el-col :span="6"><span class="item">支付方式图片</span></el-col> |
| | | <el-col :span="6"><span class="item">参数1</span></el-col> |
| | | |
| | | </el-row> |
| | | </div> --> |
| | | <el-table :data="tableData" style="width: 100%;text-align: center;"> |
| | | <el-table-column prop="date" label="充提" width="150"> |
| | | <el-table-column prop="name" label="充值" width="120"> |
| | | <el-table-column prop="name" label="USDT" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="BTC" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="ETH" width="120"> |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="提现" width="120"> |
| | | <el-table-column prop="name" label="USDT" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="BTC" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="ETH" width="120"> |
| | | </el-table-column> |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column label="交易盈亏"> |
| | | </el-table-column> |
| | | <el-table-column label="手续费"> |
| | | </el-table-column> |
| | | <el-table-column label="总收益"> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="prod" v-for="order in dataList" :key="order.orderId"> |
| | | <div class="prod-tit"> |
| | | <span>订单编号:{{ order.orderNumber }}</span> |
| | | <span>下单时间:{{ order.createTime }}</span> |
| | | <!-- <span>买家:19999999999</span> |
| | | <span >联系电话:19999999999</span> --> |
| | | </div> |
| | | <div class="prod-cont"> |
| | | <el-row style="width: 100%"> |
| | | <el-col :span="12"> |
| | | <div class="prod-item"> |
| | | <div |
| | | class="items name" |
| | | v-for="orderItem in order.orderItems" |
| | | :key="orderItem.orderItemId" |
| | | > |
| | | <div class="prod-image"> |
| | | <img |
| | | :src="resourcesUrl + orderItem.pic" |
| | | style="height: 100px; width: 100px" |
| | | /> |
| | | </div> |
| | | <div class="prod-name"> |
| | | <span>{{ orderItem.prodName }}</span> |
| | | <span class="prod-info">{{ orderItem.skuName }}</span> |
| | | </div> |
| | | <div class="prod-price"> |
| | | <span>¥{{ orderItem.price }}</span> |
| | | <span>×{{ orderItem.prodCount }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3" style="height: 100%"> |
| | | <div class="item"> |
| | | <div> |
| | | <span class="totalprice">¥{{ order.actualTotal }}</span> |
| | | <span v-if="order.freightAmount" |
| | | >(含运费:¥{{ order.freightAmount }})</span |
| | | > |
| | | <span>共{{ order.productNums }}件</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3" style="height: 100%"> |
| | | <div class="item"> |
| | | <div> |
| | | <span v-if="order.payType === 1">微信支付</span> |
| | | <span v-else-if="order.payType === 2">支付宝</span> |
| | | <span v-else>手动代付</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3" style="height: 100%"> |
| | | <div class="item"> |
| | | <span v-if="order.status === 1" size="small" type="danger" |
| | | >待付款</span |
| | | > |
| | | <span |
| | | v-else-if="order.status === 2" |
| | | size="small" |
| | | type="danger" |
| | | >待发货</span |
| | | > |
| | | <span |
| | | v-else-if="order.status === 3" |
| | | size="small" |
| | | type="danger" |
| | | >待收货</span |
| | | > |
| | | <span |
| | | v-else-if="order.status === 4" |
| | | size="small" |
| | | type="danger" |
| | | >待评价</span |
| | | > |
| | | <span |
| | | v-else-if="order.status === 5" |
| | | size="small" |
| | | type="danger" |
| | | >成功</span |
| | | > |
| | | <span v-else size="small">失败</span> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3" style="height: 100%"> |
| | | <div class="item"> |
| | | <div class="operate"> |
| | | <!-- <button onclick="">打印订单</button><br> --> |
| | | <el-button |
| | | v-if="isAuth('order:order:update')" |
| | | type="text" |
| | | size="small" |
| | | @click="addOrUpdateHandle(order.orderNumber)" |
| | | >查看</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="remark"> |
| | | <div class="buyer-remark"> |
| | | <span>备注:{{ order.remarks }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 空 --> |
| | | <div class="empty-tips">暂无数据</div> |
| | | <el-pagination |
| | | @size-change="sizeChangeHandle" |
| | | @current-change="currentChangeHandle" |
| | | :current-page="page.pageIndex" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :page-size="page.pageSize" |
| | | :total="page.total" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | > |
| | | </el-pagination> |
| | | <!-- 弹窗, 新增 / 修改 --> |
| | | <add-or-update |
| | | v-if="addOrUpdateVisible" |
| | | ref="addOrUpdate" |
| | | @refreshDataList="getDataList" |
| | | ></add-or-update> |
| | | <consignment-info |
| | | v-if="consignmentInfoVisible" |
| | | ref="consignmentInfo" |
| | | @inputCallback="getWaitingConsignmentExcel" |
| | | ></consignment-info> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import AddOrUpdate from "./orderInfo"; |
| | | import ConsignmentInfo from "./consignment-info"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | tableData:[], |
| | | dataForm: {}, |
| | | dateRange: [], |
| | | activeName: "1", |
| | | options: [ |
| | | { |
| | | value: 1, |
| | | label: "所有支付方式类型", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "银行卡", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "虚拟货币", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "微信", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "支付宝", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "PayPal", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "西联汇款", |
| | | }, |
| | | { |
| | | value: 8, |
| | | label: "SWIFT国际汇款", |
| | | }, |
| | | { |
| | | value: 9, |
| | | label: "其他", |
| | | }, |
| | | ], |
| | | resourcesUrl: process.env.VUE_APP_RESOURCES_URL, |
| | | dataList: [], |
| | | page: { |
| | | total: 0, // 总页数 |
| | | currentPage: 1, // 当前页数 |
| | | pageSize: 10, // 每页显示多少条 |
| | | }, |
| | | dataListLoading: false, |
| | | dataListSelections: [], |
| | | addOrUpdateVisible: false, |
| | | consignmentInfoVisible: false, |
| | | }; |
| | | }, |
| | | components: { |
| | | AddOrUpdate, |
| | | ConsignmentInfo, |
| | | }, |
| | | activated() { |
| | | this.getDataList(this.page); |
| | | }, |
| | | methods: { |
| | | // 获取数据列表 |
| | | getDataList(page, params, done) { |
| | | page = page === undefined ? this.page : page; |
| | | this.dataListLoading = true; |
| | | this.$http({ |
| | | url: this.$http.adornUrl("/order/order/page"), |
| | | method: "get", |
| | | params: this.$http.adornParams( |
| | | Object.assign( |
| | | { |
| | | current: page == null ? this.page.currentPage : page.currentPage, |
| | | size: page == null ? this.page.pageSize : page.pageSize, |
| | | orderNumber: this.dataForm.orderNumber, |
| | | status: this.dataForm.status, |
| | | startTime: this.dateRange === null ? null : this.dateRange[0], // 开始时间 |
| | | endTime: this.dateRange === null ? null : this.dateRange[1], // 结束时间 |
| | | }, |
| | | params |
| | | ), |
| | | false |
| | | ), |
| | | }).then(({ data }) => { |
| | | this.dataList = data.records; |
| | | this.page.total = data.total; |
| | | this.dataListLoading = false; |
| | | if (done) { |
| | | done(); |
| | | } |
| | | }); |
| | | }, |
| | | // 清除数据 |
| | | clearDatas() { |
| | | this.dataForm = {}; |
| | | this.dateRange = []; |
| | | }, |
| | | // 每页数 |
| | | sizeChangeHandle(val) { |
| | | this.page.pageSize = val; |
| | | this.page.currentPage = 1; |
| | | this.getDataList(this.page); |
| | | }, |
| | | // 当前页 |
| | | currentChangeHandle(val) { |
| | | this.page.currentPage = val; |
| | | this.getDataList(this.page); |
| | | }, |
| | | // 多选 |
| | | selectionChangeHandle(val) { |
| | | this.dataListSelections = val; |
| | | }, |
| | | orderStatus() {}, |
| | | // 新增 / 修改 |
| | | addOrUpdateHandle(val) { |
| | | this.addOrUpdateVisible = true; |
| | | this.$nextTick(() => { |
| | | this.$refs.addOrUpdate.init(val); |
| | | }); |
| | | }, |
| | | // 删除 |
| | | deleteHandle(id) { |
| | | var ids = id |
| | | ? [id] |
| | | : this.dataListSelections.map((item) => { |
| | | return item.orderId; |
| | | }); |
| | | this.$confirm(`确定进行[${id ? "删除" : "批量删除"}]操作?`, "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | this.$http({ |
| | | url: this.$http.adornUrl(`/prod/spec/${ids}`), |
| | | method: "delete", |
| | | data: this.$http.adornData(ids, false), |
| | | }).then(({ data }) => { |
| | | this.$message({ |
| | | message: "操作成功", |
| | | type: "success", |
| | | duration: 1500, |
| | | onClose: () => { |
| | | this.getDataList(this.page); |
| | | }, |
| | | }); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | showConsignmentInfo() { |
| | | this.consignmentInfoVisible = true; |
| | | this.$nextTick(() => { |
| | | this.$refs.consignmentInfo.init(); |
| | | }); |
| | | }, |
| | | getWaitingConsignmentExcel(consignmentInfo) { |
| | | this.$http({ |
| | | url: this.$http.adornUrl("/order/order/waitingConsignmentExcel"), |
| | | method: "get", |
| | | params: this.$http.adornParams({ |
| | | consignmentName: consignmentInfo.consignmentName, |
| | | consignmentMobile: consignmentInfo.consignmentMobile, |
| | | consignmentAddr: consignmentInfo.consignmentAddr, |
| | | startTime: this.dateRange === null ? null : this.dateRange[0], // 开始时间 |
| | | endTime: this.dateRange === null ? null : this.dateRange[1], // 结束时间 |
| | | }), |
| | | responseType: "blob", // 解决文件下载乱码问题 |
| | | }).then(({ data }) => { |
| | | var blob = new Blob([data], { |
| | | type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8", |
| | | }); |
| | | const fileName = "待发货信息整理.xls"; |
| | | const elink = document.createElement("a"); |
| | | if ("download" in elink) { |
| | | // 非IE下载 |
| | | elink.download = fileName; |
| | | elink.style.display = "none"; |
| | | elink.href = URL.createObjectURL(blob); |
| | | document.body.appendChild(elink); |
| | | elink.click(); |
| | | URL.revokeObjectURL(elink.href); // 释放URL 对象 |
| | | document.body.removeChild(elink); |
| | | } else { |
| | | // IE10+下载 |
| | | navigator.msSaveBlob(blob, fileName); |
| | | } |
| | | }); |
| | | }, |
| | | getSoldExcel() { |
| | | this.$http({ |
| | | url: this.$http.adornUrl("/order/order/soldExcel"), |
| | | method: "get", |
| | | params: this.$http.adornParams({ |
| | | startTime: this.dateRange === null ? null : this.dateRange[0], // 开始时间 |
| | | endTime: this.dateRange === null ? null : this.dateRange[1], // 结束时间 |
| | | }), |
| | | responseType: "blob", // 解决文件下载乱码问题 |
| | | }).then(({ data }) => { |
| | | var blob = new Blob([data], { |
| | | type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8", |
| | | }); |
| | | const fileName = "销售信息整理.xls"; |
| | | const elink = document.createElement("a"); |
| | | if ("download" in elink) { |
| | | // 非IE下载 |
| | | elink.download = fileName; |
| | | elink.style.display = "none"; |
| | | elink.href = URL.createObjectURL(blob); |
| | | document.body.appendChild(elink); |
| | | elink.click(); |
| | | URL.revokeObjectURL(elink.href); // 释放URL 对象 |
| | | document.body.removeChild(elink); |
| | | } else { |
| | | // IE10+下载 |
| | | navigator.msSaveBlob(blob, fileName); |
| | | } |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .mod-totalWithdrawalStatement { |
| | | .tit { |
| | | display: flex; |
| | | height: 45px; |
| | | align-items: center; |
| | | background: #323338; |
| | | color: #ffffff; |
| | | } |
| | | .tit .item { |
| | | padding: 0 10px; |
| | | width: 10%; |
| | | text-align: center; |
| | | } |
| | | .tit .product { |
| | | width: 25%; |
| | | } |
| | | .prod-tit { |
| | | padding: 10px; |
| | | background: #f8f8f9; |
| | | border-left: 1px solid #dddee1; |
| | | border-top: 1px solid #dddee1; |
| | | border-right: 1px solid #dddee1; |
| | | } |
| | | .prod-tit span { |
| | | margin-right: 15px; |
| | | } |
| | | .prod-cont { |
| | | display: flex; |
| | | border-top: 1px solid #dddee1; |
| | | border-bottom: 1px solid #dddee1; |
| | | border-left: 1px solid #dddee1; |
| | | color: #495060; |
| | | } |
| | | .prod-cont .item { |
| | | display: flex; |
| | | display: -webkit-flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 10px; |
| | | // width: 10%; |
| | | border-right: 1px solid #dddee1; |
| | | text-align: center; |
| | | height: 100%; |
| | | } |
| | | .prod-cont .item span { |
| | | display: block; |
| | | } |
| | | .prod-cont .prod-item { |
| | | // width: 38%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | border-right: 1px solid #dddee1; |
| | | } |
| | | .prod-name { |
| | | width: 55%; |
| | | text-align: left; |
| | | } |
| | | .prod-price { |
| | | position: absolute; |
| | | right: 40px; |
| | | text-align: right; |
| | | } |
| | | .prod-price span { |
| | | display: block; |
| | | margin-bottom: 10px; |
| | | } |
| | | .prod-name .prod-info { |
| | | display: block; |
| | | color: #80848f; |
| | | margin-top: 30px; |
| | | } |
| | | .prod-cont .items.name { |
| | | display: flex; |
| | | position: relative; |
| | | padding: 20px; |
| | | // height: 100px; |
| | | border-bottom: 1px solid #dddee1; |
| | | } |
| | | .prod-cont .items.name:last-child { |
| | | border-bottom: none; |
| | | } |
| | | .prod-image { |
| | | margin-right: 20px; |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | .prod-image img { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | .item span { |
| | | display: block; |
| | | margin-bottom: 10px; |
| | | } |
| | | .item .operate { |
| | | color: #2d8cf0; |
| | | } |
| | | .item .totalprice { |
| | | color: #c00; |
| | | } |
| | | .prod .remark { |
| | | width: 100%; |
| | | height: 50px; |
| | | line-height: 50px; |
| | | background-color: #e8f7f6; |
| | | border-left: 1px solid #dddee1; |
| | | border-right: 1px solid #dddee1; |
| | | border-bottom: 1px solid #dddee1; |
| | | margin-bottom: 20px; |
| | | } |
| | | .buyer-remark { |
| | | padding: 0 20px; |
| | | overflow: hidden; |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | } |
| | | |
| | | .empty-tips { |
| | | display: block; |
| | | width: 100%; |
| | | text-align: center; |
| | | margin: 50px 0; |
| | | color: #999; |
| | | } |
| | | .el-col { |
| | | height: 48px; |
| | | border-right: 1px solid #d8d9de; |
| | | line-height: 48px; |
| | | text-align: center; |
| | | } |
| | | .el-table{ |
| | | thead{ |
| | | background: #0c0c0c !important; |
| | | text-align: center !important; |
| | | } |
| | | } |
| | | } |
| | | </style> |