From 3a7cbae4f79e0043b9a75c9e419a841fc220c35a Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 28 二月 2024 11:23:33 +0800
Subject: [PATCH] mrshi

---
 h5/pages.json                                      |    8 
 h5/pages/appointmentDetails/appointmentDetails.vue |   82 +++++
 admin/src/views/business/strandedPersonnel.vue     |   47 ++-
 admin/src/views/business/retention.vue             |   16 +
 admin/package-lock.json                            |  160 ++++++------
 admin/vue.config.js                                |    4 
 h5/package-lock.json                               |   14 +
 admin/src/views/business/memberCard.vue            |   11 
 admin/src/views/index.vue                          |    9 
 h5/package.json                                    |    6 
 admin/src/views/business/userAction.vue            |  118 +++++++-
 h5/pages/cropping/cropping.vue                     |  280 +++++++++++++++++++++
 admin/src/views/business/visitEvent.vue            |    2 
 admin/src/views/business/deviceEvent.vue           |    6 
 14 files changed, 627 insertions(+), 136 deletions(-)

diff --git a/admin/package-lock.json b/admin/package-lock.json
index 697ba46..50d988a 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -1819,63 +1819,6 @@
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
-          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
         "ssri": {
           "version": "8.0.1",
           "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1883,28 +1826,6 @@
           "dev": true,
           "requires": {
             "minipass": "^3.1.1"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
-        "vue-loader-v16": {
-          "version": "npm:vue-loader@16.8.3",
-          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
-          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "chalk": "^4.1.0",
-            "hash-sum": "^2.0.0",
-            "loader-utils": "^2.0.0"
           }
         }
       }
@@ -13568,6 +13489,87 @@
         }
       }
     },
+    "vue-loader-v16": {
+      "version": "npm:vue-loader@16.8.3",
+      "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
+      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chalk": "^4.1.0",
+        "hash-sum": "^2.0.0",
+        "loader-utils": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "vue-property-decorator": {
       "version": "8.5.1",
       "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz",
diff --git a/admin/src/views/business/deviceEvent.vue b/admin/src/views/business/deviceEvent.vue
index 6230072..7e5b916 100644
--- a/admin/src/views/business/deviceEvent.vue
+++ b/admin/src/views/business/deviceEvent.vue
@@ -55,9 +55,9 @@
             >
                 <el-table-column prop="userType" label="浜哄憳绫诲瀷" min-width="100px">
                     <template slot-scope="{row}">
-                        <span v-if="row.userType === 0">鍔冲姟璁垮</span>
-                        <span v-if="row.userType === 1">鏅�氳瀹�</span>
-                        <span v-if="row.userType === 2">鍐呴儴浜哄憳</span>
+                        <span v-if="row.personType === 0">鍔冲姟璁垮</span>
+                        <span v-if="row.personType === 1">鏅�氳瀹�</span>
+                        <span v-if="row.personType === 2">鍐呴儴浜哄憳</span>
                     </template>
                 </el-table-column>
                 <el-table-column prop="personName" label="濮撳悕" min-width="100px"></el-table-column>
diff --git a/admin/src/views/business/memberCard.vue b/admin/src/views/business/memberCard.vue
index a9a5b53..707fcb0 100644
--- a/admin/src/views/business/memberCard.vue
+++ b/admin/src/views/business/memberCard.vue
@@ -8,8 +8,8 @@
             <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyword">
                 <el-input v-model="searchForm.keyword" placeholder="璇疯緭鍏ュ憳宸ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
             </el-form-item>
-            <el-form-item label="鐢ㄦ埛绫诲瀷" prop="type">
-                <el-select v-model="searchForm.type" placeholder="璇烽�夋嫨">
+            <el-form-item label="鐢ㄦ埛绫诲瀷" prop="memberType">
+                <el-select v-model="searchForm.memberType" placeholder="璇烽�夋嫨">
                     <el-option label="鍔冲姟浜哄憳" :value="0"></el-option>
                     <el-option label="鍐呴儴鍛樺伐" :value="2"></el-option>
                 </el-select>
@@ -53,8 +53,8 @@
                 </el-table-column>
                 <el-table-column label="鐢ㄦ埛绫诲瀷" min-width="100px">
                     <template slot-scope="{row}">
-                        <span v-if="row.type === 0">鍔冲姟璁垮</span>
-                        <span v-if="row.type === 2">鍐呴儴浜哄憳</span>
+                        <span v-if="row.memberType === 0">鍔冲姟璁垮</span>
+                        <span v-if="row.memberType === 2">鍐呴儴浜哄憳</span>
                     </template>
                 </el-table-column>
                 <el-table-column prop="memberName" label="鍛樺伐濮撳悕" min-width="100px"></el-table-column>
@@ -102,7 +102,8 @@
         searchForm: {
           code: '',
           keyword: '',
-          status: ''
+          status: '',
+          memberType: ''
         }
       }
     },
diff --git a/admin/src/views/business/retention.vue b/admin/src/views/business/retention.vue
index 6b20da4..3d9dbdb 100644
--- a/admin/src/views/business/retention.vue
+++ b/admin/src/views/business/retention.vue
@@ -44,7 +44,12 @@
                 @selection-change="handleSelectionChange"
             >
                 <el-table-column type="selection" width="55"></el-table-column>
-                <el-table-column prop="companyName" label="鍏徃/缁勭粐" min-width="100px"></el-table-column>
+                <el-table-column prop="companyName" label="鍏徃/缁勭粐" min-width="100px">
+                    <template slot-scope="{row}">
+                        <span v-if="row.type === 2 || row.type === 0">{{row.companyName}}</span>
+                        <span v-else>{{row.visitCompanyName}}</span>
+                    </template>
+                </el-table-column>
                 <el-table-column prop="type" label="浜哄憳绫诲瀷" min-width="100px">
                     <template slot-scope="{row}">
                         <span v-if="row.type === 0">鍔冲姟璁垮</span>
@@ -54,8 +59,13 @@
                 </el-table-column>
                 <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
                 <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
-                <el-table-column prop="idcardNo" label="韬唤璇佸彿" min-width="130px"></el-table-column>
-                <el-table-column prop="deviceName" label="杩涘満闂ㄧ" min-width="100px"></el-table-column>
+                <el-table-column prop="idcardDecode" label="韬唤璇佸彿" min-width="130px"></el-table-column>
+                <el-table-column label="杩涘満闂ㄧ" min-width="100px">
+                    <template slot-scope="{row}">
+                        <span v-if="row.type === 1">-</span>
+                        <span v-else>{{row.deviceName}}</span>
+                    </template>
+                </el-table-column>
                 <el-table-column prop="eventDate" label="杩涘満鏃堕棿" min-width="100px"></el-table-column>
                 <el-table-column label="浜鸿劯鐓х墖" min-width="100px">
                   <template slot-scope="{row}">
diff --git a/admin/src/views/business/strandedPersonnel.vue b/admin/src/views/business/strandedPersonnel.vue
index 904b9a6..4ba97d3 100644
--- a/admin/src/views/business/strandedPersonnel.vue
+++ b/admin/src/views/business/strandedPersonnel.vue
@@ -42,25 +42,29 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="inDate" label="鍏ュ満鏃堕棿" min-width="100px"></el-table-column>
-                <el-table-column prop="endtime" label="鎺堟潈鍒版湡鏃堕棿" min-width="100px"></el-table-column>
-                <el-table-column prop="timeOut" label="瓒呮椂鏃堕暱" min-width="100px"></el-table-column>
+                <el-table-column prop="outDate" label="鎺堟潈鍒版湡鏃堕棿" min-width="100px"></el-table-column>
+                <el-table-column label="瓒呮椂鏃堕暱" min-width="100px">
+                    <template slot-scope="{row}">
+                        <span>{{row.timeOut.toString().replace('-', '')}}</span>
+                    </template>
+                </el-table-column>
                 <el-table-column label="鐘舵��" min-width="100px">
                     <template slot-scope="{row}">
                         <span v-if="row.outStatus === 0">鏈秴鏃�</span>
-                        <span v-else-if="row.timeOut === 1">宸茶秴鏃�</span>
-                        <span v-else-if="row.timeOut === 2">鍗冲皢瓒呮椂</span>
+                        <span style="color: red;" v-else-if="row.outStatus === 1">宸茶秴鏃�</span>
+                        <span v-else-if="row.outStatus === 2">鍗冲皢瓒呮椂</span>
                     </template>
                 </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" icon="el-icon-edit" v-permissions="['business:member:update']" @click="thaw(row.id)">绂诲巶</el-button>-->
-<!--                    </template>-->
-<!--                </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" icon="el-icon-edit" v-permissions="['business:member:update']" @click="departure(scope.row.id)">绂诲巶</el-button>
+                    </template>
+                </el-table-column>
             </el-table>
             <pagination
                 @size-change="handleSizeChange"
@@ -77,6 +81,7 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import { findAllList } from '@/api/system/common'
+import { level } from '@/api/business/staging'
 export default {
   name: 'strandedPersonnel',
   extends: BaseTable,
@@ -104,6 +109,20 @@
     this.getUser()
   },
   methods: {
+    departure(id) {
+      this.$confirm('纭畾绂诲満鍚�, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        level(id)
+          .then(res => {
+            this.search()
+          })
+      }).catch(() => {
+
+      });
+    },
     // thaws () {
     //   if (this.tableData.selectedRows.length === 0) return this.$message.warning('鑷冲皯閫夋嫨涓�椤瑰唴瀹�')
     //   const ids = this.tableData.selectedRows.map(item => {
diff --git a/admin/src/views/business/userAction.vue b/admin/src/views/business/userAction.vue
index 108984f..29c359f 100644
--- a/admin/src/views/business/userAction.vue
+++ b/admin/src/views/business/userAction.vue
@@ -2,11 +2,52 @@
     <TableLayout :permissions="['business:useraction:query']">
         <!-- 鎼滅储琛ㄥ崟 -->
         <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-            <el-form-item label="绫诲瀷" prop="type">
-                <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨�" @keypress.enter.native="search"></el-input>
+            <el-form-item label="鎿嶄綔浜哄悕绉�" prop="createName">
+                <el-input v-model="searchForm.createName" placeholder="璇疯緭鍏ユ搷浣滀汉鍚嶇О" @keypress.enter.native="search"></el-input>
             </el-form-item>
-            <el-form-item label="鎿嶄綔鍓嶇姸鎬�" prop="beforeStatus">
-                <el-input v-model="searchForm.beforeStatus" placeholder="璇疯緭鍏ユ搷浣滃墠鐘舵��" @keypress.enter.native="search"></el-input>
+            <el-form-item label="鎿嶄綔瀵硅薄" prop="memberName">
+                <el-input v-model="searchForm.memberName" 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="memberType">
+                <el-select v-model="searchForm.memberType" placeholder="璇烽�夋嫨">
+                    <el-option label="鍔冲姟璁垮" :value="0"></el-option>
+                    <el-option label="鏅�氳瀹�" :value="1"></el-option>
+                    <el-option label="鍐呴儴浜哄憳" :value="2"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="鎵嬫満鍙�" prop="mobile">
+                <el-input v-model="searchForm.mobile" placeholder="璇疯緭鍏ユ墜鏈哄彿" @keypress.enter.native="search"></el-input>
+            </el-form-item>
+            <el-form-item label="鍘嗗彶璐﹀彿鐘舵��" prop="beforeStatus">
+                <el-select v-model="searchForm.beforeStatus" placeholder="璇烽�夋嫨">
+                    <el-option label="瑙e喕" :value="0"></el-option>
+                    <el-option label="鍐荤粨" :value="1"></el-option>
+                    <el-option label="鎷夐粦" :value="2"></el-option>
+                    <el-option label="鎭㈠" :value="3"></el-option>
+                    <el-option label="璁句负鎷滆浜�" :value="4"></el-option>
+                    <el-option label="鍙栨秷鎷滆浜�" :value="5"></el-option>
+                    <el-option label="璁句负楂樼骇瀹℃壒浜�" :value="6"></el-option>
+                    <el-option label="鍙栨秷楂樼骇瀹℃壒浜�" :value="7"></el-option>
+                    <el-option label="鎵嬪姩绂诲満" :value="8"></el-option>
+                    <el-option label="鍒犻櫎" :value="9"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="鎿嶄綔绫诲瀷" prop="type">
+                <el-select v-model="searchForm.type" placeholder="璇烽�夋嫨">
+                    <el-option label="瑙e喕" :value="0"></el-option>
+                    <el-option label="鍐荤粨" :value="1"></el-option>
+                    <el-option label="鎷夐粦" :value="2"></el-option>
+                    <el-option label="鎭㈠" :value="3"></el-option>
+                    <el-option label="璁句负鎷滆浜�" :value="4"></el-option>
+                    <el-option label="鍙栨秷鎷滆浜�" :value="5"></el-option>
+                    <el-option label="璁句负楂樼骇瀹℃壒浜�" :value="6"></el-option>
+                    <el-option label="鍙栨秷楂樼骇瀹℃壒浜�" :value="7"></el-option>
+                    <el-option label="鎵嬪姩绂诲満" :value="8"></el-option>
+                    <el-option label="鍒犻櫎" :value="9"></el-option>
+                </el-select>
             </el-form-item>
             <section>
                 <el-button type="primary" @click="search">鎼滅储</el-button>
@@ -16,18 +57,60 @@
         <!-- 琛ㄦ牸鍜屽垎椤� -->
         <template v-slot:table-wrap>
             <el-table
-                    v-loading="isWorking.search"
-                    :data="tableData.list"
-                    stripe
+                v-loading="isWorking.search"
+                :data="tableData.list"
+                stripe
             >
-                <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
-                <el-table-column prop="type" label="绫诲瀷 0瑙e喕 1鍐荤粨 2鎷夐粦 3鎭㈠ 4璁句负鎷滆浜� 5鍙栨秷鎷滆浜� 6璁句负楂樼骇瀹℃壒浜� 7鍙栨秷楂樼骇瀹℃壒浜� 8鎵嬪姩绂诲満 9鍒犻櫎" min-width="100px"></el-table-column>
-                <el-table-column prop="beforeStatus" label="鎿嶄綔鍓嶇姸鎬� 0瑙e喕 1鍐荤粨 2鎷夐粦 3鎭㈠ 4璁句负鎷滆浜� 5鍙栨秷鎷滆浜� 6璁句负楂樼骇瀹℃壒浜� 7鍙栨秷楂樼骇瀹℃壒浜� 8鎵嬪姩绂诲満 9鍒犻櫎" min-width="100px"></el-table-column>
+                <el-table-column prop="createName" label="鎿嶄綔浜哄憳"></el-table-column>
+                <el-table-column prop="memberName" label="鎿嶄綔瀵硅薄"></el-table-column>
+                <el-table-column prop="companyName" label="鎵�灞炲叕鍙�">
+                    <template slot-scope="{row}">
+                        <span v-if="row.memberType === '1'">{{row.visitCompanyName}}</span>
+                        <span v-else>{{row.companyName}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="浜哄憳绫诲瀷">
+                    <template slot-scope="{row}">
+                        <span v-if="row.memberType === '0'">鍔冲姟璁垮</span>
+                        <span v-if="row.memberType === '1'">鏅�氳瀹�</span>
+                        <span v-if="row.memberType === '2'">鍐呴儴浜哄憳</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="mobile" label="鎵嬫満鍙�"></el-table-column>
+                <el-table-column label="鍘嗗彶鐘舵��">
+                    <template slot-scope="{row}">
+                        <span v-if="row.beforeStatus === 0">瑙e喕</span>
+                        <span v-if="row.beforeStatus === 1">鍐荤粨</span>
+                        <span v-if="row.beforeStatus === 2">鎷夐粦</span>
+                        <span v-if="row.beforeStatus === 3">鎭㈠</span>
+                        <span v-if="row.beforeStatus === 4">璁句负鎷滆浜�</span>
+                        <span v-if="row.beforeStatus === 5">鍙栨秷鎷滆浜�</span>
+                        <span v-if="row.beforeStatus === 6">璁句负楂樼骇瀹℃壒浜�</span>
+                        <span v-if="row.beforeStatus === 7">鍙栨秷楂樼骇瀹℃壒浜�</span>
+                        <span v-if="row.beforeStatus === 8">鎵嬪姩绂诲満</span>
+                        <span v-if="row.beforeStatus === 8">鍒犻櫎</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="鎿嶄綔">
+                    <template slot-scope="{row}">
+                        <span v-if="row.type === 0">瑙e喕</span>
+                        <span v-if="row.type === 1">鍐荤粨</span>
+                        <span v-if="row.type === 2">鎷夐粦</span>
+                        <span v-if="row.type === 3">鎭㈠</span>
+                        <span v-if="row.type === 4">璁句负鎷滆浜�</span>
+                        <span v-if="row.type === 5">鍙栨秷鎷滆浜�</span>
+                        <span v-if="row.type === 6">璁句负楂樼骇瀹℃壒浜�</span>
+                        <span v-if="row.type === 7">鍙栨秷楂樼骇瀹℃壒浜�</span>
+                        <span v-if="row.type === 8">鎵嬪姩绂诲満</span>
+                        <span v-if="row.type === 8">鍒犻櫎</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="createDate" label="鎿嶄綔鏃堕棿"></el-table-column>
             </el-table>
             <pagination
-                    @size-change="handleSizeChange"
-                    @current-change="handlePageChange"
-                    :pagination="tableData.pagination"
+                @size-change="handleSizeChange"
+                @current-change="handlePageChange"
+                :pagination="tableData.pagination"
             >
             </pagination>
         </template>
@@ -46,8 +129,13 @@
       return {
         // 鎼滅储
         searchForm: {
-          type: '',
-          beforeStatus: ''
+          createName: '',
+          memberName: '',
+          companyName: '',
+          memberType: '',
+          mobile: '',
+          beforeStatus: '',
+          type: ''
         }
       }
     },
diff --git a/admin/src/views/business/visitEvent.vue b/admin/src/views/business/visitEvent.vue
index ced0982..4ef5aa8 100644
--- a/admin/src/views/business/visitEvent.vue
+++ b/admin/src/views/business/visitEvent.vue
@@ -57,7 +57,7 @@
                 <el-table-column prop="beVisitedPersonName" label="琚浜�" min-width="100px"></el-table-column>
                 <el-table-column prop="beVisitedPersonOrg" label="琚浜虹粍缁�" min-width="100px"></el-table-column>
                 <el-table-column prop="eventTypeName" label="浜嬩欢绫诲瀷" min-width="100px"></el-table-column>
-                <el-table-column label="鎶撴媿鍥緐ri" min-width="100px">
+                <el-table-column label="鎶撴媿鍥剧墖" min-width="100px">
                     <template slot-scope="{row}">
                         <el-image v-if="row.captureUrlFull!=null"
                             style="width: 80px; height: 80px"
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 31b1e0c..81d1978 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -64,16 +64,15 @@
             label="璁垮鍏徃">
           </el-table-column>
           <el-table-column
-            prop="address"
             label="浜哄憳绫诲瀷">
             <template slot-scope="{row}">
-              <span v-if="row.memberType === 0">鍔冲姟璁垮</span>
-              <span v-if="row.memberType === 1">鏅�氳瀹�</span>
-              <span v-if="row.memberType === 2">鍐呴儴浜哄憳</span>
+              <span v-if="row.type === 0">鍔冲姟璁垮</span>
+              <span v-if="row.type === 1">鏅�氳瀹�</span>
+              <span v-if="row.type === 2">鍐呴儴浜哄憳</span>
             </template>
           </el-table-column>
           <el-table-column
-            prop="endtime"
+            prop="outDate"
             label="鎺堟潈鍒版湡鏃堕棿">
           </el-table-column>
           <el-table-column
diff --git a/admin/vue.config.js b/admin/vue.config.js
index 80cc160..27c1e78 100644
--- a/admin/vue.config.js
+++ b/admin/vue.config.js
@@ -13,9 +13,9 @@
         // http://192.168.0.134:10028   浠诲悍
         // http://192.168.0.110:10013   纾婄
         // http://192.168.0.132:10013   甯呭摜
-        // http://192.168.0.129:10013   钀嶅
+        // http://192.168.0.126:10033   钀嶅
         // https://dmtest.ahapp.net/admin_api   娴嬭瘯鏈�
-        target: 'http://192.168.0.126:10033',
+        target: 'http://192.168.0.129:10028',
         changeOrigin: true,
         pathRewrite: {
           [`^${[process.env.VUE_APP_API_PREFIX]}`]: ''
diff --git a/h5/package-lock.json b/h5/package-lock.json
index a356030..e16365b 100644
--- a/h5/package-lock.json
+++ b/h5/package-lock.json
@@ -1,7 +1,19 @@
 {
-  "requires": true,
+  "name": "鏀寔鍒嗛〉Picker",
+  "version": "1.0",
   "lockfileVersion": 1,
+  "requires": true,
   "dependencies": {
+    "qrcodejs2": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmmirror.com/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
+      "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA=="
+    },
+    "uniapp-qrcode": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/uniapp-qrcode/-/uniapp-qrcode-1.0.2.tgz",
+      "integrity": "sha512-jcWwWz4yXsO7if/+78MMXj5VUdZTLu2D6L/IKb4mJkIw87oF11pO3WS/jS27SUcPCrX/BKcir5a2R1uvkaoR9g=="
+    },
     "uview-ui": {
       "version": "2.0.36",
       "resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.36.tgz",
diff --git a/h5/package.json b/h5/package.json
index c24d989..dcafdae 100644
--- a/h5/package.json
+++ b/h5/package.json
@@ -16,5 +16,9 @@
             "鍓嶇缁勪欢",
             "閫氱敤缁勪欢"
         ]
+    },
+    "dependencies": {
+        "qrcodejs2": "0.0.2",
+        "uniapp-qrcode": "^1.0.2"
     }
-}
\ No newline at end of file
+}
diff --git a/h5/pages.json b/h5/pages.json
index 1ad3def..99f6cee 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -111,6 +111,14 @@
 				"navigationBarTitleText" : "棰勭害璇︽儏",
 				"enablePullDownRefresh" : false
 			}
+		},
+		{
+			"path" : "pages/cropping/cropping",
+			"style" : 
+			{
+				"navigationBarTitleText" : "鍥剧墖瑁佸壀",
+				"enablePullDownRefresh" : false
+			}
 		}
 	],
 	"subPackages": [ 
diff --git a/h5/pages/appointmentDetails/appointmentDetails.vue b/h5/pages/appointmentDetails/appointmentDetails.vue
index 83d08c7..a3bc209 100644
--- a/h5/pages/appointmentDetails/appointmentDetails.vue
+++ b/h5/pages/appointmentDetails/appointmentDetails.vue
@@ -1,7 +1,7 @@
 <template>
 	<view class="box">
 		<view class="box_head">
-			<image src="@/static/logo@2x.png" mode="widthFix"></image>
+			<canvas class="box_head_qrcode" canvas-id="img"></canvas>
 			<text class="box_head_a" v-if="info.status === 0">璁垮棰勭害寰呭鏍�</text>
 			<text class="box_head_a" style="color: ;" v-if="info.status === 2">璁垮棰勭害瀹℃牳閫氳繃</text>
 			<text class="box_head_a" v-if="info.status === 3">璁垮棰勭害瀹℃牳涓嶉�氳繃</text>
@@ -11,14 +11,15 @@
 		</view>
 		<view class="box_list">
 			<view class="box_list_label">鎷滆淇℃伅</view>
+			<view class="box_list_tips">璇锋敞鎰忔煡鐪嬪嚭鍏ラ棬绂佷笅鍙戞儏鍐碉紝濡傝嫢涓嬪彂澶辫触闇�閲嶆柊鐢宠</view>
 			<view class="box_list_item">
-				<view class="box_list_item_label">鎷滆鍛樺伐锛�</view>
+				<view class="box_list_item_label">琚浜哄憳锛�</view>
 				<view class="box_list_item_val">{{info.visitUserName}}</view>
 			</view>
-			<view class="box_list_item">
+			<!-- <view class="box_list_item">
 				<view class="box_list_item_label">杞︾墝鍙凤細</view>
 				<view class="box_list_item_val">{{info.carNos}}</view>
-			</view>
+			</view> -->
 			<view class="box_list_item">
 				<view class="box_list_item_label">鎷滆浜嬬敱锛�</view>
 				<view class="box_list_item_val">{{info.visitReason}}</view>
@@ -31,19 +32,38 @@
 				<view class="box_list_item_label">璁块棶闂ㄧ锛�</view>
 				<view class="box_list_item_val" v-if="info.doorGroupName && info.doorGroupName.length > 0">{{info.doorGroupName.join('銆�')}}</view>
 			</view>
+			<view class="box_list_item">
+				<view class="box_list_item_label">涓昏瀹細</view>
+				<view class="box_list_item_val">
+					{{info.name}} {{info.phone}}
+				</view>
+			</view>
 			<view class="box_list_item" v-for="(item, index) in info.withVisitsList" :key="index">
 				<view class="box_list_item_label">闅忚浜哄憳{{index + 1}}锛�</view>
-				<view class="box_list_item_val">{{item.name}} {{item.phone}}</view>
+				<view class="box_list_item_val">
+					{{item.name}} {{item.phone}}
+					<view class="box_list_item_val_btn" v-if="[2,5,7,8,9].includes(item.status)">
+						<u-button text="鏌ョ湅浜岀淮鐮�" size="mini" @click="seeQrCode(item)" type="primary"></u-button>
+					</view>
+				</view>
 			</view>
 		</view>
+		<u-popup :show="show" mode="center" @close="close">
+			<view class="qrocde">
+				<canvas class="qrcode_img" canvas-id="img1"></canvas>
+			</view>
+		</u-popup>
 	</view>
 </template>
 
 <script>
+	import wxcode from 'uniapp-qrcode'
+	
 	export default {
 		data() {
 			return {
-				info: {}
+				info: {},
+				show: false
 			};
 		},
 		onLoad(option) {
@@ -51,8 +71,26 @@
 				.then(res => {
 					if (res.code === 200) {
 						this.info = res.data
+						if (res.data.qrcode) {
+							wxcode.qrcode('img', res.data.qrcode, 320, 320)
+						}
 					}
 				})
+		},
+		methods: {
+			close() {
+				this.show = false
+			},
+			seeQrCode(code) {
+				if (code.qrcode) {
+					this.show = true
+					this.$nextTick(() => {
+						wxcode.qrcode('img1', code.qrcode, 300, 300)
+					})
+				} else {
+					uni.showToast({ title: '鏆傛棤浜岀淮鐮�', icon: 'none' })
+				}
+			}
 		}
 	}
 </script>
@@ -64,6 +102,17 @@
 <style lang="scss" scoped>
 	.box {
 		width: 100%;
+		.qrocde {
+			width: 300rpx;
+			height: 300rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			.qrcode_img {
+				width: 100%;
+				height: 100%;
+			}
+		}
 		.box_head {
 			width: 100%;
 			padding: 40rpx 0;
@@ -73,7 +122,7 @@
 			align-items: center;
 			justify-content: center;
 			flex-direction: column;
-			image {
+			.box_head_qrcode {
 				width: 320rpx;
 				height: 320rpx;
 			}
@@ -96,6 +145,19 @@
 			background-color: #ffffff;
 			padding: 40rpx 30rpx;
 			box-sizing: border-box;
+			.box_list_tips {
+				width: 100%;
+				height: 52rpx;
+				padding: 0 20rpx;
+				box-sizing: border-box;
+				line-height: 52rpx;
+				background-color: rgba(224, 49, 42, 0.06);
+				font-weight: 400;
+				font-size: 24rpx;
+				color: #E0312A;
+				border-radius: 4rpx;
+				margin: 30rpx 0;
+			}
 			.box_list_label {
 				font-size: 32rpx;
 				font-weight: 500;
@@ -117,6 +179,12 @@
 					font-family: PingFangSC, PingFang SC;
 					font-weight: 400;
 					color: #333333;
+					display: flex;
+					align-items: center;
+					.box_list_item_val_btn {
+						width: 140rpx;
+						margin-left: 15rpx;
+					}
 				}
 			}
 		}
diff --git a/h5/pages/cropping/cropping.vue b/h5/pages/cropping/cropping.vue
new file mode 100644
index 0000000..cd95adc
--- /dev/null
+++ b/h5/pages/cropping/cropping.vue
@@ -0,0 +1,280 @@
+<template>
+	<view class="settingHeadImage" @touchstart="onTouchstart" @touchmove.stop.prevent="onTouchmove" @touchend="touchE">
+		<!-- 钂欏眰 -->
+		<canvas class="pre-canvas" canvas-id="firstCanvas" :style="{ width: 100 + 'vw', height: 100 + 'vh' }"></canvas>
+		<!-- img棰勮 -->
+		<view class="preImage" :style="{ width: preImgW + 'px' }">
+			<canvas canvas-id="mycanvas" class="pre-i"
+				:style="{ width: preImgW + 'px', height: preImgH + 'px', transform: `translate(${x}px,${y}px)` }"></canvas>
+		</view>
+		<!-- 宸ュ叿 -->
+		<view class="setting-btns"><text @click="onCrop">纭畾</text></view>
+	</view>
+</template>
+ 
+<script>
+	export default {
+		data() {
+			return {
+				maxW: 250, // 鏈�澶у搴�
+				maxH: 250,
+				screenWidth: '', // 灞忓箷瀹�
+				screenHeight: '',
+				xToTop: 0, // x鏂瑰悜璺濈椤堕儴璺濈
+				scale: 1, // 缂╂斁
+				preSrc: '',
+				preImgW: '',
+				preImgH: '',
+				x: 0,
+				y: 0,
+				oldx: 0,
+				oldy: 0,
+				isMove: false,
+				start: {
+					left: 0,
+					top: 0
+				}
+			};
+		},
+		computed: {},
+		onLoad(option) {
+			// 閫夋嫨鐓х墖淇℃伅
+			let data = JSON.parse(decodeURIComponent(option.item));
+			const query = uni.createSelectorQuery();
+			query.select('.settingHeadImage').boundingClientRect();
+			query.exec(res => {
+				// 璁剧疆灞忓箷澶у皬
+				this.screenWidth = res[0].width;
+				this.screenHeight = res[0].height;
+				// 璁剧疆鍥惧儚鍩哄噯鍊硷紝鍥惧儚鍩哄噯鍊兼寜灞忓箷瀹藉害璁剧疆锛屼袱杈圭暀鐧藉悇40
+				this.maxH = res[0].width - 80;
+				this.maxW = res[0].width - 80;
+				// 璁剧疆X杞村�硷紝绠楀紡锛氬睆骞曢珮搴︾殑涓�鍗婂噺鍘诲熀鍑嗘楂樺害鐨勪竴鍗�
+				this.xToTop = this.screenHeight / 2 - this.maxH / 2;
+				this.setImageSize(data);
+			});
+		},
+		methods: {
+			// 瀹介珮澶勭悊
+			setImageSize(data) {
+				const {
+					tempFilePath
+				} = data;
+				const {
+					maxH,
+					maxW
+				} = this;
+				uni.getImageInfo({
+					src: tempFilePath,
+					success: res => {
+						const {
+							errMsg,
+							path,
+							width,
+							height
+						} = res;
+						let w = '';
+						let h = '';
+						if (errMsg === 'getImageInfo:ok') {
+							w = width;
+							h = height;
+							// 瀹藉ぇ涓庨珮澶т簬鏈�澶у搴�
+							if (width > height && width > maxW) {
+								w = Math.floor((width / height) * maxW);
+								h = maxH;
+							}
+							// 楂樺ぇ浜庡澶т簬鏈�澶ч珮搴�
+							if (height > width && height > maxH) {
+								h = Math.floor((height / width) * maxH);
+								w = maxW;
+							}
+							// 瀹介珮鐩哥瓑鎴栬�呭楂樺皬浜庢渶澶у��
+							if (width === height || (width < maxW && height < maxH)) {
+								h = maxH;
+								w = maxW;
+							}
+							this.preSrc = path;
+							this.preImgH = h;
+							this.preImgW = w;
+							// 璁剧疆钂欏眰
+							this.setBgBox();
+							// 鍥惧儚棰勮
+							this.previewCanvas({
+								w,
+								h,
+								path
+							});
+						}
+					}
+				});
+			},
+ 
+			// 璁剧疆钂欏眰
+			setBgBox() {
+				const {
+					maxW,
+					maxH,
+					screenHeight,
+					screenWidth,
+					xToTop
+				} = this;
+				const ctx = uni.createCanvasContext('firstCanvas');
+				// 鍏堟竻闄ょ煩褰�
+				ctx.clearRect(0, 0, screenWidth, screenHeight);
+				// 璁剧疆canvas閫忔槑搴�
+				ctx.setGlobalAlpha(0.7);
+				// 璁剧疆钂欏眰棰滆壊
+				ctx.setFillStyle('#000000');
+				// 缁樺埗钂欏眰
+				ctx.fillRect(0, 0, screenWidth, screenHeight);
+				// 鍩哄噯妗嗙暀鐧�
+				ctx.clearRect(40, xToTop, maxW, maxH);
+				// 缁樺埗鍩哄噯妗�
+				ctx.beginPath();
+				ctx.setStrokeStyle('#FFFFFF');
+				ctx.strokeRect(40, xToTop, maxW, maxH);
+				ctx.closePath();
+				ctx.draw();
+			},
+			// 棰勮
+			previewCanvas({
+				w,
+				h,
+				path
+			}) {
+				const ctx = uni.createCanvasContext('mycanvas');
+				ctx.drawImage(path, 0, 0, w, h);
+				ctx.draw();
+			},
+			onTouchstart(ev) {
+				if (ev.changedTouches.length === 1) {
+					this.isMove = true;
+					this.start.left = ev.changedTouches[0].clientX;
+					this.start.top = ev.changedTouches[0].clientY;
+				}
+			},
+			onTouchmove(ev) {
+				const {
+					maxW,
+					maxH,
+					preImgH,
+					preImgW,
+					xToTop
+				} = this;
+				if (this.isMove && ev.changedTouches.length === 1) {
+					let clientX = ev.changedTouches[0].clientX,
+						clientY = ev.changedTouches[0].clientY;
+					this.x = preImgW <= maxW ? 0 : this.oldx + clientX - this.start.left;
+					this.y = preImgH <= maxH ? 0 : this.oldy + clientY - this.start.top;
+				}
+			},
+			touchE(val) {
+				const {
+					preImgH,
+					preImgW,
+					maxH,
+					maxW
+				} = this;
+				const query = uni.createSelectorQuery();
+				const fx = this.x;
+				query.select('.pre-i').boundingClientRect();
+				query.exec(res => {
+					// x銆亂鍥炲脊璁$畻
+					let y = (res[0].height - res[0].width) / 2;
+					/**
+					 * 鍒ゆ柇鐓х墖鍙Щ鍔ㄧ殑璺濈鏄惁澶т簬鐣欑櫧鐨勫�硷紝濡傛灉澶т簬鍚戝彸鍒掓椂鍥剧墖鐨勫鍑忓幓鍩哄噯妗嗙殑瀹藉噺鍘荤暀鐧藉悜宸︽椂鐣欑櫧锛屽皬浜庢椂鎸夊浘鐗囩殑鍙Щ鍔ㄥ��
+					 * */ 
+					let x = (preImgW - maxW) / 2 > 40 ? (fx < 0 ? preImgW - maxW - 40 : 40) : (preImgW - maxW) / 2;
+					if (preImgH > maxH) {
+						this.y = this.y > y ? y : this.y < -y ? -y : this.y;
+					}
+					if (preImgW > maxW) {
+						this.x = this.x > x ? x : this.x < -x ? -x : this.x;
+					}
+					this.oldx = this.x;
+					this.oldy = this.y;
+					this.isMove = false;
+				});
+			},
+			// 瑁佸壀
+			onCrop() {
+				let y = 0;
+				let x = 0;
+				const query = uni.createSelectorQuery();
+				query.select('.pre-i').boundingClientRect();
+				query.exec(res => {
+					// 鑾峰彇棰勮img璺濈宸︿笂鐨勮窛绂�
+					y = Math.abs(res[0].top);
+					x = Math.abs(res[0].left);
+					const {
+						maxW,
+						maxH,
+						preImgH,
+						preImgW,
+						xToTop
+					} = this;
+					uni.canvasToTempFilePath({
+						x: Math.abs(res[0].left < 0 ? x + 40 : x - 40),
+						y: Math.abs(res[0].top < 0 ? xToTop + y : xToTop - y),
+						width: maxW,
+						height: maxH,
+						destWidth: maxW,
+						destHeight: maxH,
+						canvasId: 'mycanvas',
+						success: fileRes => {
+							console.log(fileRes);
+							uni.previewImage({
+								count: 1,
+								urls: [fileRes.tempFilePath]
+							});
+						},
+						fail: function(err) {
+							console.log(err);
+							uni.showToast({
+								title: '涓婁紶澶辫触锛氬浘鐗囩敓鎴愯繃绋嬩腑閬囧埌閿欒',
+								icon: 'none'
+							});
+						}
+					});
+				});
+			}
+		}
+	};
+</script>
+ 
+<style lang="scss" scoped>
+	.settingHeadImage {
+		background-color: #000000;
+		overflow: hidden;
+ 
+		.pre-canvas {
+			position: fixed;
+			top: 0;
+			left: 0;
+			z-index: 20;
+		}
+ 
+		.preImage {
+			min-width: 100vw;
+			height: 100vh;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			overflow: hidden;
+			z-index: 1;
+ 
+			.pre-i {
+				// transition: all 0.1s;
+			}
+		}
+ 
+		.setting-btns {
+			position: fixed;
+			bottom: 0;
+			left: 0;
+			z-index: 20;
+			font-size: 14px;
+			color: #ffffff;
+		}
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3