From c6d20c6e1db82b204cf59e058bc3ba2a9cd84a1e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 24 十月 2023 09:24:17 +0800
Subject: [PATCH] Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/parkBike into dev
---
admin/src/components/business/OperaBaseParamWindow.vue | 82 +
server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java | 3
admin/src/api/business/bikes.js | 23
admin/src/views/business/goodsorder.vue | 30
admin/src/components/business/OperaGoodsorderWindow.vue | 126 +
admin/src/components/business/OperaLocksWindow.vue | 82 +
server/services/src/main/java/com/doumee/dao/business/model/ActionLog.java | 7
server/services/src/main/java/com/doumee/service/business/PricingParamService.java | 2
admin/src/api/business/multifile.js | 23
admin/src/components/system/dict/OperaDictDataWindow.vue | 2
admin/src/views/business/actionLog.vue | 38
admin/src/views/business/pricingParam.vue | 4
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java | 3
admin/src/views/business/memberRides.vue | 39
server/platform/src/main/java/com/doumee/api/business/PricingParamController.java | 8
admin/src/views/business/bikes.vue | 145 +
admin/src/components/business/OperaRentSiteWindow.vue | 8
admin/src/views/business/baseParam.vue | 130 +
admin/src/components/business/RepairDetailWindow.vue | 124 +
admin/src/views/business/mqttLog.vue | 130 +
server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 10
server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java | 6
admin/src/components/business/OperaAliBillDetailWindow.vue | 142 +
admin/src/views/business/aliBillDetail.vue | 205 ++
admin/.env.development | 2
admin/src/components/business/OperaMultifileWindow.vue | 86 +
admin/src/components/business/OperaReductionWindow.vue | 2
admin/src/views/business/reductionReason.vue | 4
admin/src/api/business/locks.js | 23
admin/src/api/business/mqttLog.js | 23
admin/src/components/business/OperaRefundWindow.vue | 106 +
admin/src/views/business/wxBill.vue | 5
server/services/src/main/java/com/doumee/core/utils/DateUtil.java | 2
admin/src/views/business/member.vue | 185 ++
admin/src/api/business/aliBill.js | 23
admin/src/api/business/aliBillDetail.js | 23
admin/src/views/business/backgroundRefund.vue | 49
server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java | 1
admin/src/api/business/ad.js | 23
admin/src/components/business/goodsOrderDetail.vue | 11
admin/src/api/business/pricingDetail.js | 23
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 28
admin/src/api/business/memberRides.js | 2
admin/src/api/business/transactions.js | 23
admin/src/components/business/OperaReturnReasonWindow.vue | 2
admin/src/views/business/pricingDetail.vue | 160 ++
admin/src/views/business/ad.vue | 96 +
admin/src/views/business/onlinePayStatistics.vue | 7
server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java | 24
admin/src/components/business/OperaAliBillWindow.vue | 82 +
admin/src/api/business/bikeRepair.js | 5
admin/src/views/business/wxBillDetail.vue | 5
admin/src/components/business/OperaBikeRepairWindow.vue | 114 +
server/services/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java | 6
admin/src/components/business/OperaRepairDealWindow.vue | 2
admin/src/components/business/OperaWxBillDetailWindow.vue | 158 ++
admin/src/views/business/bikeRetakeRecord.vue | 50
server/services/src/main/resources/mappers/SystemUserMapper.xml | 3
server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java | 17
server/services/src/main/java/com/doumee/service/business/impl/ActionLogServiceImpl.java | 11
admin/src/views/business/returnReason.vue | 4
admin/src/api/business/pricingParam.js | 7
admin/src/components/business/OperaPricingDetailWindow.vue | 106 +
admin/src/views/business/transactions.vue | 165 ++
server/services/src/main/java/com/doumee/service/business/impl/AdServiceImpl.java | 11
admin/src/components/business/OperaPriceConfigWindow.vue | 4
admin/src/views/business/multifile.vue | 135 +
admin/src/views/business/miniproSetting.vue | 90
admin/src/views/business/bikeRepair.vue | 48
admin/src/components/business/OperaBikesWindow.vue | 94 +
server/services/src/main/resources/application-dev.yml | 4
admin/src/views/business/refund.vue | 160 ++
admin/src/components/business/OperaMemberRidesWindow.vue | 182 ++
admin/src/views/business/locks.vue | 130 +
admin/src/components/business/OperaWxBillWindow.vue | 82 +
admin/src/utils/util.js | 28
admin/src/api/business/refund.js | 23
admin/src/components/business/priceConfiguration.vue | 2
admin/src/views/business/aliBill.vue | 130 +
admin/src/components/business/OperaMqttLogWindow.vue | 82 +
server/platform/src/main/java/com/doumee/api/system/SystemUserController.java | 1
admin/src/components/business/OperaTransactionsWindow.vue | 110 +
server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java | 9
admin/src/components/business/backGoodsorderWindow.vue | 8
admin/src/components/business/OperaAdWindow.vue | 113 +
admin/src/views/business/rentSite.vue | 6
admin/src/components/business/OperaActionLogWindow.vue | 114 +
server/services/src/main/java/com/doumee/dao/business/model/Member.java | 2
server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java | 64
89 files changed, 4,513 insertions(+), 159 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 6e828ff..bbc103c 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -7,7 +7,7 @@
#鐒︽澗鏈湴
# http://192.168.0.36:10012/doc.html#/home
-VUE_APP_API_BASE_URL='http://192.168.0.36:10026'
+VUE_APP_API_BASE_URL='http://192.168.0.188:10026'
# # 娴嬭瘯鏈嶅姟
# VUE_APP_API_PREFIX='/bike_admin_api'
diff --git a/admin/src/api/business/ad.js b/admin/src/api/business/ad.js
new file mode 100644
index 0000000..1623b44
--- /dev/null
+++ b/admin/src/api/business/ad.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/ad/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/ad/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/ad/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/ad/delete/${id}`)
+}
diff --git a/admin/src/api/business/aliBill.js b/admin/src/api/business/aliBill.js
new file mode 100644
index 0000000..1683fd8
--- /dev/null
+++ b/admin/src/api/business/aliBill.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/aliBill/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/aliBill/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/aliBill/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/aliBill/delete/${id}`)
+}
diff --git a/admin/src/api/business/aliBillDetail.js b/admin/src/api/business/aliBillDetail.js
new file mode 100644
index 0000000..8228573
--- /dev/null
+++ b/admin/src/api/business/aliBillDetail.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/aliBillDetail/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/aliBillDetail/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/aliBillDetail/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/aliBillDetail/delete/${id}`)
+}
diff --git a/admin/src/api/business/bikeRepair.js b/admin/src/api/business/bikeRepair.js
index 1d233e6..2a3f99f 100644
--- a/admin/src/api/business/bikeRepair.js
+++ b/admin/src/api/business/bikeRepair.js
@@ -11,3 +11,8 @@
export function updateById (data) {
return request.post('/business/bikeRepair/updateById', data)
}
+
+// 淇敼
+export function getFileList (id) {
+ return request.post(`/business/bikeRepair/getFileList/${id}`)
+}
diff --git a/admin/src/api/business/bikes.js b/admin/src/api/business/bikes.js
new file mode 100644
index 0000000..656464d
--- /dev/null
+++ b/admin/src/api/business/bikes.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/bikes/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/bikes/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/bikes/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/bikes/delete/${id}`)
+}
diff --git a/admin/src/api/business/locks.js b/admin/src/api/business/locks.js
new file mode 100644
index 0000000..a4ba570
--- /dev/null
+++ b/admin/src/api/business/locks.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/locks/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/locks/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/locks/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/locks/delete/${id}`)
+}
diff --git a/admin/src/api/business/memberRides.js b/admin/src/api/business/memberRides.js
index 2f3d499..dc1baca 100644
--- a/admin/src/api/business/memberRides.js
+++ b/admin/src/api/business/memberRides.js
@@ -9,7 +9,7 @@
// 瀵煎嚭Excel
export function exportExcel (data) {
- return request.post('/business/memberRides/exportExcel', data, {
+ return request.post('/business/memberRides/exportMemberRidesExcel', data, {
trim: true,
download: true
})
diff --git a/admin/src/api/business/mqttLog.js b/admin/src/api/business/mqttLog.js
new file mode 100644
index 0000000..90bba10
--- /dev/null
+++ b/admin/src/api/business/mqttLog.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/mqttLog/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/mqttLog/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/mqttLog/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/mqttLog/delete/${id}`)
+}
diff --git a/admin/src/api/business/multifile.js b/admin/src/api/business/multifile.js
new file mode 100644
index 0000000..4bdc449
--- /dev/null
+++ b/admin/src/api/business/multifile.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/multifile/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/multifile/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/multifile/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/multifile/delete/${id}`)
+}
diff --git a/admin/src/api/business/pricingDetail.js b/admin/src/api/business/pricingDetail.js
new file mode 100644
index 0000000..b1b1c78
--- /dev/null
+++ b/admin/src/api/business/pricingDetail.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/pricingDetail/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/pricingDetail/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/pricingDetail/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/pricingDetail/delete/${id}`)
+}
diff --git a/admin/src/api/business/pricingParam.js b/admin/src/api/business/pricingParam.js
index 17037e9..1ad96d2 100644
--- a/admin/src/api/business/pricingParam.js
+++ b/admin/src/api/business/pricingParam.js
@@ -17,6 +17,11 @@
return request.post('/business/pricingParam/updateById', data)
}
+// 淇敼
+export function updateStatusById (data) {
+ return request.post('/business/pricingParam/updateStatusById', data)
+}
+
// 鍒犻櫎
export function deleteById (id) {
return request.get(`/business/pricingParam/delete/${id}`)
@@ -28,5 +33,5 @@
}
// 鏍规嵁ID淇敼閰嶇疆
export function updatePricingDetailById (data) {
- return request.post('/business/pricingDetail/updateById', data)
+ return request.post('/business/pricingDetail/create', data)
}
\ No newline at end of file
diff --git a/admin/src/api/business/refund.js b/admin/src/api/business/refund.js
new file mode 100644
index 0000000..e4cfc6f
--- /dev/null
+++ b/admin/src/api/business/refund.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/refund/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/refund/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/refund/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/refund/delete/${id}`)
+}
diff --git a/admin/src/api/business/transactions.js b/admin/src/api/business/transactions.js
new file mode 100644
index 0000000..580e263
--- /dev/null
+++ b/admin/src/api/business/transactions.js
@@ -0,0 +1,23 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/transactions/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/transactions/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/transactions/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/transactions/delete/${id}`)
+}
diff --git a/admin/src/components/business/OperaActionLogWindow.vue b/admin/src/components/business/OperaActionLogWindow.vue
new file mode 100644
index 0000000..34b78e7
--- /dev/null
+++ b/admin/src/components/business/OperaActionLogWindow.vue
@@ -0,0 +1,114 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍐呭" prop="content">
+ <el-input v-model="form.content" placeholder="璇疯緭鍏ュ唴瀹�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 " prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨� " v-trim/>
+ </el-form-item>
+ <el-form-item label="鍏宠仈瀵硅薄缂栫爜" prop="objId">
+ <el-input v-model="form.objId" placeholder="璇疯緭鍏ュ叧鑱斿璞$紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍏宠仈瀵硅薄绫诲瀷 " prop="objType">
+ <el-input v-model="form.objType" placeholder="璇疯緭鍏ュ叧鑱斿璞$被鍨� " v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛缂栫爜" prop="userId">
+ <el-input v-model="form.userId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛绫诲瀷 0浼氬憳 1绯荤粺鐢ㄦ埛" prop="userType">
+ <el-input v-model="form.userType" placeholder="璇疯緭鍏ョ敤鎴风被鍨� 0浼氬憳 1绯荤粺鐢ㄦ埛" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎿嶄綔鍓嶅唴瀹�" prop="beforeContent">
+ <el-input v-model="form.beforeContent" placeholder="璇疯緭鍏ユ搷浣滃墠鍐呭" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎿嶄綔鍚庡唴瀹�" prop="afterContent">
+ <el-input v-model="form.afterContent" placeholder="璇疯緭鍏ユ搷浣滃悗鍐呭" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍙傛暟1" prop="param">
+ <el-input v-model="form.param" placeholder="璇疯緭鍏ュ弬鏁�1" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍙傛暟2" prop="param2">
+ <el-input v-model="form.param2" placeholder="璇疯緭鍏ュ弬鏁�2" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍙傛暟3" prop="param3">
+ <el-input v-model="form.param3" placeholder="璇疯緭鍏ュ弬鏁�3" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎿嶄綔缁撴灉 0鎴愬姛 1澶辫触" prop="result">
+ <el-input v-model="form.result" placeholder="璇疯緭鍏ユ搷浣滅粨鏋� 0鎴愬姛 1澶辫触" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaActionLogWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ title: '',
+ content: '',
+ type: '',
+ objId: '',
+ objType: '',
+ userId: '',
+ userType: '',
+ beforeContent: '',
+ afterContent: '',
+ param: '',
+ param2: '',
+ param3: '',
+ result: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/actionLog',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaAdWindow.vue b/admin/src/components/business/OperaAdWindow.vue
new file mode 100644
index 0000000..7588601
--- /dev/null
+++ b/admin/src/components/business/OperaAdWindow.vue
@@ -0,0 +1,113 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ width="600px"
+ >
+ <el-form :model="form" ref="form" :rules="rules" label-width="125px" label-suffix="锛�">
+ <el-form-item label="鏍囬" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="灞曠ず鍥剧墖" prop="imgfullurl">
+ <UploadAvatarImage
+ :file="{ 'imgurlfull': form.imgfullurl, 'imgurl': form.imgurl }"
+ :uploadData="uploadData" tipsLabel="" @uploadSuccess="uploadOutSuccess" @uploadEnd="isUploading=false"
+ @uploadBegin="isUploading=true" />
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮侊紙鍗囧簭锛�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜锛堝崌搴忥級" v-trim/>
+ </el-form-item>
+
+
+ <!-- <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 0鍥炬枃 1澶栭摼 2鍏朵粬" prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨� 0鍥炬枃 1澶栭摼 2鍏朵粬" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍐呭" prop="content">
+ <el-input v-model="form.content" placeholder="璇疯緭鍏ュ唴瀹�" v-trim/>
+ </el-form-item> -->
+
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadAvatarImage from '@/components/common/UploadAvatarImage.vue'
+export default {
+ name: 'OperaAdWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, UploadAvatarImage },
+ data () {
+ return {
+ isUploading: false,
+ uploadData: {folder: 'bike'},
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ name: '',
+ sortnum: '',
+ imgfullurl: '',
+ imgurl: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ imgfullurl: [
+ { required: true, message:'璇蜂笂浼犲睍绀哄浘鐗�', tigger:'change' }
+ ]
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/ad',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ 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
+ this.form.imgurl = ''
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ },
+ uploadOutSuccess(file) {
+ this.form.imgurl = file.imgurl;
+ this.form.imgfullurl = file.imgurlfull;
+ },
+ },
+}
+/**
+ *
+ */
+</script>
diff --git a/admin/src/components/business/OperaAliBillDetailWindow.vue b/admin/src/components/business/OperaAliBillDetailWindow.vue
new file mode 100644
index 0000000..392895a
--- /dev/null
+++ b/admin/src/components/business/OperaAliBillDetailWindow.vue
@@ -0,0 +1,142 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="瀵硅处鍗旾D" prop="pid">
+ <el-input v-model="form.pid" placeholder="璇疯緭鍏ュ璐﹀崟ID" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鏃堕棿" prop="billDate">
+ <el-date-picker v-model="form.billDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヤ氦鏄撴椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍟嗘埛鍙�" prop="mchId">
+ <el-input v-model="form.mchId" placeholder="璇疯緭鍏ュ晢鎴峰彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="寰俊璁㈠崟鍙�" prop="transactionId">
+ <el-input v-model="form.transactionId" placeholder="璇疯緭鍏ュ井淇¤鍗曞彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗘埛璁㈠崟鍙�" prop="outTradeNo">
+ <el-input v-model="form.outTradeNo" placeholder="璇疯緭鍏ュ晢鎴疯鍗曞彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛鏍囪瘑" prop="openid">
+ <el-input v-model="form.openid" placeholder="璇疯緭鍏ョ敤鎴锋爣璇�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗绫诲瀷" prop="billType">
+ <el-input v-model="form.billType" placeholder="璇疯緭鍏ヤ氦鏄撶被鍨�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒告牳閿�閲戦锛堝厓锛�" prop="couponFee">
+ <el-input v-model="form.couponFee" placeholder="璇疯緭鍏ュ埜鏍搁攢閲戦锛堝厓锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆炬壒娆″彿/璇锋眰鍙�" prop="refundId">
+ <el-input v-model="form.refundId" placeholder="璇疯緭鍏ラ��娆炬壒娆″彿/璇锋眰鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧鍚嶇О" prop="body">
+ <el-input v-model="form.body" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵嬬画璐�" prop="cmmsAmt">
+ <el-input v-model="form.cmmsAmt" placeholder="璇疯緭鍏ユ墜缁垂" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁㈠崟閲戦" prop="totalFee">
+ <el-input v-model="form.totalFee" placeholder="璇疯緭鍏ヨ鍗曢噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢宠閫�娆鹃噾棰�" prop="applyRefundFee">
+ <el-input v-model="form.applyRefundFee" placeholder="璇疯緭鍏ョ敵璇烽��娆鹃噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗗瀹炴敹锛堝厓锛�" prop="receipts">
+ <el-input v-model="form.receipts" placeholder="璇疯緭鍏ュ晢瀹跺疄鏀讹紙鍏冿級" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏀粯瀹濈孩鍖咃紙鍏冿級" prop="aliRedEnvelope">
+ <el-input v-model="form.aliRedEnvelope" placeholder="璇疯緭鍏ユ敮浠樺疂绾㈠寘锛堝厓锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="闆嗗垎瀹濓紙鍏冿級" prop="jifenbao">
+ <el-input v-model="form.jifenbao" placeholder="璇疯緭鍏ラ泦鍒嗗疂锛堝厓锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏀粯瀹濅紭鎯狅紙鍏冿級" prop="aliOfferFee">
+ <el-input v-model="form.aliOfferFee" placeholder="璇疯緭鍏ユ敮浠樺疂浼樻儬锛堝厓锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗗浼樻儬锛堝厓锛�" prop="offerFee">
+ <el-input v-model="form.offerFee" placeholder="璇疯緭鍏ュ晢瀹朵紭鎯狅紙鍏冿級" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒稿悕绉�" prop="couponName">
+ <el-input v-model="form.couponName" placeholder="璇疯緭鍏ュ埜鍚嶇О" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗗绾㈠寘娑堣垂閲戦锛堝厓锛�" prop="redEnvelope">
+ <el-input v-model="form.redEnvelope" placeholder="璇疯緭鍏ュ晢瀹剁孩鍖呮秷璐归噾棰濓紙鍏冿級" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍗℃秷璐归噾棰濓紙鍏冿級" prop="cardFee">
+ <el-input v-model="form.cardFee" placeholder="璇疯緭鍏ュ崱娑堣垂閲戦锛堝厓锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒嗘鼎" prop="shareProfit">
+ <el-input v-model="form.shareProfit" placeholder="璇疯緭鍏ュ垎娑�" v-trim/>
+ </el-form-item>
+ <el-form-item label="闂ㄥ簵鍚嶇О" prop="mchName">
+ <el-input v-model="form.mchName" placeholder="璇疯緭鍏ラ棬搴楀悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎿嶄綔鍛�" prop="opName">
+ <el-input v-model="form.opName" placeholder="璇疯緭鍏ユ搷浣滃憳" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁堢鍙�" prop="tty">
+ <el-input v-model="form.tty" placeholder="璇疯緭鍏ョ粓绔彿" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaAliBillDetailWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ pid: '',
+ billDate: '',
+ mchId: '',
+ transactionId: '',
+ outTradeNo: '',
+ openid: '',
+ billType: '',
+ couponFee: '',
+ refundId: '',
+ body: '',
+ cmmsAmt: '',
+ totalFee: '',
+ applyRefundFee: '',
+ remark: '',
+ receipts: '',
+ aliRedEnvelope: '',
+ jifenbao: '',
+ aliOfferFee: '',
+ offerFee: '',
+ couponName: '',
+ redEnvelope: '',
+ cardFee: '',
+ shareProfit: '',
+ mchName: '',
+ opName: '',
+ tty: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/aliBillDetail',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaAliBillWindow.vue b/admin/src/components/business/OperaAliBillWindow.vue
new file mode 100644
index 0000000..9c7c96f
--- /dev/null
+++ b/admin/src/components/business/OperaAliBillWindow.vue
@@ -0,0 +1,82 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鎬讳氦鏄撳崟鏁�" prop="sumBill">
+ <el-input v-model="form.sumBill" placeholder="璇疯緭鍏ユ�讳氦鏄撳崟鏁�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆剧殑璁㈠崟鏁�" prop="sumRefundBill">
+ <el-input v-model="form.sumRefundBill" placeholder="璇疯緭鍏ラ��娆剧殑璁㈠崟鏁�" v-trim/>
+ </el-form-item>
+ <el-form-item label="搴旂粨璁㈠崟鎬婚噾棰�" prop="sumSuccessFee">
+ <el-input v-model="form.sumSuccessFee" placeholder="璇疯緭鍏ュ簲缁撹鍗曟�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆炬�婚噾棰�" prop="sumRefundFee">
+ <el-input v-model="form.sumRefundFee" placeholder="璇疯緭鍏ラ��娆炬�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍏呭�煎埜閫�娆炬�婚噾棰�" prop="sumCouponRefundFee">
+ <el-input v-model="form.sumCouponRefundFee" placeholder="璇疯緭鍏ュ厖鍊煎埜閫�娆炬�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵嬬画璐规�婚噾棰�" prop="sumCmmsAmt">
+ <el-input v-model="form.sumCmmsAmt" placeholder="璇疯緭鍏ユ墜缁垂鎬婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁㈠崟鎬婚噾棰�" prop="sumTotalFee">
+ <el-input v-model="form.sumTotalFee" placeholder="璇疯緭鍏ヨ鍗曟�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢宠閫�娆炬�婚噾棰�" prop="sumApplyRefundFee">
+ <el-input v-model="form.sumApplyRefundFee" placeholder="璇疯緭鍏ョ敵璇烽��娆炬�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆炬墜缁垂鎬婚噾棰�" prop="sumRefundCmmsAmt">
+ <el-input v-model="form.sumRefundCmmsAmt" placeholder="璇疯緭鍏ラ��娆炬墜缁垂鎬婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撶畻閲戦" prop="total">
+ <el-input v-model="form.total" placeholder="璇疯緭鍏ョ粨绠楅噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑷杞︽敹鍏�" prop="bikeFee">
+ <el-input v-model="form.bikeFee" placeholder="璇疯緭鍏ヨ嚜琛岃溅鏀跺叆" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaAliBillWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ sumBill: '',
+ sumRefundBill: '',
+ sumSuccessFee: '',
+ sumRefundFee: '',
+ sumCouponRefundFee: '',
+ sumCmmsAmt: '',
+ sumTotalFee: '',
+ sumApplyRefundFee: '',
+ sumRefundCmmsAmt: '',
+ total: '',
+ bikeFee: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/aliBill',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaBaseParamWindow.vue b/admin/src/components/business/OperaBaseParamWindow.vue
new file mode 100644
index 0000000..f598cc0
--- /dev/null
+++ b/admin/src/components/business/OperaBaseParamWindow.vue
@@ -0,0 +1,82 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮侊紙鍗囧簭锛�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜锛堝崌搴忥級" v-trim/>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 0杞﹁締淇濅慨鍘熷洜 1寮哄埗杩樿溅鍘熷洜 2鏃堕暱鍑忓厤鍘熷洜 3鍗曡溅绫诲瀷" prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨� 0杞﹁締淇濅慨鍘熷洜 1寮哄埗杩樿溅鍘熷洜 2鏃堕暱鍑忓厤鍘熷洜 3鍗曡溅绫诲瀷" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞鏄惁蹇呭~ 0鍚� 1鏄�" prop="required">
+ <el-input v-model="form.required" placeholder="璇疯緭鍏ュ娉ㄦ槸鍚﹀繀濉� 0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaBaseParamWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ name: '',
+ sortnum: '',
+ type: '',
+ status: '',
+ info: '',
+ required: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/baseParam',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaBikeRepairWindow.vue b/admin/src/components/business/OperaBikeRepairWindow.vue
new file mode 100644
index 0000000..a7001e3
--- /dev/null
+++ b/admin/src/components/business/OperaBikeRepairWindow.vue
@@ -0,0 +1,114 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杞﹁締缂栫爜" prop="binkeId">
+ <el-input v-model="form.binkeId" placeholder="璇疯緭鍏ヨ溅杈嗙紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁忓害" prop="longitude">
+ <el-input v-model="form.longitude" placeholder="璇疯緭鍏ョ粡搴�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绾害" prop="latitude">
+ <el-input v-model="form.latitude" placeholder="璇疯緭鍏ョ含搴�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璇︾粏鍦板潃" prop="addr">
+ <el-input v-model="form.addr" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杞﹁締闂鍘熷洜缂栫爜锛堝叧鑱攂ase_param)" prop="paramId">
+ <el-input v-model="form.paramId" placeholder="璇疯緭鍏ヨ溅杈嗛棶棰樺師鍥犵紪鐮侊紙鍏宠仈base_param)" v-trim/>
+ </el-form-item>
+ <el-form-item label="杞﹁締闂" prop="param">
+ <el-input v-model="form.param" placeholder="璇疯緭鍏ヨ溅杈嗛棶棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0寰呭鐞� 1宸插鐞� 2鍏朵粬" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0寰呭鐞� 1宸插鐞� 2鍏朵粬" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑱旂郴浜�" prop="linkname">
+ <el-input v-model="form.linkname" placeholder="璇疯緭鍏ヨ仈绯讳汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑱旂郴鐢佃瘽" prop="linkphone">
+ <el-input v-model="form.linkphone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊浜虹紪鐮侊紙鍏宠仈system_user)" prop="dealUser">
+ <el-input v-model="form.dealUser" placeholder="璇疯緭鍏ュ鐞嗕汉缂栫爜锛堝叧鑱攕ystem_user)" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏃堕棿" prop="dealDate">
+ <el-date-picker v-model="form.dealDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ鐞嗘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="澶勭悊澶囨敞" prop="dealInfo">
+ <el-input v-model="form.dealInfo" placeholder="璇疯緭鍏ュ鐞嗗娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐜板満鎻忚堪" prop="content">
+ <el-input v-model="form.content" placeholder="璇疯緭鍏ョ幇鍦烘弿杩�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaBikeRepairWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ binkeId: '',
+ longitude: '',
+ latitude: '',
+ addr: '',
+ paramId: '',
+ param: '',
+ status: '',
+ info: '',
+ linkname: '',
+ linkphone: '',
+ dealUser: '',
+ dealDate: '',
+ dealInfo: '',
+ content: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/bikeRepair',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaBikesWindow.vue b/admin/src/components/business/OperaBikesWindow.vue
new file mode 100644
index 0000000..9ad53dc
--- /dev/null
+++ b/admin/src/components/business/OperaBikesWindow.vue
@@ -0,0 +1,94 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杞﹁締绫诲瀷缂栫爜锛堝叧鑱攂ase_param)" prop="paramId">
+ <el-input v-model="form.paramId" placeholder="璇疯緭鍏ヨ溅杈嗙被鍨嬬紪鐮侊紙鍏宠仈base_param)" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栧彿" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ョ紪鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍋滆溅鍙嚭鍊� 1鍑哄�熶腑 3绂佺敤 " prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍋滆溅鍙嚭鍊� 1鍑哄�熶腑 3绂佺敤 " v-trim/>
+ </el-form-item>
+ <el-form-item label="褰撳墠绔欑偣缂栫爜锛堝叧鑱攕ites)" prop="siteId">
+ <el-input v-model="form.siteId" placeholder="璇疯緭鍏ュ綋鍓嶇珯鐐圭紪鐮侊紙鍏宠仈sites)" v-trim/>
+ </el-form-item>
+ <el-form-item label="褰撳墠閿佸ご缂栫爜锛堝叧鑱攍ocks)" prop="lockId">
+ <el-input v-model="form.lockId" placeholder="璇疯緭鍏ュ綋鍓嶉攣澶寸紪鐮侊紙鍏宠仈locks)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏈�杩戠鍊熸椂闂�" prop="lastRentData">
+ <el-date-picker v-model="form.lastRentData" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戠鍊熸椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍑哄敭鏃堕棿" prop="soldoutDate">
+ <el-date-picker v-model="form.soldoutDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ嚭鍞椂闂�"></el-date-picker>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaBikesWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ name: '',
+ info: '',
+ paramId: '',
+ code: '',
+ status: '',
+ siteId: '',
+ lockId: '',
+ lastRentData: '',
+ soldoutDate: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/bikes',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaGoodsorderWindow.vue b/admin/src/components/business/OperaGoodsorderWindow.vue
new file mode 100644
index 0000000..72b4ee9
--- /dev/null
+++ b/admin/src/components/business/OperaGoodsorderWindow.vue
@@ -0,0 +1,126 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁㈠崟缂栫爜" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ヨ鍗曠紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" prop="memberId">
+ <el-input v-model="form.memberId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮侊紙鍏宠仈member琛級" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗閲戦" prop="money">
+ <el-input v-model="form.money" placeholder="璇疯緭鍏ヤ氦鏄撻噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0寰呮敮浠� 1宸叉敮浠� 2宸插彇娑� 3鏀粯澶辫触 4宸茬粨绠�" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0寰呮敮浠� 1宸叉敮浠� 2宸插彇娑� 3鏀粯澶辫触 4宸茬粨绠�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗棰勮鍗曞彿" prop="preOrderid">
+ <el-input v-model="form.preOrderid" placeholder="璇疯緭鍏ヤ氦鏄撻璁㈠崟鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍦ㄧ嚎浜ゆ槗鍗曞彿" prop="onlineOrderid">
+ <el-input v-model="form.onlineOrderid" placeholder="璇疯緭鍏ュ湪绾夸氦鏄撳崟鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏀粯鐘舵�� 0寰呮敮浠� 1宸叉敮浠� " prop="payStatus">
+ <el-input v-model="form.payStatus" placeholder="璇疯緭鍏ユ敮浠樼姸鎬� 0寰呮敮浠� 1宸叉敮浠� " v-trim/>
+ </el-form-item>
+ <el-form-item label="鏀粯鏂瑰紡 0寰俊 1鏀粯瀹�" prop="payWay">
+ <el-input v-model="form.payWay" placeholder="璇疯緭鍏ユ敮浠樻柟寮� 0寰俊 1鏀粯瀹�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏀粯鏃堕棿" prop="payDate">
+ <el-input v-model="form.payDate" placeholder="璇疯緭鍏ユ敮浠樻椂闂�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗绫诲瀷 0绉熻溅鎶奸噾" prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ヤ氦鏄撶被鍨� 0绉熻溅鎶奸噾" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撶畻閲戦(鍒嗭級" prop="closeMoney">
+ <el-input v-model="form.closeMoney" placeholder="璇疯緭鍏ョ粨绠楅噾棰�(鍒嗭級" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撶畻閫�娆惧崟鍙�(鍏宠仈refund)" prop="closeId">
+ <el-input v-model="form.closeId" placeholder="璇疯緭鍏ョ粨绠楅��娆惧崟鍙�(鍏宠仈refund)" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撶畻鏃堕棿" prop="closeDate">
+ <el-date-picker v-model="form.closeDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨绠楁椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缁撶畻澶囨敞" prop="closeInfo">
+ <el-input v-model="form.closeInfo" placeholder="璇疯緭鍏ョ粨绠楀娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撶畻鎿嶄綔浜虹紪鐮侊紙鍏宠仈system_user)" prop="closeUserId">
+ <el-input v-model="form.closeUserId" placeholder="璇疯緭鍏ョ粨绠楁搷浣滀汉缂栫爜锛堝叧鑱攕ystem_user)" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撶畻绫诲瀷 0鑷姩缁撶畻 1骞冲彴浜哄伐缁撶畻 2绯荤粺鑷姩缁撶畻" prop="closeType">
+ <el-input v-model="form.closeType" placeholder="璇疯緭鍏ョ粨绠楃被鍨� 0鑷姩缁撶畻 1骞冲彴浜哄伐缁撶畻 2绯荤粺鑷姩缁撶畻" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaGoodsorderWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ code: '',
+ memberId: '',
+ money: '',
+ status: '',
+ preOrderid: '',
+ onlineOrderid: '',
+ payStatus: '',
+ payWay: '',
+ payDate: '',
+ type: '',
+ closeMoney: '',
+ closeId: '',
+ closeDate: '',
+ closeInfo: '',
+ closeUserId: '',
+ closeType: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/goodsorder',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaLocksWindow.vue b/admin/src/components/business/OperaLocksWindow.vue
new file mode 100644
index 0000000..c2bfb6c
--- /dev/null
+++ b/admin/src/components/business/OperaLocksWindow.vue
@@ -0,0 +1,82 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栧彿" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ョ紪鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0姝e父 1寮傚父" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0姝e父 1寮傚父" v-trim/>
+ </el-form-item>
+ <el-form-item label="绔欑偣缂栫爜(鍏宠仈sites)" prop="siteId">
+ <el-input v-model="form.siteId" placeholder="璇疯緭鍏ョ珯鐐圭紪鐮�(鍏宠仈sites)" v-trim/>
+ </el-form-item>
+ <el-form-item label="褰撳墠閿佸畾鑷杞︾紪鍙�" prop="bikeCode">
+ <el-input v-model="form.bikeCode" placeholder="璇疯緭鍏ュ綋鍓嶉攣瀹氳嚜琛岃溅缂栧彿" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaLocksWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ name: '',
+ code: '',
+ status: '',
+ siteId: '',
+ bikeCode: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/locks',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaMemberRidesWindow.vue b/admin/src/components/business/OperaMemberRidesWindow.vue
new file mode 100644
index 0000000..602c591
--- /dev/null
+++ b/admin/src/components/business/OperaMemberRidesWindow.vue
@@ -0,0 +1,182 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛缂栫爜" prop="memberId">
+ <el-input v-model="form.memberId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杞﹁締缂栫爜" prop="bikeCode">
+ <el-input v-model="form.bikeCode" placeholder="璇疯緭鍏ヨ溅杈嗙紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="褰撳墠璐︽埛浣欓" prop="balance">
+ <el-input v-model="form.balance" placeholder="璇疯緭鍏ュ綋鍓嶈处鎴蜂綑棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杞﹁締绫诲瀷缂栫爜" prop="paramId">
+ <el-input v-model="form.paramId" placeholder="璇疯緭鍏ヨ溅杈嗙被鍨嬬紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绉熻溅绔欑偣缂栫爜" prop="rentSiteId">
+ <el-input v-model="form.rentSiteId" placeholder="璇疯緭鍏ョ杞︾珯鐐圭紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绉熻溅閿佸ご缂栫爜" prop="rentLockId">
+ <el-input v-model="form.rentLockId" placeholder="璇疯緭鍏ョ杞﹂攣澶寸紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绉熻溅鏃堕棿" prop="rentDate">
+ <el-date-picker v-model="form.rentDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ杞︽椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="绉熻溅鎸囦护缂栫爜" prop="rentCommondD">
+ <el-input v-model="form.rentCommondD" placeholder="璇疯緭鍏ョ杞︽寚浠ょ紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩樿溅绔欑偣缂栫爜" prop="backSiteId">
+ <el-input v-model="form.backSiteId" placeholder="璇疯緭鍏ヨ繕杞︾珯鐐圭紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩樿溅閿佸ご缂栫爜" prop="backLockId">
+ <el-input v-model="form.backLockId" placeholder="璇疯緭鍏ヨ繕杞﹂攣澶寸紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩樿溅鏃堕棿" prop="backDate">
+ <el-date-picker v-model="form.backDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヨ繕杞︽椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="杩樿溅鎸囦护缂栫爜" prop="backCommondId">
+ <el-input v-model="form.backCommondId" placeholder="璇疯緭鍏ヨ繕杞︽寚浠ょ紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璧锋浠�" prop="basePrice">
+ <el-input v-model="form.basePrice" placeholder="璇疯緭鍏ヨ捣姝ヤ环" v-trim/>
+ </el-form-item>
+ <el-form-item label="璧锋浠锋椂闂�" prop="baseTime">
+ <el-input v-model="form.baseTime" placeholder="璇疯緭鍏ヨ捣姝ヤ环鏃堕棿" v-trim/>
+ </el-form-item>
+ <el-form-item label="瓒呭嚭鍗曚环" prop="unitPrice">
+ <el-input v-model="form.unitPrice" placeholder="璇疯緭鍏ヨ秴鍑哄崟浠�" v-trim/>
+ </el-form-item>
+ <el-form-item label="瓒呭嚭鏃堕棿鍗曚綅" prop="unitTime">
+ <el-input v-model="form.unitTime" placeholder="璇疯緭鍏ヨ秴鍑烘椂闂村崟浣�" v-trim/>
+ </el-form-item>
+ <el-form-item label="楠戣浠锋牸" prop="price">
+ <el-input v-model="form.price" placeholder="璇疯緭鍏ラ獞琛屼环鏍�" v-trim/>
+ </el-form-item>
+ <el-form-item label="楠戣瀹為檯浠锋牸" prop="actualPrice">
+ <el-input v-model="form.actualPrice" placeholder="璇疯緭鍏ラ獞琛屽疄闄呬环鏍�" v-trim/>
+ </el-form-item>
+ <el-form-item label="楠戣璁¤垂鏃堕暱" prop="duration">
+ <el-input v-model="form.duration" placeholder="璇疯緭鍏ラ獞琛岃璐规椂闀�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撶畻鏃堕棿" prop="closeDate">
+ <el-date-picker v-model="form.closeDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨绠楁椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缁撶畻鐘舵�� 0鏈粨绠� 1宸茬粨鏉�" prop="closeStatus">
+ <el-input v-model="form.closeStatus" placeholder="璇疯緭鍏ョ粨绠楃姸鎬� 0鏈粨绠� 1宸茬粨鏉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍏宠仈璁㈠崟缂栫爜(鍏宠仈goodsorder锛�" prop="ordreId">
+ <el-input v-model="form.ordreId" placeholder="璇疯緭鍏ュ叧鑱旇鍗曠紪鐮�(鍏宠仈goodsorder锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁缁撶畻璁¤垂杞﹀瀷 0鍚� 1鏄�" prop="isStandard">
+ <el-input v-model="form.isStandard" placeholder="璇疯緭鍏ユ槸鍚︾粨绠楄璐硅溅鍨� 0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁′环鏂规缂栫爜(鍏宠仈pricing_detail)" prop="pricingDetailId">
+ <el-input v-model="form.pricingDetailId" placeholder="璇疯緭鍏ヨ浠锋柟妗堢紪鐮�(鍏宠仈pricing_detail)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁鑺傚亣鏃� 0涓嶆槸 1鏄�" prop="isHoliday">
+ <el-input v-model="form.isHoliday" placeholder="璇疯緭鍏ユ槸鍚﹁妭鍋囨棩 0涓嶆槸 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞� 3寮�閿佸け璐�" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞� 3寮�閿佸け璐�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩樿溅绫诲瀷 0姝e父杩樿溅 1寮哄埗杩樿溅" prop="backType">
+ <el-input v-model="form.backType" placeholder="璇疯緭鍏ヨ繕杞︾被鍨� 0姝e父杩樿溅 1寮哄埗杩樿溅" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩樿溅鍘熷洜" prop="backReason">
+ <el-input v-model="form.backReason" placeholder="璇疯緭鍏ヨ繕杞﹀師鍥�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩樿溅澶囨敞" prop="backInfo">
+ <el-input v-model="form.backInfo" placeholder="璇疯緭鍏ヨ繕杞﹀娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="寮哄埗杩樿溅鎿嶄綔浜�(鍏宠仈system_user)" prop="backUserid">
+ <el-input v-model="form.backUserid" placeholder="璇疯緭鍏ュ己鍒惰繕杞︽搷浣滀汉(鍏宠仈system_user)" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaMemberRidesWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ memberId: '',
+ bikeCode: '',
+ balance: '',
+ paramId: '',
+ rentSiteId: '',
+ rentLockId: '',
+ rentDate: '',
+ rentCommondD: '',
+ backSiteId: '',
+ backLockId: '',
+ backDate: '',
+ backCommondId: '',
+ basePrice: '',
+ baseTime: '',
+ unitPrice: '',
+ unitTime: '',
+ price: '',
+ actualPrice: '',
+ duration: '',
+ closeDate: '',
+ closeStatus: '',
+ ordreId: '',
+ isStandard: '',
+ pricingDetailId: '',
+ isHoliday: '',
+ status: '',
+ backType: '',
+ backReason: '',
+ backInfo: '',
+ backUserid: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/memberRides',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaMqttLogWindow.vue b/admin/src/components/business/OperaMqttLogWindow.vue
new file mode 100644
index 0000000..d56c68d
--- /dev/null
+++ b/admin/src/components/business/OperaMqttLogWindow.vue
@@ -0,0 +1,82 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 0璁㈤槄 1鍙戝竷" prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨� 0璁㈤槄 1鍙戝竷" v-trim/>
+ </el-form-item>
+ <el-form-item label="瀹㈡埛绔紪鐮�" prop="clientid">
+ <el-input v-model="form.clientid" placeholder="璇疯緭鍏ュ鎴风缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="涓婚" prop="topic">
+ <el-input v-model="form.topic" placeholder="璇疯緭鍏ヤ富棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="娑堟伅鍐呭" prop="msg">
+ <el-input v-model="form.msg" placeholder="璇疯緭鍏ユ秷鎭唴瀹�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撴灉 0鎴愬姛 1澶辫触" prop="result">
+ <el-input v-model="form.result" placeholder="璇疯緭鍏ョ粨鏋� 0鎴愬姛 1澶辫触" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaMqttLogWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ type: '',
+ clientid: '',
+ topic: '',
+ msg: '',
+ result: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/mqttLog',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaMultifileWindow.vue b/admin/src/components/business/OperaMultifileWindow.vue
new file mode 100644
index 0000000..bd766e6
--- /dev/null
+++ b/admin/src/components/business/OperaMultifileWindow.vue
@@ -0,0 +1,86 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏂囦欢鍚�" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ユ枃浠跺悕" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍏宠仈瀵硅薄缂栫爜" prop="objId">
+ <el-input v-model="form.objId" placeholder="璇疯緭鍏ュ叧鑱斿璞$紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绫诲瀷0鍥剧墖 1瑙嗛 2鍏朵粬" prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨�0鍥剧墖 1瑙嗛 2鍏朵粬" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍏宠仈瀵硅薄绫诲瀷 0杞﹁締淇濅慨" prop="objType">
+ <el-input v-model="form.objType" placeholder="璇疯緭鍏ュ叧鑱斿璞$被鍨� 0杞﹁締淇濅慨" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏂囦欢鍦板潃" prop="fileurl">
+ <el-input v-model="form.fileurl" placeholder="璇疯緭鍏ユ枃浠跺湴鍧�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaMultifileWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ name: '',
+ info: '',
+ objId: '',
+ type: '',
+ objType: '',
+ fileurl: '',
+ sortnum: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/multifile',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaPriceConfigWindow.vue b/admin/src/components/business/OperaPriceConfigWindow.vue
index 7c4b835..0015476 100644
--- a/admin/src/components/business/OperaPriceConfigWindow.vue
+++ b/admin/src/components/business/OperaPriceConfigWindow.vue
@@ -66,7 +66,7 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import { create } from '@/api/business/pricingParam'
+import { updatePricingDetailById } from '@/api/business/pricingParam'
// import { findList } from '@/api/business/roomTime'
import { numRule } from '@/utils/form'
export default {
@@ -162,7 +162,7 @@
return
}
this.isWorking = true
- create(this.form)
+ updatePricingDetailById(this.form)
.then(res => {
this.visible = false
this.$tip.apiSuccess('淇敼鎴愬姛')
diff --git a/admin/src/components/business/OperaPricingDetailWindow.vue b/admin/src/components/business/OperaPricingDetailWindow.vue
new file mode 100644
index 0000000..b793164
--- /dev/null
+++ b/admin/src/components/business/OperaPricingDetailWindow.vue
@@ -0,0 +1,106 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="瀹氫环鏂规缂栫爜(鍏宠仈price_param)" prop="pricePramId">
+ <el-input v-model="form.pricePramId" placeholder="璇疯緭鍏ュ畾浠锋柟妗堢紪鐮�(鍏宠仈price_param)" v-trim/>
+ </el-form-item>
+ <el-form-item label="杞﹁締绫诲瀷缂栫爜(鍏宠仈bike_types琛級" prop="bikeTypeId">
+ <el-input v-model="form.bikeTypeId" placeholder="璇疯緭鍏ヨ溅杈嗙被鍨嬬紪鐮�(鍏宠仈bike_types琛級" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸ヤ綔鏃ヨ捣姝ユ椂闂达紙鍒嗛挓锛�" prop="baseTime">
+ <el-input v-model="form.baseTime" placeholder="璇疯緭鍏ュ伐浣滄棩璧锋鏃堕棿锛堝垎閽燂級" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸ヤ綔鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級" prop="basePrice">
+ <el-input v-model="form.basePrice" placeholder="璇疯緭鍏ュ伐浣滄棩璧锋浠锋牸锛堝垎锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸ヤ綔鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�" prop="unitTime">
+ <el-input v-model="form.unitTime" placeholder="璇疯緭鍏ュ伐浣滄棩瓒呭嚭鏃堕棿锛堝垎閽燂級" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸ヤ綔鏃ヨ秴鍑轰环鏍硷紙鍒嗭級" prop="unitPrice">
+ <el-input v-model="form.unitPrice" placeholder="璇疯緭鍏ュ伐浣滄棩瓒呭嚭浠锋牸锛堝垎锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑺傚亣鏃ヨ捣姝ユ椂闂达紙鍒嗛挓锛�" prop="holidayBaseTime">
+ <el-input v-model="form.holidayBaseTime" placeholder="璇疯緭鍏ヨ妭鍋囨棩璧锋鏃堕棿锛堝垎閽燂級" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑺傚亣鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級" prop="holidayBasePrice">
+ <el-input v-model="form.holidayBasePrice" placeholder="璇疯緭鍏ヨ妭鍋囨棩璧锋浠锋牸锛堝垎锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑺傚亣鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�" prop="holidayUnitTime">
+ <el-input v-model="form.holidayUnitTime" placeholder="璇疯緭鍏ヨ妭鍋囨棩瓒呭嚭鏃堕棿锛堝垎閽燂級" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑺傚亣鏃ヨ秴鍑烘椂闂村崟浠凤紙鍒嗭級" prop="holidayUnitPrice">
+ <el-input v-model="form.holidayUnitPrice" placeholder="璇疯緭鍏ヨ妭鍋囨棩瓒呭嚭鏃堕棿鍗曚环锛堝垎锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="瑙勫垯鍚嶇О" prop="title">
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ヨ鍒欏悕绉�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaPricingDetailWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ pricePramId: '',
+ bikeTypeId: '',
+ baseTime: '',
+ basePrice: '',
+ unitTime: '',
+ unitPrice: '',
+ holidayBaseTime: '',
+ holidayBasePrice: '',
+ holidayUnitTime: '',
+ holidayUnitPrice: '',
+ info: '',
+ title: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/pricingDetail',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaReductionWindow.vue b/admin/src/components/business/OperaReductionWindow.vue
index c29a620..2133490 100644
--- a/admin/src/components/business/OperaReductionWindow.vue
+++ b/admin/src/components/business/OperaReductionWindow.vue
@@ -42,7 +42,7 @@
status: '',
info: '',
- required: ''
+ required: 0
},
// 楠岃瘉瑙勫垯
rules: {
diff --git a/admin/src/components/business/OperaRefundWindow.vue b/admin/src/components/business/OperaRefundWindow.vue
new file mode 100644
index 0000000..c71a7ef
--- /dev/null
+++ b/admin/src/components/business/OperaRefundWindow.vue
@@ -0,0 +1,106 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆剧紪鐮�" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ラ��娆剧紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" prop="memberId">
+ <el-input v-model="form.memberId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮侊紙鍏宠仈member琛級" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗閲戦" prop="money">
+ <el-input v-model="form.money" placeholder="璇疯緭鍏ヤ氦鏄撻噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0棰勯��娆� 1閫�娆惧け璐� 2閫�娆惧畬鎴�" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0棰勯��娆� 1閫�娆惧け璐� 2閫�娆惧畬鎴�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗棰勮鍗曞彿" prop="preOrderid">
+ <el-input v-model="form.preOrderid" placeholder="璇疯緭鍏ヤ氦鏄撻璁㈠崟鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍦ㄧ嚎浜ゆ槗鍗曞彿" prop="onlineOrderid">
+ <el-input v-model="form.onlineOrderid" placeholder="璇疯緭鍏ュ湪绾夸氦鏄撳崟鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆炬柟寮� 0寰俊 1鏀粯瀹�" prop="payWay">
+ <el-input v-model="form.payWay" placeholder="璇疯緭鍏ラ��娆炬柟寮� 0寰俊 1鏀粯瀹�" v-trim/>
+ </el-form-item>
+ <el-form-item label="瀹屾垚鏃堕棿" prop="doneDate">
+ <el-date-picker v-model="form.doneDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ畬鎴愭椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="閫�娆剧被鍨� 0缁撶畻閫�娆� 1寮哄埗缁撶畻閫�娆� 2缁撶畻鍚庨��娆�" prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ラ��娆剧被鍨� 0缁撶畻閫�娆� 1寮哄埗缁撶畻閫�娆� 2缁撶畻鍚庨��娆�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆惧叧鑱旇鍗曠紪鐮�" prop="objId">
+ <el-input v-model="form.objId" placeholder="璇疯緭鍏ラ��娆惧叧鑱旇鍗曠紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆惧師鍥�" prop="reason">
+ <el-input v-model="form.reason" placeholder="璇疯緭鍏ラ��娆惧師鍥�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaRefundWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ code: '',
+ memberId: '',
+ money: '',
+ status: '',
+ preOrderid: '',
+ onlineOrderid: '',
+ payWay: '',
+ doneDate: '',
+ type: '',
+ objId: '',
+ reason: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/refund',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaRentSiteWindow.vue b/admin/src/components/business/OperaRentSiteWindow.vue
index 05fc3f6..aba4ca0 100644
--- a/admin/src/components/business/OperaRentSiteWindow.vue
+++ b/admin/src/components/business/OperaRentSiteWindow.vue
@@ -62,8 +62,8 @@
data () {
const longAndLatVal = (rule, value, callback) => {
let longAndLat = value.split(',')
- this.form.longitude = longAndLat[0]
- this.form.latitude = longAndLat.length==2 ? longAndLat[1] : ''
+ this.form.latitude = longAndLat[0]
+ this.form.longitude = longAndLat.length==2 ? longAndLat[1] : ''
if (!this.form.longitude || !this.form.latitude) {
callback(new Error())
} else {
@@ -131,8 +131,8 @@
changeLongAndLat(v) {
let longAndLat = v.split(',')
// console.log(longAndLat);
- this.form.longitude = longAndLat[0]
- this.form.latitude = longAndLat.length==2 ? longAndLat[1] : ''
+ this.form.latitude = longAndLat[0]
+ this.form.longitude = longAndLat.length==2 ? longAndLat[1] : ''
}
},
}
diff --git a/admin/src/components/business/OperaRepairDealWindow.vue b/admin/src/components/business/OperaRepairDealWindow.vue
index 2bfe2e7..27427a2 100644
--- a/admin/src/components/business/OperaRepairDealWindow.vue
+++ b/admin/src/components/business/OperaRepairDealWindow.vue
@@ -13,7 +13,7 @@
type="textarea"
:autosize="{ minRows: 2, maxRows: 4}"
v-model="form.dealInfo"
- placeholder="璇疯緭鍏ヨ皟鏁村娉�"
+ placeholder="璇疯緭鍏ュ鐞嗚鏄�"
v-trim
/>
</el-form-item>
diff --git a/admin/src/components/business/OperaReturnReasonWindow.vue b/admin/src/components/business/OperaReturnReasonWindow.vue
index 560bdb0..8da69bf 100644
--- a/admin/src/components/business/OperaReturnReasonWindow.vue
+++ b/admin/src/components/business/OperaReturnReasonWindow.vue
@@ -42,7 +42,7 @@
status: '',
info: '',
- required: ''
+ required: 0
},
// 楠岃瘉瑙勫垯
rules: {
diff --git a/admin/src/components/business/OperaTransactionsWindow.vue b/admin/src/components/business/OperaTransactionsWindow.vue
new file mode 100644
index 0000000..db2e20c
--- /dev/null
+++ b/admin/src/components/business/OperaTransactionsWindow.vue
@@ -0,0 +1,110 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁㈠崟缂栫爜锛堝叧鑱攇oodsorder)" prop="orderId">
+ <el-input v-model="form.orderId" placeholder="璇疯緭鍏ヨ鍗曠紪鐮侊紙鍏宠仈goodsorder)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" prop="memberId">
+ <el-input v-model="form.memberId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮侊紙鍏宠仈member琛級" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗閲戦" prop="money">
+ <el-input v-model="form.money" placeholder="璇疯緭鍏ヤ氦鏄撻噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗绫诲瀷 0绉熻溅鎶奸噾 1缁撶畻瀹為檯娑堣垂 2缁撶畻閫�娆� 3骞冲彴閫�娆�" prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ヤ氦鏄撶被鍨� 0绉熻溅鎶奸噾 1缁撶畻瀹為檯娑堣垂 2缁撶畻閫�娆� 3骞冲彴閫�娆�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璇︾粏鍦板潃" prop="preOrderid">
+ <el-input v-model="form.preOrderid" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璇︾粏鍦板潃" prop="onlineOrderid">
+ <el-input v-model="form.onlineOrderid" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗瀹屾垚鏃堕棿" prop="doneDate">
+ <el-input v-model="form.doneDate" placeholder="璇疯緭鍏ヤ氦鏄撳畬鎴愭椂闂�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鏍囬" prop="title">
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ヤ氦鏄撴爣棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鍐呭" prop="content">
+ <el-input v-model="form.content" placeholder="璇疯緭鍏ヤ氦鏄撳唴瀹�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛褰撳墠浣欓(鍒嗭級" prop="balance">
+ <el-input v-model="form.balance" placeholder="璇疯緭鍏ョ敤鎴峰綋鍓嶄綑棰�(鍒嗭級" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鍏宠仈瀵硅薄绫诲瀷 0璁㈠崟 1閫�娆惧崟" prop="objType">
+ <el-input v-model="form.objType" placeholder="璇疯緭鍏ヤ氦鏄撳叧鑱斿璞$被鍨� 0璁㈠崟 1閫�娆惧崟" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鍏宠仈瀵硅薄缂栫爜" prop="objId">
+ <el-input v-model="form.objId" placeholder="璇疯緭鍏ヤ氦鏄撳叧鑱斿璞$紪鐮�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaTransactionsWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ orderId: '',
+ memberId: '',
+ money: '',
+ type: '',
+ preOrderid: '',
+ onlineOrderid: '',
+ doneDate: '',
+ title: '',
+ content: '',
+ balance: '',
+ objType: '',
+ objId: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/transactions',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaWxBillDetailWindow.vue b/admin/src/components/business/OperaWxBillDetailWindow.vue
new file mode 100644
index 0000000..0c6c3c2
--- /dev/null
+++ b/admin/src/components/business/OperaWxBillDetailWindow.vue
@@ -0,0 +1,158 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="瀵硅处鍗旾D" prop="pid">
+ <el-input v-model="form.pid" placeholder="璇疯緭鍏ュ璐﹀崟ID" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鏃堕棿" prop="billDate">
+ <el-date-picker v-model="form.billDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヤ氦鏄撴椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍏紬璐﹀彿ID" prop="appid">
+ <el-input v-model="form.appid" placeholder="璇疯緭鍏ュ叕浼楄处鍙稩D" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗘埛鍙�" prop="mchId">
+ <el-input v-model="form.mchId" placeholder="璇疯緭鍏ュ晢鎴峰彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐗圭害鍟嗘埛鍙�" prop="subMchid">
+ <el-input v-model="form.subMchid" placeholder="璇疯緭鍏ョ壒绾﹀晢鎴峰彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁惧鍙�" prop="deviceInfo">
+ <el-input v-model="form.deviceInfo" placeholder="璇疯緭鍏ヨ澶囧彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="寰俊璁㈠崟鍙�" prop="transactionId">
+ <el-input v-model="form.transactionId" placeholder="璇疯緭鍏ュ井淇¤鍗曞彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗘埛璁㈠崟鍙�" prop="outTradeNo">
+ <el-input v-model="form.outTradeNo" placeholder="璇疯緭鍏ュ晢鎴疯鍗曞彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛鏍囪瘑" prop="openid">
+ <el-input v-model="form.openid" placeholder="璇疯緭鍏ョ敤鎴锋爣璇�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗绫诲瀷" prop="billType">
+ <el-input v-model="form.billType" placeholder="璇疯緭鍏ヤ氦鏄撶被鍨�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鐘舵��" prop="billStatus">
+ <el-input v-model="form.billStatus" placeholder="璇疯緭鍏ヤ氦鏄撶姸鎬�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浠樻閾惰" prop="bankType">
+ <el-input v-model="form.bankType" placeholder="璇疯緭鍏ヤ粯娆鹃摱琛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璐у竵绉嶇被" prop="feeType">
+ <el-input v-model="form.feeType" placeholder="璇疯緭鍏ヨ揣甯佺绫�" v-trim/>
+ </el-form-item>
+ <el-form-item label="搴旂粨璁㈠崟閲戦" prop="settlementTotalFee">
+ <el-input v-model="form.settlementTotalFee" placeholder="璇疯緭鍏ュ簲缁撹鍗曢噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浠i噾鍒搁噾棰�" prop="couponFee">
+ <el-input v-model="form.couponFee" placeholder="璇疯緭鍏ヤ唬閲戝埜閲戦" v-trim/>
+ </el-form-item>
+ <el-form-item label="寰俊閫�娆惧崟鍙�" prop="refundId">
+ <el-input v-model="form.refundId" placeholder="璇疯緭鍏ュ井淇¢��娆惧崟鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗘埛閫�娆惧崟鍙�" prop="outRefundNo">
+ <el-input v-model="form.outRefundNo" placeholder="璇疯緭鍏ュ晢鎴烽��娆惧崟鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆鹃噾棰�" prop="refundFee">
+ <el-input v-model="form.refundFee" placeholder="璇疯緭鍏ラ��娆鹃噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍏呭�煎埜閫�娆鹃噾棰�" prop="couponRefundFee">
+ <el-input v-model="form.couponRefundFee" placeholder="璇疯緭鍏ュ厖鍊煎埜閫�娆鹃噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆剧被鍨�" prop="refundType">
+ <el-input v-model="form.refundType" placeholder="璇疯緭鍏ラ��娆剧被鍨�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆剧敵璇锋椂闂�" prop="refundApplyDate">
+ <el-date-picker v-model="form.refundApplyDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ラ��娆剧敵璇锋椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="閫�娆炬垚鍔熸椂闂�" prop="refundSuccessDate">
+ <el-date-picker v-model="form.refundSuccessDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ラ��娆炬垚鍔熸椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="閫�娆剧姸鎬�" prop="refundSuccessStatus">
+ <el-input v-model="form.refundSuccessStatus" placeholder="璇疯緭鍏ラ��娆剧姸鎬�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧鍚嶇О" prop="body">
+ <el-input v-model="form.body" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗘埛鏁版嵁鍖�" prop="attach">
+ <el-input v-model="form.attach" placeholder="璇疯緭鍏ュ晢鎴锋暟鎹寘" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵嬬画璐�" prop="cmmsAmt">
+ <el-input v-model="form.cmmsAmt" placeholder="璇疯緭鍏ユ墜缁垂" v-trim/>
+ </el-form-item>
+ <el-form-item label="璐圭巼" prop="rate">
+ <el-input v-model="form.rate" placeholder="璇疯緭鍏ヨ垂鐜�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁㈠崟閲戦" prop="totalFee">
+ <el-input v-model="form.totalFee" placeholder="璇疯緭鍏ヨ鍗曢噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢宠閫�娆鹃噾棰�" prop="applyRefundFee">
+ <el-input v-model="form.applyRefundFee" placeholder="璇疯緭鍏ョ敵璇烽��娆鹃噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璐圭巼澶囨敞" prop="rateRemark">
+ <el-input v-model="form.rateRemark" placeholder="璇疯緭鍏ヨ垂鐜囧娉�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaWxBillDetailWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ pid: '',
+ billDate: '',
+ appid: '',
+ mchId: '',
+ subMchid: '',
+ deviceInfo: '',
+ transactionId: '',
+ outTradeNo: '',
+ openid: '',
+ billType: '',
+ billStatus: '',
+ bankType: '',
+ feeType: '',
+ settlementTotalFee: '',
+ couponFee: '',
+ refundId: '',
+ outRefundNo: '',
+ refundFee: '',
+ couponRefundFee: '',
+ refundType: '',
+ refundApplyDate: '',
+ refundSuccessDate: '',
+ refundSuccessStatus: '',
+ body: '',
+ attach: '',
+ cmmsAmt: '',
+ rate: '',
+ totalFee: '',
+ applyRefundFee: '',
+ rateRemark: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/wxBillDetail',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaWxBillWindow.vue b/admin/src/components/business/OperaWxBillWindow.vue
new file mode 100644
index 0000000..325a8df
--- /dev/null
+++ b/admin/src/components/business/OperaWxBillWindow.vue
@@ -0,0 +1,82 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鎬讳氦鏄撳崟鏁�" prop="sumBill">
+ <el-input v-model="form.sumBill" placeholder="璇疯緭鍏ユ�讳氦鏄撳崟鏁�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆剧殑璁㈠崟鏁�" prop="sumRefundBill">
+ <el-input v-model="form.sumRefundBill" placeholder="璇疯緭鍏ラ��娆剧殑璁㈠崟鏁�" v-trim/>
+ </el-form-item>
+ <el-form-item label="搴旂粨璁㈠崟鎬婚噾棰�" prop="sumSuccessFee">
+ <el-input v-model="form.sumSuccessFee" placeholder="璇疯緭鍏ュ簲缁撹鍗曟�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆炬�婚噾棰�" prop="sumRefundFee">
+ <el-input v-model="form.sumRefundFee" placeholder="璇疯緭鍏ラ��娆炬�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍏呭�煎埜閫�娆炬�婚噾棰�" prop="sumCouponRefundFee">
+ <el-input v-model="form.sumCouponRefundFee" placeholder="璇疯緭鍏ュ厖鍊煎埜閫�娆炬�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵嬬画璐规�婚噾棰�" prop="sumCmmsAmt">
+ <el-input v-model="form.sumCmmsAmt" placeholder="璇疯緭鍏ユ墜缁垂鎬婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁㈠崟鎬婚噾棰�" prop="sumTotalFee">
+ <el-input v-model="form.sumTotalFee" placeholder="璇疯緭鍏ヨ鍗曟�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢宠閫�娆炬�婚噾棰�" prop="sumApplyRefundFee">
+ <el-input v-model="form.sumApplyRefundFee" placeholder="璇疯緭鍏ョ敵璇烽��娆炬�婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫�娆炬墜缁垂鎬婚噾棰�" prop="sumRefundCmmsAmt">
+ <el-input v-model="form.sumRefundCmmsAmt" placeholder="璇疯緭鍏ラ��娆炬墜缁垂鎬婚噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撶畻閲戦" prop="total">
+ <el-input v-model="form.total" placeholder="璇疯緭鍏ョ粨绠楅噾棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑷杞︽敹鍏�" prop="bikeFee">
+ <el-input v-model="form.bikeFee" placeholder="璇疯緭鍏ヨ嚜琛岃溅鏀跺叆" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaWxBillWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ sumBill: '',
+ sumRefundBill: '',
+ sumSuccessFee: '',
+ sumRefundFee: '',
+ sumCouponRefundFee: '',
+ sumCmmsAmt: '',
+ sumTotalFee: '',
+ sumApplyRefundFee: '',
+ sumRefundCmmsAmt: '',
+ total: '',
+ bikeFee: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/wxBill',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/components/business/RepairDetailWindow.vue b/admin/src/components/business/RepairDetailWindow.vue
new file mode 100644
index 0000000..f0a1c6c
--- /dev/null
+++ b/admin/src/components/business/RepairDetailWindow.vue
@@ -0,0 +1,124 @@
+<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">
+ <div>{{ form.content }}</div>
+ </el-form-item>
+ <el-form-item label="鍥剧墖/瑙嗛" prop="dealInfo">
+ <el-image v-for="(url, index) in form.imgList" :key="index"
+ style="width: 100px; height: 100px; margin-right: 5px;" :src="url" fit="contain"
+ :prediv-src-list="form.imgList"></el-image>
+ </el-form-item>
+ </el-form>
+ <div slot="footer">
+ <el-button @click="visible = false">杩斿洖</el-button>
+ </div>
+ </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,
+ content: '',
+ imgList: [],
+
+ },
+ 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
+ // 鏂板缓
+ 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.imgList = this.form.imgList || []
+ })
+ },
+ },
+}
+</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>
diff --git a/admin/src/components/business/backGoodsorderWindow.vue b/admin/src/components/business/backGoodsorderWindow.vue
index 6579b5f..cb98785 100644
--- a/admin/src/components/business/backGoodsorderWindow.vue
+++ b/admin/src/components/business/backGoodsorderWindow.vue
@@ -7,10 +7,10 @@
@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-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">
diff --git a/admin/src/components/business/goodsOrderDetail.vue b/admin/src/components/business/goodsOrderDetail.vue
index da7671e..f5c68fc 100644
--- a/admin/src/components/business/goodsOrderDetail.vue
+++ b/admin/src/components/business/goodsOrderDetail.vue
@@ -2,8 +2,8 @@
<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="id" label="璁㈠崟缂栧彿" min-width="120px" show-overflow-tooltip align="center"></el-table-column>
+ <el-table-column prop="onlineorderId" label="浜ゆ槗鍗曞彿" min-width="100px" show-overflow-tooltip align="center"></el-table-column>
<el-table-column prop="refundType" label="浜ゆ槗绫诲瀷" min-width="100px" align="center">
<template slot-scope="{row}">
{{ typeToStr(row.refundType) }}
@@ -24,7 +24,7 @@
stripe
border
>
- <el-table-column prop="openid" label="鐢ㄦ埛" min-width="120px" align="center"></el-table-column>
+ <el-table-column prop="openid" label="鐢ㄦ埛" min-width="120px" show-overflow-tooltip 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>
@@ -63,8 +63,9 @@
// 0缁撶畻閫�娆� 1寮哄埗缁撶畻閫�娆� 2缁撶畻鍚庨��娆� [99: 铏氭嫙type 鏀粯鎶奸噾]
type: [
{ label: '缁撶畻閫�娆�', id: 0 },
- { label: '寮哄埗缁撶畻閫�娆�', id: 1 },
- { label: '缁撶畻鍚庨��娆�', id: 2 },
+ { label: '骞冲彴鑷姩缁撶畻閫�娆�', id: 1 },
+ { label: '寮哄埗缁撶畻閫�娆�', id: 2 },
+ { label: '缁撶畻鍚庨��娆�', id: 3 },
{ label: '鏀粯鎶奸噾', id: 99 },
],
}
diff --git a/admin/src/components/business/priceConfiguration.vue b/admin/src/components/business/priceConfiguration.vue
index 87edbb5..6855b2d 100644
--- a/admin/src/components/business/priceConfiguration.vue
+++ b/admin/src/components/business/priceConfiguration.vue
@@ -7,7 +7,7 @@
<template slot-scope="{row}">
<div style="text-align: left;">
<div>鏂瑰紡锛歿{ row.baseTime == -1 ? '涓�鍙d环' : '闃舵浠锋牸' }}</div>
- <div>{{ row.title || '-' }}</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>
diff --git a/admin/src/components/system/dict/OperaDictDataWindow.vue b/admin/src/components/system/dict/OperaDictDataWindow.vue
index 600e0ae..9074086 100644
--- a/admin/src/components/system/dict/OperaDictDataWindow.vue
+++ b/admin/src/components/system/dict/OperaDictDataWindow.vue
@@ -42,7 +42,7 @@
label: '',
disabled: false
},
- richs: ['PRIVACY_AGREEMENT', 'ABOUT_US', 'SKIN_TIP', 'PRIVACY_POLICY', 'SET_SHOP_EXPLAIN', 'AFTERSALE_TIPS'],
+ richs: ['PRIVACY_AGREEMENT', 'ABOUT_US', 'SKIN_TIP', 'PRIVACY_POLICY', 'SET_SHOP_EXPLAIN', 'AFTERSALE_TIPS', 'LEASE_NOTICE'],
// 楠岃瘉瑙勫垯
rules: {
label: [
diff --git a/admin/src/utils/util.js b/admin/src/utils/util.js
index c52e471..d1b2aff 100644
--- a/admin/src/utils/util.js
+++ b/admin/src/utils/util.js
@@ -37,3 +37,31 @@
return 3
}
}
+
+//涓嬮潰鏄竴涓�氱敤杈冮珮鐨勮嚜瀹氫箟鏃ユ湡鏃堕棿鏍煎紡鍖栧嚱鏁扮殑绀轰緥锛�
+export function formatDateTime(date, format) {
+ const o = {
+ 'M+': date.getMonth() + 1, // 鏈堜唤
+ 'd+': date.getDate(), // 鏃�
+ 'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12, // 灏忔椂
+ 'H+': date.getHours(), // 灏忔椂
+ 'm+': date.getMinutes(), // 鍒�
+ 's+': date.getSeconds(), // 绉�
+ 'q+': Math.floor((date.getMonth() + 3) / 3), // 瀛e害
+ S: date.getMilliseconds(), // 姣
+ a: date.getHours() < 12 ? '涓婂崍' : '涓嬪崍', // 涓婂崍/涓嬪崍
+ A: date.getHours() < 12 ? 'AM' : 'PM', // AM/PM
+ };
+ if (/(y+)/.test(format)) {
+ format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
+ }
+ for (let k in o) {
+ if (new RegExp('(' + k + ')').test(format)) {
+ format = format.replace(
+ RegExp.$1,
+ RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
+ );
+ }
+ }
+ return format;
+}
diff --git a/admin/src/views/business/actionLog.vue b/admin/src/views/business/actionLog.vue
index 5eded99..9b6d040 100644
--- a/admin/src/views/business/actionLog.vue
+++ b/admin/src/views/business/actionLog.vue
@@ -9,13 +9,8 @@
<el-form-item label="杞﹁締缂栫爜" prop="bikeCode">
<el-input v-model="searchForm.bikeCode" placeholder="璇疯緭鍏ヨ溅杈嗙紪鐮�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鎿嶄綔浜�" prop="creator">
- <el-select v-model="searchForm.userId" placeholder="璇烽�夋嫨">
- <el-option label="鏈綊杩�" :value="1">
- </el-option>
- <el-option label="宸插綊杩�" :value="1">
- </el-option>
- </el-select>
+ <el-form-item label="鎿嶄綔浜�" prop="creatorName">
+ <el-input v-model="searchForm.creatorName" placeholder="璇疯緭鍏ユ搷浣滀汉" @keypress.enter.native="search"></el-input>
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
@@ -31,19 +26,35 @@
</li>
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe border>
- <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="rentSiteId" 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="ridesObj.memberId" label="鐢ㄦ埛" min-width="180px" align="center">
+ <template slot-scope="{row}">
+ {{ row.ridesObj ? row.ridesObj.memberId : '' }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="bikeCode" label="杞﹁締缂栫爜" min-width="100px" align="center">
+ <template slot-scope="{row}">
+ {{ row.ridesObj ? row.ridesObj.bikeCode : '' }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="rentSiteId" label="鍊熷嚭绔欑偣" min-width="100px" align="center">
+ <template slot-scope="{row}">
+ {{ row.ridesObj ? row.ridesObj.rentSiteId : '' }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="rentDate" label="鍊熷嚭鏃堕棿" min-width="140px" align="center">
+ <template slot-scope="{row}">
+ {{ row.ridesObj ? row.ridesObj.rentDate : '' }}
+ </template>
+ </el-table-column>
<el-table-column prop="type" label="璋冩暣绫诲瀷" min-width="100px" align="center">
<template slot-scope="{row}">
<div>{{ row.type == 0 ? '寮哄埗杩樿溅' : '楠戣鏃堕暱淇敼' }}</div>
</template>
</el-table-column>
<el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" min-width="140px" align="center"></el-table-column>
- <el-table-column prop="creator" label="鎿嶄綔浜�" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="creatorName" label="鎿嶄綔浜�" min-width="100px" align="center"></el-table-column>
<el-table-column prop="actReason" label="鍘熷洜" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="paactInforamId" label="澶囨敞" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="info" label="澶囨敞" min-width="100px" align="center"></el-table-column>
</el-table>
<pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
</pagination>
@@ -66,6 +77,7 @@
openid: '',
creator: '',
bikeCode: '',
+ typeList: [0, 1]
},
}
},
diff --git a/admin/src/views/business/ad.vue b/admin/src/views/business/ad.vue
new file mode 100644
index 0000000..99bd558
--- /dev/null
+++ b/admin/src/views/business/ad.vue
@@ -0,0 +1,96 @@
+<template>
+ <TableLayout :permissions="['business:ad:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鏍囬" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap >
+ <ul class="toolbar" v-permissions="['business:ad:create']">
+ <li><el-button type="primary" @click="$refs.operaAdWindow.open('鏂板缓骞垮憡')" icon="el-icon-plus"
+ v-permissions="['business:ad:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table v-loading="isWorking.search" :data="tableData.list" stripe border>
+ <el-table-column prop="name" label="鏍囬" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="imgfullurl" label="骞垮憡鍥�" min-width="100px" align="center">
+ <template slot-scope="{row}">
+ <el-image style="width: 80px; height: 60px; margin-right: 5px;" :src="row.imgfullurl" fit="contain"
+ :prediv-src-list="[row.imgfullurl]"></el-image>
+ </template>
+ </el-table-column>
+ <el-table-column prop="sortnum" 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="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="type" label="绫诲瀷 0鍥炬枃 1澶栭摼 2鍏朵粬" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="info" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="content" label="鍐呭" min-width="100px"></el-table-column> -->
+ <el-table-column v-if="containPermissions(['business:ad:update', 'business:ad:delete'])" label="鎿嶄綔"
+ min-width="120" fixed="right" align="center">
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaAdWindow.open('缂栬緫骞垮憡', row)" icon="el-icon-edit"
+ v-permissions="['business:ad:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
+ v-permissions="['business:ad:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaAdWindow ref="operaAdWindow" @success="handlePageChange" />
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaAdWindow from '@/components/business/OperaAdWindow'
+export default {
+ name: 'Ad',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaAdWindow },
+ data() {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ name: '',
+ sortnum: '',
+ type: '',
+ status: '',
+ info: '',
+ content: '',
+ imgurl: ''
+ }
+ }
+ },
+ created() {
+ this.config({
+ module: '骞垮憡淇℃伅琛�',
+ api: '/business/ad',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/aliBill.vue b/admin/src/views/business/aliBill.vue
new file mode 100644
index 0000000..55e3a86
--- /dev/null
+++ b/admin/src/views/business/aliBill.vue
@@ -0,0 +1,130 @@
+<template>
+ <TableLayout :permissions="['business:alibill:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎬讳氦鏄撳崟鏁�" prop="sumBill">
+ <el-input v-model="searchForm.sumBill" placeholder="璇疯緭鍏ユ�讳氦鏄撳崟鏁�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閫�娆剧殑璁㈠崟鏁�" prop="sumRefundBill">
+ <el-input v-model="searchForm.sumRefundBill" placeholder="璇疯緭鍏ラ��娆剧殑璁㈠崟鏁�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="搴旂粨璁㈠崟鎬婚噾棰�" prop="sumSuccessFee">
+ <el-input v-model="searchForm.sumSuccessFee" placeholder="璇疯緭鍏ュ簲缁撹鍗曟�婚噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閫�娆炬�婚噾棰�" prop="sumRefundFee">
+ <el-input v-model="searchForm.sumRefundFee" placeholder="璇疯緭鍏ラ��娆炬�婚噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍏呭�煎埜閫�娆炬�婚噾棰�" prop="sumCouponRefundFee">
+ <el-input v-model="searchForm.sumCouponRefundFee" placeholder="璇疯緭鍏ュ厖鍊煎埜閫�娆炬�婚噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵嬬画璐规�婚噾棰�" prop="sumCmmsAmt">
+ <el-input v-model="searchForm.sumCmmsAmt" placeholder="璇疯緭鍏ユ墜缁垂鎬婚噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璁㈠崟鎬婚噾棰�" prop="sumTotalFee">
+ <el-input v-model="searchForm.sumTotalFee" placeholder="璇疯緭鍏ヨ鍗曟�婚噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐢宠閫�娆炬�婚噾棰�" prop="sumApplyRefundFee">
+ <el-input v-model="searchForm.sumApplyRefundFee" placeholder="璇疯緭鍏ョ敵璇烽��娆炬�婚噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閫�娆炬墜缁垂鎬婚噾棰�" prop="sumRefundCmmsAmt">
+ <el-input v-model="searchForm.sumRefundCmmsAmt" placeholder="璇疯緭鍏ラ��娆炬墜缁垂鎬婚噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缁撶畻閲戦" prop="total">
+ <el-input v-model="searchForm.total" placeholder="璇疯緭鍏ョ粨绠楅噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鑷杞︽敹鍏�" prop="bikeFee">
+ <el-input v-model="searchForm.bikeFee" placeholder="璇疯緭鍏ヨ嚜琛岃溅鏀跺叆" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:alibill:create']">
+ <li><el-button type="primary" @click="$refs.operaAliBillWindow.open('鏂板缓')" icon="el-icon-plus" v-permissions="['business:alibill:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="" min-width="100px"></el-table-column>
+ <el-table-column prop="sumBill" label="鎬讳氦鏄撳崟鏁�" min-width="100px"></el-table-column>
+ <el-table-column prop="sumRefundBill" label="閫�娆剧殑璁㈠崟鏁�" min-width="100px"></el-table-column>
+ <el-table-column prop="sumSuccessFee" label="搴旂粨璁㈠崟鎬婚噾棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="sumRefundFee" label="閫�娆炬�婚噾棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="sumCouponRefundFee" label="鍏呭�煎埜閫�娆炬�婚噾棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="sumCmmsAmt" label="鎵嬬画璐规�婚噾棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="sumTotalFee" label="璁㈠崟鎬婚噾棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="sumApplyRefundFee" label="鐢宠閫�娆炬�婚噾棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="sumRefundCmmsAmt" label="閫�娆炬墜缁垂鎬婚噾棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="total" label="缁撶畻閲戦" min-width="100px"></el-table-column>
+ <el-table-column prop="bikeFee" label="鑷杞︽敹鍏�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:alibill:update', 'business:alibill:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaAliBillWindow.open('缂栬緫', row)" icon="el-icon-edit" v-permissions="['business:alibill:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:alibill:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaAliBillWindow ref="operaAliBillWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaAliBillWindow from '@/components/business/OperaAliBillWindow'
+export default {
+ name: 'AliBill',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaAliBillWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ sumBill: '',
+ sumRefundBill: '',
+ sumSuccessFee: '',
+ sumRefundFee: '',
+ sumCouponRefundFee: '',
+ sumCmmsAmt: '',
+ sumTotalFee: '',
+ sumApplyRefundFee: '',
+ sumRefundCmmsAmt: '',
+ total: '',
+ bikeFee: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '',
+ api: '/business/aliBill',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/aliBillDetail.vue b/admin/src/views/business/aliBillDetail.vue
new file mode 100644
index 0000000..506dc76
--- /dev/null
+++ b/admin/src/views/business/aliBillDetail.vue
@@ -0,0 +1,205 @@
+<template>
+ <TableLayout :permissions="['business:alibilldetail:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="瀵硅处鍗旾D" prop="pid">
+ <el-input v-model="searchForm.pid" placeholder="璇疯緭鍏ュ璐﹀崟ID" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鏃堕棿" prop="billDate">
+ <el-date-picker v-model="searchForm.billDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヤ氦鏄撴椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍟嗘埛鍙�" prop="mchId">
+ <el-input v-model="searchForm.mchId" placeholder="璇疯緭鍏ュ晢鎴峰彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="寰俊璁㈠崟鍙�" prop="transactionId">
+ <el-input v-model="searchForm.transactionId" placeholder="璇疯緭鍏ュ井淇¤鍗曞彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍟嗘埛璁㈠崟鍙�" prop="outTradeNo">
+ <el-input v-model="searchForm.outTradeNo" placeholder="璇疯緭鍏ュ晢鎴疯鍗曞彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <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="billType">
+ <el-input v-model="searchForm.billType" placeholder="璇疯緭鍏ヤ氦鏄撶被鍨�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒告牳閿�閲戦锛堝厓锛�" prop="couponFee">
+ <el-input v-model="searchForm.couponFee" placeholder="璇疯緭鍏ュ埜鏍搁攢閲戦锛堝厓锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閫�娆炬壒娆″彿/璇锋眰鍙�" prop="refundId">
+ <el-input v-model="searchForm.refundId" placeholder="璇疯緭鍏ラ��娆炬壒娆″彿/璇锋眰鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧鍚嶇О" prop="body">
+ <el-input v-model="searchForm.body" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵嬬画璐�" prop="cmmsAmt">
+ <el-input v-model="searchForm.cmmsAmt" placeholder="璇疯緭鍏ユ墜缁垂" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璁㈠崟閲戦" prop="totalFee">
+ <el-input v-model="searchForm.totalFee" placeholder="璇疯緭鍏ヨ鍗曢噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐢宠閫�娆鹃噾棰�" prop="applyRefundFee">
+ <el-input v-model="searchForm.applyRefundFee" placeholder="璇疯緭鍏ョ敵璇烽��娆鹃噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍟嗗瀹炴敹锛堝厓锛�" prop="receipts">
+ <el-input v-model="searchForm.receipts" placeholder="璇疯緭鍏ュ晢瀹跺疄鏀讹紙鍏冿級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏀粯瀹濈孩鍖咃紙鍏冿級" prop="aliRedEnvelope">
+ <el-input v-model="searchForm.aliRedEnvelope" placeholder="璇疯緭鍏ユ敮浠樺疂绾㈠寘锛堝厓锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="闆嗗垎瀹濓紙鍏冿級" prop="jifenbao">
+ <el-input v-model="searchForm.jifenbao" placeholder="璇疯緭鍏ラ泦鍒嗗疂锛堝厓锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏀粯瀹濅紭鎯狅紙鍏冿級" prop="aliOfferFee">
+ <el-input v-model="searchForm.aliOfferFee" placeholder="璇疯緭鍏ユ敮浠樺疂浼樻儬锛堝厓锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍟嗗浼樻儬锛堝厓锛�" prop="offerFee">
+ <el-input v-model="searchForm.offerFee" placeholder="璇疯緭鍏ュ晢瀹朵紭鎯狅紙鍏冿級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒稿悕绉�" prop="couponName">
+ <el-input v-model="searchForm.couponName" placeholder="璇疯緭鍏ュ埜鍚嶇О" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍟嗗绾㈠寘娑堣垂閲戦锛堝厓锛�" prop="redEnvelope">
+ <el-input v-model="searchForm.redEnvelope" placeholder="璇疯緭鍏ュ晢瀹剁孩鍖呮秷璐归噾棰濓紙鍏冿級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍗℃秷璐归噾棰濓紙鍏冿級" prop="cardFee">
+ <el-input v-model="searchForm.cardFee" placeholder="璇疯緭鍏ュ崱娑堣垂閲戦锛堝厓锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒嗘鼎" prop="shareProfit">
+ <el-input v-model="searchForm.shareProfit" placeholder="璇疯緭鍏ュ垎娑�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="闂ㄥ簵鍚嶇О" prop="mchName">
+ <el-input v-model="searchForm.mchName" placeholder="璇疯緭鍏ラ棬搴楀悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎿嶄綔鍛�" prop="opName">
+ <el-input v-model="searchForm.opName" placeholder="璇疯緭鍏ユ搷浣滃憳" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缁堢鍙�" prop="tty">
+ <el-input v-model="searchForm.tty" placeholder="璇疯緭鍏ョ粓绔彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:alibilldetail:create']">
+ <li><el-button type="primary" @click="$refs.operaAliBillDetailWindow.open('鏂板缓')" icon="el-icon-plus" v-permissions="['business:alibilldetail:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="" min-width="100px"></el-table-column>
+ <el-table-column prop="pid" label="瀵硅处鍗旾D" min-width="100px"></el-table-column>
+ <el-table-column prop="billDate" label="浜ゆ槗鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="mchId" label="鍟嗘埛鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="transactionId" label="寰俊璁㈠崟鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="outTradeNo" label="鍟嗘埛璁㈠崟鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="openid" label="鐢ㄦ埛鏍囪瘑" min-width="100px"></el-table-column>
+ <el-table-column prop="billType" label="浜ゆ槗绫诲瀷" min-width="100px"></el-table-column>
+ <el-table-column prop="couponFee" label="鍒告牳閿�閲戦锛堝厓锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="refundId" label="閫�娆炬壒娆″彿/璇锋眰鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="body" label="鍟嗗搧鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="cmmsAmt" label="鎵嬬画璐�" min-width="100px"></el-table-column>
+ <el-table-column prop="totalFee" label="璁㈠崟閲戦" min-width="100px"></el-table-column>
+ <el-table-column prop="applyRefundFee" label="鐢宠閫�娆鹃噾棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="receipts" label="鍟嗗瀹炴敹锛堝厓锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="aliRedEnvelope" label="鏀粯瀹濈孩鍖咃紙鍏冿級" min-width="100px"></el-table-column>
+ <el-table-column prop="jifenbao" label="闆嗗垎瀹濓紙鍏冿級" min-width="100px"></el-table-column>
+ <el-table-column prop="aliOfferFee" label="鏀粯瀹濅紭鎯狅紙鍏冿級" min-width="100px"></el-table-column>
+ <el-table-column prop="offerFee" label="鍟嗗浼樻儬锛堝厓锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="couponName" label="鍒稿悕绉�" min-width="100px"></el-table-column>
+ <el-table-column prop="redEnvelope" label="鍟嗗绾㈠寘娑堣垂閲戦锛堝厓锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="cardFee" label="鍗℃秷璐归噾棰濓紙鍏冿級" min-width="100px"></el-table-column>
+ <el-table-column prop="shareProfit" label="鍒嗘鼎" min-width="100px"></el-table-column>
+ <el-table-column prop="mchName" label="闂ㄥ簵鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="opName" label="鎿嶄綔鍛�" min-width="100px"></el-table-column>
+ <el-table-column prop="tty" label="缁堢鍙�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:alibilldetail:update', 'business:alibilldetail:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaAliBillDetailWindow.open('缂栬緫', row)" icon="el-icon-edit" v-permissions="['business:alibilldetail:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:alibilldetail:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaAliBillDetailWindow ref="operaAliBillDetailWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaAliBillDetailWindow from '@/components/business/OperaAliBillDetailWindow'
+export default {
+ name: 'AliBillDetail',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaAliBillDetailWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ pid: '',
+ billDate: '',
+ mchId: '',
+ transactionId: '',
+ outTradeNo: '',
+ openid: '',
+ billType: '',
+ couponFee: '',
+ refundId: '',
+ body: '',
+ cmmsAmt: '',
+ totalFee: '',
+ applyRefundFee: '',
+ remark: '',
+ receipts: '',
+ aliRedEnvelope: '',
+ jifenbao: '',
+ aliOfferFee: '',
+ offerFee: '',
+ couponName: '',
+ redEnvelope: '',
+ cardFee: '',
+ shareProfit: '',
+ mchName: '',
+ opName: '',
+ tty: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '',
+ api: '/business/aliBillDetail',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/backgroundRefund.vue b/admin/src/views/business/backgroundRefund.vue
index 607889c..786037b 100644
--- a/admin/src/views/business/backgroundRefund.vue
+++ b/admin/src/views/business/backgroundRefund.vue
@@ -3,24 +3,26 @@
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鐢ㄦ埛" prop="openid">
+ <el-form-item label="鎿嶄綔鏃堕棿">
<el-date-picker
v-model="value1"
type="daterange"
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡"
- format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:mm:ss"
@change="selectDate"
></el-date-picker>
</el-form-item>
- <el-form-item label="鎿嶄綔浜�" prop="creator">
- <el-select v-model="searchForm.creator" placeholder="璇烽�夋嫨">
+ <el-form-item label="鎿嶄綔浜�" prop="creatorName">
+ <el-input v-model="searchForm.creatorName" placeholder="璇疯緭鍏ユ搷浣滀汉" v-trim/>
+ <!-- <el-select v-model="searchForm.creator" placeholder="璇烽�夋嫨">
<el-option label="鏈綊杩�" :value="1">
</el-option>
<el-option label="宸插綊杩�" :value="1">
</el-option>
- </el-select>
+ </el-select> -->
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
@@ -36,17 +38,37 @@
</li>
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe border>
- <el-table-column prop="openid" label="鐢ㄦ埛" min-width="180px" align="center"></el-table-column>
- <el-table-column prop="payOnlineOrderid" label="绯荤粺鍗曞彿" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="openid" label="鐢ㄦ埛" min-width="140px" align="center" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ <div class="long-title-style">{{ row.openid }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="id" label="绯荤粺鍗曞彿" min-width="140px" align="center" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ <div class="long-title-style">{{ row.id }}</div>
+ </template>
+ </el-table-column>
<!-- payOnlineOrderid 鏀粯鎶奸噾浜ゆ槗鍗曞彿 -->
<!-- onlineOrderid 鍦ㄧ嚎浜ゆ槗鍗曞彿 -->
<!-- preOrderid 浜ゆ槗棰勮鍗曞彿 -->
- <el-table-column prop="onlineOrderid" label="浜ゆ槗鍗曞彿" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="canBalance" label="褰撳墠鍙��鍥炴娂閲�(鍏�)" min-width="140px" align="center"></el-table-column>
- <el-table-column prop="money" label="閫�鍥炴娂閲�(鍏�)" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="onlineOrderid" label="浜ゆ槗鍗曞彿" min-width="140px" align="center" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ <div class="long-title-style">{{ row.onlineOrderid }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="canBalance" label="褰撳墠鍙��鍥炴娂閲�(鍏�)" min-width="140px" align="center">
+ <template slot-scope="{row}">
+ {{ (row.canBalance / 100).toFixed(2) }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="money" label="閫�鍥炴娂閲�(鍏�)" min-width="140px" align="center">
+ <template slot-scope="{row}">
+ {{ (row.money / 100).toFixed(2) }}
+ </template>
+ </el-table-column>
<el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" min-width="140px" align="center"></el-table-column>
- <el-table-column prop="creator" label="鎿嶄綔浜�" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="actReason" label="鍘熷洜" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="creatorName" label="鎿嶄綔浜�" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="reason" label="鍘熷洜" min-width="100px" align="center"></el-table-column>
</el-table>
<pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
</pagination>
@@ -69,7 +91,7 @@
searchForm: {
startDate: '',
endDate: '',
- creator: '',
+ creatorName: '',
},
}
},
@@ -96,6 +118,7 @@
this.searchForm.startDate = ''
this.searchForm.endDate = ''
this.value1 = []
+ this.$refs.searchForm.resetFields()
this.search()
},
},
diff --git a/admin/src/views/business/baseParam.vue b/admin/src/views/business/baseParam.vue
new file mode 100644
index 0000000..4f58b1a
--- /dev/null
+++ b/admin/src/views/business/baseParam.vue
@@ -0,0 +1,130 @@
+<template>
+ <TableLayout :permissions="['business:baseparam:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮侊紙鍗囧簭锛�" prop="sortnum">
+ <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜锛堝崌搴忥級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 0杞﹁締淇濅慨鍘熷洜 1寮哄埗杩樿溅鍘熷洜 2鏃堕暱鍑忓厤鍘熷洜 3鍗曡溅绫诲瀷" prop="type">
+ <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨� 0杞﹁締淇濅慨鍘熷洜 1寮哄埗杩樿溅鍘熷洜 2鏃堕暱鍑忓厤鍘熷洜 3鍗曡溅绫诲瀷" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞鏄惁蹇呭~ 0鍚� 1鏄�" prop="required">
+ <el-input v-model="searchForm.required" placeholder="璇疯緭鍏ュ娉ㄦ槸鍚﹀繀濉� 0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:baseparam:create']">
+ <li><el-button type="primary" @click="$refs.operaBaseParamWindow.open('鏂板缓绯荤粺鍩虹閰嶇疆琛�')" icon="el-icon-plus" v-permissions="['business:baseparam:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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="name" label="鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮侊紙鍗囧簭锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="type" label="绫诲瀷 0杞﹁締淇濅慨鍘熷洜 1寮哄埗杩樿溅鍘熷洜 2鏃堕暱鍑忓厤鍘熷洜 3鍗曡溅绫诲瀷" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="info" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="required" label="澶囨敞鏄惁蹇呭~ 0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:baseparam:update', 'business:baseparam:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaBaseParamWindow.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>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaBaseParamWindow ref="operaBaseParamWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaBaseParamWindow from '@/components/business/OperaBaseParamWindow'
+export default {
+ name: 'BaseParam',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaBaseParamWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ name: '',
+ sortnum: '',
+ type: '',
+ status: '',
+ info: '',
+ required: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '绯荤粺鍩虹閰嶇疆琛�',
+ api: '/business/baseParam',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/bikeRepair.vue b/admin/src/views/business/bikeRepair.vue
index 143b16a..28685f0 100644
--- a/admin/src/views/business/bikeRepair.vue
+++ b/admin/src/views/business/bikeRepair.vue
@@ -5,8 +5,8 @@
<el-form-item label="鐢ㄦ埛" prop="creator">
<el-input v-model="searchForm.creator" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="杞﹁締缂栧彿" prop="binkeId">
- <el-input v-model="searchForm.binkeId" placeholder="璇疯緭鍏ヨ溅杈嗙紪鍙�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="杞﹁締缂栫爜" prop="bikeCode">
+ <el-input v-model="searchForm.bikeCode" placeholder="璇疯緭鍏ヨ溅杈嗙紪鍙�" @keypress.enter.native="search"></el-input>
</el-form-item>
<el-form-item label="鐘舵��" prop="status">
<el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
@@ -26,6 +26,9 @@
<el-date-picker
v-model="value1"
type="daterange"
+ @change="selectDate"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:mm:ss"
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡">
@@ -45,7 +48,7 @@
stripe
border
>
- <el-table-column prop="openid" 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="linkname" label="鑱旂郴浜�" min-width="100px" align="center">
<template slot-scope="{row}">
{{ `${row.linkname} ${row.linkphone}` }}
@@ -61,7 +64,7 @@
<!-- <el-table-column prop="param" label="杞﹁締闂" min-width="100px"></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>
+ <el-button type="text" @click="showProblem(row)">鐐瑰嚮鏌ョ湅</el-button>
</template>
</el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px" align="center"></el-table-column>
@@ -86,6 +89,7 @@
</pagination>
</template>
<OperaRepairDealWindow ref="operaRepairDealWindow" @success="handlePageChange"/>
+ <RepairDetailWindow ref="repairDetailWindow"/>
</TableLayout>
</template>
@@ -94,13 +98,16 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaRepairDealWindow from '@/components/business/OperaRepairDealWindow'
+import RepairDetailWindow from '@/components/business/RepairDetailWindow'
+import { formatDateTime } from '@/utils/util'
+import { getFileList } from '@/api/business/bikeRepair'
export default {
name: 'BikeRepair',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaRepairDealWindow },
+ components: { TableLayout, Pagination, OperaRepairDealWindow, RepairDetailWindow },
data () {
return {
- value1: [],
+ value1: [new Date(), new Date()],
// 鎼滅储
searchForm: {
id: '',
@@ -122,6 +129,8 @@
dealUser: '',
dealDate: '',
dealInfo: '',
+ startDate: '',
+ endDate: '',
content: ''
}
}
@@ -133,11 +142,38 @@
'field.id': 'id',
'field.main': 'id'
})
+ this.searchForm.startDate = formatDateTime(new Date(), 'yyyy-MM-dd') + ' 00:00:00'
this.search()
},
methods: {
+ reset() {
+ this.searchForm.startDate = ''
+ this.searchForm.endDate = ''
+ 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()
+ },
dealAction(row) {
this.$refs.operaRepairDealWindow.open('澶勭悊', row)
+ },
+ showProblem(row) {
+ getFileList(row.id)
+ .then(res => {
+ this.$refs.repairDetailWindow.open('闂璇存槑',{ imgList: res.map(item => item.fileurlfull), ...row })
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+
}
},
}
diff --git a/admin/src/views/business/bikeRetakeRecord.vue b/admin/src/views/business/bikeRetakeRecord.vue
index 3b4b016..0706ce2 100644
--- a/admin/src/views/business/bikeRetakeRecord.vue
+++ b/admin/src/views/business/bikeRetakeRecord.vue
@@ -3,28 +3,31 @@
<!-- 鎼滅储琛ㄥ崟 -->
<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="bikeCode">
<el-input v-model="searchForm.bikeCode" placeholder="璇疯緭鍏ヨ溅杈嗙紪鐮�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鏄惁褰掕繕" prop="closeStatus">
- <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+ <el-form-item label="鏄惁褰掕繕" prop="hasBack">
+ <el-select v-model="searchForm.hasBack" placeholder="璇烽�夋嫨">
<el-option
label="鏈綊杩�"
- :value="1">
+ :value="false">
</el-option>
<el-option
label="宸插綊杩�"
- :value="1">
+ :value="true">
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="绉熷�熸椂闂�" prop="rentDate">
+ <el-form-item label="鍊熷嚭鏃堕棿" prop="rentDate">
<el-date-picker
v-model="value1"
type="daterange"
+ @change="selectDate"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:mm:ss"
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡">
@@ -33,12 +36,15 @@
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:memberrides:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:memberrides:exportExcel']" @click="exportExcel">瀵煎嚭</el-button> -->
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
+ <ul class="toolbar">
+ <li ><el-button type="primary" :loading="isWorking.export" v-permissions="['business:memberrides:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
+ </ul>
<el-table
v-loading="isWorking.search"
:data="tableData.list"
@@ -99,6 +105,7 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
+import { formatDateTime } from '@/utils/util'
export default {
name: 'MemberRides',
extends: BaseTable,
@@ -114,7 +121,7 @@
editor: '',
isdeleted: '',
info: '',
- memberId: '',
+ openid: '',
bikeCode: '',
balance: '',
paramId: '',
@@ -143,9 +150,11 @@
backType: '',
backReason: '',
backInfo: '',
+ startDate: '',
+ endDate: '',
backUserid: ''
},
- value1: []
+ value1: [new Date(), new Date()]
}
},
created () {
@@ -155,7 +164,26 @@
'field.id': 'id',
'field.main': 'id'
})
+ this.searchForm.startDate = formatDateTime(new Date(), 'yyyy-MM-dd') + ' 00:00:00'
this.search()
- }
+ },
+ methods: {
+ reset() {
+ this.value1 = []
+ this.searchForm.startDate = ''
+ this.searchForm.endDate = ''
+ 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()
+ },
+ },
}
</script>
diff --git a/admin/src/views/business/bikes.vue b/admin/src/views/business/bikes.vue
new file mode 100644
index 0000000..2ffed14
--- /dev/null
+++ b/admin/src/views/business/bikes.vue
@@ -0,0 +1,145 @@
+<template>
+ <TableLayout :permissions="['business:bikes:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="杞﹁締绫诲瀷缂栫爜锛堝叧鑱攂ase_param)" prop="paramId">
+ <el-input v-model="searchForm.paramId" placeholder="璇疯緭鍏ヨ溅杈嗙被鍨嬬紪鐮侊紙鍏宠仈base_param)" @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-form-item>
+ <el-form-item label="鐘舵�� 0鍋滆溅鍙嚭鍊� 1鍑哄�熶腑 3绂佺敤 " prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍋滆溅鍙嚭鍊� 1鍑哄�熶腑 3绂佺敤 " @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="褰撳墠绔欑偣缂栫爜锛堝叧鑱攕ites)" prop="siteId">
+ <el-input v-model="searchForm.siteId" placeholder="璇疯緭鍏ュ綋鍓嶇珯鐐圭紪鐮侊紙鍏宠仈sites)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="褰撳墠閿佸ご缂栫爜锛堝叧鑱攍ocks)" prop="lockId">
+ <el-input v-model="searchForm.lockId" placeholder="璇疯緭鍏ュ綋鍓嶉攣澶寸紪鐮侊紙鍏宠仈locks)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏈�杩戠鍊熸椂闂�" prop="lastRentData">
+ <el-date-picker v-model="searchForm.lastRentData" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戠鍊熸椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍑哄敭鏃堕棿" prop="soldoutDate">
+ <el-date-picker v-model="searchForm.soldoutDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ嚭鍞椂闂�" @change="search"/>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:bikes:create']">
+ <li><el-button type="primary" @click="$refs.operaBikesWindow.open('鏂板缓鑷杞︿俊鎭〃')" icon="el-icon-plus" v-permissions="['business:bikes:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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="name" label="鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="info" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="paramId" label="杞﹁締绫诲瀷缂栫爜锛堝叧鑱攂ase_param)" min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="缂栧彿" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0鍋滆溅鍙嚭鍊� 1鍑哄�熶腑 3绂佺敤 " min-width="100px"></el-table-column>
+ <el-table-column prop="siteId" label="褰撳墠绔欑偣缂栫爜锛堝叧鑱攕ites)" min-width="100px"></el-table-column>
+ <el-table-column prop="lockId" label="褰撳墠閿佸ご缂栫爜锛堝叧鑱攍ocks)" min-width="100px"></el-table-column>
+ <el-table-column prop="lastRentData" label="鏈�杩戠鍊熸椂闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="soldoutDate" label="鍑哄敭鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:bikes:update', 'business:bikes:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaBikesWindow.open('缂栬緫鑷杞︿俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:bikes:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:bikes:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaBikesWindow ref="operaBikesWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaBikesWindow from '@/components/business/OperaBikesWindow'
+export default {
+ name: 'Bikes',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaBikesWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ name: '',
+ info: '',
+ paramId: '',
+ code: '',
+ status: '',
+ siteId: '',
+ lockId: '',
+ lastRentData: '',
+ soldoutDate: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '鑷杞︿俊鎭〃',
+ api: '/business/bikes',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/goodsorder.vue b/admin/src/views/business/goodsorder.vue
index e6a06dc..0cf5dd2 100644
--- a/admin/src/views/business/goodsorder.vue
+++ b/admin/src/views/business/goodsorder.vue
@@ -3,7 +3,7 @@
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
<el-form-item label="鐢ㄦ埛" prop="openid">
- <el-input v-model="searchForm.openid" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+ <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>
@@ -11,8 +11,8 @@
<el-form-item label="浜ゆ槗鍗曞彿" prop="onlineOrderid">
<el-input v-model="searchForm.onlineOrderid" placeholder="璇疯緭鍏ヤ氦鏄撳崟鍙�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鏄惁缁撶畻" prop="status">
- <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+ <el-form-item label="鏄惁缁撶畻" prop="closeStatus">
+ <el-select v-model="searchForm.closeStatus" placeholder="璇烽�夋嫨">
<el-option
label="鏈粨绠�"
:value="0">
@@ -30,8 +30,10 @@
@change="selectDate"
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
- </el-date-picker>
+ end-placeholder="缁撴潫鏃ユ湡"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ ></el-date-picker>
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
@@ -50,13 +52,14 @@
border
>
<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="id" label="璁㈠崟缂栧彿" min-width="235px" 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="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>
+ <el-table-column prop="payDate" label="浜ゆ娂閲戞椂闂�" min-width="145px" align="center"></el-table-column>
+ <el-table-column prop="refundMoney" label="閫�鎶奸噾(鍏冿級" min-width="90px" align="center"></el-table-column>
+ <el-table-column prop="closeMoney" label="缁撶畻閲戦(鍏冿級" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="closeDate" label="缁撶畻鏃堕棿" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="refundDate" label="閫�娆炬椂闂�" min-width="140px" align="center"></el-table-column>
<!-- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
@@ -108,6 +111,7 @@
import GoodsOrderDetail from '@/components/business/goodsOrderDetail'
import BackGoodsorderWindow from '@/components/business/backGoodsorderWindow'
import { getDetail, getGoodsorderCanBanlanceDTO, closerGoodsorder } from '@/api/business/goodsorder'
+import { formatDateTime } from '@/utils/util'
export default {
name: 'Goodsorder',
extends: BaseTable,
@@ -127,6 +131,7 @@
openid: '',
money: '',
status: '',
+ closeStatus: '',
preOrderid: '',
onlineOrderid: '',
payStatus: '',
@@ -138,7 +143,7 @@
endDate: '',
},
- value1: []
+ value1: [new Date(), new Date()]
}
},
created () {
@@ -148,11 +153,14 @@
'field.id': 'id',
'field.main': 'id'
})
+ this.searchForm.startDate = formatDateTime(new Date(), 'yyyy-MM-dd') + ' 00:00:00'
this.search()
},
methods: {
reset() {
this.value1 = []
+ this.searchForm.startDate = ''
+ this.searchForm.endDate = ''
this.$refs.searchForm.resetFields()
this.search()
},
diff --git a/admin/src/views/business/locks.vue b/admin/src/views/business/locks.vue
new file mode 100644
index 0000000..2ea283c
--- /dev/null
+++ b/admin/src/views/business/locks.vue
@@ -0,0 +1,130 @@
+<template>
+ <TableLayout :permissions="['business:locks:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" 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-form-item>
+ <el-form-item label="鐘舵�� 0姝e父 1寮傚父" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0姝e父 1寮傚父" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="绔欑偣缂栫爜(鍏宠仈sites)" prop="siteId">
+ <el-input v-model="searchForm.siteId" placeholder="璇疯緭鍏ョ珯鐐圭紪鐮�(鍏宠仈sites)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="褰撳墠閿佸畾鑷杞︾紪鍙�" prop="bikeCode">
+ <el-input v-model="searchForm.bikeCode" placeholder="璇疯緭鍏ュ綋鍓嶉攣瀹氳嚜琛岃溅缂栧彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:locks:create']">
+ <li><el-button type="primary" @click="$refs.operaLocksWindow.open('鏂板缓閿佸ご淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:locks:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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 prop="name" label="鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="缂栧彿" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0姝e父 1寮傚父" min-width="100px"></el-table-column>
+ <el-table-column prop="siteId" label="绔欑偣缂栫爜(鍏宠仈sites)" min-width="100px"></el-table-column>
+ <el-table-column prop="bikeCode" label="褰撳墠閿佸畾鑷杞︾紪鍙�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:locks:update', 'business:locks:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaLocksWindow.open('缂栬緫閿佸ご淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:locks:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:locks:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaLocksWindow ref="operaLocksWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaLocksWindow from '@/components/business/OperaLocksWindow'
+export default {
+ name: 'Locks',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaLocksWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ name: '',
+ code: '',
+ status: '',
+ siteId: '',
+ bikeCode: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '閿佸ご淇℃伅琛�',
+ api: '/business/locks',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/member.vue b/admin/src/views/business/member.vue
new file mode 100644
index 0000000..5c234ae
--- /dev/null
+++ b/admin/src/views/business/member.vue
@@ -0,0 +1,185 @@
+<template>
+ <TableLayout :permissions="['business:member:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="濮撳悕" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ鍚�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄电О" prop="nickname">
+ <el-input v-model="searchForm.nickname" placeholder="璇疯緭鍏ユ樀绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="openid" prop="openid">
+ <el-input v-model="searchForm.openid" placeholder="璇疯緭鍏penid" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0姝e父 1绂佺敤" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0姝e父 1绂佺敤" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="unionid" prop="unionid">
+ <el-input v-model="searchForm.unionid" placeholder="璇疯緭鍏nionid" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="娉ㄥ唽鏉ユ簮 0寰俊灏忕▼搴� 1鏀粯瀹濆皬绋嬪簭" prop="origin">
+ <el-input v-model="searchForm.origin" placeholder="璇疯緭鍏ユ敞鍐屾潵婧� 0寰俊灏忕▼搴� 1鏀粯瀹濆皬绋嬪簭" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璐︽埛浣欓锛堝垎锛�" prop="banlance">
+ <el-input v-model="searchForm.banlance" placeholder="璇疯緭鍏ヨ处鎴蜂綑棰濓紙鍒嗭級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="娉ㄥ唽鏃堕棿" prop="registerDate">
+ <el-date-picker v-model="searchForm.registerDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ敞鍐屾椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏈�杩戠杞︽椂闂�" prop="lastRendId">
+ <el-date-picker v-model="searchForm.lastRendId" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戠杞︽椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙�" prop="phone">
+ <el-input v-model="searchForm.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閭" prop="email">
+ <el-input v-model="searchForm.email" placeholder="璇疯緭鍏ラ偖绠�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="瀵嗙爜" prop="password">
+ <el-input v-model="searchForm.password" placeholder="璇疯緭鍏ュ瘑鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍗″彿" prop="cardNo">
+ <el-input v-model="searchForm.cardNo" placeholder="璇疯緭鍏ュ崱鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍗″瘑" prop="cardSign">
+ <el-input v-model="searchForm.cardSign" placeholder="璇疯緭鍏ュ崱瀵�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 0绉熷 1绠$悊鍛�" prop="type">
+ <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨� 0绉熷 1绠$悊鍛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶村儚" prop="imgurl">
+ <el-input v-model="searchForm.imgurl" placeholder="璇疯緭鍏ュご鍍�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:member:create']">
+ <li><el-button type="primary" @click="$refs.operaMemberWindow.open('鏂板缓鐢ㄦ埛淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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 prop="name" label="濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="nickname" label="鏄电О" min-width="100px"></el-table-column>
+ <el-table-column prop="openid" label="openid" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0姝e父 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="unionid" label="unionid" min-width="100px"></el-table-column>
+ <el-table-column prop="origin" label="娉ㄥ唽鏉ユ簮 0寰俊灏忕▼搴� 1鏀粯瀹濆皬绋嬪簭" min-width="100px"></el-table-column>
+ <el-table-column prop="banlance" label="璐︽埛浣欓锛堝垎锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="registerDate" label="娉ㄥ唽鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="lastRendId" label="鏈�杩戠杞︽椂闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="email" label="閭" min-width="100px"></el-table-column>
+ <el-table-column prop="password" label="瀵嗙爜" min-width="100px"></el-table-column>
+ <el-table-column prop="cardNo" label="鍗″彿" min-width="100px"></el-table-column>
+ <el-table-column prop="cardSign" label="鍗″瘑" min-width="100px"></el-table-column>
+ <el-table-column prop="type" label="绫诲瀷 0绉熷 1绠$悊鍛�" min-width="100px"></el-table-column>
+ <el-table-column prop="imgurl" label="澶村儚" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:member:update', 'business:member:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaMemberWindow.open('缂栬緫鐢ㄦ埛淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:member:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaMemberWindow ref="operaMemberWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaMemberWindow from '@/components/business/OperaMemberWindow'
+export default {
+ name: 'Member',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaMemberWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ name: '',
+ nickname: '',
+ openid: '',
+ status: '',
+ unionid: '',
+ origin: '',
+ banlance: '',
+ registerDate: '',
+ lastRendId: '',
+ phone: '',
+ email: '',
+ password: '',
+ cardNo: '',
+ cardSign: '',
+ type: '',
+ imgurl: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '鐢ㄦ埛淇℃伅琛�',
+ api: '/business/member',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/memberRides.vue b/admin/src/views/business/memberRides.vue
index 7bfa153..b29a13a 100644
--- a/admin/src/views/business/memberRides.vue
+++ b/admin/src/views/business/memberRides.vue
@@ -3,14 +3,14 @@
<!-- 鎼滅储琛ㄥ崟 -->
<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="bikeCode">
<el-input v-model="searchForm.bikeCode" placeholder="璇疯緭鍏ヨ溅杈嗙紪鐮�" @keypress.enter.native="search"></el-input>
</el-form-item>
<el-form-item label="缁撶畻鐘舵��" prop="closeStatus">
- <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+ <el-select v-model="searchForm.closeStatus" placeholder="璇烽�夋嫨">
<el-option
label="鏈粨绠�"
:value="1">
@@ -25,6 +25,9 @@
<el-date-picker
v-model="value1"
type="daterange"
+ @change="selectDate"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:mm:ss"
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡">
@@ -50,7 +53,7 @@
<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="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宸茬粨鏉� -->
@@ -103,6 +106,7 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
+import { formatDateTime } from '@/utils/util'
export default {
name: 'MemberRides',
extends: BaseTable,
@@ -118,7 +122,7 @@
editor: '',
isdeleted: '',
info: '',
- memberId: '',
+ openid: '',
bikeCode: '',
balance: '',
paramId: '',
@@ -147,9 +151,11 @@
backType: '',
backReason: '',
backInfo: '',
+ startDate: '',
+ endDate: '',
backUserid: ''
},
- value1: []
+ value1: [new Date(), new Date()]
}
},
created () {
@@ -159,7 +165,26 @@
'field.id': 'id',
'field.main': 'id'
})
+ this.searchForm.startDate = formatDateTime(new Date(), 'yyyy-MM-dd') + ' 00:00:00'
this.search()
- }
+ },
+ methods: {
+ reset() {
+ this.value1 = []
+ this.searchForm.startDate = ''
+ this.searchForm.endDate = ''
+ 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()
+ },
+ },
}
</script>
diff --git a/admin/src/views/business/miniproSetting.vue b/admin/src/views/business/miniproSetting.vue
index a869a4d..bac9511 100644
--- a/admin/src/views/business/miniproSetting.vue
+++ b/admin/src/views/business/miniproSetting.vue
@@ -14,9 +14,11 @@
<div class="tips">璇疯緭鍏ラ渶瑕佺即绾崇殑鎶奸噾閲戦(鍗曚綅锛氬厓)</div>
</el-form-item>
<el-form-item label="钀ヤ笟鏃堕棿">
- <el-time-picker placeholder="寮�濮嬫椂闂�" value-format="HH:mm" :picker-options="option" v-model="form.businessStarttime"></el-time-picker>
+ <el-time-picker placeholder="寮�濮嬫椂闂�" value-format="HH:mm" format='HH:mm'
+ v-model="form.businessStarttime"></el-time-picker>
鑷�
- <el-time-picker placeholder="缁撴潫鏃堕棿" value-format="HH:mm" :picker-options="option" v-model="form.businessEndtime"></el-time-picker>
+ <el-time-picker placeholder="缁撴潫鏃堕棿" value-format="HH:mm" format='HH:mm'
+ v-model="form.businessEndtime"></el-time-picker>
</el-form-item>
<el-form-item label="鍏嶈垂楠戣鏃堕暱">
<el-input v-model="form.freeRentTime" type="number" placeholder="璇疯緭鍏ュ厤璐归獞琛屾椂闀�"></el-input>
@@ -33,14 +35,36 @@
<el-form-item label="棰勮閽夐拤缇ゅ湴鍧�">
<el-input v-model="form.warnDingdingUrl" placeholder="璇疯緭鍏ラ璀﹂拤閽夌兢鍦板潃"></el-input>
</el-form-item>
+ <el-form-item label="绉熻祦椤荤煡涓诲浘">
+ <div style="display: flex;">
+ <UploadAvatarImage
+ :file="{ 'imgurlfull': form.leaseNoticeUrl, 'imgurl': leaseNoticeUrl }"
+ :uploadData="uploadData" tipsLabel="" @uploadSuccess="uploadOutSuccess" @uploadEnd="isUploading=false"
+ @uploadBegin="isUploading=true" />
+ <div class="tips">
+ <el-button type="text" style="color: red;" @click="form.leaseNoticeUrl = ''">鍒犻櫎</el-button>
+ </div>
+ </div>
+ </el-form-item>
<el-form-item label="绉熻祦娴佺▼瑙嗛" prop="name">
- <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>
- </el-upload>
- <div class="tips">鍙兘涓婁紶mp4鏍煎紡锛屽缓璁笉瓒呰繃50M</div>
+ <div style="display: flex;">
+ <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>
+ </el-upload>
+ <div class="tips">
+ <div>
+ <el-button type="text" style="color: red;" @click="form.rentTipsVideo = ''">鍒犻櫎</el-button>
+ </div>
+ <div>鍙兘涓婁紶mp4鏍煎紡锛屽缓璁笉瓒呰繃50M</div>
+ </div>
+ </div>
+
+ </el-form-item>
+ <el-form-item label="绉熻祦椤荤煡">
+ <RichEditor :content="{ content: form.leaseNotice }" @edit="form.leaseNotice = $event"></RichEditor>
</el-form-item>
<el-form-item label="楠戣溅閫氱煡鍐呭">
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 8 }" v-model="form.rentNotice"
@@ -55,14 +79,27 @@
placeholder="璇疯緭鍏ュ仠姝㈡湇鍔℃彁绀�"></el-input>
</el-form-item>
<el-form-item label="鍋滄鏈嶅姟鏃堕棿">
- <el-time-picker placeholder="寮�濮嬫椂闂�" value-format="HH:mm" :picker-options="option" v-model="form.stopServeStarttime"></el-time-picker>
+ <!-- <el-time-picker placeholder="寮�濮嬫椂闂�" format='HH:mm' value-format="yyyy-MM-dd HH:mm:ss"
+ v-model="form.stopServeStarttime"></el-time-picker>
鑷�
- <el-time-picker placeholder="缁撴潫鏃堕棿" value-format="HH:mm" :picker-options="option" v-model="form.stopServeEndtime"></el-time-picker>
+ <el-time-picker placeholder="缁撴潫鏃堕棿" value-format="yyyy-MM-dd HH:mm:ss" format='HH:mm'
+ v-model="form.stopServeEndtime"></el-time-picker> -->
+ <el-date-picker
+ v-model="value1"
+ type="datetimerange"
+ @change="selectDate"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ ></el-date-picker>
<div class="tips">鍋滄鏈嶅姟寮�濮嬫椂闂磋嚦缁撴潫鏃堕棿</div>
</el-form-item>
</template>
<el-form-item label="">
- <el-button type="primary" v-permissions="['system:dict:updateMiniProgrammeDTO']" @click="saveSetting">淇濆瓨閰嶇疆椤�</el-button>
+ <el-button type="primary" v-permissions="['system:dict:updateMiniProgrammeDTO']"
+ @click="saveSetting">淇濆瓨閰嶇疆椤�</el-button>
</el-form-item>
</el-form>
</TableLayout>
@@ -71,19 +108,27 @@
<script>
import TableLayout from '@/layouts/TableLayout'
import { getMiniProgrammeDTO, updateById } from '@/api/business/minproSetting'
+import UploadAvatarImage from '@/components/common/UploadAvatarImage.vue'
+import RichEditor from '@/components/common/RichEditor.vue'
export default {
name: 'BaseParam',
- components: { TableLayout },
+ components: { TableLayout, UploadAvatarImage, RichEditor },
data() {
return {
uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal',
option: {
format: 'HH:mm'
},
+ uploadData: {folder: 'bike'},
+ leaseNoticeUrl: '',
+ isUploading: false,
+ value1: [],
// 鎼滅储
form: {
businessEndtime: '',
businessStarttime: '',
+ leaseNoticeUrl: '',
+ leaseNotice: '',
freeRentTime: '',
isStopServe: 0,
projectName: '',
@@ -105,12 +150,25 @@
.then(res => {
console.log(res);
this.form = res
+ this.value1 = [res.stopServeStarttime, res.stopServeEndtime]
})
},
methods: {
handleAvatarSuccess(res, file) {
console.log(res.data.url);
this.form.rentTipsVideo = res.data.url;
+ },
+ uploadOutSuccess(file) {
+ this.leaseNoticeUrl = file.imgurl;
+ this.form.leaseNoticeUrl = file.imgurlfull;
+ },
+ selectDate(v) {
+ this.form.stopServeStarttime = ''
+ this.form.stopServeEndtime = ''
+ if (v) {
+ this.form.stopServeStarttime = v[0]
+ this.form.stopServeEndtime = v[1]
+ }
},
// beforeAvatarUpload(file) {
// console.log(file.type);
@@ -136,7 +194,7 @@
<style lang="scss" scoped>
::v-deep .el-form {
- width: 800px;
+ width: 900px;
}
::v-deep .table-content {
@@ -178,5 +236,9 @@
.tips {
color: #999;
+ display: flex;
+ justify-content: space-between;
+ flex-direction: column;
+ margin-left: 10px;
}
</style>
diff --git a/admin/src/views/business/mqttLog.vue b/admin/src/views/business/mqttLog.vue
new file mode 100644
index 0000000..d2bd622
--- /dev/null
+++ b/admin/src/views/business/mqttLog.vue
@@ -0,0 +1,130 @@
+<template>
+ <TableLayout :permissions="['business:mqttlog:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 0璁㈤槄 1鍙戝竷" prop="type">
+ <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨� 0璁㈤槄 1鍙戝竷" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="瀹㈡埛绔紪鐮�" prop="clientid">
+ <el-input v-model="searchForm.clientid" placeholder="璇疯緭鍏ュ鎴风缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="涓婚" prop="topic">
+ <el-input v-model="searchForm.topic" placeholder="璇疯緭鍏ヤ富棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="娑堟伅鍐呭" prop="msg">
+ <el-input v-model="searchForm.msg" placeholder="璇疯緭鍏ユ秷鎭唴瀹�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缁撴灉 0鎴愬姛 1澶辫触" prop="result">
+ <el-input v-model="searchForm.result" placeholder="璇疯緭鍏ョ粨鏋� 0鎴愬姛 1澶辫触" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:mqttlog:create']">
+ <li><el-button type="primary" @click="$refs.operaMqttLogWindow.open('鏂板缓绯荤粺琛屼负鎿嶄綔璁板綍琛�')" icon="el-icon-plus" v-permissions="['business:mqttlog:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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 prop="type" label="绫诲瀷 0璁㈤槄 1鍙戝竷" min-width="100px"></el-table-column>
+ <el-table-column prop="clientid" label="瀹㈡埛绔紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="topic" label="涓婚" min-width="100px"></el-table-column>
+ <el-table-column prop="msg" label="娑堟伅鍐呭" min-width="100px"></el-table-column>
+ <el-table-column prop="result" label="缁撴灉 0鎴愬姛 1澶辫触" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:mqttlog:update', 'business:mqttlog:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaMqttLogWindow.open('缂栬緫绯荤粺琛屼负鎿嶄綔璁板綍琛�', row)" icon="el-icon-edit" v-permissions="['business:mqttlog:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:mqttlog:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaMqttLogWindow ref="operaMqttLogWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaMqttLogWindow from '@/components/business/OperaMqttLogWindow'
+export default {
+ name: 'MqttLog',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaMqttLogWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ type: '',
+ clientid: '',
+ topic: '',
+ msg: '',
+ result: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '绯荤粺琛屼负鎿嶄綔璁板綍琛�',
+ api: '/business/mqttLog',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/multifile.vue b/admin/src/views/business/multifile.vue
new file mode 100644
index 0000000..30b9f93
--- /dev/null
+++ b/admin/src/views/business/multifile.vue
@@ -0,0 +1,135 @@
+<template>
+ <TableLayout :permissions="['business:multifile:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏂囦欢鍚�" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ユ枃浠跺悕" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍏宠仈瀵硅薄缂栫爜" prop="objId">
+ <el-input v-model="searchForm.objId" placeholder="璇疯緭鍏ュ叧鑱斿璞$紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="绫诲瀷0鍥剧墖 1瑙嗛 2鍏朵粬" prop="type">
+ <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨�0鍥剧墖 1瑙嗛 2鍏朵粬" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍏宠仈瀵硅薄绫诲瀷 0杞﹁締淇濅慨" prop="objType">
+ <el-input v-model="searchForm.objType" placeholder="璇疯緭鍏ュ叧鑱斿璞$被鍨� 0杞﹁締淇濅慨" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏂囦欢鍦板潃" prop="fileurl">
+ <el-input v-model="searchForm.fileurl" placeholder="璇疯緭鍏ユ枃浠跺湴鍧�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:multifile:create']">
+ <li><el-button type="primary" @click="$refs.operaMultifileWindow.open('鏂板缓闄勪欢淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:multifile:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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="name" label="鏂囦欢鍚�" min-width="100px"></el-table-column>
+ <el-table-column prop="info" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="objId" label="鍏宠仈瀵硅薄缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="type" label="绫诲瀷0鍥剧墖 1瑙嗛 2鍏朵粬" min-width="100px"></el-table-column>
+ <el-table-column prop="objType" label="鍏宠仈瀵硅薄绫诲瀷 0杞﹁締淇濅慨" min-width="100px"></el-table-column>
+ <el-table-column prop="fileurl" label="鏂囦欢鍦板潃" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:multifile:update', 'business:multifile:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaMultifileWindow.open('缂栬緫闄勪欢淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:multifile:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:multifile:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaMultifileWindow ref="operaMultifileWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaMultifileWindow from '@/components/business/OperaMultifileWindow'
+export default {
+ name: 'Multifile',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaMultifileWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ name: '',
+ info: '',
+ objId: '',
+ type: '',
+ objType: '',
+ fileurl: '',
+ sortnum: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '闄勪欢淇℃伅琛�',
+ api: '/business/multifile',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/onlinePayStatistics.vue b/admin/src/views/business/onlinePayStatistics.vue
index 59b6f30..37e6178 100644
--- a/admin/src/views/business/onlinePayStatistics.vue
+++ b/admin/src/views/business/onlinePayStatistics.vue
@@ -7,6 +7,7 @@
<el-date-picker
v-model="value1"
type="daterange"
+
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡"
@@ -54,13 +55,14 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import { fetchList } from '@/api/business/onlinePayStatistics'
+import { formatDateTime } from '@/utils/util'
export default {
name: 'PricingParam',
extends: BaseTable,
components: { TableLayout },
data () {
return {
- value1: [],
+ value1: [new Date(), new Date()],
// 鎼滅储
searchForm: {
endDate: '',
@@ -69,7 +71,7 @@
}
},
created () {
-
+ this.searchForm.startDate = formatDateTime(new Date(), 'yyyy-MM-dd') + ' 00:00:00'
this.search()
},
methods: {
@@ -77,6 +79,7 @@
this.searchForm.startDate = ''
this.searchForm.endDate = ''
this.value1 = []
+ this.$refs.searchForm.resetFields()
this.search()
},
diff --git a/admin/src/views/business/pricingDetail.vue b/admin/src/views/business/pricingDetail.vue
new file mode 100644
index 0000000..6c09ba4
--- /dev/null
+++ b/admin/src/views/business/pricingDetail.vue
@@ -0,0 +1,160 @@
+<template>
+ <TableLayout :permissions="['business:pricingdetail:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="瀹氫环鏂规缂栫爜(鍏宠仈price_param)" prop="pricePramId">
+ <el-input v-model="searchForm.pricePramId" placeholder="璇疯緭鍏ュ畾浠锋柟妗堢紪鐮�(鍏宠仈price_param)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="杞﹁締绫诲瀷缂栫爜(鍏宠仈bike_types琛級" prop="bikeTypeId">
+ <el-input v-model="searchForm.bikeTypeId" placeholder="璇疯緭鍏ヨ溅杈嗙被鍨嬬紪鐮�(鍏宠仈bike_types琛級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸ヤ綔鏃ヨ捣姝ユ椂闂达紙鍒嗛挓锛�" prop="baseTime">
+ <el-input v-model="searchForm.baseTime" placeholder="璇疯緭鍏ュ伐浣滄棩璧锋鏃堕棿锛堝垎閽燂級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸ヤ綔鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級" prop="basePrice">
+ <el-input v-model="searchForm.basePrice" placeholder="璇疯緭鍏ュ伐浣滄棩璧锋浠锋牸锛堝垎锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸ヤ綔鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�" prop="unitTime">
+ <el-input v-model="searchForm.unitTime" placeholder="璇疯緭鍏ュ伐浣滄棩瓒呭嚭鏃堕棿锛堝垎閽燂級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸ヤ綔鏃ヨ秴鍑轰环鏍硷紙鍒嗭級" prop="unitPrice">
+ <el-input v-model="searchForm.unitPrice" placeholder="璇疯緭鍏ュ伐浣滄棩瓒呭嚭浠锋牸锛堝垎锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鑺傚亣鏃ヨ捣姝ユ椂闂达紙鍒嗛挓锛�" prop="holidayBaseTime">
+ <el-input v-model="searchForm.holidayBaseTime" placeholder="璇疯緭鍏ヨ妭鍋囨棩璧锋鏃堕棿锛堝垎閽燂級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鑺傚亣鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級" prop="holidayBasePrice">
+ <el-input v-model="searchForm.holidayBasePrice" placeholder="璇疯緭鍏ヨ妭鍋囨棩璧锋浠锋牸锛堝垎锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鑺傚亣鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�" prop="holidayUnitTime">
+ <el-input v-model="searchForm.holidayUnitTime" placeholder="璇疯緭鍏ヨ妭鍋囨棩瓒呭嚭鏃堕棿锛堝垎閽燂級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鑺傚亣鏃ヨ秴鍑烘椂闂村崟浠凤紙鍒嗭級" prop="holidayUnitPrice">
+ <el-input v-model="searchForm.holidayUnitPrice" placeholder="璇疯緭鍏ヨ妭鍋囨棩瓒呭嚭鏃堕棿鍗曚环锛堝垎锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="瑙勫垯鍚嶇О" prop="title">
+ <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ヨ鍒欏悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:pricingdetail:create']">
+ <li><el-button type="primary" @click="$refs.operaPricingDetailWindow.open('鏂板缓瀹氫环鏂规鏄庣粏閰嶇疆')" icon="el-icon-plus" v-permissions="['business:pricingdetail:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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="pricePramId" label="瀹氫环鏂规缂栫爜(鍏宠仈price_param)" min-width="100px"></el-table-column>
+ <el-table-column prop="bikeTypeId" label="杞﹁締绫诲瀷缂栫爜(鍏宠仈bike_types琛級" min-width="100px"></el-table-column>
+ <el-table-column prop="baseTime" label="宸ヤ綔鏃ヨ捣姝ユ椂闂达紙鍒嗛挓锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="basePrice" label="宸ヤ綔鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級" min-width="100px"></el-table-column>
+ <el-table-column prop="unitTime" label="宸ヤ綔鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="unitPrice" label="宸ヤ綔鏃ヨ秴鍑轰环鏍硷紙鍒嗭級" min-width="100px"></el-table-column>
+ <el-table-column prop="holidayBaseTime" label="鑺傚亣鏃ヨ捣姝ユ椂闂达紙鍒嗛挓锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="holidayBasePrice" label="鑺傚亣鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級" min-width="100px"></el-table-column>
+ <el-table-column prop="holidayUnitTime" label="鑺傚亣鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="holidayUnitPrice" label="鑺傚亣鏃ヨ秴鍑烘椂闂村崟浠凤紙鍒嗭級" min-width="100px"></el-table-column>
+ <el-table-column prop="info" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="title" label="瑙勫垯鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:pricingdetail:update', 'business:pricingdetail:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaPricingDetailWindow.open('缂栬緫瀹氫环鏂规鏄庣粏閰嶇疆', row)" icon="el-icon-edit" v-permissions="['business:pricingdetail:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:pricingdetail:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaPricingDetailWindow ref="operaPricingDetailWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaPricingDetailWindow from '@/components/business/OperaPricingDetailWindow'
+export default {
+ name: 'PricingDetail',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaPricingDetailWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ pricePramId: '',
+ bikeTypeId: '',
+ baseTime: '',
+ basePrice: '',
+ unitTime: '',
+ unitPrice: '',
+ holidayBaseTime: '',
+ holidayBasePrice: '',
+ holidayUnitTime: '',
+ holidayUnitPrice: '',
+ info: '',
+ title: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '瀹氫环鏂规鏄庣粏閰嶇疆',
+ api: '/business/pricingDetail',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/pricingParam.vue b/admin/src/views/business/pricingParam.vue
index 90d56b4..33fc19b 100644
--- a/admin/src/views/business/pricingParam.vue
+++ b/admin/src/views/business/pricingParam.vue
@@ -68,7 +68,7 @@
import Pagination from '@/components/common/Pagination'
import OperaPricingParamWindow from '@/components/business/OperaPricingParamWindow'
import PriceConfiguration from '@/components/business/priceConfiguration'
-import { updateById } from '@/api/business/pricingParam'
+import { updateStatusById } from '@/api/business/pricingParam'
export default {
name: 'PricingParam',
extends: BaseTable,
@@ -103,7 +103,7 @@
},
methods: {
changeStatus(row) {
- updateById(row)
+ updateStatusById(row)
.then(() => {
this.$tip.apiSuccess('鎴愬姛')
})
diff --git a/admin/src/views/business/reductionReason.vue b/admin/src/views/business/reductionReason.vue
index 6210706..d3884bc 100644
--- a/admin/src/views/business/reductionReason.vue
+++ b/admin/src/views/business/reductionReason.vue
@@ -3,8 +3,8 @@
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鍚嶇О" prop="name">
- <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鍘熷洜" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ師鍥�" @keypress.enter.native="search"></el-input>
</el-form-item>
<section>
diff --git a/admin/src/views/business/refund.vue b/admin/src/views/business/refund.vue
new file mode 100644
index 0000000..62ee386
--- /dev/null
+++ b/admin/src/views/business/refund.vue
@@ -0,0 +1,160 @@
+<template>
+ <TableLayout :permissions="['business:refund:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" 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-form-item>
+ <el-form-item label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" prop="memberId">
+ <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮侊紙鍏宠仈member琛級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗閲戦" prop="money">
+ <el-input v-model="searchForm.money" placeholder="璇疯緭鍏ヤ氦鏄撻噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0棰勯��娆� 1閫�娆惧け璐� 2閫�娆惧畬鎴�" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0棰勯��娆� 1閫�娆惧け璐� 2閫�娆惧畬鎴�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗棰勮鍗曞彿" prop="preOrderid">
+ <el-input v-model="searchForm.preOrderid" placeholder="璇疯緭鍏ヤ氦鏄撻璁㈠崟鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍦ㄧ嚎浜ゆ槗鍗曞彿" prop="onlineOrderid">
+ <el-input v-model="searchForm.onlineOrderid" placeholder="璇疯緭鍏ュ湪绾夸氦鏄撳崟鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閫�娆炬柟寮� 0寰俊 1鏀粯瀹�" prop="payWay">
+ <el-input v-model="searchForm.payWay" placeholder="璇疯緭鍏ラ��娆炬柟寮� 0寰俊 1鏀粯瀹�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="瀹屾垚鏃堕棿" prop="doneDate">
+ <el-date-picker v-model="searchForm.doneDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ畬鎴愭椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="閫�娆剧被鍨� 0缁撶畻閫�娆� 1寮哄埗缁撶畻閫�娆� 2缁撶畻鍚庨��娆�" prop="type">
+ <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ラ��娆剧被鍨� 0缁撶畻閫�娆� 1寮哄埗缁撶畻閫�娆� 2缁撶畻鍚庨��娆�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閫�娆惧叧鑱旇鍗曠紪鐮�" prop="objId">
+ <el-input v-model="searchForm.objId" placeholder="璇疯緭鍏ラ��娆惧叧鑱旇鍗曠紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閫�娆惧師鍥�" prop="reason">
+ <el-input v-model="searchForm.reason" placeholder="璇疯緭鍏ラ��娆惧師鍥�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:refund:create']">
+ <li><el-button type="primary" @click="$refs.operaRefundWindow.open('鏂板缓閫�娆句俊鎭〃')" icon="el-icon-plus" v-permissions="['business:refund:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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 prop="code" label="閫�娆剧紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="memberId" label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" min-width="100px"></el-table-column>
+ <el-table-column prop="money" label="浜ゆ槗閲戦" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0棰勯��娆� 1閫�娆惧け璐� 2閫�娆惧畬鎴�" min-width="100px"></el-table-column>
+ <el-table-column prop="preOrderid" label="浜ゆ槗棰勮鍗曞彿" min-width="100px"></el-table-column>
+ <el-table-column prop="onlineOrderid" label="鍦ㄧ嚎浜ゆ槗鍗曞彿" min-width="100px"></el-table-column>
+ <el-table-column prop="payWay" label="閫�娆炬柟寮� 0寰俊 1鏀粯瀹�" min-width="100px"></el-table-column>
+ <el-table-column prop="doneDate" label="瀹屾垚鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="type" label="閫�娆剧被鍨� 0缁撶畻閫�娆� 1寮哄埗缁撶畻閫�娆� 2缁撶畻鍚庨��娆�" min-width="100px"></el-table-column>
+ <el-table-column prop="objId" label="閫�娆惧叧鑱旇鍗曠紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="reason" label="閫�娆惧師鍥�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:refund:update', 'business:refund:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaRefundWindow.open('缂栬緫閫�娆句俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:refund:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:refund:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaRefundWindow ref="operaRefundWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaRefundWindow from '@/components/business/OperaRefundWindow'
+export default {
+ name: 'Refund',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaRefundWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ code: '',
+ memberId: '',
+ money: '',
+ status: '',
+ preOrderid: '',
+ onlineOrderid: '',
+ payWay: '',
+ doneDate: '',
+ type: '',
+ objId: '',
+ reason: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '閫�娆句俊鎭〃',
+ api: '/business/refund',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/rentSite.vue b/admin/src/views/business/rentSite.vue
index b2d619d..ce3fdb9 100644
--- a/admin/src/views/business/rentSite.vue
+++ b/admin/src/views/business/rentSite.vue
@@ -28,15 +28,11 @@
<el-table-column prop="name" label="绉熻溅鐐瑰悕绉�" min-width="100px" align="center"></el-table-column>
<el-table-column prop="longitude" label="缁忕含搴�" min-width="100px" align="center">
<template slot-scope="{row}">
- {{ `${row.longitude}锛�${row.latitude}`}}
+ {{ `${row.latitude}锛�${row.longitude}`}}
</template>
</el-table-column>
- <!-- <el-table-column prop="latitude" label="绾害" min-width="100px"></el-table-column> -->
<el-table-column prop="addr" 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="status" 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:rentsite:update', 'business:rentsite:delete'])"
label="鎿嶄綔"
diff --git a/admin/src/views/business/returnReason.vue b/admin/src/views/business/returnReason.vue
index 38af376..58c2fad 100644
--- a/admin/src/views/business/returnReason.vue
+++ b/admin/src/views/business/returnReason.vue
@@ -3,8 +3,8 @@
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鍚嶇О" prop="name">
- <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鍘熷洜" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ師鍥�" @keypress.enter.native="search"></el-input>
</el-form-item>
<section>
diff --git a/admin/src/views/business/transactions.vue b/admin/src/views/business/transactions.vue
new file mode 100644
index 0000000..9328e77
--- /dev/null
+++ b/admin/src/views/business/transactions.vue
@@ -0,0 +1,165 @@
+<template>
+ <TableLayout :permissions="['business:transactions:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="缂栫爜" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ョ紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栬緫鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ紪杈戞椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缂栬緫浜�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ョ紪杈戜汉" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="info">
+ <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璁㈠崟缂栫爜锛堝叧鑱攇oodsorder)" prop="orderId">
+ <el-input v-model="searchForm.orderId" placeholder="璇疯緭鍏ヨ鍗曠紪鐮侊紙鍏宠仈goodsorder)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" prop="memberId">
+ <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮侊紙鍏宠仈member琛級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗閲戦" prop="money">
+ <el-input v-model="searchForm.money" placeholder="璇疯緭鍏ヤ氦鏄撻噾棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗绫诲瀷 0绉熻溅鎶奸噾 1缁撶畻瀹為檯娑堣垂 2缁撶畻閫�娆� 3骞冲彴閫�娆�" prop="type">
+ <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ヤ氦鏄撶被鍨� 0绉熻溅鎶奸噾 1缁撶畻瀹為檯娑堣垂 2缁撶畻閫�娆� 3骞冲彴閫�娆�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璇︾粏鍦板潃" prop="preOrderid">
+ <el-input v-model="searchForm.preOrderid" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璇︾粏鍦板潃" prop="onlineOrderid">
+ <el-input v-model="searchForm.onlineOrderid" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗瀹屾垚鏃堕棿" prop="doneDate">
+ <el-input v-model="searchForm.doneDate" placeholder="璇疯緭鍏ヤ氦鏄撳畬鎴愭椂闂�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鏍囬" prop="title">
+ <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ヤ氦鏄撴爣棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鍐呭" prop="content">
+ <el-input v-model="searchForm.content" placeholder="璇疯緭鍏ヤ氦鏄撳唴瀹�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐢ㄦ埛褰撳墠浣欓(鍒嗭級" prop="balance">
+ <el-input v-model="searchForm.balance" placeholder="璇疯緭鍏ョ敤鎴峰綋鍓嶄綑棰�(鍒嗭級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鍏宠仈瀵硅薄绫诲瀷 0璁㈠崟 1閫�娆惧崟" prop="objType">
+ <el-input v-model="searchForm.objType" placeholder="璇疯緭鍏ヤ氦鏄撳叧鑱斿璞$被鍨� 0璁㈠崟 1閫�娆惧崟" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ゆ槗鍏宠仈瀵硅薄缂栫爜" prop="objId">
+ <el-input v-model="searchForm.objId" placeholder="璇疯緭鍏ヤ氦鏄撳叧鑱斿璞$紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:transactions:create']">
+ <li><el-button type="primary" @click="$refs.operaTransactionsWindow.open('鏂板缓浜ゆ槗娴佹按琛�')" icon="el-icon-plus" v-permissions="['business:transactions:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="id" label="缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></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 prop="orderId" label="璁㈠崟缂栫爜锛堝叧鑱攇oodsorder)" min-width="100px"></el-table-column>
+ <el-table-column prop="memberId" label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" min-width="100px"></el-table-column>
+ <el-table-column prop="money" label="浜ゆ槗閲戦" min-width="100px"></el-table-column>
+ <el-table-column prop="type" label="浜ゆ槗绫诲瀷 0绉熻溅鎶奸噾 1缁撶畻瀹為檯娑堣垂 2缁撶畻閫�娆� 3骞冲彴閫�娆�" min-width="100px"></el-table-column>
+ <el-table-column prop="preOrderid" label="璇︾粏鍦板潃" min-width="100px"></el-table-column>
+ <el-table-column prop="onlineOrderid" label="璇︾粏鍦板潃" min-width="100px"></el-table-column>
+ <el-table-column prop="doneDate" label="浜ゆ槗瀹屾垚鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="title" label="浜ゆ槗鏍囬" min-width="100px"></el-table-column>
+ <el-table-column prop="content" label="浜ゆ槗鍐呭" min-width="100px"></el-table-column>
+ <el-table-column prop="balance" label="鐢ㄦ埛褰撳墠浣欓(鍒嗭級" min-width="100px"></el-table-column>
+ <el-table-column prop="objType" label="浜ゆ槗鍏宠仈瀵硅薄绫诲瀷 0璁㈠崟 1閫�娆惧崟" min-width="100px"></el-table-column>
+ <el-table-column prop="objId" label="浜ゆ槗鍏宠仈瀵硅薄缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:transactions:update', 'business:transactions:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaTransactionsWindow.open('缂栬緫浜ゆ槗娴佹按琛�', row)" icon="el-icon-edit" v-permissions="['business:transactions:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:transactions:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaTransactionsWindow ref="operaTransactionsWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaTransactionsWindow from '@/components/business/OperaTransactionsWindow'
+export default {
+ name: 'Transactions',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaTransactionsWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ createDate: '',
+ creator: '',
+ editDate: '',
+ editor: '',
+ isdeleted: '',
+ info: '',
+ orderId: '',
+ memberId: '',
+ money: '',
+ type: '',
+ preOrderid: '',
+ onlineOrderid: '',
+ doneDate: '',
+ title: '',
+ content: '',
+ balance: '',
+ objType: '',
+ objId: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '浜ゆ槗娴佹按琛�',
+ api: '/business/transactions',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/wxBill.vue b/admin/src/views/business/wxBill.vue
index 3e35f4f..983a1ca 100644
--- a/admin/src/views/business/wxBill.vue
+++ b/admin/src/views/business/wxBill.vue
@@ -88,13 +88,14 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
+import { formatDateTime } from '@/utils/util'
export default {
name: 'WxBill',
extends: BaseTable,
components: { TableLayout, Pagination },
data () {
return {
- value1: [],
+ value1: [new Date(), new Date()],
// 鎼滅储
searchForm: {
endDate: '',
@@ -112,6 +113,7 @@
'field.id': 'id',
'field.main': 'id'
})
+ this.searchForm.startDate = formatDateTime(new Date(), 'yyyy-MM-dd') + ' 00:00:00'
this.search()
},
methods: {
@@ -119,6 +121,7 @@
this.searchForm.startDate = ''
this.searchForm.endDate = ''
this.value1 = []
+ this.$refs.searchForm.resetFields()
this.search()
},
selectDate(v) {
diff --git a/admin/src/views/business/wxBillDetail.vue b/admin/src/views/business/wxBillDetail.vue
index cca6660..f152f2a 100644
--- a/admin/src/views/business/wxBillDetail.vue
+++ b/admin/src/views/business/wxBillDetail.vue
@@ -66,13 +66,14 @@
import TableLayout from '@/layouts/TableLayout'
import { fetchList } from '@/api/business/wxBillDetail'
import BillDetailWindow from '@/components/business/BillDetailWindow'
+import { formatDateTime } from '@/utils/util'
export default {
name: 'WxBillDetail',
extends: BaseTable,
components: { TableLayout, BillDetailWindow },
data () {
return {
- value1: [],
+ value1: [new Date(), new Date()],
// 鎼滅储
searchForm: {
endDate: '',
@@ -87,6 +88,7 @@
'field.id': 'id',
'field.main': 'id'
})
+ this.searchForm.startDate = formatDateTime(new Date(), 'yyyy-MM-dd') + ' 00:00:00'
this.search()
},
methods: {
@@ -94,6 +96,7 @@
this.searchForm.startDate = ''
this.searchForm.endDate = ''
this.value1 = []
+ this.$refs.searchForm.resetFields()
this.search()
},
diff --git a/server/platform/src/main/java/com/doumee/api/business/PricingParamController.java b/server/platform/src/main/java/com/doumee/api/business/PricingParamController.java
index f45e51b..d3994aa 100644
--- a/server/platform/src/main/java/com/doumee/api/business/PricingParamController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/PricingParamController.java
@@ -67,6 +67,14 @@
return ApiResponse.success(null);
}
+ @ApiOperation("鏍规嵁ID淇敼鐘舵��")
+ @PostMapping("/updateStatusById")
+ @RequiresPermissions("business:pricingparam:update")
+ public ApiResponse updateStatus(@RequestBody PricingParam pricingParam){
+ pricingParamService.updateStatus(pricingParam);
+ return ApiResponse.success(null);
+ }
+
@ApiOperation("鍒嗛〉鏌ヨ")
@PostMapping("/page")
@RequiresPermissions("business:pricingparam:query")
diff --git a/server/platform/src/main/java/com/doumee/api/system/SystemUserController.java b/server/platform/src/main/java/com/doumee/api/system/SystemUserController.java
index 5392e70..2b2e7f1 100644
--- a/server/platform/src/main/java/com/doumee/api/system/SystemUserController.java
+++ b/server/platform/src/main/java/com/doumee/api/system/SystemUserController.java
@@ -101,6 +101,7 @@
@RequiresPermissions("system:user:update")
public ApiResponse updateById(@Validated(OperaType.Update.class) @RequestBody CreateSystemUserDTO systemUser) {
systemUser.setUpdateUser(this.getLoginUser().getId());
+ systemUser.setUsername(systemUser.getMobile());
systemUserBiz.updateById(systemUser);
return ApiResponse.success(null);
}
diff --git a/server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index 530fea1..a3f1165 100644
--- a/server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -106,10 +106,15 @@
@Override
@Transactional
public void create(CreateSystemUserDTO systemUser) {
+
+ if (StringUtils.isBlank(systemUser.getMobile()) || systemUser.getMobile().length() < 6){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍒涘缓鐢ㄦ埛鍙傛暟閿欒");
+ }
// 楠岃瘉鐢ㄦ埛鍚�
SystemUser queryUserDto = new SystemUser();
queryUserDto.setUsername(systemUser.getUsername());
queryUserDto.setDeleted(Constants.ZERO);
+ queryUserDto.setUsername(systemUser.getMobile());
SystemUser user = systemUserService.findOne(queryUserDto);
if (user != null) {
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鐢ㄦ埛鍚嶅凡瀛樺湪");
@@ -128,9 +133,10 @@
// 鐢熸垚瀵嗙爜鐩�
String salt = RandomStringUtils.randomAlphabetic(6);
// 鐢熸垚瀵嗙爜
- systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
+ systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getMobile().substring(systemUser.getMobile().length() - 6), salt));
systemUser.setSalt(salt);
systemUser.setId(UUID.randomUUID().toString());
+ systemUser.setUsername(systemUser.getMobile());
// 鍒涘缓鐢ㄦ埛璁板綍
systemUserService.create(systemUser);
// 璁剧疆閮ㄩ棬
@@ -141,7 +147,7 @@
systemDepartmentUser.setOperaUser(systemUser.getCreateUser());
systemDepartmentUser.setOperaTime(new Date());
systemDepartmentUserService.create(systemDepartmentUser);
- }
+ }
// 璁剧疆宀椾綅
if (systemUser.getPositionIds() != null && systemUser.getPositionIds().size() > 0) {
for (Integer positionId : systemUser.getPositionIds()) {
diff --git a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
index 3004abe..0507d29 100644
--- a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -3018,7 +3018,7 @@
long createTime =begin.getTime();//鑾峰彇鍒涘缓鏃堕棿鐨勬椂闂存埑
long currentTime =Objects.isNull(end)?System.currentTimeMillis():end.getTime();//鑾峰彇褰撳墠鏃堕棿鐨勬椂闂存埑
long diff=(currentTime-createTime)/1000/60;//鑾峰彇涓や釜鏃堕棿鐩稿樊鐨勫垎閽�
- return (int)diff;
+ return (int)diff + 1 ;
}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/ActionLog.java b/server/services/src/main/java/com/doumee/dao/business/model/ActionLog.java
index 8e2d761..d6a0892 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/ActionLog.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/ActionLog.java
@@ -35,6 +35,12 @@
@ExcelColumn(name="鍒涘缓浜�",index = 7,width = 10,align = HorizontalAlignment.CENTER)
private String creator;
+
+ @ApiModelProperty(value = "鍒涘缓浜哄悕绉�")
+ @ExcelColumn(name="鍒涘缓浜哄悕绉�",index = 7,width = 10,align = HorizontalAlignment.CENTER)
+ @TableField(exist = false)
+ private String creatorName;
+
@ApiModelProperty(value = "缂栬緫鏃堕棿")
//@JsonFormat(pattern = "yyyy-MM-dd")
private Date editDate;
@@ -58,6 +64,7 @@
@ExcelColumn(name="绫诲瀷 " ,valueMapping = "0=寮哄埗杩樿溅;1=楠戣鏃堕暱淇敼;",index = 5,width = 10,align = HorizontalAlignment.CENTER)
private Integer type;
@ApiModelProperty(value = "绫诲瀷闆嗗悎", example = "1")
+ @TableField(exist = false)
private List<Integer> typeList;
@ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜")
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java b/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java
index 1571c57..379c34f 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -128,4 +128,13 @@
@TableField(exist = false)
@ExcelColumn(name="閫�娆剧粨绠楁椂闂�",width = 10,align = HorizontalAlignment.CENTER)
private Date refundDate;
+
+ @ApiModelProperty(value = "鏈�杩戦獞琛岀姸鎬�")
+ @TableField(exist = false)
+ private Integer memberRidesStatus;
+
+
+ @ApiModelProperty(value = "鏄惁缁撶畻 0 鏈粨绠� 1宸茬粨绠�")
+ @TableField(exist = false)
+ private Integer closeStatus;
}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Member.java b/server/services/src/main/java/com/doumee/dao/business/model/Member.java
index b21c16e..1164937 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Member.java
@@ -46,7 +46,7 @@
@ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
@ExcelColumn(name="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
- @TableLogic
+
private Integer isdeleted;
@ApiModelProperty(value = "澶囨敞")
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java b/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
index 8d508cd..a39fb50 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
@@ -37,7 +37,6 @@
private String editor;
@ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
- @TableLogic
private Integer isdeleted;
@ApiModelProperty(value = "澶囨敞")
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java
index 3912cdc..59f9e16 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java
@@ -13,6 +13,9 @@
@Data
public class BikeLogDTO {
+ @ApiModelProperty(value = "缂栫爜")
+ private String id;
+
@ApiModelProperty(value = "鐢ㄦ埛OpenID")
@ExcelColumn(name="鐢ㄦ埛",index = 1,width = 10,align = HorizontalAlignment.CENTER)
private String openid;
@@ -34,14 +37,14 @@
private String rentLockId;
@ApiModelProperty(value = "楠戣鏃堕暱")
- @ExcelColumn(name="楠戣鏃堕暱",index = 8,width = 10,align = HorizontalAlignment.CENTER)
+ @ExcelColumn(name="鍊熷嚭鏃堕暱",index = 8,width = 10,align = HorizontalAlignment.CENTER)
private Integer rideTime;
@ApiModelProperty(value = "璁¤垂鏃堕暱")
// @ExcelColumn(name="璁¤垂鏃堕暱",index = 8,width = 10,align = HorizontalAlignment.CENTER)
private Integer duration;
@ApiModelProperty(value = "鍊熷嚭鏃堕棿")
- @ExcelColumn(name="鍊熷嚭鏃堕棿",index = 9,width = 10,align = HorizontalAlignment.CENTER)
+ @ExcelColumn(name="鍊熷嚭鏃堕棿",index = 9,width = 10,align = HorizontalAlignment.CENTER,dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date rentDate;
@ApiModelProperty(value = "杩樿溅绔欑偣")
@@ -53,6 +56,14 @@
private String backLockId;
@ApiModelProperty(value = "杩樿溅鏃堕棿")
- @ExcelColumn(name="杩樿溅鏃堕棿",index = 14,width = 10,align = HorizontalAlignment.CENTER)
+ @ExcelColumn(name="褰掕繕鏃堕棿",index = 14,width = 10,align = HorizontalAlignment.CENTER,dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date backDate;
+
+ @ApiModelProperty(value = "鐘舵�� 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞� 3寮�閿佸け璐�")
+ @ExcelColumn(name="鐘舵�� ", valueMapping = "0=璇锋眰寮�閿佷腑;1=楠戣涓�;2=宸茶繕杞�;3=寮�閿佸け璐�;" ,index = 5,width = 10,align = HorizontalAlignment.CENTER)
+ private Integer status;
+
+ @ApiModelProperty(value = "缁撶畻鐘舵��")
+ @ExcelColumn(name="缁撶畻鐘舵�� ", valueMapping = "0=鏈粨绠�;1=宸茬粨绠�;" ,index = 4,width = 10,align = HorizontalAlignment.CENTER)
+ private Integer closeStatus;
}
diff --git a/server/services/src/main/java/com/doumee/service/business/PricingParamService.java b/server/services/src/main/java/com/doumee/service/business/PricingParamService.java
index a1658a6..685480a 100644
--- a/server/services/src/main/java/com/doumee/service/business/PricingParamService.java
+++ b/server/services/src/main/java/com/doumee/service/business/PricingParamService.java
@@ -48,6 +48,8 @@
*/
void update(PricingParam pricingParam);
+ void updateStatus(PricingParam pricingParam);
+
void updateById(PricingParam pricingParam);
/**
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/ActionLogServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/ActionLogServiceImpl.java
index b55f6d9..7bf4191 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/ActionLogServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/ActionLogServiceImpl.java
@@ -96,7 +96,7 @@
QueryWrapper<ActionLog> wrapper = new QueryWrapper<>(actionLog);
return actionLogMapper.selectList(wrapper);
}
-
+
@Override
public PageData<ActionLog> findPage(PageWrap<ActionLog> pageWrap) {
@@ -136,10 +136,11 @@
queryWrapper.le(pageWrap.getModel().getEndDate()!=null, ActionLog::getCreateDate,pageWrap.getModel().getEndDate());
queryWrapper.eq(pageWrap.getModel().getCreator()!=null, ActionLog::getCreator,pageWrap.getModel().getCreator());
queryWrapper.in(pageWrap.getModel().getTypeList()!=null && pageWrap.getModel().getTypeList().size()>0, ActionLog::getType,pageWrap.getModel().getTypeList());
- queryWrapper.selectAs(ActionLog::getCreateDate,ActionLog::getCreateDate)
- .selectAs(ActionLog::getActInfo,ActionLog::getActInfo)
- .selectAs(ActionLog::getActReason,ActionLog::getActReason)
- .selectAs(SystemUser::getNickname,ActionLog::getCreator)
+ queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getBikeCode()),ActionLog::getBeforeContent,"%"+pageWrap.getModel().getBikeCode()+"%");
+ queryWrapper.eq(ActionLog::getObjType,Constants.ActionLogObjType.memberrides);
+ queryWrapper
+ .selectAll(ActionLog.class)
+ .selectAs(SystemUser::getRealname,ActionLog::getCreatorName)
.selectAs(Member::getOpenid,ActionLog::getOpenid)
.selectAs(MemberRides::getBikeCode,ActionLog::getBikeCode)
.selectAs(MemberRides::getRentSiteId,ActionLog::getRentSiteId)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/AdServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/AdServiceImpl.java
index f122600..07648d9 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/AdServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/AdServiceImpl.java
@@ -17,6 +17,7 @@
import org.springframework.util.CollectionUtils;
import java.util.List;
+import java.util.Objects;
/**
* 骞垮憡淇℃伅琛⊿ervice瀹炵幇
@@ -34,6 +35,8 @@
@Override
public String create(Ad ad) {
+ ad.setIsdeleted(Constants.ZERO);
+ ad.setStatus(Constants.ZERO);
adMapper.insert(ad);
return ad.getId();
}
@@ -64,11 +67,11 @@
.eq(Ad::getId,ad.getId())
.set(Ad::getEditor,ad.getEditor())
.set(Ad::getEditDate,ad.getEditDate())
- .set(Ad::getName,ad.getName())
- .set(Ad::getImgurl,ad.getImgurl())
+ .set(Objects.nonNull(ad.getName()),Ad::getName,ad.getName())
+ .set(Objects.nonNull(ad.getImgurl()),Ad::getImgurl,ad.getImgurl())
.set(Ad::getSortnum,ad.getSortnum())
- .set(Ad::getContent,ad.getContent())
- .set(Ad::getStatus,ad.getStatus());
+ .set(Objects.nonNull(ad.getContent()),Ad::getContent,ad.getContent())
+ .set(Objects.nonNull(ad.getStatus()),Ad::getStatus,ad.getStatus());
adMapper.update(null,wrapper);
}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
index 9ed224b..0c6eb9d 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
@@ -116,11 +116,10 @@
MPJLambdaWrapper<BikeRepair> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
queryWrapper.leftJoin(Member.class,Member::getId,BikeRepair::getMemberId)
- .leftJoin(Bikes.class,Bikes::getCode,BikeRepair::getBinkeId)
.leftJoin(BaseParam.class,BaseParam::getId,BikeRepair::getTypeId);
queryWrapper.selectAll(BikeRepair.class)
.selectAs(Member::getOpenid,BikeRepairDTO::getOpenid)
- .selectAs(Bikes::getCode,BikeRepairDTO::getBikeCode)
+ .selectAs(BikeRepair::getBinkeId,BikeRepairDTO::getBikeCode)
.selectAs(BaseParam::getName,BikeRepairDTO::getBikeTypeName);
queryWrapper.like(StringUtils.isNotEmpty(pageWrap.getModel().getOpenid()),Member::getOpenid,pageWrap.getModel().getOpenid())
.like(StringUtils.isNotEmpty(pageWrap.getModel().getBikeCode()),Bikes::getCode,pageWrap.getModel().getBikeCode())
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 69cb907..95ab98a 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -210,6 +210,7 @@
if (Objects.nonNull(model.getEndDate())){
queryWrapper.le( Goodsorder::getPayDate, Utils.Date.getEnd(model.getEndDate()));
}
+
queryWrapper.eq(model.getPayStatus() !=null,Goodsorder::getPayStatus,model.getPayStatus());
queryWrapper.like(model.getCode() !=null,Goodsorder::getCode,model.getCode());
queryWrapper.like(model.getId() !=null,Goodsorder::getId,model.getId());
@@ -227,6 +228,13 @@
public PageData<Goodsorder> findPage(PageWrap<Goodsorder> pageWrap) {
IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(pageWrap.getModel());
+ queryWrapper.select("(select er.status from member_rides er where er.ordre_id=t.id order by er.create_date limit 1) as memberRidesStatus");
+ if(Objects.nonNull(pageWrap.getModel().getCloseStatus()) && pageWrap.getModel().getCloseStatus().equals(Constants.ZERO)){
+ queryWrapper.ne(Goodsorder::getStatus,Constants.GOODSORDER_STATUS.CLOSE.getKey());
+ }
+ if(Objects.nonNull(pageWrap.getModel().getCloseStatus()) && pageWrap.getModel().getCloseStatus().equals(Constants.ONE)){
+ queryWrapper.eq(Goodsorder::getStatus,Constants.GOODSORDER_STATUS.CLOSE.getKey());
+ }
IPage<Goodsorder> goodsorderIPage = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper);
if (!CollectionUtils.isEmpty(goodsorderIPage.getRecords())){
goodsorderIPage.getRecords().forEach(s->{
@@ -494,7 +502,8 @@
wrapper.eq(MemberRides::getOrdreId,id);
wrapper.selectAll(MemberRides.class).selectAs(BaseParam::getName, MemberRides::getParamName);
wrapper.leftJoin(BaseParam.class, BaseParam::getId, MemberRides::getParamId);
- wrapper.orderByDesc(BaseParam::getSortnum);//鍙栨渶楂樿溅鍨嬩綔涓鸿浠锋柟妗�
+ wrapper.orderByDesc(BaseParam::getSortnum);
+ //鍙栨渶楂樿溅鍨嬩綔涓鸿浠锋柟妗�
//鏌ヨ鎵�鏈夐獞琛岃褰�
List<MemberRides> memberRides = memberRidesJoinMapper.selectList(wrapper);
return memberRides;
@@ -518,12 +527,13 @@
wrapper.select("sum(money) as money").last(" limit 1");
Refund total = refundMapper.selectOne(wrapper);
BigDecimal refundMoney = total == null?new BigDecimal(0):Constants.formatDecimalNum(total.getMoney());
- BigDecimal canBalance =Constants.formatDecimalNum(goodsorder.getMoney()).subtract(money);
+ //鍙��鍓╀綑 鍗曚綅鍏�
+ BigDecimal canBalance =Constants.translateMoney(Constants.formatDecimalNum(goodsorder.getMoney()).subtract(refundMoney));
if(canBalance.compareTo(money) > Constants.ZERO){
RefundDTO refundDTO = new RefundDTO();
refundDTO.setOrderId(orderId);
refundDTO.setCanBalance(canBalance);
- refundDTO.setRefundAmount(money);
+ refundDTO.setRefundAmount(money.multiply(new BigDecimal(100)));
refundDTO.setTotalAmount(goodsorder.getMoney());
refundDTO.setMemberId(goodsorder.getMemberId());
refundDTO.setCreator(principal.getId());
@@ -531,7 +541,7 @@
refundDTO.setType(Constants.REFUND_TYPE.BACK.getKey());
Refund refund = wxMiniUtilService.wxRefund(refundDTO);
}else {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝閫�娆鹃噾棰濅笉鍏佽瓒呰繃"+canBalance);
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝閫�娆鹃噾棰濅笉鍏佽瓒呰繃"+canBalance+"鍏�");
}
}
@@ -554,7 +564,9 @@
goodsorderCanBanlanceDTO.setCloseMoney(Constants.translateMoney(goodsorder.getCloseMoney()));
BigDecimal reduce = total!=null?Constants.formatDecimalNum(total.getMoney()):new BigDecimal(0);
goodsorderCanBanlanceDTO.setHasRefundMoney(Constants.translateMoney(reduce));
- goodsorderCanBanlanceDTO.setCanBanlanceMoney(Constants.translateMoney(goodsorder.getMoney()).subtract(goodsorderCanBanlanceDTO.getHasRefundMoney()));
+
+ BigDecimal subtract = Constants.translateMoney(goodsorder.getMoney()).subtract(goodsorderCanBanlanceDTO.getCloseMoney()).subtract(goodsorderCanBanlanceDTO.getHasRefundMoney());
+ goodsorderCanBanlanceDTO.setCanBanlanceMoney(subtract.compareTo(new BigDecimal("0")) > 0 ? subtract : new BigDecimal("0"));
return goodsorderCanBanlanceDTO;
}
@@ -617,7 +629,9 @@
if(goodsorder ==null){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- List<MemberRides> memberRides = getMemberRidesForClose(id);
+
+ List<MemberRides> memberRides = memberRidesJoinMapper.selectList(new QueryWrapper<MemberRides>()
+ .lambda().eq(MemberRides::getOrdreId,id).orderByDesc(MemberRides::getCreateDate));
if (!CollectionUtils.isEmpty(memberRides)){
//棰勮缁撶畻浠锋牸鍜岃绠楁椂闀�
int freeTime = 0;
@@ -742,7 +756,7 @@
*/
@Override
public Boolean checkTemporaryStop(){
- if(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.IS_STOP_SERVE).getCode().equals(Constants.ONE)){
+ if(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.IS_STOP_SERVE).getCode().equals(Constants.ONE.toString())){
String stopServeStartTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_STARTTIME).getCode();
String stopServeEndTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_ENDTIME).getCode();
//鏌ヨ褰撳墠鏃堕棿鏄惁鍦ㄥ仠姝腑
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
index 6aabdb9..2ed0440 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -357,7 +357,8 @@
Integer freeRentTime = Integer.valueOf(collect.get(Constants.FREE_RENT_TIME).getCode());
Integer rideTime = DateUtil.betweenMin(model.getRentDate(), update.getBackDate());
//璁$畻楠戣璁¤垂鏃堕暱
- update.setDuration( freeRentTime > 0 ? rideTime - freeRentTime : rideTime);
+ update.setDuration( rideTime > freeRentTime ? rideTime : 0 );
+ //update.setDuration( freeRentTime > 0 ? rideTime - freeRentTime : rideTime);
memberRidesMapper.updateById(update);
//淇敼鍓�
String beforeContent = JSONObject.toJSONString(model);
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
index 4d0f278..300ce2f 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
@@ -93,7 +93,7 @@
public static String getRoleNameByParam(BigDecimal basePrice, Integer baseTime, BigDecimal unitPrice, Integer unitTime) {
String title = "璁¤垂瑙勫垯锛�";
if(baseTime < 0){
- title = Constants.translateMoney(basePrice).doubleValue()+"鍏冪晠楠戜竴鏁村ぉ";
+ title = basePrice.doubleValue()+"鍏冪晠楠戜竴鏁村ぉ";
}else {
title = "璧锋";
int time = baseTime / 60;
@@ -104,8 +104,8 @@
if(min >0){
title += min+"鍒嗛挓";
}
- title += Constants.translateMoney(unitPrice).doubleValue()
- +"鍏冿紝瓒呰繃鍚�"+Constants.translateMoney(basePrice).doubleValue()+"鍏�/"
+ title += basePrice.doubleValue()
+ +"鍏冿紝瓒呰繃鍚�"+unitPrice.doubleValue()+"鍏�/"
+unitTime+"鍒嗛挓";
}
return title;
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
index 9e09b2c..53664f0 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
@@ -1,11 +1,17 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.BaseParamMapper;
+import com.doumee.dao.business.PricingDetailMapper;
import com.doumee.dao.business.PricingParamMapper;
+import com.doumee.dao.business.model.BaseParam;
+import com.doumee.dao.business.model.PricingDetail;
import com.doumee.dao.business.model.PricingParam;
import com.doumee.service.business.PricingParamService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -19,6 +25,8 @@
import java.util.Date;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 瀹氫环鏂规閰嶇疆Service瀹炵幇
@@ -30,6 +38,12 @@
@Autowired
private PricingParamMapper pricingParamMapper;
+
+ @Autowired
+ private PricingDetailMapper pricingDetailMapper;
+
+ @Autowired
+ private BaseParamMapper baseParamMapper;
@Override
public String create(PricingParam pricingParam) {
@@ -45,7 +59,7 @@
insert.setStartDate(pricingParam.getStartDate());
insert.setEndDate(pricingParam.getEndDate());
insert.setSortnum(pricingParam.getSortnum());
- insert.setStatus(Constants.ZERO);
+ insert.setStatus(Constants.ONE);
insert.setInfo(pricingParam.getInfo());
pricingParamMapper.insert(insert);
return insert.getId();
@@ -79,13 +93,57 @@
.eq(PricingParam::getId,pricingParam.getId())
.set(PricingParam::getEditor,principal.getId())
.set(PricingParam::getName,pricingParam.getName())
- .set(PricingParam::getStatus,pricingParam.getStatus())
+// .set(PricingParam::getStatus,pricingParam.getStatus())
.set(PricingParam::getStartDate,pricingParam.getStartDate())
.set(PricingParam::getEndDate,pricingParam.getEndDate())
.set(PricingParam::getSortnum,pricingParam.getSortnum());
pricingParamMapper.update(null,wrapper);
}
+ @Override
+ public void updateStatus(PricingParam pricingParam) {
+
+ if (Objects.nonNull(pricingParam.getStatus()) && pricingParam.getStatus().equals(Constants.ZERO)){
+ QueryWrapper<PricingDetail> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(PricingDetail::getIsdeleted,Constants.ZERO)
+ .eq(PricingDetail::getPricePramId,pricingParam.getId());
+ List<PricingDetail> pricingDetails = pricingDetailMapper.selectList(wrapper);
+ QueryWrapper<BaseParam> baseParamQuery = new QueryWrapper<>();
+ baseParamQuery.lambda()
+ .eq(BaseParam::getIsdeleted,Constants.ZERO)
+ .eq(BaseParam::getType,Constants.THREE);
+ List<BaseParam> baseParams = baseParamMapper.selectList(baseParamQuery);
+ if (CollectionUtils.isEmpty(pricingDetails)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ畾浠锋柟妗堜笅娌℃湁閰嶇疆浠锋牸");
+ }
+ List<String> collect = pricingDetails.stream().map(s -> s.getBikeTypeId()).collect(Collectors.toList());
+ boolean b = baseParams.stream().map(s -> s.getId()).anyMatch(s -> collect.contains(s));
+
+ if (b){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ畾浠锋柟妗堜笅娌℃湁閰嶇疆瀹屾暣");
+ }
+ PricingParam pricingParam1 = new PricingParam();
+ pricingParam1.setId(pricingParam.getId());
+ pricingParam1.setStatus(pricingParam.getStatus());
+ pricingParamMapper.updateById(pricingParam1);
+ }else if (Objects.nonNull(pricingParam.getStatus()) && pricingParam.getStatus().equals(Constants.ONE)){
+
+ QueryWrapper<PricingParam> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(PricingParam::getIsdeleted,Constants.ZERO)
+ .eq(PricingParam::getStatus,Constants.ZERO);
+ Integer integer = pricingParamMapper.selectCount(wrapper);
+ if (integer <= 1 ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ畾浠锋柟妗堝繀椤婚厤缃�");
+ }
+ PricingParam pricingParam1 = new PricingParam();
+ pricingParam1.setId(pricingParam.getId());
+ pricingParam1.setStatus(pricingParam.getStatus());
+ pricingParamMapper.updateById(pricingParam1);
+ }
+
+ }
@Override
public void updateById(PricingParam pricingParam) {
@@ -164,8 +222,8 @@
if (pageWrap.getModel().getInfo() != null) {
queryWrapper.lambda().eq(PricingParam::getInfo, pageWrap.getModel().getInfo());
}
- queryWrapper.lambda().orderByAsc(PricingParam::getSortnum);
queryWrapper.lambda().orderByAsc(PricingParam::getStatus);
+ queryWrapper.lambda().orderByAsc(PricingParam::getSortnum);
return PageData.from(pricingParamMapper.selectPage(page, queryWrapper));
}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java
index c9eff3b..be2807e 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java
@@ -6,9 +6,7 @@
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.RefundMapper;
import com.doumee.dao.business.join.RefundJoinMapper;
-import com.doumee.dao.business.model.Goodsorder;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Refund;
+import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.RefundPlatExportVO;
import com.doumee.dao.business.vo.GoodsorderExportVO;
import com.doumee.dao.system.model.SystemUser;
@@ -18,6 +16,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -26,6 +25,7 @@
import java.sql.Ref;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* 閫�娆句俊鎭〃Service瀹炵幇
@@ -96,7 +96,7 @@
QueryWrapper<Refund> wrapper = new QueryWrapper<>(refund);
return refundMapper.selectList(wrapper);
}
-
+
@Override
public PageData<Refund> findPlatPage(PageWrap<Refund> pageWrap) {
pageWrap.getModel().setTypeList(new ArrayList<>());
@@ -106,6 +106,10 @@
pageWrap.getModel().setStatus(Constants.TWO);
IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
MPJLambdaWrapper<Refund> queryWrapper = initQueryParamByModel(pageWrap.getModel());
+ queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCreatorName())
+ ,SystemUser::getRealname
+ ,pageWrap.getModel().getCreatorName());
+
return PageData.from(refundJoinMapper.selectJoinPage(page, Refund.class,queryWrapper));
}
@Override
@@ -149,10 +153,18 @@
queryWrapper.leftJoin(Member.class, Member::getId ,Goodsorder::getMemberId);
queryWrapper.leftJoin(SystemUser.class, SystemUser::getId ,Refund::getCreator);
//鏃堕棿娈电瓫閫�
- queryWrapper.ge(model.getStartDate()!=null, Refund::getDoneDate, model.getStartDate());
- queryWrapper.le(model.getEndDate()!=null, Refund::getDoneDate, model.getEndDate());
+ if (Objects.nonNull(model.getStartDate())) {
+ queryWrapper.ge(Refund::getDoneDate, Utils.Date.getStart(model.getStartDate()));
+ }
+ if (Objects.nonNull(model.getEndDate())) {
+ queryWrapper.le(Refund::getDoneDate, Utils.Date.getEnd(model.getEndDate()));
+ }
+// queryWrapper.ge(model.getStartDate()!=null, Refund::getDoneDate, model.getStartDate());
+// queryWrapper.le(model.getEndDate()!=null, Refund::getDoneDate, model.getEndDate());
queryWrapper.eq(model.getCreator() !=null,Refund::getCreator,model.getCreator());
queryWrapper.eq(model.getStatus() !=null,Refund::getStatus,model.getStatus());
+ queryWrapper.in(model.getTypeList() !=null,Refund::getType,model.getTypeList());
+ queryWrapper.eq(model.getType() !=null,Refund::getType,model.getType());
queryWrapper.like(model.getPayOnlineOrderid() !=null,Goodsorder::getOnlineOrderid,model.getPayOnlineOrderid());
queryWrapper.like(model.getOnlineOrderid() !=null,Refund::getOnlineOrderid,model.getOnlineOrderid());
queryWrapper.like(model.getOpenid() !=null,Member::getOpenid,model.getOpenid());
diff --git a/server/services/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java b/server/services/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
index 42baca1..a96e931 100644
--- a/server/services/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -113,7 +113,7 @@
Wrapper<SystemUser> wrapper = new QueryWrapper<>(systemUser);
return systemUserMapper.selectList(wrapper);
}
-
+
@Override
public PageData<SystemUserListVO> findPage(PageWrap<QuerySystemUserDTO> pageWrap) {
// 鏍归儴闂ㄦ潯浠跺鐞嗭紙闇�鏌ヨ鏍归儴闂ㄤ笅鎵�鏈夐儴闂ㄧ殑鐢ㄦ埛锛�
@@ -144,8 +144,8 @@
user.setRoles(systemRoleService.findByUserId(user.getId()));
// 鏌ヨ鐢ㄦ埛宀椾綅鍒楄〃
user.setPositions(systemPositionService.findByUserId(user.getId()));
- String imgPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.FILES_DIR,Constants.AVATAR_FILE).getCode();
- user.setAvatar(Constants.formatImgPath(user.getAvatar(),imgPath));
+// String imgPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.FILES_DIR,Constants.AVATAR_FILE).getCode();
+ user.setAvatar(Constants.formatImgPath(user.getAvatar(),""));
}
return PageData.from(new PageInfo<>(userList));
}
diff --git a/server/services/src/main/resources/application-dev.yml b/server/services/src/main/resources/application-dev.yml
index 38a3e17..5f66561 100644
--- a/server/services/src/main/resources/application-dev.yml
+++ b/server/services/src/main/resources/application-dev.yml
@@ -50,8 +50,8 @@
mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
# notifyUrl: http://xiaopiqiu.natapp1.cc/api/wxPayNotify
notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify
-# keyPath: D:\DouMee\config\doumeeTest\apiclient_cert.p12
- keyPath: /usr/local/apiclient_cert.p12
+ keyPath: D:\DouMee\config\doumeeTest\apiclient_cert.p12
+# keyPath: /usr/local/apiclient_cert.p12
########################mqtt鐩稿叧閰嶇疆########################
mqtt:
host: tcp://175.27.187.84:1883
diff --git a/server/services/src/main/resources/mappers/SystemUserMapper.xml b/server/services/src/main/resources/mappers/SystemUserMapper.xml
index cda835b..4e3503d 100644
--- a/server/services/src/main/resources/mappers/SystemUserMapper.xml
+++ b/server/services/src/main/resources/mappers/SystemUserMapper.xml
@@ -63,7 +63,7 @@
select
distinct
usr.id, usr.birthday, usr.email, usr.emp_no, usr.mobile, usr.avatar, usr.username, usr.realname, usr.sex, usr.fixed, usr.create_time, usr.update_time,
- usr.admin_type,usr.user_type,usr.nickname,usr.accepted_number,usr.total_integral,usr.type,
+ usr.nickname,
create_user.id create_user_id, create_user.username create_user_name,
update_user.id updete_user_id, update_user.username update_user_name
from "system_user" usr
@@ -82,7 +82,6 @@
</if>
</where>
- order by usr.accepted_number desc
</select>
--
Gitblit v1.9.3