Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
# server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
| | |
| | | VUE_APP_CONTEXT_PATH = '/' |
| | | VUE_APP_API_PREFIX='/martempo_admin_interface' |
| | | |
| | | #æ±èæ¬å° |
| | | # VUE_APP_API_BASE_URL='http://192.168.0.36:10011' |
| | | |
| | | #åç£ç£æ¬å° |
| | | # VUE_APP_API_BASE_URL='http://192.168.0.18:10013' |
| | | |
| | | #ç¦æ¾æ¬å° |
| | | # http://192.168.0.36:10012/doc.html#/home |
| | | VUE_APP_API_BASE_URL='http://192.168.0.36:10012' |
| | | VUE_APP_API_BASE_URL='http://192.168.0.36:10026' |
| | | |
| | | # æµè¯æå¡ |
| | | # VUE_APP_API_BASE_URL = 'https://dmtest.ahapp.net/martempo_admin_interface' |
| | | # # æµè¯æå¡ |
| | | # VUE_APP_API_PREFIX='/bike_admin_api' |
| | | |
| | | # # å端æ¥å£å°åï¼https://dmtest.ahapp.net/bike_admin_api/doc.html |
| | | # VUE_APP_API_BASE_URL='https://dmtest.ahapp.net/bike_admin_api' |
| | |
| | | # æµè¯ç¯å¢é
ç½® |
| | | NODE_ENV = 'production' |
| | | |
| | | VUE_APP_CONTEXT_PATH = '/martempo_admin' |
| | | VUE_APP_API_PREFIX = '/martempo_admin_interface' |
| | | # å端æ¥å£å°åï¼https://dmtest.ahapp.net/martempo_admin_interface/doc.html |
| | | VUE_APP_CONTEXT_PATH = '/bike_admin' |
| | | VUE_APP_API_PREFIX = '/bike_admin_api' |
| | | |
| | | VUE_APP_API_BASE_URL = 'https://dmtest.ahapp.net/martempo_admin_interface' |
| | | # å端æ¥å£å°åï¼https://dmtest.ahapp.net/bike_admin_api/doc.html |
| | | VUE_APP_API_BASE_URL = 'https://dmtest.ahapp.net/bike_admin_api' |
| | |
| | | "scripts": { |
| | | "serve": "vue-cli-service serve", |
| | | "build:pro": "vue-cli-service build", |
| | | "build:staging": "vue-cli-service build --mode staging", |
| | | "build:dev": "vue-cli-service build --mode staging", |
| | | "lint": "vue-cli-service lint", |
| | | "fix": "eslint --ext .js,.vue src --fix" |
| | | }, |
| | |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/bikeRepair/updateById', data) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/memberRides/pageBikeLog', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/memberRides/exportBikeLogExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | | |
| | |
| | | export function deleteById (id) { |
| | | return request.get(`/business/goodsorder/delete/${id}`) |
| | | } |
| | | |
| | | // 详æ
|
| | | export function getDetail (id) { |
| | | return request.get(`/business/goodsorder/${id}`) |
| | | } |
| | | |
| | | // 鿬¾ |
| | | export function backGoodsorder (data) { |
| | | return request.post('/business/goodsorder/backGoodsorder', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | // 鿬¾ |
| | | export function closerGoodsorder (id) { |
| | | return request.post('/business/goodsorder/closerGoodsorder', {id}) |
| | | } |
| | | // è·åå¯éæ¬¾ä¿¡æ¯ |
| | | export function getGoodsorderCanBanlanceDTO (params) { |
| | | return request.get('/business/goodsorder/getGoodsorderCanBanlanceDTO', {params}) |
| | | } |
| | |
| | | export function deleteById (id) { |
| | | return request.get(`/business/pricingParam/delete/${id}`) |
| | | } |
| | | |
| | | // æ ¹æ®å®ä»·é
ç½®IDæ¥è¯¢ |
| | | export function findListByPricePramId (params) { |
| | | return request.get(`/business/pricingDetail/findListByPricePramId`, {params}) |
| | | } |
| | | // æ ¹æ®IDä¿®æ¹é
ç½® |
| | | export function updatePricingDetailById (data) { |
| | | return request.post('/business/pricingDetail/updateById', data) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalAlertWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | width="600px" |
| | | @confirm="confirm" |
| | | > |
| | | |
| | | <el-form :model="form" ref="form" :rules="rules" label-suffix="ï¼"> |
| | | <el-form-item label="车ååç§°" prop="bikeTypeName"> |
| | | {{ form.bikeTypeName }} |
| | | </el-form-item> |
| | | <el-form-item label="工使¥è®¡è´¹"> |
| | | <el-select v-model="form.baseType" @change="selectBaseType"> |
| | | <el-option |
| | | v-for="item in priceType" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | <div class="setting" v-if="form.baseType == 1" style="display: flex;"> |
| | | <el-input v-model="form.basePrice" type="number" placeholder="" v-trim/> |
| | | å
ï¼ç
éªä¸æ´å¤© |
| | | </div> |
| | | <div class="setting" v-else> |
| | | <div style="display: flex;"> |
| | | èµ·æ¥ä»·<el-input v-model="form.basePrice" type="number" placeholder="" v-trim/> |
| | | å
<el-input v-model="form.baseTime" type="number" placeholder="" v-trim/>åé |
| | | </div> |
| | | <div style="display: flex; margin-top: 5px;"> |
| | | è¶
è¿å<el-input v-model="form.unitPrice" type="number" placeholder="" v-trim/> |
| | | å
ï¼æ¯<el-input v-model="form.unitTime" type="number" placeholder="" v-trim/>åé |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="èåæ¥è®¡è´¹"> |
| | | <el-select v-model="form.holidayBaseType" @change="selectHolidayBaseType"> |
| | | <el-option |
| | | v-for="item in priceType" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | <div class="setting" v-if="form.holidayBaseType == 1" style="display: flex;"> |
| | | <el-input v-model="form.holidayBasePrice" type="number" placeholder="" v-trim/> |
| | | å
ï¼ç
éªä¸æ´å¤© |
| | | </div> |
| | | <div class="setting" v-else> |
| | | <div style="display: flex;"> |
| | | èµ·æ¥ä»·<el-input v-model="form.holidayBasePrice" type="number" placeholder="" v-trim/> |
| | | å
<el-input v-model="form.holidayBaseTime" type="number" placeholder="" v-trim/>åé |
| | | </div> |
| | | <div style="display: flex; margin-top: 5px;"> |
| | | è¶
è¿å<el-input v-model="form.holidayUnitPrice" type="number" placeholder="" v-trim/> |
| | | å
ï¼æ¯<el-input v-model="form.holidayUnitTime" type="number" placeholder="" v-trim/>åé |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalAlertWindow from '@/components/common/GlobalAlertWindow' |
| | | import { create } from '@/api/business/pricingParam' |
| | | // import { findList } from '@/api/business/roomTime' |
| | | import { numRule } from '@/utils/form' |
| | | export default { |
| | | name: 'OperaPriceConfigWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalAlertWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | pricePramId: null, |
| | | bikeTypeId: null, |
| | | bikeTypeName: '', |
| | | baseType: '', |
| | | baseTime: '', |
| | | basePrice: '', |
| | | unitPrice: '', |
| | | unitTime: '', |
| | | holidayBaseType: '', |
| | | holidayBaseTime: '', |
| | | holidayBasePrice: '', |
| | | holidayUnitPrice: '', |
| | | holidayUnitTime: '', |
| | | }, |
| | | priceType: [ |
| | | { name: 'ä¸å£ä»·', id: 1 }, |
| | | { name: 'é¶æ¢¯å®ä»·', id: 2 }, |
| | | ], |
| | | backInfoRequired: false, |
| | | // éªè¯è§å |
| | | rules: { |
| | | duration: [ |
| | | { required: true, validator: numRule, message: '请è¾å
¥è®¡è´¹æ¶é¿', tigger: 'blur' } |
| | | ], |
| | | backReason: [ |
| | | { required: true, message: 'è¯·éæ©è°æ´åå ', tigger: 'change'}, |
| | | ] |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | |
| | | methods: { |
| | | /** |
| | | * æå¼çªå£ |
| | | * @title çªå£æ é¢ |
| | | * @target ç¼è¾ç对象 |
| | | */ |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.baseType = target.baseTime==-1 ? 1 : 2 |
| | | this.form.holidayBaseType = target.holidayBaseTime==-1 ? 1 : 2 |
| | | |
| | | // this.form.backReason = '' |
| | | // this.form.backInfo = '' |
| | | // this.$refs.form.clearValidate() |
| | | }) |
| | | }, |
| | | selectBaseType(v) { |
| | | console.log(v); |
| | | if (v==1) { |
| | | this.form.baseTime = -1 |
| | | } else { |
| | | this.form.baseTime = '' |
| | | } |
| | | }, |
| | | selectHolidayBaseType(v) { |
| | | // console.log(item); |
| | | if (v==1) { |
| | | this.form.holidayBaseTime = -1 |
| | | } else { |
| | | this.form.holidayBaseTime = '' |
| | | } |
| | | }, |
| | | confirm() { |
| | | this.$refs.form.validate((valid) => { |
| | | if (!valid) { |
| | | return |
| | | } |
| | | this.isWorking = true |
| | | create(this.form) |
| | | .then(res => { |
| | | this.visible = false |
| | | this.$tip.apiSuccess('ä¿®æ¹æå') |
| | | this.$emit('success') |
| | | |
| | | }) |
| | | .catch(err => { |
| | | this.$tip.apiFailed(err) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/alertstyle.scss"; |
| | | @import "@/assets/style/variables.scss"; |
| | | |
| | | ::v-deep .el-input.is-disabled .el-input__inner { |
| | | background-color: #fff !important; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .time-style { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | cursor: pointer; |
| | | .time-item { |
| | | margin-right: 8px; |
| | | margin-bottom: 8px; |
| | | border: #111 solid 1px; |
| | | font-size: 14px; |
| | | line-height: 14px; |
| | | padding: 5px; |
| | | border-radius: 5px; |
| | | color: #111; |
| | | } |
| | | .time-item-sel { |
| | | border-color: $primary-color; |
| | | background-color: $primary-color; |
| | | color: #fff; |
| | | } |
| | | .time-item-disable { |
| | | border-color: #999; |
| | | background-color: #999; |
| | | color: #111; |
| | | } |
| | | } |
| | | |
| | | .setting { |
| | | margin-top: 15px; |
| | | .el-input { |
| | | width: 100px; |
| | | } |
| | | } |
| | | |
| | | </style> |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.longAndLat = `${this.form.longitude},${this.form.latitude}` |
| | | this.form.longAndLat = `${this.form.latitude},${this.form.longitude}` |
| | | }) |
| | | }, |
| | | changeLongAndLat(v) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalAlertWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | width="600px" |
| | | @confirm="confirm" |
| | | > |
| | | |
| | | <el-form :model="form" ref="form" :rules="rules " label-suffix="ï¼"> |
| | | <el-form-item label="å¤ç说æ" prop="dealInfo"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 4}" |
| | | v-model="form.dealInfo" |
| | | placeholder="请è¾å
¥è°æ´å¤æ³¨" |
| | | v-trim |
| | | /> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalAlertWindow from '@/components/common/GlobalAlertWindow' |
| | | // import { findList } from '@/api/business/roomTime' |
| | | import { numRule } from '@/utils/form' |
| | | export default { |
| | | name: 'OperaSuggestWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalAlertWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | dealInfo: '', |
| | | status: '', |
| | | |
| | | }, |
| | | backInfoRequired: false, |
| | | // éªè¯è§å |
| | | rules: { |
| | | duration: [ |
| | | { required: true, validator: numRule, message: '请è¾å
¥è®¡è´¹æ¶é¿', tigger: 'blur' } |
| | | ], |
| | | backReason: [ |
| | | { required: true, message: 'è¯·éæ©è°æ´åå ', tigger: 'change'}, |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/bikeRepair', |
| | | 'field.id': 'id', |
| | | }) |
| | | |
| | | }, |
| | | methods: { |
| | | /** |
| | | * æå¼çªå£ |
| | | * @title çªå£æ é¢ |
| | | * @target ç¼è¾ç对象 |
| | | */ |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | debugger |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.status = '1' |
| | | this.$refs.form.clearValidate() |
| | | }) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/alertstyle.scss"; |
| | | @import "@/assets/style/variables.scss"; |
| | | |
| | | ::v-deep .el-input.is-disabled .el-input__inner { |
| | | background-color: #fff !important; |
| | | cursor: pointer; |
| | | color: aqua; |
| | | } |
| | | |
| | | .time-style { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | cursor: pointer; |
| | | .time-item { |
| | | margin-right: 8px; |
| | | margin-bottom: 8px; |
| | | border: #111 solid 1px; |
| | | font-size: 14px; |
| | | line-height: 14px; |
| | | padding: 5px; |
| | | border-radius: 5px; |
| | | color: #111; |
| | | } |
| | | .time-item-sel { |
| | | border-color: $primary-color; |
| | | background-color: $primary-color; |
| | | color: #fff; |
| | | } |
| | | .time-item-disable { |
| | | border-color: #999; |
| | | background-color: #999; |
| | | color: #111; |
| | | } |
| | | } |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalAlertWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | width="600px" |
| | | @confirm="confirm" |
| | | > |
| | | <el-descriptions title="" :column="2" > |
| | | <el-descriptions-item label="å
弿¼é">{{ form.goodsorderMoney }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç»ç®éé¢">{{ form.closeMoney }}</el-descriptions-item> |
| | | <el-descriptions-item label="å·²ééé¢">{{ form.hasRefundMoney }}</el-descriptions-item> |
| | | <el-descriptions-item label="å¯ééé¢">{{ form.canBanlanceMoney }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | <el-form :model="form" ref="form" :rules="rules" label-suffix="ï¼"> |
| | | <el-form-item label="鿬¾éé¢" prop="money"> |
| | | <div style="display: flex;"> |
| | | <el-input style="flex: 1;" v-model="form.money" placeholder="请è¾å
¥é款éé¢" v-trim/> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="鿬¾åå " prop="reason"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 4}" |
| | | v-model="form.reason" |
| | | placeholder="请è¾å
¥è°æ´å¤æ³¨" |
| | | v-trim |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalAlertWindow from '@/components/common/GlobalAlertWindow' |
| | | import { backGoodsorder } from '@/api/business/goodsorder' |
| | | import { numRule } from '@/utils/form' |
| | | export default { |
| | | name: 'OperaSuggestWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalAlertWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | orderId: null, |
| | | canBanlanceMoney: '', |
| | | closeMoney: '', |
| | | goodsorderMoney: '', |
| | | hasRefundMoney: '', |
| | | |
| | | money: '', |
| | | reason: '', |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | duration: [ |
| | | { required: true, validator: numRule, message: '请è¾å
¥é款éé¢', tigger: 'blur' } |
| | | ] |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | created () { |
| | | |
| | | }, |
| | | methods: { |
| | | /** |
| | | * æå¼çªå£ |
| | | * @title çªå£æ é¢ |
| | | * @target ç¼è¾ç对象 |
| | | */ |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.money = '' |
| | | this.form.reason = '' |
| | | this.$refs.form.clearValidate() |
| | | }) |
| | | |
| | | }, |
| | | selectReason(v) { |
| | | // console.log(item); |
| | | let item = this.reason.find(item => item.name == v) |
| | | this.backInfoRequired = item.required == 1 |
| | | }, |
| | | confirm() { |
| | | this.$refs.form.validate((valid) => { |
| | | if (!valid) { |
| | | return |
| | | } |
| | | this.isWorking = true |
| | | backGoodsorder(this.form) |
| | | .then(() => { |
| | | this.visible = false |
| | | this.$tip.apiSuccess('鿬¾æå') |
| | | this.$emit('success') |
| | | }) |
| | | .catch(err => { |
| | | this.$tip.apiFailed(err) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/alertstyle.scss"; |
| | | @import "@/assets/style/variables.scss"; |
| | | |
| | | ::v-deep .el-input.is-disabled .el-input__inner { |
| | | background-color: #fff !important; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .time-style { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | cursor: pointer; |
| | | .time-item { |
| | | margin-right: 8px; |
| | | margin-bottom: 8px; |
| | | border: #111 solid 1px; |
| | | font-size: 14px; |
| | | line-height: 14px; |
| | | padding: 5px; |
| | | border-radius: 5px; |
| | | color: #111; |
| | | } |
| | | .time-item-sel { |
| | | border-color: $primary-color; |
| | | background-color: $primary-color; |
| | | color: #fff; |
| | | } |
| | | .time-item-disable { |
| | | border-color: #999; |
| | | background-color: #999; |
| | | color: #111; |
| | | } |
| | | } |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking"> |
| | | <div class="title">æ¯ä»æç»</div> |
| | | <el-table :data="list" stripe border> |
| | | <el-table-column prop="id" label="订åç¼å·" min-width="120px" align="center"></el-table-column> |
| | | <el-table-column prop="onlineorderId" label="交æåå·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="refundType" label="交æç±»å" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | {{ typeToStr(row.refundType) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="money" label="交æéé¢(å
)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="payWay" label="æ¸ é" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.payWay==0? '微信' : 'æ¯ä»å®' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="payDate" label="äº¤ææ¶é´" min-width="100px" align="center"></el-table-column> |
| | | |
| | | </el-table> |
| | | <div class="title">éªè¡è®°å½</div> |
| | | <el-table |
| | | :data="memberRidesList" |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="openid" label="ç¨æ·" min-width="120px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeCode" label="车è¾ç¼å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeType" label="车类å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rideTime" label="ååºæ¶é¿(å)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="duration" label="计费æ¶é¿(å)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeType" label="车类å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rentDate" label="ååºæ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="backDate" label="è¿è½¦æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="closeStatus" fixed="right" label="ç»ç®ç¶æ" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.closeStatus == 0 ? 'æªç»ç®' : 'å·²ç»ç®' }} |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div slot="footer"> |
| | | <el-button @click="visible=false">è¿å</el-button> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | // import GoodsOrderList from './goodsOrderList.vue' |
| | | export default { |
| | | name: 'OperaSitesWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | goodsorderId: '' |
| | | }, |
| | | list: [], |
| | | memberRidesList: [], |
| | | // 0ç»ç®é款 1强å¶ç»ç®é款 2ç»ç®å鿬¾ [99: èætype æ¯ä»æ¼é] |
| | | type: [ |
| | | { label: 'ç»ç®é款', id: 0 }, |
| | | { label: '强å¶ç»ç®é款', id: 1 }, |
| | | { label: 'ç»ç®å鿬¾', id: 2 }, |
| | | { label: 'æ¯ä»æ¼é', id: 99 }, |
| | | ], |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | open(title, target) { |
| | | debugger |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | this.form = target |
| | | this.$nextTick(() => { |
| | | this.list = target.payOrderDTOList |
| | | this.memberRidesList = target.memberRidesList |
| | | // this.$refs.goodsOrderList.reload(target.model) |
| | | }) |
| | | }, |
| | | typeToStr(type) { |
| | | let temp = this.type.find(item => item.id == type ) |
| | | return temp ? temp.label : '-' |
| | | } |
| | | }, |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .title { |
| | | font-size: 18px; |
| | | font-weight: 600; |
| | | color: #333; |
| | | margin-bottom: 20px; |
| | | margin-top: 20px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout> |
| | | <template v-slot:table-wrap> |
| | | |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="openid" label="ç¨æ·" min-width="120px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeCode" label="车è¾ç¼å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeType" label="车类å" min-width="100px" align="center"></el-table-column> |
| | | <!-- <el-table-column prop="money" label="ååºæ¶é¿(å)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="money" label="计费æ¶é¿(å)" min-width="100px" align="center"></el-table-column> --> |
| | | |
| | | <el-table-column prop="rentDateStart" label="ååºæ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rentDateEnd" label="è¿è½¦æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="refundDate" label="鿬¾æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="closeStatus" label="ç»ç®ç¶æ" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.closeStatus == 0 ? 'æªç»ç®' : 'å·²ç»ç®' }} |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | |
| | | export default { |
| | | name: 'goodsOrderList', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | goodsorderId: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'ç³»ç»åºç¡é
置表', |
| | | api: '/business/memberRides', |
| | | }) |
| | | }, |
| | | methods: { |
| | | reload(target) { |
| | | this.searchForm = target |
| | | this.tableData.pagination.pageIndex = 1 |
| | | this.search() |
| | | } |
| | | }, |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking"> |
| | | <el-table :data="list" stripe border> |
| | | <el-table-column prop="bikeTypeId" label="车å" min-width="120px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeTypeName" label="车åç±»å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column label="工使¥è®¡ä»·è§å" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <div style="text-align: left;"> |
| | | <div>æ¹å¼ï¼{{ row.baseTime == -1 ? 'ä¸å£ä»·' : 'é¶æ¢¯ä»·æ ¼' }}</div> |
| | | <div>{{ row.title || '-' }}</div> |
| | | <!-- <div v-if="row.baseTime == -1">è§åï¼{{ row.basePrice }}å
ç
ç©ä¸æ´å¤©</div> |
| | | <div v-else>è§åï¼{{ `èµ·æ¥${row.baseTime}åé${row.basePrice }å
ï¼è¶
è¿å${row.unitPrice}å
/${row.unitTime}åé` }}</div> --> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="èåæ¥è®¡ä»·è§å" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <div style="text-align: left;"> |
| | | <div>æ¹å¼ï¼{{ row.holidayBaseTime == -1 ? 'ä¸å£ä»·' : 'é¶æ¢¯ä»·æ ¼' }}</div> |
| | | <div>è§åï¼{{ row.info || '-' }}</div> |
| | | <!-- <div v-if="row.holidayBaseTime == -1">è§åï¼{{ row.holidayBasePrice }}å
ç
ç©ä¸æ´å¤©</div> |
| | | <div v-else>è§åï¼{{ `èµ·æ¥${row.holidayBaseTime}åé${row.holidayBasePrice}å
ï¼è¶
è¿å${row.holidayUnitPrice}å
/${row.holidayUnitTime}åé` }}</div> --> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="payWay" label="æä½" width="80px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaPriceConfigWindow.open('ä¿®æ¹è´¹ç', row)">ç¼è¾</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | <div slot="footer"> |
| | | <el-button @click="visible=false">è¿å</el-button> |
| | | </div> |
| | | <OperaPriceConfigWindow ref="operaPriceConfigWindow" @success="search" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import OperaPriceConfigWindow from '@/components/business/OperaPriceConfigWindow' |
| | | import { findListByPricePramId } from '@/api/business/pricingParam' |
| | | export default { |
| | | name: 'OperaSitesWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow, OperaPriceConfigWindow }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | pricePramId: '' |
| | | }, |
| | | list: [], |
| | | memberRidesList: [], |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | open(title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | this.form.pricePramId = target.id |
| | | this.search() |
| | | // this.$nextTick(() => { |
| | | // this.list = target.payOrderDTOList |
| | | // this.memberRidesList = target.memberRidesList |
| | | // this.$refs.goodsOrderList.reload(target.model) |
| | | // }) |
| | | }, |
| | | search() { |
| | | findListByPricePramId(this.form) |
| | | .then(res => { |
| | | this.list = res |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .title { |
| | | font-size: 18px; |
| | | font-weight: 600; |
| | | color: #333; |
| | | margin-bottom: 20px; |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | </style> |
| | |
| | | <div class="common-header"> |
| | | <div class="header"> |
| | | <div class="logo"> |
| | | <div>æµ·å¾å®</div> |
| | | <div>滨æ¹èªè¡è½¦ç§èµç³»ç»</div> |
| | | <!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> --> |
| | | </div> |
| | | <div class="user"> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/uploadPicture', |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal', |
| | | // uploadData: { |
| | | // folder: 'upload', |
| | | // type: 'image' |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | debugger |
| | | this.form.code = target.code |
| | | }) |
| | | }, |
| | |
| | | <el-form-item label="车è¾ç¼å·" prop="binkeId"> |
| | | <el-input v-model="searchForm.binkeId" placeholder="请è¾å
¥è½¦è¾ç¼å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0å¾
å¤ç 1å·²å¤ç 2å
¶ä»" prop="status"> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | label="å¾
å¤ç" |
| | |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="creator" label="å建人" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="linkname" label="è系人" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="binkeId" label="车è¾ç¼ç " min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="editDate" label="车类å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="param" label="é®é¢ç±»å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="openid" label="å建人" min-width="180px" align="center"></el-table-column> |
| | | <el-table-column prop="linkname" label="è系人" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | {{ `${row.linkname} ${row.linkphone}` }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="bikeCode" label="车è¾ç¼ç " min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeTypeName" label="车类å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="param" label="é®é¢ç±»å" min-width="100px" show-overflow-tooltip align="center"> |
| | | <template slot-scope="{row}"> |
| | | <div class="long-title-style">{{ row.param }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="param" label="车è¾é®é¢" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="content" label="é®é¢è¯´æ" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="content" label="é®é¢è¯´æ" min-width="100px" show-overflow-tooltip align="center"> |
| | | <template slot-scope="{row}"> |
| | | <div class="long-title-style">{{ row.content }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px" align="center"> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="80px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.status==0" style="color: red;">å¾
å¤ç</div> |
| | | <div v-else-if="row.status==1">å·²å¤ç</div> |
| | | <div v-else>å
¶ä»</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" min-width="100px" align="center"> |
| | | <el-table-column label="æä½" min-width="80px" fixed="right" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <el-button v-if="row.status==0" type="text" @click="dealAction(row)">å¤ç</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="isdeleted" label="æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤" min-width="100px"></el-table-column> |
| | | <el-table-column prop="longitude" label="ç»åº¦" min-width="100px"></el-table-column> |
| | | <el-table-column prop="latitude" label="纬度" min-width="100px"></el-table-column> |
| | | <el-table-column prop="addr" label="详ç»å°å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="paramId" label="车è¾é®é¢åå ç¼ç ï¼å
³èbase_param)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="info" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="linkphone" label="èç³»çµè¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealUser" label="å¤ç人ç¼ç ï¼å
³èsystem_user)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealDate" label="å¤çæ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealInfo" label="å¤ç夿³¨" min-width="100px"></el-table-column> --> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <OperaRepairDealWindow ref="operaRepairDealWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaRepairDealWindow from '@/components/business/OperaRepairDealWindow' |
| | | export default { |
| | | name: 'BikeRepair', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | components: { TableLayout, Pagination, OperaRepairDealWindow }, |
| | | data () { |
| | | return { |
| | | value1: [], |
| | |
| | | }, |
| | | methods: { |
| | | dealAction(row) { |
| | | |
| | | this.$refs.operaRepairDealWindow.open('å¤ç', row) |
| | | } |
| | | }, |
| | | } |
| | |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="memberId" label="ç¨æ·" min-width="180px" align="center"></el-table-column> |
| | | <el-table-column prop="openid" label="ç¨æ·" min-width="180px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeCode" label="车è¾ç¼ç " min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="paramId" label="车è¾ç±»å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="paramId" label="ååºç«ç¹" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="paramId" label="ååºéå
·å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeType" label="车è¾ç±»å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rentSiteId" label="ååºç«ç¹" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rentLockId" label="ååºéå
·å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rentDate" label="ååºæ¶é´" min-width="140px" align="center"></el-table-column> |
| | | <el-table-column prop="paramId" label="å½è¿ç«ç¹" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="paramId" label="å½è¿éå
·å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="backSiteId" label="å½è¿ç«ç¹" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="backLockId" label="å½è¿éå
·å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="backDate" label="å½è¿æ¶é´" min-width="140px" align="center"></el-table-column> |
| | | <el-table-column prop="duration" label="ååºæ¶é¿(å)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rideTime" label="ååºæ¶é¿(å)" fixed="right" min-width="100px" align="center"></el-table-column> |
| | | |
| | | <!-- <el-table-column prop="creator" label="å建人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="ç¼è¾æ¶é´" min-width="100px"></el-table-column> |
| | |
| | | created () { |
| | | this.config({ |
| | | module: 'ç¨æ·éªè¡è®°å½è¡¨', |
| | | api: '/business/memberRides', |
| | | api: '/business/bikeRetakeRecord', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | |
| | | <TableLayout :permissions="['business:goodsorder:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="ç¨æ·" prop="memberId"> |
| | | <el-input v-model="searchForm.memberId" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="ç¨æ·" prop="openid"> |
| | | <el-input v-model="searchForm.openid" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="订åç¼å·" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥è®¢åç¼å·" @keypress.enter.native="search"></el-input> |
| | |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | label="æªç»ç®" |
| | | :value="1"> |
| | | :value="0"> |
| | | </el-option> |
| | | <el-option |
| | | label="å·²ç»ç®" |
| | |
| | | <el-date-picker |
| | | v-model="value1" |
| | | type="daterange" |
| | | @change="selectDate" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item label="ç»ç®ç±»å 0èªå¨ç»ç® 1å¹³å°äººå·¥ç»ç® 2ç³»ç»èªå¨ç»ç®" prop="closeType"> |
| | | <el-input v-model="searchForm.closeType" placeholder="请è¾å
¥ç»ç®ç±»å 0èªå¨ç»ç® 1å¹³å°äººå·¥ç»ç® 2ç³»ç»èªå¨ç»ç®" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> --> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="code" label="订åç¼å·" min-width="130px" align="center"></el-table-column> |
| | | <el-table-column prop="onlineOrderid" label="交æåå·" min-width="180px" align="center"></el-table-column> |
| | | <el-table-column prop="money" label="æ¼é(å
)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="openid" label="ç¨æ·" min-width="225px" align="center"></el-table-column> |
| | | <el-table-column prop="id" label="订åç¼å·" min-width="225px" align="center"></el-table-column> |
| | | <el-table-column prop="onlineOrderid" label="交æåå·" min-width="225px" align="center"></el-table-column> |
| | | <el-table-column prop="money" label="æ¼é(å
)" min-width="80px" align="center"></el-table-column> |
| | | <el-table-column prop="payDate" label="交æ¼éæ¶é´" min-width="140px" align="center"></el-table-column> |
| | | <el-table-column prop="closeMoney" label="éæ¼é(å
ï¼" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="closeMoney" label="ç»ç®éé¢(å
ï¼" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="refundMoney" label="éæ¼é(å
ï¼" min-width="80px" align="center"></el-table-column> |
| | | <el-table-column prop="closeMoney" label="ç»ç®éé¢(å
ï¼" min-width="90px" align="center"></el-table-column> |
| | | <el-table-column prop="closeDate" label="鿬¾ç»ç®æ¶é´" min-width="140px" align="center"></el-table-column> |
| | | |
| | | |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="deleteById(row)">订å详æ
</el-button> |
| | | <el-button type="text" @click="deleteById(row)">鿬¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" style="color: red">ç»ç®</el-button> |
| | | <el-button type="text" @click="showDetail(row)">订å详æ
</el-button> |
| | | <el-button type="text" @click="statement(row)" v-if="row.status != 4" style="color: red">ç»ç®</el-button> |
| | | <el-button type="text" @click="refenMoney(row)" v-else>鿬¾</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <GoodsOrderDetail ref="goodsOrderDetail" /> |
| | | <BackGoodsorderWindow ref="backGoodsorderWindow" @success="handlePageChange" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import GoodsOrderDetail from '@/components/business/goodsOrderDetail' |
| | | import BackGoodsorderWindow from '@/components/business/backGoodsorderWindow' |
| | | import { getDetail, getGoodsorderCanBanlanceDTO, closerGoodsorder } from '@/api/business/goodsorder' |
| | | export default { |
| | | name: 'Goodsorder', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | components: { TableLayout, Pagination, GoodsOrderDetail, BackGoodsorderWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | |
| | | isdeleted: '', |
| | | info: '', |
| | | code: '', |
| | | memberId: '', |
| | | openid: '', |
| | | money: '', |
| | | status: '', |
| | | preOrderid: '', |
| | |
| | | payDate: '', |
| | | type: '', |
| | | closeMoney: '', |
| | | closeId: '', |
| | | closeDate: '', |
| | | closeInfo: '', |
| | | closeUserId: '', |
| | | closeType: '' |
| | | startDate: '', |
| | | endDate: '', |
| | | |
| | | }, |
| | | value1: [] |
| | | } |
| | |
| | | this.value1 = [] |
| | | this.$refs.searchForm.resetFields() |
| | | this.search() |
| | | }, |
| | | selectDate(v) { |
| | | this.searchForm.startDate = '' |
| | | this.searchForm.endDate = '' |
| | | if (v) { |
| | | this.searchForm.startDate = v[0] |
| | | this.searchForm.endDate = v[1] |
| | | } |
| | | this.search() |
| | | }, |
| | | showDetail({id}) { |
| | | getDetail(id) |
| | | .then(res => { |
| | | this.$refs.goodsOrderDetail.open('订å详æ
',res) |
| | | }) |
| | | .catch(err => { |
| | | this.$tip.apiFailed(err) |
| | | }) |
| | | |
| | | }, |
| | | statement({id}) { |
| | | this.$dialog.messageWaring('å½å订åå¯è½ææªå®æçéªè¡ï¼ç¡®å®å¼ºå¶ç»ç®ï¼', '强å¶ç»ç®') |
| | | .then(() => { |
| | | closerGoodsorder(id) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('ç»ç®æå') |
| | | }) |
| | | .catch(err => { |
| | | this.$tip.apiFailed(err) |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | |
| | | }, |
| | | refenMoney({id}) { |
| | | getGoodsorderCanBanlanceDTO({orderId:id}) |
| | | .then(res => { |
| | | this.$refs.backGoodsorderWindow.open('强å¶é款', {orderId:id, ...res}) |
| | | }) |
| | | .catch(err => { |
| | | this.$tip.apiFailed(err) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="memberId" label="ç¨æ·" min-width="180px" align="center"></el-table-column> |
| | | <el-table-column prop="openid" label="ç¨æ·" min-width="180px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeCode" label="车è¾ç¼ç " min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="paramId" label="车è¾ç±»åç¼ç " min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rentDate" label="ç§è½¦æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="duration" label="éªè¡è®¡è´¹æ¶é¿" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="bikeType" label="车è¾ç±»å" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rideTime" label="ååºæ¶é¿(å)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="duration" label="计费æ¶é¿(å)" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="rentDate" label="å建æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="backDate" label="è¿è½¦æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="closeStatus" label="ç»ç®ç¶æ" min-width="100px" align="center"> |
| | | <!-- 0æªç»ç® 1å·²ç»æ --> |
| | |
| | | <el-input v-model="form.serverPhone" placeholder="请è¾å
¥æå¡çµè¯"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¼ééé¢"> |
| | | <el-input v-model="form.rentDeposit" placeholder="请è¾å
¥æ¼ééé¢"></el-input> |
| | | <el-input v-model="form.rentDeposit" type="number" placeholder="请è¾å
¥æ¼ééé¢"></el-input> |
| | | <div class="tips">请è¾å
¥éè¦ç¼´çº³çæ¼ééé¢(åä½ï¼å
)</div> |
| | | </el-form-item> |
| | | <el-form-item label="è¥ä¸æ¶é´"> |
| | | <el-time-select placeholder="å¼å§æ¶é´" v-model="form.businessStarttime"></el-time-select> |
| | | <el-time-picker placeholder="å¼å§æ¶é´" value-format="HH:mm" :picker-options="option" v-model="form.businessStarttime"></el-time-picker> |
| | | è³ |
| | | <el-time-select placeholder="ç»ææ¶é´" v-model="form.businessEndtime"></el-time-select> |
| | | <el-time-picker placeholder="ç»ææ¶é´" value-format="HH:mm" :picker-options="option" v-model="form.businessEndtime"></el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="å
è´¹éªè¡æ¶é¿"> |
| | | <el-input v-model="form.freeRentTime" placeholder="请è¾å
¥åç§°"></el-input> |
| | | <el-input v-model="form.freeRentTime" type="number" placeholder="请è¾å
¥å
è´¹éªè¡æ¶é¿"></el-input> |
| | | <div class="tips">å
è´¹éªè¡æ¶é¿ï¼åä½ï¼åé</div> |
| | | </el-form-item> |
| | | <el-form-item label="满载é¢è¦(%)" prop="name"> |
| | | <div style="display: flex;"> |
| | | ä½äº<el-input style="width: 80px;" v-model="form.warnMin" placeholder="æå°å¼"></el-input> |
| | | æé«äº<el-input style="width: 80px;" v-model="form.warnMax" placeholder="æå¤§å¼"></el-input> |
| | | ä½äº<el-input style="width: 80px;" v-model="form.warnMin" type="number" placeholder="æå°å¼"></el-input> |
| | | æé«äº<el-input style="width: 80px;" v-model="form.warnMax" type="number" placeholder="æå¤§å¼"></el-input> |
| | | 伿³éé群åéé¢è¦ |
| | | </div> |
| | | <div class="tips">å½è½¦è¾æ»¡è½½è¶
è¿ä»¥ä¸é
ç½®æ¶ï¼æç¤ºç®¡çå</div> |
| | |
| | | <el-input v-model="form.warnDingdingUrl" placeholder="请è¾å
¥é¢è¦éé群å°å"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç§èµæµç¨è§é¢" prop="name"> |
| | | <!-- :before-upload="beforeAvatarUpload" --> |
| | | <el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/" :show-file-list="false" |
| | | accept=".mp4" :on-success="handleAvatarSuccess"> |
| | | <el-upload class="avatar-uploader" :action="uploadImgUrl" :show-file-list="false" |
| | | accept=".mp4" :data="{folder: 'bike',}" :on-success="handleAvatarSuccess"> |
| | | <video v-if="form.rentTipsVideo" :src="form.rentTipsVideo" class="avatar"></video> |
| | | <!-- <img v-if="imageUrl" :src="imageUrl" > --> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"></i> |
| | |
| | | placeholder="请è¾å
¥åæ¢æå¡æç¤º"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="忢æå¡æ¶é´"> |
| | | <el-time-select placeholder="å¼å§æ¶é´" v-model="form.stopServeStarttime"></el-time-select> |
| | | <el-time-picker placeholder="å¼å§æ¶é´" value-format="HH:mm" :picker-options="option" v-model="form.stopServeStarttime"></el-time-picker> |
| | | è³ |
| | | <el-time-select placeholder="ç»ææ¶é´" v-model="form.stopServeEndtime"></el-time-select> |
| | | <el-time-picker placeholder="ç»ææ¶é´" value-format="HH:mm" :picker-options="option" v-model="form.stopServeEndtime"></el-time-picker> |
| | | <div class="tips">忢æå¡å¼å§æ¶é´è³ç»ææ¶é´</div> |
| | | </el-form-item> |
| | | </template> |
| | |
| | | components: { TableLayout }, |
| | | data() { |
| | | return { |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal', |
| | | option: { |
| | | format: 'HH:mm' |
| | | }, |
| | | // æç´¢ |
| | | form: { |
| | | businessEndtime: '', |
| | |
| | | }, |
| | | methods: { |
| | | handleAvatarSuccess(res, file) { |
| | | this.imageUrl = URL.createObjectURL(file.raw); |
| | | console.log(res.data.url); |
| | | this.form.rentTipsVideo = res.data.url; |
| | | }, |
| | | // beforeAvatarUpload(file) { |
| | | // console.log(file.type); |
| | |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <!-- 0å¯ç¨ 1ç¦ç¨ --> |
| | | <el-switch v-model="form.status" active-value="0" inactive-value="1" active-color="#13ce66"></el-switch> |
| | | <el-switch v-model="row.status" :active-value="0" :inactive-value="1" active-color="#13ce66" @change="changeStatus(row)"></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px" align="center"></el-table-column> |
| | | <!-- <el-table-column prop="creator" label="å建人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="ç¼è¾æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editor" label="ç¼è¾äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isdeleted" label="æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤" min-width="100px"></el-table-column> --> |
| | | |
| | | |
| | | |
| | | <!-- <el-table-column prop="info" label="夿³¨" min-width="100px"></el-table-column> --> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:pricingparam:update', 'business:pricingparam:delete'])" |
| | | label="æä½" |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaPricingParamWindow.open('ç¼è¾å®ä»·æ¹æ¡é
ç½®', row)" icon="el-icon-edit" v-permissions="['business:pricingparam:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:pricingparam:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="$refs.priceConfiguration.open(`${row.name}å®ä»·æ¹æ¡`, row)">é
置费ç</el-button> |
| | | <el-button type="text" @click="$refs.operaPricingParamWindow.open('ç¼è¾å®ä»·æ¹æ¡é
ç½®', row)" v-permissions="['business:pricingparam:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" v-permissions="['business:pricingparam:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaPricingParamWindow ref="operaPricingParamWindow" @success="handlePageChange"/> |
| | | <PriceConfiguration ref="priceConfiguration" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaPricingParamWindow from '@/components/business/OperaPricingParamWindow' |
| | | import PriceConfiguration from '@/components/business/priceConfiguration' |
| | | import { updateById } from '@/api/business/pricingParam' |
| | | export default { |
| | | name: 'PricingParam', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaPricingParamWindow }, |
| | | components: { TableLayout, Pagination, OperaPricingParamWindow, PriceConfiguration }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | changeStatus(row) { |
| | | updateById(row) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('æå') |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.handlePageChange() |
| | | }) |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:baseparam:create']"> |
| | | <li><el-button type="primary" @click="$refs.operaReturnReasonWindow.open('æ°å»ºè½¦è¾é®é¢')" icon="el-icon-plus" v-permissions="['business:baseparam:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaReturnReasonWindow.open('æ°å»ºå¼ºå¶è¿è½¦åå ')" icon="el-icon-plus" v-permissions="['business:baseparam:create']">æ°å»º</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaReturnReasonWindow.open('ç¼è¾è½¦è¾é®é¢', row)" icon="el-icon-edit" v-permissions="['business:baseparam:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.operaReturnReasonWindow.open('ç¼è¾å¼ºå¶è¿è½¦åå ', row)" icon="el-icon-edit" v-permissions="['business:baseparam:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:baseparam:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | mqtt: |
| | | clientid: doumeetestplat |
| | | subclientid: doumeetestplatSub |
| | | |
| | |
| | | * @return |
| | | */ |
| | | public static Integer betweenMin(Date begin, Date end) { |
| | | if(begin ==null || end == null){ |
| | | if(begin ==null ){ |
| | | return 0; |
| | | } |
| | | long createTime =begin.getTime();//è·åå建æ¶é´çæ¶é´æ³ |
| | |
| | | memberRidesResponse.setUnitTime(s.getUnitTime()); |
| | | if ( Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()!=(Constants.formatIntegerNum(s.getStatus()))){ |
| | | //妿æ¯éªè¡ä¸ |
| | | s.setDuration(rideTime> finalFreeTime ?(rideTime- finalFreeTime):0); |
| | | s.setDuration(rideTime> finalFreeTime ?(rideTime):0); |
| | | } |
| | | s.setRideTime(rideTime); |
| | | return memberRidesResponse; |
| | |
| | | queryWrapper.ge(model.getRentDateStart()!=null, MemberRides::getRentDate,model.getRentDateStart()); |
| | | queryWrapper.le(model.getRentDateEnd()!=null, MemberRides::getRentDate,model.getRentDateEnd()); |
| | | queryWrapper.eq(model.getCloseStatus()!=null,MemberRides::getCloseStatus, model.getCloseStatus()); |
| | | queryWrapper.eq(model.getStatus()!=null,MemberRides::getStatus, model.getStatus()); |
| | | queryWrapper.eq(model.getGoodsorderId()!=null,MemberRides::getOrdreId, model.getGoodsorderId()); |
| | | queryWrapper.eq(model.getGoodsorderId()!=null,MemberRides::getStatus, model.getStatus()); |
| | | queryWrapper.eq(MemberRides::getBackType, Constants.ZERO); |
| | | // queryWrapper.eq(MemberRides::getBackType, Constants.ZERO); |
| | | queryWrapper.in(MemberRides::getStatus, |
| | | Arrays.asList(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey(),Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey())); |
| | | queryWrapper |
| | |
| | | update.setBackLockId(param.getBackLockId()); |
| | | update.setBackSiteId(param.getBackSiteId()); |
| | | update.setBackCommondId(param.getBackCommondId()); |
| | | int duration =DateUtil.betweenMin(memberRides.getRentDate(),date)-freeTime; |
| | | // int duration =DateUtil.betweenMin(memberRides.getRentDate(),date)-freeTime; |
| | | int min = DateUtil.betweenMin(memberRides.getRentDate(),date);//å®é
éªè¡æ¶é´ |
| | | int duration = min>freeTime?min:0; |
| | | update.setDuration(duration>0?duration:0); |
| | | update.setBackType(Constants.ONE); |
| | | update.setBackInfo("ç¨æ·æ£å¸¸è¿è½¦"); |
| | |
| | | if(min >0){ |
| | | title += min+"åé"; |
| | | } |
| | | title = Constants.translateMoney(unitPrice).doubleValue() |
| | | title += Constants.translateMoney(unitPrice).doubleValue() |
| | | +"å
ï¼è¶
è¿å"+Constants.translateMoney(basePrice).doubleValue()+"å
/" |
| | | +unitTime+"åé"; |
| | | } |