Mr.Zhang
2023-10-24 969d3507163720cd59e5c78e3e0a7e0bdb47c366
企业端
已添加40个文件
已修改28个文件
4450 ■■■■■ 文件已修改
admin/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/ad.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/aliBill.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/aliBillDetail.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/bikeRepair.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/bikes.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/locks.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/memberRides.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/mqttLog.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/multifile.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/pricingDetail.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/pricingParam.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/refund.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/transactions.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaActionLogWindow.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaAdWindow.vue 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaAliBillDetailWindow.vue 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaAliBillWindow.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaBaseParamWindow.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaBikeRepairWindow.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaBikesWindow.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaGoodsorderWindow.vue 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaLocksWindow.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberRidesWindow.vue 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMqttLogWindow.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMultifileWindow.vue 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaPriceConfigWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaPricingDetailWindow.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaReductionWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaRefundWindow.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaRentSiteWindow.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaRepairDealWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaReturnReasonWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaTransactionsWindow.vue 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaWxBillDetailWindow.vue 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaWxBillWindow.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/RepairDetailWindow.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/backGoodsorderWindow.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/goodsOrderDetail.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/priceConfiguration.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/system/dict/OperaDictDataWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/utils/util.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/actionLog.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/ad.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/aliBill.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/aliBillDetail.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/backgroundRefund.vue 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/baseParam.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/bikeRepair.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/bikeRetakeRecord.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/bikes.vue 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/goodsorder.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/locks.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/member.vue 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/memberRides.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/miniproSetting.vue 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/mqttLog.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/multifile.vue 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/onlinePayStatistics.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/pricingDetail.vue 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/pricingParam.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/reductionReason.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/refund.vue 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/rentSite.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/returnReason.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/transactions.vue 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/wxBill.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/wxBillDetail.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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'
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}`)
}
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}`)
}
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}`)
}
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}`)
}
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}`)
}
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}`)
}
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
  })
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}`)
}
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}`)
}
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}`)
}
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)
}
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}`)
}
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}`)
}
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>
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>
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="对账单ID" 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>
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>
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>
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="车辆问题原因编码(关联base_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="请输入处理人编码(关联system_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>
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="车辆类型编码(关联base_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="当前站点编码(关联sites)" prop="siteId">
        <el-input v-model="form.siteId" placeholder="请输入当前站点编码(关联sites)" v-trim/>
      </el-form-item>
      <el-form-item label="当前锁头编码(关联locks)" 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>
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="用户编码(关联member表)" 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="请输入结算操作人编码(关联system_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>
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正常 1异常" prop="status">
        <el-input v-model="form.status" placeholder="请输入状态 0正常 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>
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正常还车 1强制还车" prop="backType">
        <el-input v-model="form.backType" placeholder="请输入还车类型 0正常还车 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>
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>
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>
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('修改成功')
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>
admin/src/components/business/OperaReductionWindow.vue
@@ -42,7 +42,7 @@
        
        status: '',
        info: '',
        required: ''
        required: 0
      },
      // éªŒè¯è§„则
      rules: {
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="用户编码(关联member表)" 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>
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] : ''
    }
  },
}
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>
admin/src/components/business/OperaReturnReasonWindow.vue
@@ -42,7 +42,7 @@
        
        status: '',
        info: '',
        required: ''
        required: 0
      },
      // éªŒè¯è§„则
      rules: {
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="订单编码(关联goodsorder)" prop="orderId">
        <el-input v-model="form.orderId" placeholder="请输入订单编码(关联goodsorder)" v-trim/>
      </el-form-item>
      <el-form-item label="用户编码(关联member表)" 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>
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="对账单ID" 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="请输入公众账号ID" 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="代金券金额" 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>
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>
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>
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">
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 },
      ],
    }
admin/src/components/business/priceConfiguration.vue
@@ -7,7 +7,7 @@
        <template slot-scope="{row}">
          <div style="text-align: left;">
            <div>方式:{{ row.baseTime == -1 ? '一口价' : '阶梯价格' }}</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>
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: [
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), // å­£åº¦
    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;
}
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]
      },
    }
  },
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>
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>
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="对账单ID" 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="对账单ID" 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>
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()
    },
  },
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>
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)
        })
    }
  },
}
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>
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="车辆类型编码(关联base_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="当前站点编码(关联sites)" prop="siteId">
        <el-input v-model="searchForm.siteId" placeholder="请输入当前站点编码(关联sites)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="当前锁头编码(关联locks)" 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="车辆类型编码(关联base_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="当前站点编码(关联sites)" min-width="100px"></el-table-column>
        <el-table-column prop="lockId" label="当前锁头编码(关联locks)" 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>
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()
    },
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正常 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="站点编码(关联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正常 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>
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="请输入openid" @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="unionid" prop="unionid">
        <el-input v-model="searchForm.unionid" placeholder="请输入unionid" @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正常 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>
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>
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>
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>
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>
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()
    },
    
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>
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('成功')
        })
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>
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="用户编码(关联member表)" 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="用户编码(关联member表)" 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>
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="操作"
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>
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="订单编码(关联goodsorder)" prop="orderId">
        <el-input v-model="searchForm.orderId" placeholder="请输入订单编码(关联goodsorder)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="用户编码(关联member表)" 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="订单编码(关联goodsorder)" min-width="100px"></el-table-column>
        <el-table-column prop="memberId" label="用户编码(关联member表)" 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>
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) {
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()
    },