Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
| | |
| | | # VUE_APP_API_BASE_URL = 'http://192.168.0.191:10026' |
| | | |
| | | # 任康æ¬å° |
| | | VUE_APP_API_BASE_URL = 'http://192.168.0.134:10026' |
| | | VUE_APP_API_BASE_URL = 'http://192.168.0.137:10026' |
| | | |
| | | # èå§æ¬å° |
| | | <<<<<<< HEAD |
| | | # VUE_APP_API_BASE_URL = 'http://192.168.0.102:10026' |
| | | |
| | | # å端æ¥å£å°å |
| | | # VUE_APP_API_BASE_URL = 'https://dmtest.ahapp.net/bike_admin_api' |
| | | ======= |
| | | # VUE_APP_API_BASE_URL = 'http://192.168.0.129:10026' |
| | | |
| | | # å端æ¥å£å°å |
| | | VUE_APP_API_BASE_URL = 'https://dmtest.ahapp.net/bike_admin_api' |
| | | >>>>>>> 32dbee794a7f1b0e407eaf8aa17fa55d9c4f6883 |
| | |
| | | export function closerGoodsorder (id) { |
| | | return request.post('/business/goodsorder/closerGoodsorder', {id}) |
| | | } |
| | | // è½¦åæ¶å
¥åæ |
| | | export function getBikeIncomeReportVOList (data) { |
| | | return request.post('/business/goodsorder/getBikeIncomeReportVOList', data) |
| | | } |
| | | // è·åå¯éæ¬¾ä¿¡æ¯ |
| | | export function getGoodsorderCanBanlanceDTO (params) { |
| | | return request.get('/business/goodsorder/getGoodsorderCanBanlanceDTO', {params}) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function bikeIncomeExportExcel (data) { |
| | | return request.post('/business/goodsorder/bikeIncomeExportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | |
| | | > |
| | | <el-table-column prop="openid" label="ç¨æ·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="code" label="订åç¼å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column label="订åç±»å" min-width="100px" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.bikeType === 1">å¥é¤è®¢å</span> |
| | | <span v-else-if="scope.row.bikeType === 3">èªè¡è½¦è®¢å</span> |
| | | <span v-else-if="scope.row.bikeType === 4">çµå¨è½¦è®¢å</span> |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="payDate" label="æ¯ä»æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="money" label="æ¯ä»éé¢" width="80px" align="center"></el-table-column> |
| | | <el-table-column prop="refundDate" label="鿬¾æ¶é´" width="150px" align="center"></el-table-column> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:wxbill:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å¯¹è´¦æ¥æ" prop="name"> |
| | | <el-date-picker |
| | | v-model="value1" |
| | | type="daterange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" |
| | | @change="selectDate" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | <el-button type="primary" @click="daochu">导åº</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="list" |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column :prop="item" :label="item" align="center" v-for="(item, index) in column" :key="index"></el-table-column> |
| | | </el-table> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { getBikeIncomeReportVOList, bikeIncomeExportExcel } from '@/api/business/goodsorder' |
| | | export default { |
| | | name: 'analysis', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | value1: [], |
| | | list: [], |
| | | column: [], |
| | | // æç´¢ |
| | | searchForm: { |
| | | endDate: '', |
| | | startDate: '' |
| | | }, |
| | | sumData: { |
| | | }, |
| | | pickerOptions: {} |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '', |
| | | api: '/business/wxBill', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.pickerOptions.disabledDate = (time) => { |
| | | // ä¸å¤© |
| | | const tempTime = 3600 * 1000 * 24 |
| | | return time.getTime() > new Date() - tempTime |
| | | } |
| | | const yesterday = new Date(); |
| | | yesterday.setDate(yesterday.getDate() - 1); |
| | | const startDate = new Date(yesterday); |
| | | startDate.setDate(startDate.getDate() - 30); |
| | | this.searchForm.startDate = startDate.toISOString().split('T')[0] + ' 00:00:00' |
| | | this.searchForm.endDate = yesterday.toISOString().split('T')[0] + ' 00:00:00' |
| | | this.value1 = [this.searchForm.startDate, this.searchForm.endDate] |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | search() { |
| | | getBikeIncomeReportVOList({ |
| | | startDate: this.searchForm.startDate, |
| | | endDate: this.searchForm.endDate |
| | | }).then(res => { |
| | | this.column = res.map(item => item[0]) |
| | | |
| | | const keys = res.map(row => row[0]); // è·åé®å |
| | | const values = res.map(row => row.slice(1, row.length)); // è·åå¼ |
| | | |
| | | this.list = values[0].map((_, index) => { |
| | | return keys.reduce((obj, key, i) => { |
| | | obj[key] = values[i][index]; |
| | | return obj; |
| | | }, {}); |
| | | }); |
| | | }) |
| | | }, |
| | | daochu() { |
| | | bikeIncomeExportExcel({ |
| | | startDate: this.searchForm.startDate, |
| | | endDate: this.searchForm.endDate |
| | | }).then(res => { |
| | | this.download(res) |
| | | console.log(res.data) |
| | | }) |
| | | }, |
| | | reset () { |
| | | const yesterday = new Date(); |
| | | yesterday.setDate(yesterday.getDate() - 1); |
| | | const startDate = new Date(yesterday); |
| | | startDate.setDate(startDate.getDate() - 30); |
| | | this.searchForm.startDate = startDate.toISOString().split('T')[0] + ' 00:00:00' |
| | | this.searchForm.endDate = yesterday.toISOString().split('T')[0] + ' 00:00:00' |
| | | this.value1 = [this.searchForm.startDate, this.searchForm.endDate] |
| | | this.search() |
| | | }, |
| | | getDays(startDate, endDate) { |
| | | const date1 = new Date(startDate); // 第ä¸ä¸ªæ¥æ |
| | | const date2 = new Date(endDate); // 第äºä¸ªæ¥æ |
| | | |
| | | const timeDifference = date2 - date1; |
| | | |
| | | return timeDifference / (1000 * 3600 * 24); |
| | | }, |
| | | selectDate (v) { |
| | | // this.searchForm.startDate = '' |
| | | // this.searchForm.endDate = '' |
| | | if (v) { |
| | | if (this.getDays(v[0], v[1]) > 30) { |
| | | this.$message.warning('æå¤åªè½éæ©30天') |
| | | const yesterday = new Date(); |
| | | yesterday.setDate(yesterday.getDate() - 1); |
| | | const startDate = new Date(yesterday); |
| | | startDate.setDate(startDate.getDate() - 30); |
| | | this.searchForm.startDate = startDate.toISOString().split('T')[0] + ' 00:00:00' |
| | | this.searchForm.endDate = yesterday.toISOString().split('T')[0] + ' 00:00:00' |
| | | this.value1 = [this.searchForm.startDate, this.searchForm.endDate] |
| | | } else { |
| | | this.searchForm.startDate = v[0] |
| | | this.searchForm.endDate = v[1] |
| | | } |
| | | } |
| | | this.search() |
| | | }, |
| | | // 页ç åæ´å¤ç |
| | | handlePageChange (pageIndex) { |
| | | this.__checkApi() |
| | | this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex |
| | | this.isWorking.search = true |
| | | this.api.fetchList({ |
| | | page: this.tableData.pagination.pageIndex, |
| | | capacity: this.tableData.pagination.pageSize, |
| | | model: this.searchForm, |
| | | sorts: this.tableData.sorts |
| | | }) |
| | | .then(data => { |
| | | this.tableData.list = data.records |
| | | this.tableData.pagination.total = data.total |
| | | this.sumData = data.extData |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking.search = false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | ::v-deep .el-table tr:last-child { |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | | background-color: #f3f3fb; |
| | | } |
| | | .sum { |
| | | display: flex; |
| | | font-size: 16px; |
| | | margin-bottom: 10px; |
| | | background-color: rgb(243, 243, 251); |
| | | .sum-title { |
| | | flex-shrink: 0; |
| | | background-color: rgb(111, 129, 198); |
| | | color: #fff; |
| | | font-weight: 500; |
| | | text-align: center; |
| | | padding: 15px; |
| | | } |
| | | .sum-value { |
| | | padding: 15px 30px; |
| | | :first-child { |
| | | font-size: 14px; |
| | | } |
| | | :last-child { |
| | | font-weight: 600; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | payStatus: '', |
| | | payWay: '', |
| | | payDate: '', |
| | | type: '', |
| | | type: 0, |
| | | closeMoney: '', |
| | | startDate: '', |
| | | endDate: '', |
| | | <<<<<<< HEAD |
| | | bikeType: '' |
| | | ======= |
| | | type: 0 |
| | | |
| | | >>>>>>> 32dbee794a7f1b0e407eaf8aa17fa55d9c4f6883 |
| | | }, |
| | | value1: [new Date(), new Date()] |
| | | } |
| | |
| | | <TableLayout> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | |
| | | |
| | | <el-form-item label="å建æ¶é´" prop="name"> |
| | | <el-date-picker |
| | | v-model="value1" |
| | | type="daterange" |
| | | |
| | | |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | |
| | | @change="selectDate" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | ></el-table-column> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | </TableLayout> |
| | |
| | | this.$refs.searchForm.resetFields() |
| | | this.search() |
| | | }, |
| | | |
| | | |
| | | search() { |
| | | fetchList(this.searchForm) |
| | | .then(res => { |
| | | this.tableData.list = [ |
| | | { name: 'å¥é¤æ¶å
¥', payNum: res.discountNum, payMoney: res.discountMoney }, |
| | | { name: 'æ¯ä»æ¼é', payNum: res.payNum, payMoney: res.payMoney }, |
| | | { name: '鿬¾', payNum: res.refundNum, payMoney: res.refundMoney }, |
| | | { name: 'æªç»ç®', payNum: res.unClosedNum, payMoney: res.unClosedMoney }, |
| | |
| | | <div>ç»ç®éé¢(å
)</div> |
| | | <div>{{ sumData.total }}</div> |
| | | </div> |
| | | <div class="sum-value"> |
| | | <div>éªè¡æ¶å
¥(å
)</div> |
| | | <div>{{ sumData.bikeFee }}</div> |
| | | </div> |
| | | <div class="sum-value"> |
| | | <div>å¥é¤æ¶å
¥(å
)</div> |
| | | <div>{{ sumData.discountFee }}</div> |
| | | </div> |
| | | </div> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | <el-table-column prop="sumRefundBill" label="鿬¾ç¬æ°" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="sumRefundFee" label="鿬¾éé¢(å
)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="sumRefundCmmsAmt" label="鿬¾æç»è´¹(å
)" min-width="100px" align="center"></el-table-column> |
| | | |
| | | <!-- <el-table-column prop="sumSuccessFee" label="åºç»è®¢åæ»éé¢" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="sumCouponRefundFee" label="å
å¼å¸é款æ»éé¢" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="sumApplyRefundFee" label="ç³è¯·é款æ»éé¢" min-width="100px" align="center"></el-table-column> --> |
| | | <el-table-column prop="total" label="ç»ç®éé¢(å
)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeFee" label="èªè¡è½¦æ¶å
¥(å
)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeFee" label="éªè¡æ¶å
¥(å
)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="discountFee" label="å¥é¤æ¶å
¥(å
)" min-width="100px" align="center"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | <span>{{scope.row.total == 0 ? '-' : scope.row.total }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="bikefee" label="èªè¡è½¦æ¶å
¥ï¼å
ï¼" min-width="100px" align="center"> |
| | | <el-table-column prop="bikefee" label="éªè¡æ¶å
¥ï¼å
ï¼" min-width="100px" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.bikeFee == 0 ? '-' : scope.row.bikeFee }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å¥é¤æ¶å
¥(å
)" min-width="100px" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.discountFee == 0 ? '-' : scope.row.discountFee }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- v-if="containPermissions(['business:pricingparam:update', 'business:pricingparam:delete'])" --> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </template> |
| | | <BillDetailWindow ref="billDetailWindow"/> |
| | | </TableLayout> |
| | |
| | | search () { |
| | | fetchList(this.searchForm) |
| | | .then(res => { |
| | | console.log(res) |
| | | this.tableData.list = [ |
| | | { billType: '交æå®æ¶', ...res[0], cmmsAmt: (res[0].sumCmmsAmt + res[0].sumRefundCmmsAmt).toFixed(2) }, |
| | | { billType: '鿬¾', ...res[1], cmmsAmt: (res[1].sumCmmsAmt + res[1].sumRefundCmmsAmt).toFixed(2) }, |
| | |
| | | this.search() |
| | | }, |
| | | arraySpanMethod ({ row, column, rowIndex, columnIndex }) { |
| | | if (rowIndex == 3) { |
| | | if (rowIndex === 3) { |
| | | if (columnIndex === 0) { |
| | | return [1, 8] |
| | | } else { |
| | |
| | | <span>{{ scope.row.useStartDate }}è³{{ scope.row.useEndDate }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="å建æ¶é´" min-width="150" prop="createDate" show-overflow-tooltip /> |
| | | <el-table-column align="center" label="å¥é¤ç¶æ" min-width="80"> |
| | | <template v-slot="scope"> |
| | | <span v-if="scope.row.status == '0'" class="text_success">æ£å¸¸</span> |
| | |
| | | clearable: true, |
| | | options: [ |
| | | { value: '0', label: 'æ£å¸¸' }, |
| | | { value: '1', label: 'ä½åº' }, |
| | | // { value: '2', label: 'å¾
æ¯ä»' } |
| | | { value: '1', label: 'ä½åº' } |
| | | ] |
| | | },{ |
| | | filed: 'createDate', |
| | | type: 'daterange', |
| | | label: 'åå»ºæ¥æ', |
| | | placeholder: 'è¯·éæ©ç¶æ', |
| | | clearable: true, |
| | | options: [ |
| | | { value: '0', label: 'æ£å¸¸' }, |
| | | { value: '1', label: 'ä½åº' } |
| | | ] |
| | | }], |
| | | online: true |
| | |
| | | remarkCan: '', |
| | | // â¬ï¸adjustè°æ´ç¸å
³ |
| | | isShowAdjust: false, |
| | | isShowCan: false, |
| | | canList: [], |
| | | adjustData: { |
| | | flag: 0, |
| | |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | if (page) { pagination.page = page } |
| | | let form = JSON.parse(JSON.stringify(filters)) |
| | | if (form.createDate && form.createDate.length > 0) { |
| | | form.startCreateDate = form.createDate[0] |
| | | form.endCreateDate = form.createDate[1] |
| | | delete form.createDate |
| | | } |
| | | comboSalePage({ |
| | | model: { |
| | | ...filters |
| | | ...form |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: pagination.page, |