From c11680cb9911cd00084c99c75099e571be2a08d1 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 09 七月 2025 17:12:41 +0800
Subject: [PATCH] 前端

---
 admin/src/components/business/OperaMemberRevenueWindow.vue    |   98 ++
 admin/src/api/business/withdrawalOrders.js                    |   32 
 admin/src/views/business/withdrawalOrders.vue                 |  138 ++
 admin/src/api/business/orders.js                              |   32 
 admin/src/components/business/OperaWithdrawalOrdersWindow.vue |   86 +
 admin/src/components/business/OperaOrdersWindow.vue           |  246 +++++
 admin/src/api/business/category.js                            |   32 
 .idea/modules.xml                                             |    1 
 admin/src/views/business/orders.vue                           |  338 ++++++
 admin/src/api/business/orderLog.js                            |   32 
 admin/src/views/business/memberRevenue.vue                    |  153 +++
 admin/src/views/business/orderLog.vue                         |  148 +++
 admin/src/api/business/identityInfo.js                        |   32 
 admin/src/api/business/member.js                              |   32 
 admin/src/components/business/OperaIdentityInfoWindow.vue     |  138 ++
 admin/src/views/business/identityInfo.vue                     |  203 ++++
 admin/src/components/business/OperaOrderLogWindow.vue         |   94 +
 admin/src/api/business/receiveWeight.js                       |   32 
 admin/src/views/business/receiveWeight.vue                    |  138 ++
 /dev/null                                                     |  171 ---
 admin/src/components/business/OperaCategoryWindow.vue         |   86 +
 admin/src/views/business/category.vue                         |  138 ++
 admin/src/views/business/member.vue                           |  223 ++++
 admin/src/components/business/OperaReceiveWeightWindow.vue    |   86 +
 admin/src/components/business/OperaMemberWindow.vue           |  154 +++
 admin/src/api/business/memberRevenue.js                       |   32 
 .idea/compiler.xml                                            |    3 
 27 files changed, 2,727 insertions(+), 171 deletions(-)

diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index a56e7df..836d2d2 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -7,18 +7,21 @@
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
+        <module name="jinkuai" />
         <module name="lianghelihua" />
         <module name="dmttwebsite" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>
       <module name="dmttwebsite" target="1.8" />
+      <module name="jinkuai" target="1.8" />
       <module name="lianghelihua" target="1.8" />
     </bytecodeTargetLevel>
   </component>
   <component name="JavacSettings">
     <option name="ADDITIONAL_OPTIONS_OVERRIDE">
       <module name="dmttwebsite" options="-parameters" />
+      <module name="jinkuai" options="-parameters" />
       <module name="lianghelihua" options="-parameters" />
     </option>
   </component>
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 7764309..c1f36af 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,6 +3,7 @@
   <component name="ProjectModuleManager">
     <modules>
       <module fileurl="file://$PROJECT_DIR$/server/dmttwebsite.iml" filepath="$PROJECT_DIR$/server/dmttwebsite.iml" />
+      <module fileurl="file://$PROJECT_DIR$/server/jinkuai.iml" filepath="$PROJECT_DIR$/server/jinkuai.iml" />
       <module fileurl="file://$PROJECT_DIR$/server/lianghelihua.iml" filepath="$PROJECT_DIR$/server/lianghelihua.iml" />
     </modules>
   </component>
diff --git a/admin/src/api/business/carousel.js b/admin/src/api/business/carousel.js
deleted file mode 100644
index dd961b8..0000000
--- a/admin/src/api/business/carousel.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/business/carousel/page', data, {
-    trim: true
-  })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
-  return request.post('/business/carousel/exportExcel', data, {
-    trim: true,
-    download: true
-  })
-}
-
-// 鍒涘缓
-export function create (data) {
-  return request.post('/business/carousel/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/business/carousel/updateById', data)
-}
-export function updateStatus (data) {
-  return request.post('/business/carousel/updateStatus', data)
-}
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/business/carousel/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/business/carousel/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
-
-export function getFoodDataVO () {
-  return request.get('/business/carousel/getFoodDataVO')
-}
-
-// 淇敼搴曢儴璁块厤缃�
-export function updFoodData (data) {
-  return request.post('/business/carousel/updFoodData', data)
-}
diff --git a/admin/src/api/business/category.js b/admin/src/api/business/category.js
new file mode 100644
index 0000000..d44f859
--- /dev/null
+++ b/admin/src/api/business/category.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/category/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/category/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/category/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/category/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/category/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/api/business/identityInfo.js b/admin/src/api/business/identityInfo.js
new file mode 100644
index 0000000..3dc730a
--- /dev/null
+++ b/admin/src/api/business/identityInfo.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/identityInfo/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/identityInfo/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/identityInfo/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/identityInfo/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/identityInfo/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/api/business/information.js b/admin/src/api/business/information.js
deleted file mode 100644
index ed95d8b..0000000
--- a/admin/src/api/business/information.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/business/information/page', data, {
-    trim: true
-  })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
-  return request.post('/business/information/exportExcel', data, {
-    trim: true,
-    download: true
-  })
-}
-
-// 鍒涘缓
-export function create (data) {
-  return request.post('/business/information/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/business/information/updateById', data)
-}
-export function updateStatus (data) {
-  return request.post('/business/information/updateStatus', data)
-}
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/business/information/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/business/information/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
diff --git a/admin/src/api/business/member.js b/admin/src/api/business/member.js
new file mode 100644
index 0000000..a78e2c2
--- /dev/null
+++ b/admin/src/api/business/member.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/member/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/member/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/member/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/member/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/member/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/api/business/memberRevenue.js b/admin/src/api/business/memberRevenue.js
new file mode 100644
index 0000000..7adaa1f
--- /dev/null
+++ b/admin/src/api/business/memberRevenue.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/memberRevenue/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/memberRevenue/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/memberRevenue/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/memberRevenue/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/memberRevenue/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/api/business/orderLog.js b/admin/src/api/business/orderLog.js
new file mode 100644
index 0000000..0af30a7
--- /dev/null
+++ b/admin/src/api/business/orderLog.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/orderLog/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/orderLog/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/orderLog/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/orderLog/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/orderLog/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/api/business/orders.js b/admin/src/api/business/orders.js
new file mode 100644
index 0000000..5456648
--- /dev/null
+++ b/admin/src/api/business/orders.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/orders/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/orders/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/orders/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/orders/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/orders/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/api/business/receiveWeight.js b/admin/src/api/business/receiveWeight.js
new file mode 100644
index 0000000..91b91b5
--- /dev/null
+++ b/admin/src/api/business/receiveWeight.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/receiveWeight/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/receiveWeight/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/receiveWeight/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/receiveWeight/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/receiveWeight/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/api/business/withdrawalOrders.js b/admin/src/api/business/withdrawalOrders.js
new file mode 100644
index 0000000..6362282
--- /dev/null
+++ b/admin/src/api/business/withdrawalOrders.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/withdrawalOrders/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/withdrawalOrders/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/withdrawalOrders/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/withdrawalOrders/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/withdrawalOrders/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/components/business/OperaCarouselWindow.vue b/admin/src/components/business/OperaCarouselWindow.vue
deleted file mode 100644
index b540d6e..0000000
--- a/admin/src/components/business/OperaCarouselWindow.vue
+++ /dev/null
@@ -1,152 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="title"
-    width="calc(100% - 250px)"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鏍囬" prop="title">
-        <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
-      </el-form-item>
-      <el-form-item label="姒傝堪" prop="detail">
-        <el-input  type="textarea" :rows="10" v-model="form.detail" placeholder="璇疯緭鍏ユ弿杩�" v-trim/>
-      </el-form-item>
-      <div style="display: flex">
-        <el-form-item label="缂╃暐鍥�" prop="thumbnailImgurl" style="display:inline-block;flex: 1">
-          <div class="upload_wrap">
-            <UploadAvatarImage :file="{ 'imgurlfull': form.fullThumbnailImgurl, 'imgurl': form.thumbnailImgurl }" :uploadData="{folder:''}"
-                               @uploadSuccess="uploadAvatarSuccess1"   />
-          </div>
-        </el-form-item>
-        <el-form-item label="楂樻竻鍥�" prop="imgurl"  style="display:inline-block;flex: 3">
-          <div class="upload_wrap">
-            <UploadAvatarImage :file="{ 'imgurlfull': form.fullImgurl, 'imgurl': form.imgurl }" :uploadData="{folder:''}"
-                               @uploadSuccess="uploadAvatarSuccess"   />
-          </div>
-        </el-form-item>
-      </div>
-
-      <el-form-item label="鍐呭绫诲瀷" prop="jumpType" >
-        <el-radio-group v-model="form.jumpType">
-          <el-radio :label="0" :value="0">澶栭摼</el-radio>
-          <el-radio :label="1" :value="1">瀵屾枃鏈�</el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <el-form-item label="璺宠浆鍐呭" prop="content"   >
-        <RichEditor v-if="form.jumpType === 1"  :richData="form.content" :styleEditor="styleEditor"  @getWangedditor="getWangedditor" :readonly="false"/>
-        <el-input v-if="form.jumpType === 0"  v-model="form.content" placeholder="璇疯緭鍏ヨ烦杞摼鎺ュ湴鍧�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status" required class="form-item-status">
-        <el-switch v-model="form.status" :active-value="0" :inactive-value="1" active-color="#13ce66"/>
-      </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="remark">
-        <el-input v-model="form.remark" type="textarea" 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'
-import RichEditor from '@/components/common/RichEditor'
-import '@wangeditor/editor/dist/css/style.css'
-export default {
-  name: 'OperaCarouselWindow',
-  extends: BaseOpera,
-  components: { GlobalWindow, UploadAvatarImage, RichEditor },
-  data () {
-    return {
-      // 琛ㄥ崟鏁版嵁
-      styleEditor: 'border: 1px solid #ccc;display: inline-block;height:800px; ',
-      form: {
-        id: null,
-        remark: '',
-        title: '',
-        detail: '',
-        imgurl: '',
-        fullImgurl: '',
-        thumbnailImgurl: '',
-        fullThumbnailImgurl: '',
-        jumpType: 0,
-        content: '',
-        sortnum: '',
-        status: 0
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        title: [
-          { required: true, message: '璇疯緭鍏ユ爣棰�' }
-        ]
-      }
-    }
-  },
-  created () {
-    this.config({
-      api: '/business/carousel',
-      'field.id': 'id'
-    })
-  },
-  methods: {
-    open (title, target) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form= {
-            id: null,
-            remark: '',
-            title: '',
-            detail: '',
-            imgurl: '',
-            imgurlFull: '',
-            thumbnailImgurl: '',
-            thumbnailImgurlFull: '',
-            jumpType: 0,
-            content: '',
-            sortnum: '',
-            status: 0
-          }
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-        console.log(111+this.form.content)
-      })
-    },
-    // 涓婁紶鍥剧墖
-    getWangedditor (val) {
-      this.form.content = val
-    },
-    uploadAvatarSuccess (file) {
-      this.form.imgurl = file.imgurl
-      this.form.fullImgurl = file.imgurlfull
-    },
-    uploadAvatarSuccess1 (file) {
-      this.form.thumbnailImgurl = file.imgurl
-      this.form.fullThumbnailImgurl = file.imgurlfull
-    }
-  }
-}
-</script>
-<style>
-::v-deep .w-e-text-container {
-  height: 420px !important;
-}
-.w-e-text-container .w-e-scroll {
-  height: 500px !important;
-  -webkit-overflow-scrolling: touch;
-}
-</style>
diff --git a/admin/src/components/business/OperaCategoryWindow.vue b/admin/src/components/business/OperaCategoryWindow.vue
new file mode 100644
index 0000000..40738ff
--- /dev/null
+++ b/admin/src/components/business/OperaCategoryWindow.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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" 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="createUser">
+        <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      </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="name">
+        <el-input v-model="form.name" 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="detail">
+        <el-input v-model="form.detail" placeholder="璇疯緭鍏ュ唴瀹癸紙杞﹁締瑙勬牸銆侀鏍囥�佹墜缁垂姣斾緥锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍥炬爣锛堣溅杈嗙被鍨嬩娇鐢級" prop="icon">
+        <el-input v-model="form.icon" placeholder="璇疯緭鍏ュ浘鏍囷紙杞﹁締绫诲瀷浣跨敤锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏄惁鍥哄畾杞﹁締锛堣溅杈嗙被鍨嬩娇鐢級:0=鍚︼紱1=鏄紱" prop="isFixed">
+        <el-input v-model="form.isFixed" 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: 'OperaCategoryWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        deleted: '',
+        status: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        name: '',
+        type: '',
+        detail: '',
+        icon: '',
+        isFixed: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/category',
+      'field.id': 'id'
+    })
+  }
+}
+</script>
diff --git a/admin/src/components/business/OperaIdentityInfoWindow.vue b/admin/src/components/business/OperaIdentityInfoWindow.vue
new file mode 100644
index 0000000..ab5223a
--- /dev/null
+++ b/admin/src/components/business/OperaIdentityInfoWindow.vue
@@ -0,0 +1,138 @@
+<template>
+  <GlobalWindow
+    :title="title"
+    :visible.sync="visible"
+    :confirm-working="isWorking"
+    @confirm="confirm"
+  >
+    <el-form :model="form" ref="form" :rules="rules">
+      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      </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="绫诲瀷: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="memberId">
+        <el-input v-model="form.memberId" placeholder="璇疯緭鍏ヤ細鍛橀�愭笎" v-trim/>
+      </el-form-item>
+      <el-form-item label="璁よ瘉绫诲瀷:0=涓汉锛�1=浼佷笟" prop="authType">
+        <el-input v-model="form.authType" placeholder="璇疯緭鍏ヨ璇佺被鍨�:0=涓汉锛�1=浼佷笟" 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="telephone">
+        <el-input v-model="form.telephone" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟浣嶇疆" prop="location">
+        <el-input v-model="form.location" placeholder="璇疯緭鍏ユ帴鍗曚綅缃�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍗曚綅鍚嶇О" prop="companyName">
+        <el-input v-model="form.companyName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" v-trim/>
+      </el-form-item>
+      <el-form-item label="绾害" prop="lat">
+        <el-input v-model="form.lat" placeholder="璇疯緭鍏ョ含搴�" v-trim/>
+      </el-form-item>
+      <el-form-item label="缁忓害" prop="lgt">
+        <el-input v-model="form.lgt" placeholder="璇疯緭鍏ョ粡搴�" v-trim/>
+      </el-form-item>
+      <el-form-item label="韬唤璇佷汉鍍忛潰" prop="identityFront">
+        <el-input v-model="form.identityFront" placeholder="璇疯緭鍏ヨ韩浠借瘉浜哄儚闈�" v-trim/>
+      </el-form-item>
+      <el-form-item label="韬唤璇佸浗寰介潰" prop="identityBack">
+        <el-input v-model="form.identityBack" placeholder="璇疯緭鍏ヨ韩浠借瘉鍥藉窘闈�" v-trim/>
+      </el-form-item>
+      <el-form-item label="钀ヤ笟鎵х収锛堜紒涓氱被浣跨敤锛�" prop="businessLicense">
+        <el-input v-model="form.businessLicense" placeholder="璇疯緭鍏ヨ惀涓氭墽鐓э紙浼佷笟绫讳娇鐢級" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍏朵粬璁よ瘉璧勬枡锛堜紒涓氱被浣跨敤锛�" prop="otherFile">
+        <el-input v-model="form.otherFile" placeholder="璇疯緭鍏ュ叾浠栬璇佽祫鏂欙紙浼佷笟绫讳娇鐢級" v-trim/>
+      </el-form-item>
+      <el-form-item label="閬撹矾杩愯緭缁忛獙璁稿彲璇侊紙浼佷笟绫昏揣杩愯韩浠戒娇鐢級" prop="transportFile">
+        <el-input v-model="form.transportFile" placeholder="璇疯緭鍏ラ亾璺繍杈撶粡楠岃鍙瘉锛堜紒涓氱被璐ц繍韬唤浣跨敤锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="椋熷搧缁忚惀璁稿彲璇侊紙浼佷笟绫讳緵椁愯韩浠戒娇鐢級" prop="foodBusinessFile">
+        <el-input v-model="form.foodBusinessFile" placeholder="璇疯緭鍏ラ鍝佺粡钀ヨ鍙瘉锛堜紒涓氱被渚涢韬唤浣跨敤锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="浠庝笟浜哄憳鍋ュ悍璇�" prop="healthFile">
+        <el-input v-model="form.healthFile" placeholder="璇疯緭鍏ヤ粠涓氫汉鍛樺仴搴疯瘉" v-trim/>
+      </el-form-item>
+      <el-form-item label="璁よ瘉瀹℃壒鐘舵��:1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="auditStatus">
+        <el-input v-model="form.auditStatus" placeholder="璇疯緭鍏ヨ璇佸鎵圭姸鎬�:1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="璁よ瘉瀹℃壒鏃堕棿" prop="auditTime">
+        <el-date-picker v-model="form.auditTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヨ璇佸鎵规椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="璁よ瘉瀹℃壒澶囨敞" prop="auditRemark">
+        <el-input v-model="form.auditRemark" 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: 'OperaIdentityInfoWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        type: '',
+        memberId: '',
+        authType: '',
+        linkName: '',
+        telephone: '',
+        location: '',
+        companyName: '',
+        lat: '',
+        lgt: '',
+        identityFront: '',
+        identityBack: '',
+        businessLicense: '',
+        otherFile: '',
+        transportFile: '',
+        foodBusinessFile: '',
+        healthFile: '',
+        auditStatus: '',
+        auditTime: '',
+        auditRemark: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/identityInfo',
+      'field.id': 'id'
+    })
+  }
+}
+</script>
diff --git a/admin/src/components/business/OperaInformationWindow.vue b/admin/src/components/business/OperaInformationWindow.vue
deleted file mode 100644
index fbb573b..0000000
--- a/admin/src/components/business/OperaInformationWindow.vue
+++ /dev/null
@@ -1,134 +0,0 @@
-<template>
-  <GlobalWindow
-      :title="title"
-      width="calc(100% - 250px)"
-      :visible.sync="visible"
-      :confirm-working="isWorking"
-      @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鏍囬" prop="title">
-        <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍒楄〃鍥�" prop="imgurl" >
-        <div class="upload_wrap">
-          <UploadAvatarImage :file="{ 'imgurlfull': form.fullImgurl, 'imgurl': form.imgurl }" :uploadData="{folder:''}"   @uploadSuccess="uploadAvatarSuccess"   />
-        </div>
-      </el-form-item>
-      <el-form-item label="绠�浠�" prop="detail">
-        <el-input  type="textarea"   :rows="10"  v-model="form.detail" placeholder="璇疯緭鍏ョ畝浠�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍙戝竷鏃ユ湡" prop="releaseDate" >
-        <el-date-picker v-model="form.releaseDate" value-format="yyyy-MM-dd HH:mm:ss" type="datetime">  </el-date-picker>
-      </el-form-item>
-      <el-form-item label="鍐呭" prop="content"   >
-        <RichEditor     :richData="form.content" :styleEditor="styleEditor"  @getWangedditor="getWangedditor" :readonly="false"/>
-        <!--        <RichEditor     :richData="form.content" :styleEditor="styleEditor"  @getWangedditor="getWangedditor" :readonly="false"/>-->
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status" required class="form-item-status">
-        <el-switch v-model="form.status" :active-value="0" :inactive-value="1" active-color="#13ce66"/>
-      </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="remark">
-        <el-input v-model="form.remark" type="textarea" 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'
-import RichEditor from '@/components/common/RichEditor'
-import '@wangeditor/editor/dist/css/style.css'
-import dayjs from 'dayjs';
-export default {
-  name: 'OperaInformationWindow',
-  extends: BaseOpera,
-  components: { GlobalWindow, UploadAvatarImage, RichEditor },
-  data () {
-    return {
-      // 琛ㄥ崟鏁版嵁
-      styleEditor: 'border: 1px solid #ccc;display: inline-block;height:800px;min-height :500px;',
-      form: {
-        id: null,
-        remark: '',
-        title: '',
-        detail: '',
-        imgurl: '',
-        fullImgurl: '',
-        jumpType: 0,
-        content: '',
-        releaseDate: new Date(),
-        sortnum: '',
-        status: 0
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        title: [
-          { required: true, message: '璇疯緭鍏ユ爣棰�' }
-        ]
-      }
-    }
-  },
-  created () {
-    this.config({
-      api: '/business/information',
-      'field.id': 'id'
-    })
-  },
-  methods: {
-    open (title, target) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form= {
-            id: null,
-            remark: '',
-            title: '',
-            detail: '',
-            releaseDate: dayjs().format('YYYY-MM-DD HH:mm:ss'),
-            imgurl: '',
-            fullImgurl: '',
-            jumpType: 0,
-            content: '',
-            sortnum: '',
-            status: 0
-          }
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-        console.log(111+this.form.content)
-      })
-    },
-    // 涓婁紶鍥剧墖
-    getWangedditor (val) {
-      this.form.content = val
-    },
-    uploadAvatarSuccess (file) {
-      this.form.imgurl = file.imgurl
-      this.form.fullImgurl = file.imgurlfull
-    }
-  }
-}
-</script>
-<style>
-::v-deep .w-e-text-container {
-  height: 420px !important;
-}
-.w-e-text-container .w-e-scroll {
-  height: 500px !important;
-  -webkit-overflow-scrolling: touch;
-}
-</style>
diff --git a/admin/src/components/business/OperaMemberRevenueWindow.vue b/admin/src/components/business/OperaMemberRevenueWindow.vue
new file mode 100644
index 0000000..e956eec
--- /dev/null
+++ b/admin/src/components/business/OperaMemberRevenueWindow.vue
@@ -0,0 +1,98 @@
+<template>
+  <GlobalWindow
+    :title="title"
+    :visible.sync="visible"
+    :confirm-working="isWorking"
+    @confirm="confirm"
+  >
+    <el-form :model="form" ref="form" :rules="rules">
+      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      </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="memberId">
+        <el-input v-model="form.memberId" 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="鏀舵敮绫诲瀷:1=鏀跺叆锛�-1=鏀嚭锛�" prop="optType">
+        <el-input v-model="form.optType" placeholder="璇疯緭鍏ユ敹鏀被鍨�:1=鏀跺叆锛�-1=鏀嚭锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍙樺姩閲戦" prop="amount">
+        <el-input v-model="form.amount" placeholder="璇疯緭鍏ュ彉鍔ㄩ噾棰�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍙樺姩鍓嶉噾棰�" prop="beforeAmount">
+        <el-input v-model="form.beforeAmount" placeholder="璇疯緭鍏ュ彉鍔ㄥ墠閲戦" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍙樺姩鍚庨噾棰�" prop="afterAmount">
+        <el-input v-model="form.afterAmount" 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=鎻愮幇涓氬姟锛�" prop="objType">
+        <el-input v-model="form.objType" placeholder="璇疯緭鍏ヤ笟鍔$被鍨�:0=璁㈠崟涓氬姟锛�1=鎻愮幇涓氬姟锛�" 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>
+  </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+  name: 'OperaMemberRevenueWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        memberId: '',
+        type: '',
+        optType: '',
+        amount: '',
+        beforeAmount: '',
+        afterAmount: '',
+        objId: '',
+        objType: '',
+        status: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/memberRevenue',
+      'field.id': 'id'
+    })
+  }
+}
+</script>
diff --git a/admin/src/components/business/OperaMemberWindow.vue b/admin/src/components/business/OperaMemberWindow.vue
new file mode 100644
index 0000000..a31bbe4
--- /dev/null
+++ b/admin/src/components/business/OperaMemberWindow.vue
@@ -0,0 +1,154 @@
+<template>
+  <GlobalWindow
+    :title="title"
+    :visible.sync="visible"
+    :confirm-working="isWorking"
+    @confirm="confirm"
+  >
+    <el-form :model="form" ref="form" :rules="rules">
+      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      </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="coverImage">
+        <el-input v-model="form.coverImage" placeholder="璇疯緭鍏ュご鍍�" v-trim/>
+      </el-form-item>
+      <el-form-item label="openid" prop="openid">
+        <el-input v-model="form.openid" placeholder="璇疯緭鍏penid" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏄电О" prop="nickName">
+        <el-input v-model="form.nickName" placeholder="璇疯緭鍏ユ樀绉�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鑱旂郴鐢佃瘽" prop="telephone">
+        <el-input v-model="form.telephone" 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="鐢ㄥ伐韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="workerIdentity">
+        <el-input v-model="form.workerIdentity" placeholder="璇疯緭鍏ョ敤宸ヨ韩浠�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="璐ц繍韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="driverIdentity">
+        <el-input v-model="form.driverIdentity" placeholder="璇疯緭鍏ヨ揣杩愯韩浠�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="渚涢寰堢矇:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="chefIdentity">
+        <el-input v-model="form.chefIdentity" placeholder="璇疯緭鍏ヤ緵椁愬緢绮�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="褰撳墠浣欓(鍗曚綅:鍒�)" prop="amount">
+        <el-input v-model="form.amount" placeholder="璇疯緭鍏ュ綋鍓嶄綑棰�(鍗曚綅:鍒�)" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍘嗗彶鎬婚噾棰�(鍗曚綅:鍒�)" prop="totalAmount">
+        <el-input v-model="form.totalAmount" placeholder="璇疯緭鍏ュ巻鍙叉�婚噾棰�(鍗曚綅:鍒�)" v-trim/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏈�鍚庣櫥褰曟椂闂�" prop="loginTime">
+        <el-date-picker v-model="form.loginTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶鍚庣櫥褰曟椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鎬荤櫥褰曟鏁�" prop="loginTimes">
+        <el-input v-model="form.loginTimes" placeholder="璇疯緭鍏ユ�荤櫥褰曟鏁�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎬绘帴鍗曢噺" prop="reciveNum">
+        <el-input v-model="form.reciveNum" placeholder="璇疯緭鍏ユ�绘帴鍗曢噺" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎬诲彂鍗曢噺" prop="publishNum">
+        <el-input v-model="form.publishNum" placeholder="璇疯緭鍏ユ�诲彂鍗曢噺" v-trim/>
+      </el-form-item>
+      <el-form-item label="璇勫垎" prop="score">
+        <el-input v-model="form.score" placeholder="璇疯緭鍏ヨ瘎鍒�" v-trim/>
+      </el-form-item>
+      <el-form-item label="瀹氫綅鍦板潃" prop="localtion">
+        <el-input v-model="form.localtion" placeholder="璇疯緭鍏ュ畾浣嶅湴鍧�" v-trim/>
+      </el-form-item>
+      <el-form-item label="绾害" prop="lat">
+        <el-input v-model="form.lat" placeholder="璇疯緭鍏ョ含搴�" v-trim/>
+      </el-form-item>
+      <el-form-item label="缁忓害" prop="lgt">
+        <el-input v-model="form.lgt" placeholder="璇疯緭鍏ョ粡搴�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鐪佷唤" prop="province">
+        <el-input v-model="form.province" placeholder="璇疯緭鍏ョ渷浠�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍩庡競" prop="city">
+        <el-input v-model="form.city" placeholder="璇疯緭鍏ュ煄甯�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍖哄幙" prop="area">
+        <el-input v-model="form.area" placeholder="璇疯緭鍏ュ尯鍘�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏄惁鎺ュ彈鑷姩娲惧崟:0=鍚︼紱1=鏄紱" prop="autoReciveStatus">
+        <el-input v-model="form.autoReciveStatus" 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: 'OperaMemberWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        coverImage: '',
+        openid: '',
+        nickName: '',
+        telephone: '',
+        name: '',
+        workerIdentity: '',
+        driverIdentity: '',
+        chefIdentity: '',
+        amount: '',
+        totalAmount: '',
+        status: '',
+        loginTime: '',
+        loginTimes: '',
+        reciveNum: '',
+        publishNum: '',
+        score: '',
+        localtion: '',
+        lat: '',
+        lgt: '',
+        province: '',
+        city: '',
+        area: '',
+        autoReciveStatus: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/member',
+      'field.id': 'id'
+    })
+  }
+}
+</script>
diff --git a/admin/src/components/business/OperaOrderLogWindow.vue b/admin/src/components/business/OperaOrderLogWindow.vue
new file mode 100644
index 0000000..845f569
--- /dev/null
+++ b/admin/src/components/business/OperaOrderLogWindow.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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      </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="璁㈠崟涓婚敭锛坥rders锛�" prop="orderId">
+        <el-input v-model="form.orderId" placeholder="璇疯緭鍏ヨ鍗曚富閿紙orders锛�" 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="logInfo">
+        <el-input v-model="form.logInfo" 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="memberId">
+        <el-input v-model="form.memberId" placeholder="璇疯緭鍏ユ搷浣滀汉" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎿嶄綔鍓嶆暟鎹�" prop="beforeInfo">
+        <el-input v-model="form.beforeInfo" placeholder="璇疯緭鍏ユ搷浣滃墠鏁版嵁" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎿嶄綔鍚庢暟鎹�" prop="afterInfo">
+        <el-input v-model="form.afterInfo" placeholder="璇疯緭鍏ユ搷浣滃悗鏁版嵁" v-trim/>
+      </el-form-item>
+      <el-form-item label="璁㈠崟鐘舵��:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" prop="orderStatus">
+        <el-input v-model="form.orderStatus" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" 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: 'OperaOrderLogWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        orderId: '',
+        title: '',
+        logInfo: '',
+        objType: '',
+        memberId: '',
+        beforeInfo: '',
+        afterInfo: '',
+        orderStatus: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/orderLog',
+      'field.id': 'id'
+    })
+  }
+}
+</script>
diff --git a/admin/src/components/business/OperaOrdersWindow.vue b/admin/src/components/business/OperaOrdersWindow.vue
new file mode 100644
index 0000000..be8715b
--- /dev/null
+++ b/admin/src/components/business/OperaOrdersWindow.vue
@@ -0,0 +1,246 @@
+<template>
+  <GlobalWindow
+    :title="title"
+    :visible.sync="visible"
+    :confirm-working="isWorking"
+    @confirm="confirm"
+  >
+    <el-form :model="form" ref="form" :rules="rules">
+      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      </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="releaseMemberId">
+        <el-input v-model="form.releaseMemberId" 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="寮�濮嬫椂闂� yyyy-MM-dd" prop="startDate">
+        <el-date-picker v-model="form.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫椂闂� yyyy-MM-dd"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="缁撴潫鏃堕棿 yyyy-MM-dd" prop="endDate">
+        <el-date-picker v-model="form.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸椂闂� yyyy-MM-dd"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鍦扮偣淇℃伅/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣" prop="location">
+        <el-input v-model="form.location" placeholder="璇疯緭鍏ュ湴鐐逛俊鎭�/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍦扮偣鎻忚堪" prop="locationRemark">
+        <el-input v-model="form.locationRemark" placeholder="璇疯緭鍏ュ湴鐐规弿杩�" v-trim/>
+      </el-form-item>
+      <el-form-item label="缁忓害" prop="lat">
+        <el-input v-model="form.lat" placeholder="璇疯緭鍏ョ粡搴�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鐪佷唤" prop="province">
+        <el-input v-model="form.province" placeholder="璇疯緭鍏ョ渷浠�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍩庡競" prop="city">
+        <el-input v-model="form.city" placeholder="璇疯緭鍏ュ煄甯�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍖哄幙" prop="area">
+        <el-input v-model="form.area" placeholder="璇疯緭鍏ュ尯鍘�" v-trim/>
+      </el-form-item>
+      <el-form-item label="绾害" prop="lgt">
+        <el-input v-model="form.lgt" placeholder="璇疯緭鍏ョ含搴�" v-trim/>
+      </el-form-item>
+      <el-form-item label="闇�姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category" prop="categoryId">
+        <el-input v-model="form.categoryId" placeholder="璇疯緭鍏ラ渶姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category" v-trim/>
+      </el-form-item>
+      <el-form-item label="鐢ㄥ伐绫诲瀷:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級" prop="workType">
+        <el-input v-model="form.workType" placeholder="璇疯緭鍏ョ敤宸ョ被鍨�:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級" v-trim/>
+      </el-form-item>
+      <el-form-item label="璁′环鏁伴噺1(澶╂暟/鐢ㄨ溅娆℃暟)" prop="priceNum1">
+        <el-input v-model="form.priceNum1" placeholder="璇疯緭鍏ヨ浠锋暟閲�1(澶╂暟/鐢ㄨ溅娆℃暟)" v-trim/>
+      </el-form-item>
+      <el-form-item label="璁′环鏁伴噺2(鐢ㄥ伐鏁伴噺/閲囨憳鏁伴噺/鐢ㄨ溅鏁伴噺/)" prop="priceNum2">
+        <el-input v-model="form.priceNum2" placeholder="璇疯緭鍏ヨ浠锋暟閲�2(鐢ㄥ伐鏁伴噺/閲囨憳鏁伴噺/鐢ㄨ溅鏁伴噺/)" v-trim/>
+      </el-form-item>
+      <el-form-item label="闇�姹傝ˉ鍏�" prop="supplement">
+        <el-input v-model="form.supplement" 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="estimatedAccount">
+        <el-input v-model="form.estimatedAccount" placeholder="璇疯緭鍏ラ浼拌垂鐢�" v-trim/>
+      </el-form-item>
+      <el-form-item label="瀹為檯鏀粯璐圭敤" prop="payAccount">
+        <el-input v-model="form.payAccount" placeholder="璇疯緭鍏ュ疄闄呮敮浠樿垂鐢�" v-trim/>
+      </el-form-item>
+      <el-form-item label="瀹炴敹璐圭敤" prop="reviceAccount">
+        <el-input v-model="form.reviceAccount" placeholder="璇疯緭鍏ュ疄鏀惰垂鐢�" v-trim/>
+      </el-form-item>
+      <el-form-item label="璐圭敤璇存槑" prop="priceRemark">
+        <el-input v-model="form.priceRemark" placeholder="璇疯緭鍏ヨ垂鐢ㄨ鏄�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鐢ㄨ溅绫诲瀷(杩愯揣浣跨敤):0=澶╋紱1=娆�" prop="carType">
+        <el-input v-model="form.carType" placeholder="璇疯緭鍏ョ敤杞︾被鍨�(杩愯揣浣跨敤):0=澶╋紱1=娆�" v-trim/>
+      </el-form-item>
+      <el-form-item label="杩愯緭鍝佺(杩愯揣浣跨敤) 鍏宠仈category琛�" prop="transportTypeId">
+        <el-input v-model="form.transportTypeId" placeholder="璇疯緭鍏ヨ繍杈撳搧绉�(杩愯揣浣跨敤) 鍏宠仈category琛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="杩愯緭閲嶉噺/鏁伴噺" prop="transportNum">
+        <el-input v-model="form.transportNum" placeholder="璇疯緭鍏ヨ繍杈撻噸閲�/鏁伴噺" v-trim/>
+      </el-form-item>
+      <el-form-item label="杩愯緭鍗曚綅(涓�/鏂�)" prop="transportUnit">
+        <el-input v-model="form.transportUnit" placeholder="璇疯緭鍏ヨ繍杈撳崟浣�(涓�/鏂�)" v-trim/>
+      </el-form-item>
+      <el-form-item label="鐢ㄨ溅缁堢偣鍦板潃" prop="locationEnd">
+        <el-input v-model="form.locationEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐瑰湴鍧�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鐢ㄨ溅缁堢偣缁忓害" prop="latEnd">
+        <el-input v-model="form.latEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐圭粡搴�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鐢ㄨ溅缁堢偣绾害" prop="lgtEnd">
+        <el-input v-model="form.lgtEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐圭含搴�" v-trim/>
+      </el-form-item>
+      <el-form-item label="閫旂粡鐐�/椁愭爣淇℃伅" prop="wayInfo">
+        <el-input v-model="form.wayInfo" 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=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" prop="status">
+        <el-input v-model="form.status" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟鏃堕棿" prop="acceptTime">
+        <el-date-picker v-model="form.acceptTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ帴鍗曟椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟浜�" prop="acceptMemberId">
+        <el-input v-model="form.acceptMemberId" placeholder="璇疯緭鍏ユ帴鍗曚汉" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟绫诲瀷:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�" prop="acceptType">
+        <el-input v-model="form.acceptType" placeholder="璇疯緭鍏ユ帴鍗曠被鍨�:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="寮�濮嬩綔涓氭椂闂�" prop="workStartTime">
+        <el-date-picker v-model="form.workStartTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬩綔涓氭椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="瀹屾垚鏃堕棿" prop="finishTime">
+        <el-date-picker v-model="form.finishTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ畬鎴愭椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="骞冲彴鎻愭垚姣斾緥" prop="platformRata">
+        <el-input v-model="form.platformRata" placeholder="璇疯緭鍏ュ钩鍙版彁鎴愭瘮渚�" v-trim/>
+      </el-form-item>
+      <el-form-item label="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�" prop="wxExternalNo">
+        <el-input v-model="form.wxExternalNo" placeholder="璇疯緭鍏ュ井淇″钩鍙颁氦鏄撹鍗曞彿" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏄惁璇勪环:0=鍚︼紱1=鏄�" prop="commentStatus">
+        <el-input v-model="form.commentStatus" placeholder="璇疯緭鍏ユ槸鍚﹁瘎浠�:0=鍚︼紱1=鏄�" v-trim/>
+      </el-form-item>
+      <el-form-item label="璇勪环鍐呭" prop="commentInfo">
+        <el-input v-model="form.commentInfo" placeholder="璇疯緭鍏ヨ瘎浠峰唴瀹�" v-trim/>
+      </el-form-item>
+      <el-form-item label="璇勪环鏄熺骇1-5" prop="commentLevel">
+        <el-input v-model="form.commentLevel" placeholder="璇疯緭鍏ヨ瘎浠锋槦绾�1-5" v-trim/>
+      </el-form-item>
+      <el-form-item label="璇勪环鏃堕棿" prop="commentTime">
+        <el-date-picker v-model="form.commentTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヨ瘎浠锋椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="璇勪环绫诲瀷:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�" prop="commentType">
+        <el-input v-model="form.commentType" placeholder="璇疯緭鍏ヨ瘎浠风被鍨�:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍙栨秷鏃堕棿" prop="cancelTime">
+        <el-date-picker v-model="form.cancelTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ彇娑堟椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏄惁宸蹭慨鏀�:0=鍚︼紱1=鏄紱" prop="isUpdate">
+        <el-input v-model="form.isUpdate" placeholder="璇疯緭鍏ユ槸鍚﹀凡淇敼:0=鍚︼紱1=鏄紱" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟鏂归粦鍚嶅崟member:id 澶氫釜浠�,鍒嗗壊" prop="blackRecive">
+        <el-input v-model="form.blackRecive" placeholder="璇疯緭鍏ユ帴鍗曟柟榛戝悕鍗昺ember:id 澶氫釜浠�,鍒嗗壊" 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: 'OperaOrdersWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        releaseMemberId: '',
+        type: '',
+        startDate: '',
+        endDate: '',
+        location: '',
+        locationRemark: '',
+        lat: '',
+        province: '',
+        city: '',
+        area: '',
+        lgt: '',
+        categoryId: '',
+        workType: '',
+        priceNum1: '',
+        priceNum2: '',
+        supplement: '',
+        price: '',
+        estimatedAccount: '',
+        payAccount: '',
+        reviceAccount: '',
+        priceRemark: '',
+        carType: '',
+        transportTypeId: '',
+        transportNum: '',
+        transportUnit: '',
+        locationEnd: '',
+        latEnd: '',
+        lgtEnd: '',
+        wayInfo: '',
+        code: '',
+        status: '',
+        acceptTime: '',
+        acceptMemberId: '',
+        acceptType: '',
+        workStartTime: '',
+        finishTime: '',
+        platformRata: '',
+        wxExternalNo: '',
+        commentStatus: '',
+        commentInfo: '',
+        commentLevel: '',
+        commentTime: '',
+        commentType: '',
+        cancelTime: '',
+        isUpdate: '',
+        blackRecive: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/orders',
+      'field.id': 'id'
+    })
+  }
+}
+</script>
diff --git a/admin/src/components/business/OperaReceiveWeightWindow.vue b/admin/src/components/business/OperaReceiveWeightWindow.vue
new file mode 100644
index 0000000..8a87eb0
--- /dev/null
+++ b/admin/src/components/business/OperaReceiveWeightWindow.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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" 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="createUser">
+        <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      </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="receiveMax">
+        <el-input v-model="form.receiveMax" placeholder="璇疯緭鍏ユ渶澶ф帴鍗曢噺" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏈�灏忔帴鍗曢噺" prop="receiveMin">
+        <el-input v-model="form.receiveMin" placeholder="璇疯緭鍏ユ渶灏忔帴鍗曢噺" v-trim/>
+      </el-form-item>
+      <el-form-item label="浼樺厛绾�" prop="level">
+        <el-input v-model="form.level" placeholder="璇疯緭鍏ヤ紭鍏堢骇" v-trim/>
+      </el-form-item>
+      <el-form-item label="璁㈠崟鏌ョ湅寤惰繜鏃堕棿" prop="delayTime">
+        <el-input v-model="form.delayTime" 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: 'OperaReceiveWeightWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        deleted: '',
+        status: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        receiveMax: '',
+        receiveMin: '',
+        level: '',
+        delayTime: '',
+        sortnum: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/receiveWeight',
+      'field.id': 'id'
+    })
+  }
+}
+</script>
diff --git a/admin/src/components/business/OperaWithdrawalOrdersWindow.vue b/admin/src/components/business/OperaWithdrawalOrdersWindow.vue
new file mode 100644
index 0000000..8a815a6
--- /dev/null
+++ b/admin/src/components/business/OperaWithdrawalOrdersWindow.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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      </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="memberId">
+        <el-input v-model="form.memberId" placeholder="璇疯緭鍏ヤ細鍛樹富閿�" v-trim/>
+      </el-form-item>
+      <el-form-item label="鎻愮幇閲戦(鍗曚綅:鍒�)" prop="amount">
+        <el-input v-model="form.amount" placeholder="璇疯緭鍏ユ彁鐜伴噾棰�(鍗曚綅:鍒�)" v-trim/>
+      </el-form-item>
+      <el-form-item label="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�" prop="wxExternalNo">
+        <el-input v-model="form.wxExternalNo" 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="doneTime">
+        <el-date-picker v-model="form.doneTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ彁鐜板畬鎴愭椂闂�"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="瀹屾垚澶囨敞" prop="doneInfo">
+        <el-input v-model="form.doneInfo" 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: 'OperaWithdrawalOrdersWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        memberId: '',
+        amount: '',
+        wxExternalNo: '',
+        status: '',
+        doneTime: '',
+        doneInfo: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/withdrawalOrders',
+      'field.id': 'id'
+    })
+  }
+}
+</script>
diff --git a/admin/src/views/business/bottom.vue b/admin/src/views/business/bottom.vue
deleted file mode 100644
index f2bee33..0000000
--- a/admin/src/views/business/bottom.vue
+++ /dev/null
@@ -1,246 +0,0 @@
-<template>
-  <div class="box" style="max-height:calc(100% - 60px);margin-bottom:50px;overflow-y: auto" >
-    <el-form :model="form" ref="form" label-width="140px">
-      <div style="margin: 0px 0 50px 0">
-        <span style="font-size: 15px; font-weight: bold">銆�1銆戠綉绔欓厤缃細</span>
-      </div>
-      <el-form-item label="鍏徃鍦板潃:" prop="address">
-        <el-input
-            style="width: 50%"
-            type="textarea"
-            v-model="form.address"
-            placeholder="璇疯緭鍏ュ叕鍙稿湴鍧�"
-            v-trim
-        />
-      </el-form-item>
-      <el-form-item label="鍥哄畾鐢佃瘽:" prop="linkPhone">
-        <el-input
-            style="width: 50%"
-            type="textarea"
-            v-model="form.linkPhone"
-            placeholder="璇疯緭鍏ュ浐瀹氱數璇�"
-            v-trim
-        />
-      </el-form-item>
-      <el-form-item label="鑱旂郴鎵嬫満鍙�:" prop="linkMobile">
-        <el-input
-            style="width: 50%"
-            type="textarea"
-            v-model="form.linkMobile"
-            placeholder="璇疯緭鍏ュ浐瀹氱數璇�"
-            v-trim
-        />
-      </el-form-item>
-      <el-form-item label="鏈嶅姟鏃堕棿:" prop="serverTime">
-        <el-input
-            style="width: 50%"
-            type="textarea"
-            v-model="form.serverTime"
-            placeholder="璇疯緭鍏ユ湇鍔℃椂闂�"
-            v-trim
-        />
-      </el-form-item>
-      <el-form-item label="澶囨鍙�:" prop="footWords">
-        <el-input
-            style="width: 50%"
-            type="textarea"
-            v-model="form.footWords"
-            placeholder="璇疯緭鍏ュ妗堝彿"
-            v-trim
-        />
-      </el-form-item>
-      <el-form-item label="浜岀淮鐮�" prop="faceImgFull">
-        <div class="upload_wrap">
-
-          <UploadAvatarImage :file="{ 'imgurlfull': form.footFullImgUrl, 'imgurl': form.footImgUrl }" :uploadData="uploadData"
-                         @uploadSuccess="uploadAvatarSuccess"   />
-        </div>
-      </el-form-item>
-      <div style="margin:20px 0 50px 0">
-        <span style="font-size: 15px; font-weight: bold">銆�2銆戣В鍐虫柟妗堬細</span>
-      </div>
-      <div  v-for="(item,index) in form.solveScheme" :key="'瑙e喅鏂规'+index" style="display: flex;width: 100%">
-          <div style="flex: 1">
-            <el-form-item label="鏍囬:"  :required="true">
-             <el-input style="width: 100%"
-              type="text"
-              v-model="item.name"
-              placeholder="璇疯緭鍏ユ爣棰�"
-              v-trim
-          />
-          </el-form-item>
-          </div>
-          <div style="display: block;flex: 3">
-            <el-form-item label="璺宠浆鍦板潃:"    style="display:inline-block;  width: 80%" >
-              <el-input
-                  style="width: 100%"
-                  type="text"
-                  v-model="item.address"
-                  placeholder="璇疯緭鍏ヨ烦杞湴鍧�"
-                  v-trim
-              />
-            </el-form-item>
-            <el-form-item label-width="30px" style="display:inline-block;"  >
-              <el-button type="danger" v-if="form.solveScheme && form.solveScheme.length >1" icon="el-icon-delete" @click="del1(index)">鍒犻櫎</el-button>
-            </el-form-item>
-          </div>
-        </div>
-        <el-form-item style="display: block">
-          <el-button type="primary"   icon="el-icon-plus" @click="add1">娣诲姞瑙e喅鏂规</el-button>
-        </el-form-item>
-      <div style="margin: 100px 0 50px 0">
-        <span style="font-size: 15px; font-weight: bold;">銆�3銆戞櫤鎱х郴缁燂細</span>
-      </div>
-      <div  v-for="(item1,index) in form.wisdomSystem" :key="'鏅烘収绯荤粺'+index" style="display: flex">
-        <div style="flex: 1;">
-          <el-form-item label="鏍囬:"  :required="true"   >
-            <el-input
-                style="width: 100%"
-                type="text"
-                v-model="item1.name"
-                placeholder="璇疯緭鍏ユ爣棰�"
-                v-trim
-            />
-          </el-form-item>
-        </div>
-        <div style="display: block;flex: 3">
-          <el-form-item label="璺宠浆鍦板潃:" style="display:inline-block;  width: 80%">
-            <el-input
-                style="width: 100%"
-                type="text"
-                v-model="item1.address"
-                placeholder="璇疯緭鍏ヨ烦杞湴鍧�"
-                v-trim
-            />
-          </el-form-item>
-          <el-form-item label-width="30px" style="display:inline-block;">
-            <el-button type="danger" v-if="form.wisdomSystem && form.wisdomSystem.length >1"  icon="el-icon-delete" @click="del2(index)">鍒犻櫎</el-button>
-          </el-form-item>
-        </div>
-        <div>
-        </div>
-      </div>
-      <el-form-item style="display: block">
-        <el-button type="primary"   icon="el-icon-plus" @click="add2">娣诲姞鎸囨尌绯荤粺</el-button>
-      </el-form-item>
-        <el-form-item style="margin-top: 100px;width: 100%;text-align: center">
-          <el-button type="primary" style="width: 300px"  :loading="working" @click="submit">淇濆瓨閰嶇疆椤�</el-button>
-        </el-form-item>
-      </el-form>
-  </div>
-</template>
-
-<script>
-import { getFoodDataVO, updFoodData } from '@/api/business/carousel'
-import UploadAvatarImage from '@/components/common/UploadAvatarImage'
-export default {
-  name: '',
-  components: {UploadAvatarImage  },
-  data () {
-    return {
-      uploadData: {
-        folder: ''
-      },
-      isUploading: false,
-      working: false,
-      form: {
-        address: null,
-        footImgUrl: 0,
-        footFullImgUrl: 0,
-        footWords: 0,
-        linkMobile: 0,
-        linkPhone: 0,
-        serverTime: '',
-        solveScheme: [{ name: '', address: '' }],
-        wisdomSystem: [{ name: '', address: '' }]
-      }
-    }
-  },
-
-  created () {
-    this.getData()
-  },
-
-  methods: {
-    del1 (index) {
-      if (this.form.solveScheme.length == 1) {
-        return
-      }
-      this.form.solveScheme.splice(index)
-    },
-    add1 () {
-      this.form.solveScheme.push({ name: '', address: '' })
-    },
-    del2 (index) {
-      if (this.form.wisdomSystem.length == 1) {
-        return
-      }
-      this.form.wisdomSystem.splice(index)
-    },
-    add2 () {
-      this.form.wisdomSystem.push({ name: '', address: '' })
-    },
-    getData () {
-      getFoodDataVO({})
-        .then(res => {
-          if (res) {
-            this.form.address = res.address
-            this.form.footImgUrl = res.footImgUrl
-            this.form.footFullImgUrl = res.footFullImgUrl
-            this.form.footWords = res.footWords
-            this.form.linkMobile = res.linkMobile
-            this.form.linkPhone = res.linkPhone
-            this.form.serverTime = res.serverTime
-            this.form.solveScheme = res.solveScheme || [{ name: '', address: '' }]
-            this.form.wisdomSystem = res.wisdomSystem || [{ name: '', address: '' }]
-          }
-        })
-    },
-
-    // 涓婁紶鍥剧墖
-    uploadAvatarSuccess(file) {
-      this.form.footImgUrl = file.imgurl
-      this.form.footFullImgUrl = file.imgurlfull
-    },
-    submit () {
-      console.log(this.form)
-      this.$refs.form.validate((valid) => {
-        if (!valid) {
-          return
-        }
-        // 璋冪敤鏂板缓鎺ュ彛
-        this.isWorking = true
-        updFoodData(this.form).then(res => {
-          this.$message.success('淇濆瓨鎴愬姛')
-          this.getData()
-        })
-          .catch(e => {
-            this.$tip.apiFailed(e)
-          })
-          .finally(() => {
-            this.isWorking = false
-          })
-      })
-    }
-  }
-}
-</script>
-<style lang="scss" scoped>
-.el-container /deep/  .el-main{
-  width: 100%;
-  overflow-y: auto  !important ;
-  height: calc(100% - 94px);
-}
-/deep/ .el-main{
-  width: 100%;
-  //height: 100%;
-  overflow-y: auto  !important ;
-  height: calc(100% - 94px);
-}
-.box {
-  width: 100%;
-  padding: 30px;
-  box-sizing: border-box;
-  background: #ffffff;
-}
-</style>
diff --git a/admin/src/views/business/carousel.vue b/admin/src/views/business/carousel.vue
deleted file mode 100644
index 6318f9b..0000000
--- a/admin/src/views/business/carousel.vue
+++ /dev/null
@@ -1,178 +0,0 @@
-<template>
-  <TableLayout :permissions="['business:carousel:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鏍囬" prop="title">
-        <el-input v-model="searchForm.title" clearable placeholder="璇疯緭鍏ユ爣棰�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-select v-model="searchForm.status" clearable @change="search" placeholder="鐘舵��">
-          <el-option label="姝e父" value="0"></el-option>
-          <el-option label="绂佺敤" value="1"></el-option>
-        </el-select>
-      </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:carousel:create', 'business:carousel:delete']">
-        <li><el-button type="primary" @click="$refs.operaCarouselWindow.open('鏂板缓杞挱鍥�')" icon="el-icon-plus" v-permissions="['business:carousel:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:carousel:delete']">鍒犻櫎</el-button></li>
-      </ul>
-      <el-table
-          :height="tableHeightNew"
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        stripe
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="title" label="鏍囬" min-width="150px"></el-table-column>
-        <el-table-column prop="thumbnailImgurl" label="缂╃暐鍥�" min-width="100px">
-          <template slot-scope="{row}">
-            <el-image v-if="row.fullThumbnailImgurl" style="width: 60px; height: 60px" :src="row.fullThumbnailImgurl"
-                      :preview-src-list="[row.fullThumbnailImgurl]">
-            </el-image>
-          </template>
-        </el-table-column>
-        <el-table-column prop="imgurl" label="楂樻竻鍥�" min-width="100px">
-          <template slot-scope="{row}">
-            <el-image v-if="row.fullImgurl" style="width: 60px; height: 60px" :src="row.fullImgurl"
-                      :preview-src-list="[row.fullImgurl]">
-            </el-image>
-          </template>
-        </el-table-column>
-        <el-table-column prop="detail" label="姒傝堪" min-width="200px"></el-table-column>
-        <el-table-column prop="jumpType" label="璺宠浆绫诲瀷" align="center" min-width="150px">
-          <template slot-scope="{row}">
-              <span v-if="row.jumpType == 0 && row.content!=null && row.content!=''"><a :href="row.content" target="_blank">鐐瑰嚮璺宠浆</a></span>
-              <span v-else-if="row.jumpType == 1 && row.content!=null && row.content!=''"><el-button @click="showContentDo(row)" >鏌ョ湅鍐呭</el-button></span>
-              <span v-else>-</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="status" label="鐘舵��" min-width="100px">
-          <template slot-scope="{row}">
-            <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
-                       inactive-color="#ff4949" :active-value="0" :inactive-value="1">
-            </el-switch>
-          </template>
-        </el-table-column>
-        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
-        <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="80px"></el-table-column>
-        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
-        <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="150px"></el-table-column>
-        <el-table-column
-          v-if="containPermissions(['business:carousel:update', 'business:carousel:delete'])"
-          label="鎿嶄綔"
-          min-width="120"
-          fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaCarouselWindow.open('缂栬緫杞挱鍥�', row)" icon="el-icon-edit" v-permissions="['business:carousel:update']">缂栬緫</el-button>
-            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:carousel:delete']">鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      >
-      </pagination>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaCarouselWindow ref="operaCarouselWindow" @success="handlePageChange"/>
-
-    <el-dialog
-        class="center-title"
-        :title="showTitle||'鏄剧ず鍐呭'"
-        width="70%"
-        height="70%"
-        text="鍐呭"
-        :visible.sync="visible1"
-        append-to-body
-    >
-      <div class="agree-list"  v-html="showContent">
-      </div>
-      <template  v-slot:footer>
-        <el-button @click="visible1=false">杩斿洖</el-button>
-      </template>
-    </el-dialog>
-  </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCarouselWindow from '@/components/business/OperaCarouselWindow'
-export default {
-  name: 'Carousel',
-  extends: BaseTable,
-  components: { TableLayout, Pagination, OperaCarouselWindow },
-  data () {
-    return {
-      // 鎼滅储
-      visible1: false,
-      showContent: '',
-      showTitle: '',
-      searchForm: {
-        title: '',
-        status: null
-      }
-    }
-  },
-  created () {
-    this.config({
-      module: '杞挱鍥�',
-      api: '/business/carousel',
-      'field.id': 'id',
-      'field.main': 'id'
-    })
-    this.search()
-  },
-  methods: {
-    showContentDo(row){
-      this.showTitle=row.showTitle
-      this.showContent=row.content
-      this.visible1=true
-    },
-    changeStatus (e, row) {
-      this.canvisiting = true
-      this.api.updateStatus({ id: row.id, status: e })
-        .then(res => {
-          this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
-          this.search()
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.canvisiting = false
-        })
-        .catch(() => { })
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.agree-list{
-  height: 550px;
-  //max-height: 50%;
-  overflow: auto;
-}
-
-/deep/ .window__body {
-  .table-content {
-    padding: 0;
-    .table-wrap {
-      padding-top: 0;
-    }
-  }
-
-}
-</style>
diff --git a/admin/src/views/business/category.vue b/admin/src/views/business/category.vue
new file mode 100644
index 0000000..3dd7cbc
--- /dev/null
+++ b/admin/src/views/business/category.vue
@@ -0,0 +1,138 @@
+<template>
+  <TableLayout :permissions="['business:category: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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @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="createUser">
+        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+      </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="name">
+        <el-input v-model="searchForm.name" 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="detail">
+        <el-input v-model="searchForm.detail" placeholder="璇疯緭鍏ュ唴瀹癸紙杞﹁締瑙勬牸銆侀鏍囥�佹墜缁垂姣斾緥锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍥炬爣锛堣溅杈嗙被鍨嬩娇鐢級" prop="icon">
+        <el-input v-model="searchForm.icon" placeholder="璇疯緭鍏ュ浘鏍囷紙杞﹁締绫诲瀷浣跨敤锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏄惁鍥哄畾杞﹁締锛堣溅杈嗙被鍨嬩娇鐢級:0=鍚︼紱1=鏄紱" prop="isFixed">
+        <el-input v-model="searchForm.isFixed" 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:category:create', 'business:category:delete']">
+        <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('鏂板缓鍒嗙被淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:category:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">鍒犻櫎</el-button></li>
+      </ul>
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
+        <el-table-column prop="status" label="鐘舵��:0=鍚敤锛�1=绂佺敤锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column prop="name" 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="detail" label="鍐呭锛堣溅杈嗚鏍笺�侀鏍囥�佹墜缁垂姣斾緥锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="icon" label="鍥炬爣锛堣溅杈嗙被鍨嬩娇鐢級" min-width="100px"></el-table-column>
+        <el-table-column prop="isFixed" label="鏄惁鍥哄畾杞﹁締锛堣溅杈嗙被鍨嬩娇鐢級:0=鍚︼紱1=鏄紱" min-width="100px"></el-table-column>
+        <el-table-column
+          v-if="containPermissions(['business:category:update', 'business:category:delete'])"
+          label="鎿嶄綔"
+          min-width="120"
+          fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaCategoryWindow.open('缂栬緫鍒嗙被淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:category:update']">缂栬緫</el-button>
+            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaCategoryWindow ref="operaCategoryWindow" @success="handlePageChange"/>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaCategoryWindow from '@/components/business/OperaCategoryWindow'
+export default {
+  name: 'Category',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaCategoryWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        id: '',
+        deleted: '',
+        status: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        name: '',
+        type: '',
+        detail: '',
+        icon: '',
+        isFixed: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '鍒嗙被淇℃伅琛�',
+      api: '/business/category',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/admin/src/views/business/identityInfo.vue b/admin/src/views/business/identityInfo.vue
new file mode 100644
index 0000000..a63a6bc
--- /dev/null
+++ b/admin/src/views/business/identityInfo.vue
@@ -0,0 +1,203 @@
+<template>
+  <TableLayout :permissions="['business:identityinfo: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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+      </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="绫诲瀷: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="memberId">
+        <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ヤ細鍛橀�愭笎" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璁よ瘉绫诲瀷:0=涓汉锛�1=浼佷笟" prop="authType">
+        <el-input v-model="searchForm.authType" placeholder="璇疯緭鍏ヨ璇佺被鍨�:0=涓汉锛�1=浼佷笟" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鑱旂郴浜�" prop="linkName">
+        <el-input v-model="searchForm.linkName" placeholder="璇疯緭鍏ヨ仈绯讳汉" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鑱旂郴鏂瑰紡" prop="telephone">
+        <el-input v-model="searchForm.telephone" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟浣嶇疆" prop="location">
+        <el-input v-model="searchForm.location" placeholder="璇疯緭鍏ユ帴鍗曚綅缃�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍗曚綅鍚嶇О" prop="companyName">
+        <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="绾害" prop="lat">
+        <el-input v-model="searchForm.lat" placeholder="璇疯緭鍏ョ含搴�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="缁忓害" prop="lgt">
+        <el-input v-model="searchForm.lgt" placeholder="璇疯緭鍏ョ粡搴�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="韬唤璇佷汉鍍忛潰" prop="identityFront">
+        <el-input v-model="searchForm.identityFront" placeholder="璇疯緭鍏ヨ韩浠借瘉浜哄儚闈�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="韬唤璇佸浗寰介潰" prop="identityBack">
+        <el-input v-model="searchForm.identityBack" placeholder="璇疯緭鍏ヨ韩浠借瘉鍥藉窘闈�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="钀ヤ笟鎵х収锛堜紒涓氱被浣跨敤锛�" prop="businessLicense">
+        <el-input v-model="searchForm.businessLicense" placeholder="璇疯緭鍏ヨ惀涓氭墽鐓э紙浼佷笟绫讳娇鐢級" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍏朵粬璁よ瘉璧勬枡锛堜紒涓氱被浣跨敤锛�" prop="otherFile">
+        <el-input v-model="searchForm.otherFile" placeholder="璇疯緭鍏ュ叾浠栬璇佽祫鏂欙紙浼佷笟绫讳娇鐢級" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="閬撹矾杩愯緭缁忛獙璁稿彲璇侊紙浼佷笟绫昏揣杩愯韩浠戒娇鐢級" prop="transportFile">
+        <el-input v-model="searchForm.transportFile" placeholder="璇疯緭鍏ラ亾璺繍杈撶粡楠岃鍙瘉锛堜紒涓氱被璐ц繍韬唤浣跨敤锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="椋熷搧缁忚惀璁稿彲璇侊紙浼佷笟绫讳緵椁愯韩浠戒娇鐢級" prop="foodBusinessFile">
+        <el-input v-model="searchForm.foodBusinessFile" placeholder="璇疯緭鍏ラ鍝佺粡钀ヨ鍙瘉锛堜紒涓氱被渚涢韬唤浣跨敤锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="浠庝笟浜哄憳鍋ュ悍璇�" prop="healthFile">
+        <el-input v-model="searchForm.healthFile" placeholder="璇疯緭鍏ヤ粠涓氫汉鍛樺仴搴疯瘉" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璁よ瘉瀹℃壒鐘舵��:1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="auditStatus">
+        <el-input v-model="searchForm.auditStatus" placeholder="璇疯緭鍏ヨ璇佸鎵圭姸鎬�:1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璁よ瘉瀹℃壒鏃堕棿" prop="auditTime">
+        <el-date-picker v-model="searchForm.auditTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヨ璇佸鎵规椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="璁よ瘉瀹℃壒澶囨敞" prop="auditRemark">
+        <el-input v-model="searchForm.auditRemark" 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:identityinfo:create', 'business:identityinfo:delete']">
+        <li><el-button type="primary" @click="$refs.operaIdentityInfoWindow.open('鏂板缓浼氬憳韬唤璁よ瘉淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:identityinfo:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:identityinfo:delete']">鍒犻櫎</el-button></li>
+      </ul>
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
+        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="remark" 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="memberId" label="浼氬憳閫愭笎" min-width="100px"></el-table-column>
+        <el-table-column prop="authType" label="璁よ瘉绫诲瀷:0=涓汉锛�1=浼佷笟" min-width="100px"></el-table-column>
+        <el-table-column prop="linkName" label="鑱旂郴浜�" min-width="100px"></el-table-column>
+        <el-table-column prop="telephone" label="鑱旂郴鏂瑰紡" min-width="100px"></el-table-column>
+        <el-table-column prop="location" label="鎺ュ崟浣嶇疆" min-width="100px"></el-table-column>
+        <el-table-column prop="companyName" label="鍗曚綅鍚嶇О" min-width="100px"></el-table-column>
+        <el-table-column prop="lat" label="绾害" min-width="100px"></el-table-column>
+        <el-table-column prop="lgt" label="缁忓害" min-width="100px"></el-table-column>
+        <el-table-column prop="identityFront" label="韬唤璇佷汉鍍忛潰" min-width="100px"></el-table-column>
+        <el-table-column prop="identityBack" label="韬唤璇佸浗寰介潰" min-width="100px"></el-table-column>
+        <el-table-column prop="businessLicense" label="钀ヤ笟鎵х収锛堜紒涓氱被浣跨敤锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="otherFile" label="鍏朵粬璁よ瘉璧勬枡锛堜紒涓氱被浣跨敤锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="transportFile" label="閬撹矾杩愯緭缁忛獙璁稿彲璇侊紙浼佷笟绫昏揣杩愯韩浠戒娇鐢級" min-width="100px"></el-table-column>
+        <el-table-column prop="foodBusinessFile" label="椋熷搧缁忚惀璁稿彲璇侊紙浼佷笟绫讳緵椁愯韩浠戒娇鐢級" min-width="100px"></el-table-column>
+        <el-table-column prop="healthFile" label="浠庝笟浜哄憳鍋ュ悍璇�" min-width="100px"></el-table-column>
+        <el-table-column prop="auditStatus" label="璁よ瘉瀹℃壒鐘舵��:1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="auditTime" label="璁よ瘉瀹℃壒鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="auditRemark" label="璁よ瘉瀹℃壒澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column
+          v-if="containPermissions(['business:identityinfo:update', 'business:identityinfo:delete'])"
+          label="鎿嶄綔"
+          min-width="120"
+          fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaIdentityInfoWindow.open('缂栬緫浼氬憳韬唤璁よ瘉淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:identityinfo:update']">缂栬緫</el-button>
+            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:identityinfo:delete']">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaIdentityInfoWindow ref="operaIdentityInfoWindow" @success="handlePageChange"/>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaIdentityInfoWindow from '@/components/business/OperaIdentityInfoWindow'
+export default {
+  name: 'IdentityInfo',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaIdentityInfoWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        id: '',
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        type: '',
+        memberId: '',
+        authType: '',
+        linkName: '',
+        telephone: '',
+        location: '',
+        companyName: '',
+        lat: '',
+        lgt: '',
+        identityFront: '',
+        identityBack: '',
+        businessLicense: '',
+        otherFile: '',
+        transportFile: '',
+        foodBusinessFile: '',
+        healthFile: '',
+        auditStatus: '',
+        auditTime: '',
+        auditRemark: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '浼氬憳韬唤璁よ瘉淇℃伅琛�',
+      api: '/business/identityInfo',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/admin/src/views/business/information.vue b/admin/src/views/business/information.vue
deleted file mode 100644
index a3c12d3..0000000
--- a/admin/src/views/business/information.vue
+++ /dev/null
@@ -1,171 +0,0 @@
-<template>
-  <TableLayout :permissions="['business:information:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鏍囬" prop="title">
-        <el-input v-model="searchForm.title" clearable placeholder="璇疯緭鍏ユ爣棰�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-select v-model="searchForm.status" clearable @change="search" placeholder="鐘舵��">
-          <el-option label="姝e父" value="0"></el-option>
-          <el-option label="绂佺敤" value="1"></el-option>
-        </el-select>
-      </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:information:create', 'business:information:delete']">
-        <li><el-button type="primary" @click="$refs.operaInformationWindow.open('鏂板缓鍔ㄦ�佽祫璁�')" icon="el-icon-plus" v-permissions="['business:information:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:information:delete']">鍒犻櫎</el-button></li>
-      </ul>
-      <el-table
-          :height="tableHeightNew"
-          v-loading="isWorking.search"
-          :data="tableData.list"
-          stripe
-          @selection-change="handleSelectionChange"
-      >
-        <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="title" label="鏍囬" min-width="150px"></el-table-column>
-        <el-table-column prop="releaseDate" label="鍙戝竷鏃堕棿" min-width="150px"></el-table-column>
-        <el-table-column prop="imgurl" label="鍒楄〃鍥�" min-width="100px">
-          <template slot-scope="{row}">
-            <el-image v-if="row.fullImgurl" style="width: 60px; height: 60px" :src="row.fullImgurl"
-                      :preview-src-list="[row.fullImgurl]">
-            </el-image>
-          </template>
-        </el-table-column>
-        <el-table-column prop="detail" label="绠�浠�" min-width="200px"></el-table-column>
-        <el-table-column prop="jumpType" label="鍐呭" align="center" min-width="150px">
-          <template slot-scope="{row}">
-            <span v-if=  "row.content!=null && row.content!=''"><el-button @click="showContentDo(row)" >鏌ョ湅鍐呭</el-button></span>
-            <span v-else>-</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="status" label="鐘舵��" min-width="100px">
-          <template slot-scope="{row}">
-            <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
-                       inactive-color="#ff4949" :active-value="0" :inactive-value="1">
-            </el-switch>
-          </template>
-        </el-table-column>
-        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
-        <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="80px"></el-table-column>
-        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
-        <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="150px"></el-table-column>
-        <el-table-column
-            v-if="containPermissions(['business:information:update', 'business:information:delete'])"
-            label="鎿嶄綔"
-            min-width="120"
-            fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaInformationWindow.open('缂栬緫鍔ㄦ�佽祫璁�', row)" icon="el-icon-edit" v-permissions="['business:information:update']">缂栬緫</el-button>
-            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:information:delete']">鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-          @size-change="handleSizeChange"
-          @current-change="handlePageChange"
-          :pagination="tableData.pagination"
-      >
-      </pagination>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaInformationWindow ref="operaInformationWindow" @success="handlePageChange"/>
-
-    <el-dialog
-        class="center-title"
-        :title="showTitle||'鏄剧ず鍐呭'"
-        width="70%"
-        height="70%"
-        text="鍐呭"
-        :visible.sync="visible1"
-        append-to-body
-    >
-      <div class="agree-list"  v-html="showContent">
-      </div>
-      <template  v-slot:footer>
-        <el-button @click="visible1=false">杩斿洖</el-button>
-      </template>
-    </el-dialog>
-  </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaInformationWindow from '@/components/business/OperaInformationWindow'
-export default {
-  name: 'Information',
-  extends: BaseTable,
-  components: { TableLayout, Pagination, OperaInformationWindow },
-  data () {
-    return {
-      // 鎼滅储
-      visible1: false,
-      showContent: '',
-      showTitle: '',
-      searchForm: {
-        title: '',
-        status: null
-      }
-    }
-  },
-  created () {
-    this.config({
-      module: '鍔ㄦ�佸挩璇�',
-      api: '/business/information',
-      'field.id': 'id',
-      'field.main': 'id'
-    })
-    this.search()
-  },
-  methods: {
-    showContentDo (row) {
-      this.showTitle = row.showTitle
-      this.showContent = row.content
-      this.visible1 = true
-    },
-    changeStatus (e, row) {
-      this.canvisiting = true
-      this.api.updateStatus({ id: row.id, status: e })
-        .then(res => {
-          this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
-          this.search()
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.canvisiting = false
-        })
-        .catch(() => { })
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.agree-list{
-  height: 550px;
-  //max-height: 50%;
-  overflow: auto;
-}
-
-/deep/ .window__body {
-  .table-content {
-    padding: 0;
-    .table-wrap {
-      padding-top: 0;
-    }
-  }
-
-}
-</style>
diff --git a/admin/src/views/business/member.vue b/admin/src/views/business/member.vue
new file mode 100644
index 0000000..1de7a6d
--- /dev/null
+++ b/admin/src/views/business/member.vue
@@ -0,0 +1,223 @@
+<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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+      </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="coverImage">
+        <el-input v-model="searchForm.coverImage" placeholder="璇疯緭鍏ュご鍍�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="openid" prop="openid">
+        <el-input v-model="searchForm.openid" placeholder="璇疯緭鍏penid" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏄电О" prop="nickName">
+        <el-input v-model="searchForm.nickName" placeholder="璇疯緭鍏ユ樀绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鑱旂郴鐢佃瘽" prop="telephone">
+        <el-input v-model="searchForm.telephone" 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="鐢ㄥ伐韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="workerIdentity">
+        <el-input v-model="searchForm.workerIdentity" placeholder="璇疯緭鍏ョ敤宸ヨ韩浠�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璐ц繍韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="driverIdentity">
+        <el-input v-model="searchForm.driverIdentity" placeholder="璇疯緭鍏ヨ揣杩愯韩浠�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="渚涢寰堢矇:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="chefIdentity">
+        <el-input v-model="searchForm.chefIdentity" placeholder="璇疯緭鍏ヤ緵椁愬緢绮�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="褰撳墠浣欓(鍗曚綅:鍒�)" prop="amount">
+        <el-input v-model="searchForm.amount" placeholder="璇疯緭鍏ュ綋鍓嶄綑棰�(鍗曚綅:鍒�)" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍘嗗彶鎬婚噾棰�(鍗曚綅:鍒�)" prop="totalAmount">
+        <el-input v-model="searchForm.totalAmount" placeholder="璇疯緭鍏ュ巻鍙叉�婚噾棰�(鍗曚綅:鍒�)" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏈�鍚庣櫥褰曟椂闂�" prop="loginTime">
+        <el-date-picker v-model="searchForm.loginTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶鍚庣櫥褰曟椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鎬荤櫥褰曟鏁�" prop="loginTimes">
+        <el-input v-model="searchForm.loginTimes" placeholder="璇疯緭鍏ユ�荤櫥褰曟鏁�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎬绘帴鍗曢噺" prop="reciveNum">
+        <el-input v-model="searchForm.reciveNum" placeholder="璇疯緭鍏ユ�绘帴鍗曢噺" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎬诲彂鍗曢噺" prop="publishNum">
+        <el-input v-model="searchForm.publishNum" placeholder="璇疯緭鍏ユ�诲彂鍗曢噺" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璇勫垎" prop="score">
+        <el-input v-model="searchForm.score" placeholder="璇疯緭鍏ヨ瘎鍒�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="瀹氫綅鍦板潃" prop="localtion">
+        <el-input v-model="searchForm.localtion" placeholder="璇疯緭鍏ュ畾浣嶅湴鍧�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="绾害" prop="lat">
+        <el-input v-model="searchForm.lat" placeholder="璇疯緭鍏ョ含搴�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="缁忓害" prop="lgt">
+        <el-input v-model="searchForm.lgt" placeholder="璇疯緭鍏ョ粡搴�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鐪佷唤" prop="province">
+        <el-input v-model="searchForm.province" placeholder="璇疯緭鍏ョ渷浠�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍩庡競" prop="city">
+        <el-input v-model="searchForm.city" placeholder="璇疯緭鍏ュ煄甯�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍖哄幙" prop="area">
+        <el-input v-model="searchForm.area" placeholder="璇疯緭鍏ュ尯鍘�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏄惁鎺ュ彈鑷姩娲惧崟:0=鍚︼紱1=鏄紱" prop="autoReciveStatus">
+        <el-input v-model="searchForm.autoReciveStatus" 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:member:create', 'business:member:delete']">
+        <li><el-button type="primary" @click="$refs.operaMemberWindow.open('鏂板缓浼氬憳淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button></li>
+      </ul>
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
+        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column prop="coverImage" label="澶村儚" min-width="100px"></el-table-column>
+        <el-table-column prop="openid" label="openid" min-width="100px"></el-table-column>
+        <el-table-column prop="nickName" label="鏄电О" min-width="100px"></el-table-column>
+        <el-table-column prop="telephone" label="鑱旂郴鐢佃瘽" min-width="100px"></el-table-column>
+        <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
+        <el-table-column prop="workerIdentity" label="鐢ㄥ伐韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="driverIdentity" label="璐ц繍韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="chefIdentity" label="渚涢寰堢矇:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="amount" label="褰撳墠浣欓(鍗曚綅:鍒�)" min-width="100px"></el-table-column>
+        <el-table-column prop="totalAmount" label="鍘嗗彶鎬婚噾棰�(鍗曚綅:鍒�)" min-width="100px"></el-table-column>
+        <el-table-column prop="status" label="鐘舵��" min-width="100px"></el-table-column>
+        <el-table-column prop="loginTime" label="鏈�鍚庣櫥褰曟椂闂�" min-width="100px"></el-table-column>
+        <el-table-column prop="loginTimes" label="鎬荤櫥褰曟鏁�" min-width="100px"></el-table-column>
+        <el-table-column prop="reciveNum" label="鎬绘帴鍗曢噺" min-width="100px"></el-table-column>
+        <el-table-column prop="publishNum" label="鎬诲彂鍗曢噺" min-width="100px"></el-table-column>
+        <el-table-column prop="score" label="璇勫垎" min-width="100px"></el-table-column>
+        <el-table-column prop="localtion" label="瀹氫綅鍦板潃" min-width="100px"></el-table-column>
+        <el-table-column prop="lat" label="绾害" min-width="100px"></el-table-column>
+        <el-table-column prop="lgt" label="缁忓害" min-width="100px"></el-table-column>
+        <el-table-column prop="province" label="鐪佷唤" min-width="100px"></el-table-column>
+        <el-table-column prop="city" label="鍩庡競" min-width="100px"></el-table-column>
+        <el-table-column prop="area" label="鍖哄幙" min-width="100px"></el-table-column>
+        <el-table-column prop="autoReciveStatus" label="鏄惁鎺ュ彈鑷姩娲惧崟:0=鍚︼紱1=鏄紱" 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: '',
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        coverImage: '',
+        openid: '',
+        nickName: '',
+        telephone: '',
+        name: '',
+        workerIdentity: '',
+        driverIdentity: '',
+        chefIdentity: '',
+        amount: '',
+        totalAmount: '',
+        status: '',
+        loginTime: '',
+        loginTimes: '',
+        reciveNum: '',
+        publishNum: '',
+        score: '',
+        localtion: '',
+        lat: '',
+        lgt: '',
+        province: '',
+        city: '',
+        area: '',
+        autoReciveStatus: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '浼氬憳淇℃伅琛�',
+      api: '/business/member',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/admin/src/views/business/memberRevenue.vue b/admin/src/views/business/memberRevenue.vue
new file mode 100644
index 0000000..4cb3d17
--- /dev/null
+++ b/admin/src/views/business/memberRevenue.vue
@@ -0,0 +1,153 @@
+<template>
+  <TableLayout :permissions="['business:memberrevenue: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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+      </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="memberId">
+        <el-input v-model="searchForm.memberId" 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="鏀舵敮绫诲瀷:1=鏀跺叆锛�-1=鏀嚭锛�" prop="optType">
+        <el-input v-model="searchForm.optType" placeholder="璇疯緭鍏ユ敹鏀被鍨�:1=鏀跺叆锛�-1=鏀嚭锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍙樺姩閲戦" prop="amount">
+        <el-input v-model="searchForm.amount" placeholder="璇疯緭鍏ュ彉鍔ㄩ噾棰�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍙樺姩鍓嶉噾棰�" prop="beforeAmount">
+        <el-input v-model="searchForm.beforeAmount" placeholder="璇疯緭鍏ュ彉鍔ㄥ墠閲戦" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍙樺姩鍚庨噾棰�" prop="afterAmount">
+        <el-input v-model="searchForm.afterAmount" 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=鎻愮幇涓氬姟锛�" prop="objType">
+        <el-input v-model="searchForm.objType" placeholder="璇疯緭鍏ヤ笟鍔$被鍨�:0=璁㈠崟涓氬姟锛�1=鎻愮幇涓氬姟锛�" @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>
+      <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:memberrevenue:create', 'business:memberrevenue:delete']">
+        <li><el-button type="primary" @click="$refs.operaMemberRevenueWindow.open('鏂板缓浼氬憳鏀舵敮璁板綍')" icon="el-icon-plus" v-permissions="['business:memberrevenue:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:memberrevenue:delete']">鍒犻櫎</el-button></li>
+      </ul>
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
+        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column prop="memberId" 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="optType" label="鏀舵敮绫诲瀷:1=鏀跺叆锛�-1=鏀嚭锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="amount" label="鍙樺姩閲戦" min-width="100px"></el-table-column>
+        <el-table-column prop="beforeAmount" label="鍙樺姩鍓嶉噾棰�" min-width="100px"></el-table-column>
+        <el-table-column prop="afterAmount" label="鍙樺姩鍚庨噾棰�" min-width="100px"></el-table-column>
+        <el-table-column prop="objId" 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="status" label="涓氬姟鐘舵��:0=鎴愬姛锛�1=澶辫触锛�2=澶勭悊涓紱" min-width="100px"></el-table-column>
+        <el-table-column
+          v-if="containPermissions(['business:memberrevenue:update', 'business:memberrevenue:delete'])"
+          label="鎿嶄綔"
+          min-width="120"
+          fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaMemberRevenueWindow.open('缂栬緫浼氬憳鏀舵敮璁板綍', row)" icon="el-icon-edit" v-permissions="['business:memberrevenue:update']">缂栬緫</el-button>
+            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:memberrevenue:delete']">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaMemberRevenueWindow ref="operaMemberRevenueWindow" @success="handlePageChange"/>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaMemberRevenueWindow from '@/components/business/OperaMemberRevenueWindow'
+export default {
+  name: 'MemberRevenue',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaMemberRevenueWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        id: '',
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        memberId: '',
+        type: '',
+        optType: '',
+        amount: '',
+        beforeAmount: '',
+        afterAmount: '',
+        objId: '',
+        objType: '',
+        status: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '浼氬憳鏀舵敮璁板綍',
+      api: '/business/memberRevenue',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/admin/src/views/business/orderLog.vue b/admin/src/views/business/orderLog.vue
new file mode 100644
index 0000000..2bff094
--- /dev/null
+++ b/admin/src/views/business/orderLog.vue
@@ -0,0 +1,148 @@
+<template>
+  <TableLayout :permissions="['business:orderlog: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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+      </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="璁㈠崟涓婚敭锛坥rders锛�" prop="orderId">
+        <el-input v-model="searchForm.orderId" placeholder="璇疯緭鍏ヨ鍗曚富閿紙orders锛�" @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="logInfo">
+        <el-input v-model="searchForm.logInfo" placeholder="璇疯緭鍏ユ棩蹇楀唴瀹�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎿嶄綔绫诲瀷" prop="objType">
+        <el-input v-model="searchForm.objType" placeholder="璇疯緭鍏ユ搷浣滅被鍨�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎿嶄綔浜�" prop="memberId">
+        <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ユ搷浣滀汉" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎿嶄綔鍓嶆暟鎹�" prop="beforeInfo">
+        <el-input v-model="searchForm.beforeInfo" placeholder="璇疯緭鍏ユ搷浣滃墠鏁版嵁" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎿嶄綔鍚庢暟鎹�" prop="afterInfo">
+        <el-input v-model="searchForm.afterInfo" placeholder="璇疯緭鍏ユ搷浣滃悗鏁版嵁" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璁㈠崟鐘舵��:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" prop="orderStatus">
+        <el-input v-model="searchForm.orderStatus" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" @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:orderlog:create', 'business:orderlog:delete']">
+        <li><el-button type="primary" @click="$refs.operaOrderLogWindow.open('鏂板缓璁㈠崟鎿嶄綔鏃ュ織')" icon="el-icon-plus" v-permissions="['business:orderlog:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:orderlog:delete']">鍒犻櫎</el-button></li>
+      </ul>
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
+        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column prop="orderId" label="璁㈠崟涓婚敭锛坥rders锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="title" label="鏍囬" min-width="100px"></el-table-column>
+        <el-table-column prop="logInfo" label="鏃ュ織鍐呭" min-width="100px"></el-table-column>
+        <el-table-column prop="objType" label="鎿嶄綔绫诲瀷" min-width="100px"></el-table-column>
+        <el-table-column prop="memberId" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
+        <el-table-column prop="beforeInfo" label="鎿嶄綔鍓嶆暟鎹�" min-width="100px"></el-table-column>
+        <el-table-column prop="afterInfo" label="鎿嶄綔鍚庢暟鎹�" min-width="100px"></el-table-column>
+        <el-table-column prop="orderStatus" label="璁㈠崟鐘舵��:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" min-width="100px"></el-table-column>
+        <el-table-column
+          v-if="containPermissions(['business:orderlog:update', 'business:orderlog:delete'])"
+          label="鎿嶄綔"
+          min-width="120"
+          fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaOrderLogWindow.open('缂栬緫璁㈠崟鎿嶄綔鏃ュ織', row)" icon="el-icon-edit" v-permissions="['business:orderlog:update']">缂栬緫</el-button>
+            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:orderlog:delete']">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaOrderLogWindow ref="operaOrderLogWindow" @success="handlePageChange"/>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaOrderLogWindow from '@/components/business/OperaOrderLogWindow'
+export default {
+  name: 'OrderLog',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaOrderLogWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        id: '',
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        orderId: '',
+        title: '',
+        logInfo: '',
+        objType: '',
+        memberId: '',
+        beforeInfo: '',
+        afterInfo: '',
+        orderStatus: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '璁㈠崟鎿嶄綔鏃ュ織',
+      api: '/business/orderLog',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/admin/src/views/business/orders.vue b/admin/src/views/business/orders.vue
new file mode 100644
index 0000000..76589a1
--- /dev/null
+++ b/admin/src/views/business/orders.vue
@@ -0,0 +1,338 @@
+<template>
+  <TableLayout :permissions="['business:orders: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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+      </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="releaseMemberId">
+        <el-input v-model="searchForm.releaseMemberId" 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="寮�濮嬫椂闂� yyyy-MM-dd" prop="startDate">
+        <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫椂闂� yyyy-MM-dd" @change="search"/>
+      </el-form-item>
+      <el-form-item label="缁撴潫鏃堕棿 yyyy-MM-dd" prop="endDate">
+        <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸椂闂� yyyy-MM-dd" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鍦扮偣淇℃伅/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣" prop="location">
+        <el-input v-model="searchForm.location" placeholder="璇疯緭鍏ュ湴鐐逛俊鎭�/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍦扮偣鎻忚堪" prop="locationRemark">
+        <el-input v-model="searchForm.locationRemark" placeholder="璇疯緭鍏ュ湴鐐规弿杩�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="缁忓害" prop="lat">
+        <el-input v-model="searchForm.lat" placeholder="璇疯緭鍏ョ粡搴�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鐪佷唤" prop="province">
+        <el-input v-model="searchForm.province" placeholder="璇疯緭鍏ョ渷浠�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍩庡競" prop="city">
+        <el-input v-model="searchForm.city" placeholder="璇疯緭鍏ュ煄甯�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍖哄幙" prop="area">
+        <el-input v-model="searchForm.area" placeholder="璇疯緭鍏ュ尯鍘�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="绾害" prop="lgt">
+        <el-input v-model="searchForm.lgt" placeholder="璇疯緭鍏ョ含搴�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="闇�姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category" prop="categoryId">
+        <el-input v-model="searchForm.categoryId" placeholder="璇疯緭鍏ラ渶姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鐢ㄥ伐绫诲瀷:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級" prop="workType">
+        <el-input v-model="searchForm.workType" placeholder="璇疯緭鍏ョ敤宸ョ被鍨�:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璁′环鏁伴噺1(澶╂暟/鐢ㄨ溅娆℃暟)" prop="priceNum1">
+        <el-input v-model="searchForm.priceNum1" placeholder="璇疯緭鍏ヨ浠锋暟閲�1(澶╂暟/鐢ㄨ溅娆℃暟)" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璁′环鏁伴噺2(鐢ㄥ伐鏁伴噺/閲囨憳鏁伴噺/鐢ㄨ溅鏁伴噺/)" prop="priceNum2">
+        <el-input v-model="searchForm.priceNum2" placeholder="璇疯緭鍏ヨ浠锋暟閲�2(鐢ㄥ伐鏁伴噺/閲囨憳鏁伴噺/鐢ㄨ溅鏁伴噺/)" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="闇�姹傝ˉ鍏�" prop="supplement">
+        <el-input v-model="searchForm.supplement" placeholder="璇疯緭鍏ラ渶姹傝ˉ鍏�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璐圭敤鏍囧噯" prop="price">
+        <el-input v-model="searchForm.price" placeholder="璇疯緭鍏ヨ垂鐢ㄦ爣鍑�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="棰勪及璐圭敤" prop="estimatedAccount">
+        <el-input v-model="searchForm.estimatedAccount" placeholder="璇疯緭鍏ラ浼拌垂鐢�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="瀹為檯鏀粯璐圭敤" prop="payAccount">
+        <el-input v-model="searchForm.payAccount" placeholder="璇疯緭鍏ュ疄闄呮敮浠樿垂鐢�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="瀹炴敹璐圭敤" prop="reviceAccount">
+        <el-input v-model="searchForm.reviceAccount" placeholder="璇疯緭鍏ュ疄鏀惰垂鐢�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璐圭敤璇存槑" prop="priceRemark">
+        <el-input v-model="searchForm.priceRemark" placeholder="璇疯緭鍏ヨ垂鐢ㄨ鏄�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鐢ㄨ溅绫诲瀷(杩愯揣浣跨敤):0=澶╋紱1=娆�" prop="carType">
+        <el-input v-model="searchForm.carType" placeholder="璇疯緭鍏ョ敤杞︾被鍨�(杩愯揣浣跨敤):0=澶╋紱1=娆�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="杩愯緭鍝佺(杩愯揣浣跨敤) 鍏宠仈category琛�" prop="transportTypeId">
+        <el-input v-model="searchForm.transportTypeId" placeholder="璇疯緭鍏ヨ繍杈撳搧绉�(杩愯揣浣跨敤) 鍏宠仈category琛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="杩愯緭閲嶉噺/鏁伴噺" prop="transportNum">
+        <el-input v-model="searchForm.transportNum" placeholder="璇疯緭鍏ヨ繍杈撻噸閲�/鏁伴噺" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="杩愯緭鍗曚綅(涓�/鏂�)" prop="transportUnit">
+        <el-input v-model="searchForm.transportUnit" placeholder="璇疯緭鍏ヨ繍杈撳崟浣�(涓�/鏂�)" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鐢ㄨ溅缁堢偣鍦板潃" prop="locationEnd">
+        <el-input v-model="searchForm.locationEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐瑰湴鍧�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鐢ㄨ溅缁堢偣缁忓害" prop="latEnd">
+        <el-input v-model="searchForm.latEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐圭粡搴�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鐢ㄨ溅缁堢偣绾害" prop="lgtEnd">
+        <el-input v-model="searchForm.lgtEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐圭含搴�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="閫旂粡鐐�/椁愭爣淇℃伅" prop="wayInfo">
+        <el-input v-model="searchForm.wayInfo" 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=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" prop="status">
+        <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟鏃堕棿" prop="acceptTime">
+        <el-date-picker v-model="searchForm.acceptTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ帴鍗曟椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟浜�" prop="acceptMemberId">
+        <el-input v-model="searchForm.acceptMemberId" placeholder="璇疯緭鍏ユ帴鍗曚汉" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟绫诲瀷:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�" prop="acceptType">
+        <el-input v-model="searchForm.acceptType" placeholder="璇疯緭鍏ユ帴鍗曠被鍨�:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="寮�濮嬩綔涓氭椂闂�" prop="workStartTime">
+        <el-date-picker v-model="searchForm.workStartTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬩綔涓氭椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="瀹屾垚鏃堕棿" prop="finishTime">
+        <el-date-picker v-model="searchForm.finishTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ畬鎴愭椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="骞冲彴鎻愭垚姣斾緥" prop="platformRata">
+        <el-input v-model="searchForm.platformRata" placeholder="璇疯緭鍏ュ钩鍙版彁鎴愭瘮渚�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�" prop="wxExternalNo">
+        <el-input v-model="searchForm.wxExternalNo" placeholder="璇疯緭鍏ュ井淇″钩鍙颁氦鏄撹鍗曞彿" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏄惁璇勪环:0=鍚︼紱1=鏄�" prop="commentStatus">
+        <el-input v-model="searchForm.commentStatus" placeholder="璇疯緭鍏ユ槸鍚﹁瘎浠�:0=鍚︼紱1=鏄�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璇勪环鍐呭" prop="commentInfo">
+        <el-input v-model="searchForm.commentInfo" placeholder="璇疯緭鍏ヨ瘎浠峰唴瀹�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璇勪环鏄熺骇1-5" prop="commentLevel">
+        <el-input v-model="searchForm.commentLevel" placeholder="璇疯緭鍏ヨ瘎浠锋槦绾�1-5" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璇勪环鏃堕棿" prop="commentTime">
+        <el-date-picker v-model="searchForm.commentTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヨ瘎浠锋椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="璇勪环绫诲瀷:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�" prop="commentType">
+        <el-input v-model="searchForm.commentType" placeholder="璇疯緭鍏ヨ瘎浠风被鍨�:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍙栨秷鏃堕棿" prop="cancelTime">
+        <el-date-picker v-model="searchForm.cancelTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ彇娑堟椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏄惁宸蹭慨鏀�:0=鍚︼紱1=鏄紱" prop="isUpdate">
+        <el-input v-model="searchForm.isUpdate" placeholder="璇疯緭鍏ユ槸鍚﹀凡淇敼:0=鍚︼紱1=鏄紱" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎺ュ崟鏂归粦鍚嶅崟member:id 澶氫釜浠�,鍒嗗壊" prop="blackRecive">
+        <el-input v-model="searchForm.blackRecive" placeholder="璇疯緭鍏ユ帴鍗曟柟榛戝悕鍗昺ember:id 澶氫釜浠�,鍒嗗壊" @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:orders:create', 'business:orders:delete']">
+        <li><el-button type="primary" @click="$refs.operaOrdersWindow.open('鏂板缓璁㈠崟淇℃伅璁板綍')" icon="el-icon-plus" v-permissions="['business:orders:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:orders:delete']">鍒犻櫎</el-button></li>
+      </ul>
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
+        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column prop="releaseMemberId" 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="startDate" label="寮�濮嬫椂闂� yyyy-MM-dd" min-width="100px"></el-table-column>
+        <el-table-column prop="endDate" label="缁撴潫鏃堕棿 yyyy-MM-dd" min-width="100px"></el-table-column>
+        <el-table-column prop="location" label="鍦扮偣淇℃伅/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣" min-width="100px"></el-table-column>
+        <el-table-column prop="locationRemark" label="鍦扮偣鎻忚堪" min-width="100px"></el-table-column>
+        <el-table-column prop="lat" label="缁忓害" min-width="100px"></el-table-column>
+        <el-table-column prop="province" label="鐪佷唤" min-width="100px"></el-table-column>
+        <el-table-column prop="city" label="鍩庡競" min-width="100px"></el-table-column>
+        <el-table-column prop="area" label="鍖哄幙" min-width="100px"></el-table-column>
+        <el-table-column prop="lgt" label="绾害" min-width="100px"></el-table-column>
+        <el-table-column prop="categoryId" label="闇�姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category" min-width="100px"></el-table-column>
+        <el-table-column prop="workType" label="鐢ㄥ伐绫诲瀷:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級" min-width="100px"></el-table-column>
+        <el-table-column prop="priceNum1" label="璁′环鏁伴噺1(澶╂暟/鐢ㄨ溅娆℃暟)" min-width="100px"></el-table-column>
+        <el-table-column prop="priceNum2" label="璁′环鏁伴噺2(鐢ㄥ伐鏁伴噺/閲囨憳鏁伴噺/鐢ㄨ溅鏁伴噺/)" min-width="100px"></el-table-column>
+        <el-table-column prop="supplement" label="闇�姹傝ˉ鍏�" min-width="100px"></el-table-column>
+        <el-table-column prop="price" label="璐圭敤鏍囧噯" min-width="100px"></el-table-column>
+        <el-table-column prop="estimatedAccount" label="棰勪及璐圭敤" min-width="100px"></el-table-column>
+        <el-table-column prop="payAccount" label="瀹為檯鏀粯璐圭敤" min-width="100px"></el-table-column>
+        <el-table-column prop="reviceAccount" label="瀹炴敹璐圭敤" min-width="100px"></el-table-column>
+        <el-table-column prop="priceRemark" label="璐圭敤璇存槑" min-width="100px"></el-table-column>
+        <el-table-column prop="carType" label="鐢ㄨ溅绫诲瀷(杩愯揣浣跨敤):0=澶╋紱1=娆�" min-width="100px"></el-table-column>
+        <el-table-column prop="transportTypeId" label="杩愯緭鍝佺(杩愯揣浣跨敤) 鍏宠仈category琛�" min-width="100px"></el-table-column>
+        <el-table-column prop="transportNum" label="杩愯緭閲嶉噺/鏁伴噺" min-width="100px"></el-table-column>
+        <el-table-column prop="transportUnit" label="杩愯緭鍗曚綅(涓�/鏂�)" min-width="100px"></el-table-column>
+        <el-table-column prop="locationEnd" label="鐢ㄨ溅缁堢偣鍦板潃" min-width="100px"></el-table-column>
+        <el-table-column prop="latEnd" label="鐢ㄨ溅缁堢偣缁忓害" min-width="100px"></el-table-column>
+        <el-table-column prop="lgtEnd" label="鐢ㄨ溅缁堢偣绾害" min-width="100px"></el-table-column>
+        <el-table-column prop="wayInfo" 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=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" min-width="100px"></el-table-column>
+        <el-table-column prop="acceptTime" label="鎺ュ崟鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="acceptMemberId" label="鎺ュ崟浜�" min-width="100px"></el-table-column>
+        <el-table-column prop="acceptType" label="鎺ュ崟绫诲瀷:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="workStartTime" label="寮�濮嬩綔涓氭椂闂�" min-width="100px"></el-table-column>
+        <el-table-column prop="finishTime" label="瀹屾垚鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="platformRata" label="骞冲彴鎻愭垚姣斾緥" min-width="100px"></el-table-column>
+        <el-table-column prop="wxExternalNo" label="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�" min-width="100px"></el-table-column>
+        <el-table-column prop="commentStatus" label="鏄惁璇勪环:0=鍚︼紱1=鏄�" min-width="100px"></el-table-column>
+        <el-table-column prop="commentInfo" label="璇勪环鍐呭" min-width="100px"></el-table-column>
+        <el-table-column prop="commentLevel" label="璇勪环鏄熺骇1-5" min-width="100px"></el-table-column>
+        <el-table-column prop="commentTime" label="璇勪环鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="commentType" label="璇勪环绫诲瀷:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="cancelTime" label="鍙栨秷鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="isUpdate" label="鏄惁宸蹭慨鏀�:0=鍚︼紱1=鏄紱" min-width="100px"></el-table-column>
+        <el-table-column prop="blackRecive" label="鎺ュ崟鏂归粦鍚嶅崟member:id 澶氫釜浠�,鍒嗗壊" min-width="100px"></el-table-column>
+        <el-table-column
+          v-if="containPermissions(['business:orders:update', 'business:orders:delete'])"
+          label="鎿嶄綔"
+          min-width="120"
+          fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaOrdersWindow.open('缂栬緫璁㈠崟淇℃伅璁板綍', row)" icon="el-icon-edit" v-permissions="['business:orders:update']">缂栬緫</el-button>
+            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:orders:delete']">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaOrdersWindow ref="operaOrdersWindow" @success="handlePageChange"/>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaOrdersWindow from '@/components/business/OperaOrdersWindow'
+export default {
+  name: 'Orders',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaOrdersWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        id: '',
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        releaseMemberId: '',
+        type: '',
+        startDate: '',
+        endDate: '',
+        location: '',
+        locationRemark: '',
+        lat: '',
+        province: '',
+        city: '',
+        area: '',
+        lgt: '',
+        categoryId: '',
+        workType: '',
+        priceNum1: '',
+        priceNum2: '',
+        supplement: '',
+        price: '',
+        estimatedAccount: '',
+        payAccount: '',
+        reviceAccount: '',
+        priceRemark: '',
+        carType: '',
+        transportTypeId: '',
+        transportNum: '',
+        transportUnit: '',
+        locationEnd: '',
+        latEnd: '',
+        lgtEnd: '',
+        wayInfo: '',
+        code: '',
+        status: '',
+        acceptTime: '',
+        acceptMemberId: '',
+        acceptType: '',
+        workStartTime: '',
+        finishTime: '',
+        platformRata: '',
+        wxExternalNo: '',
+        commentStatus: '',
+        commentInfo: '',
+        commentLevel: '',
+        commentTime: '',
+        commentType: '',
+        cancelTime: '',
+        isUpdate: '',
+        blackRecive: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '璁㈠崟淇℃伅璁板綍',
+      api: '/business/orders',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/admin/src/views/business/receiveWeight.vue b/admin/src/views/business/receiveWeight.vue
new file mode 100644
index 0000000..07f7dd6
--- /dev/null
+++ b/admin/src/views/business/receiveWeight.vue
@@ -0,0 +1,138 @@
+<template>
+  <TableLayout :permissions="['business:receiveweight: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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @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="createUser">
+        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+      </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="receiveMax">
+        <el-input v-model="searchForm.receiveMax" placeholder="璇疯緭鍏ユ渶澶ф帴鍗曢噺" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏈�灏忔帴鍗曢噺" prop="receiveMin">
+        <el-input v-model="searchForm.receiveMin" placeholder="璇疯緭鍏ユ渶灏忔帴鍗曢噺" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="浼樺厛绾�" prop="level">
+        <el-input v-model="searchForm.level" placeholder="璇疯緭鍏ヤ紭鍏堢骇" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="璁㈠崟鏌ョ湅寤惰繜鏃堕棿" prop="delayTime">
+        <el-input v-model="searchForm.delayTime" 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:receiveweight:create', 'business:receiveweight:delete']">
+        <li><el-button type="primary" @click="$refs.operaReceiveWeightWindow.open('鏂板缓鎺ュ崟鏉冮噸閰嶇疆琛�')" icon="el-icon-plus" v-permissions="['business:receiveweight:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:receiveweight:delete']">鍒犻櫎</el-button></li>
+      </ul>
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
+        <el-table-column prop="status" label="鐘舵��:0=鍚敤锛�1=绂佺敤锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column prop="receiveMax" label="鏈�澶ф帴鍗曢噺" min-width="100px"></el-table-column>
+        <el-table-column prop="receiveMin" label="鏈�灏忔帴鍗曢噺" min-width="100px"></el-table-column>
+        <el-table-column prop="level" label="浼樺厛绾�" min-width="100px"></el-table-column>
+        <el-table-column prop="delayTime" 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:receiveweight:update', 'business:receiveweight:delete'])"
+          label="鎿嶄綔"
+          min-width="120"
+          fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaReceiveWeightWindow.open('缂栬緫鎺ュ崟鏉冮噸閰嶇疆琛�', row)" icon="el-icon-edit" v-permissions="['business:receiveweight:update']">缂栬緫</el-button>
+            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:receiveweight:delete']">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaReceiveWeightWindow ref="operaReceiveWeightWindow" @success="handlePageChange"/>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaReceiveWeightWindow from '@/components/business/OperaReceiveWeightWindow'
+export default {
+  name: 'ReceiveWeight',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaReceiveWeightWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        id: '',
+        deleted: '',
+        status: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        receiveMax: '',
+        receiveMin: '',
+        level: '',
+        delayTime: '',
+        sortnum: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '鎺ュ崟鏉冮噸閰嶇疆琛�',
+      api: '/business/receiveWeight',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/admin/src/views/business/withdrawalOrders.vue b/admin/src/views/business/withdrawalOrders.vue
new file mode 100644
index 0000000..6d71c1b
--- /dev/null
+++ b/admin/src/views/business/withdrawalOrders.vue
@@ -0,0 +1,138 @@
+<template>
+  <TableLayout :permissions="['business:withdrawalorders: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="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
+        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
+        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
+        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+      </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="memberId">
+        <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ヤ細鍛樹富閿�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎻愮幇閲戦(鍗曚綅:鍒�)" prop="amount">
+        <el-input v-model="searchForm.amount" placeholder="璇疯緭鍏ユ彁鐜伴噾棰�(鍗曚綅:鍒�)" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�" prop="wxExternalNo">
+        <el-input v-model="searchForm.wxExternalNo" 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="doneTime">
+        <el-date-picker v-model="searchForm.doneTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ彁鐜板畬鎴愭椂闂�" @change="search"/>
+      </el-form-item>
+      <el-form-item label="瀹屾垚澶囨敞" prop="doneInfo">
+        <el-input v-model="searchForm.doneInfo" 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:withdrawalorders:create', 'business:withdrawalorders:delete']">
+        <li><el-button type="primary" @click="$refs.operaWithdrawalOrdersWindow.open('鏂板缓鎻愮幇鐢宠璁板綍')" icon="el-icon-plus" v-permissions="['business:withdrawalorders:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:withdrawalorders:delete']">鍒犻櫎</el-button></li>
+      </ul>
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
+        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column prop="memberId" label="浼氬憳涓婚敭" min-width="100px"></el-table-column>
+        <el-table-column prop="amount" label="鎻愮幇閲戦(鍗曚綅:鍒�)" min-width="100px"></el-table-column>
+        <el-table-column prop="wxExternalNo" 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="doneTime" label="鎻愮幇瀹屾垚鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="doneInfo" label="瀹屾垚澶囨敞" min-width="100px"></el-table-column>
+        <el-table-column
+          v-if="containPermissions(['business:withdrawalorders:update', 'business:withdrawalorders:delete'])"
+          label="鎿嶄綔"
+          min-width="120"
+          fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaWithdrawalOrdersWindow.open('缂栬緫鎻愮幇鐢宠璁板綍', row)" icon="el-icon-edit" v-permissions="['business:withdrawalorders:update']">缂栬緫</el-button>
+            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:withdrawalorders:delete']">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaWithdrawalOrdersWindow ref="operaWithdrawalOrdersWindow" @success="handlePageChange"/>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaWithdrawalOrdersWindow from '@/components/business/OperaWithdrawalOrdersWindow'
+export default {
+  name: 'WithdrawalOrders',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaWithdrawalOrdersWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        id: '',
+        deleted: '',
+        createUser: '',
+        createTime: '',
+        updateUser: '',
+        updateTime: '',
+        remark: '',
+        memberId: '',
+        amount: '',
+        wxExternalNo: '',
+        status: '',
+        doneTime: '',
+        doneInfo: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '鎻愮幇鐢宠璁板綍',
+      api: '/business/withdrawalOrders',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>

--
Gitblit v1.9.3