From e209de113c9062a5111a395719a91406d1645d27 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 18 六月 2024 14:20:53 +0800
Subject: [PATCH] ''

---
 admin/src/api/index.js                                    |    1 
 admin/src/components/business/operaVisitsWindow.vue       |  180 ++++++++++++++++++++++
 admin/src/api/other/other.js                              |    6 
 admin/src/views/business/reportRecord.vue                 |   50 +++++
 admin/src/api/business/visits.js                          |   16 ++
 admin/src/views/business/visits.vue                       |   46 +++--
 h5/manifest.json                                          |    4 
 admin/src/components/business/operaVisitsReportWindow.vue |  148 ++++++++++++++++++
 8 files changed, 426 insertions(+), 25 deletions(-)

diff --git a/admin/src/api/business/visits.js b/admin/src/api/business/visits.js
index a1ce4c9..a6da90d 100644
--- a/admin/src/api/business/visits.js
+++ b/admin/src/api/business/visits.js
@@ -45,3 +45,19 @@
     }
   })
 }
+// 鏌ヨ琚浜哄垪琛�
+export const getVisitedMember = (data) => {
+  return request.post('/visitsAdmin/cloudService/web/visitor/getVisitedMember', data)
+}
+// 鏌ヨ鏉ヨ浜嬬敱
+export const getVisitedVisitReason = (data) => {
+  return request.post('/visitsAdmin/cloudService/web/visitor/visitReason', data)
+}
+// 鎻愪氦璁垮淇℃伅
+export const createFk = (data) => {
+  return request.post('/visitsAdmin/cloudService/web/visitor/createFk', data)
+}
+// 璁垮鎶ュ
+export const createVisit = (data) => {
+  return request.post('/visitsAdmin/cloudService/business/visits/createVisit', data)
+}
diff --git a/admin/src/api/index.js b/admin/src/api/index.js
index 22239b3..bfb4e76 100644
--- a/admin/src/api/index.js
+++ b/admin/src/api/index.js
@@ -2,3 +2,4 @@
 
 export * from './business/index'
 export * from './platform'
+export * from './other/other'
diff --git a/admin/src/api/other/other.js b/admin/src/api/other/other.js
index ed641c6..92d7f0a 100644
--- a/admin/src/api/other/other.js
+++ b/admin/src/api/other/other.js
@@ -6,3 +6,9 @@
     trim: true
   })
 }
+// 鏌ヨ瀛楀吀鍊兼暟鎹�
+export const getSystemDictData = (params) => {
+  return request.get('/visitsAdmin/cloudService/web/other/getSystemDictData', {
+    params: { ...params }
+  })
+}
diff --git a/admin/src/components/business/operaVisitsReportWindow.vue b/admin/src/components/business/operaVisitsReportWindow.vue
new file mode 100644
index 0000000..f31ef28
--- /dev/null
+++ b/admin/src/components/business/operaVisitsReportWindow.vue
@@ -0,0 +1,148 @@
+<template>
+  <GlobalWindow
+      title="鏂板璁垮鎶ュ"
+      width="600px"
+      :visible.sync="isShowModal"
+      :confirm-working="isWorking"
+      @confirm="confirm"
+  >
+    <el-form :model="param" ref="paramRef" :rules="rules" >
+      <div class="title_tip">璁垮棰勭害</div>
+      <el-form-item label="琚浜�" prop="startTime">
+        {{ userInfo.realname }} {{ userInfo.company.companyNamePath }}
+      </el-form-item>
+      <el-form-item label="鍏ュ洯鏃堕棿" prop="starttime">
+        <el-date-picker
+          v-model="param.starttime"
+          format="yyyy-MM-dd HH:mm"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetime"
+          default-time="08:00:00"
+        />
+      </el-form-item>
+      <el-form-item label="绂诲洯鏃堕棿" prop="endtime">
+        <el-date-picker
+          v-model="param.endtime"
+          format="yyyy-MM-dd HH:mm"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetime"
+          default-time="08:00:00"
+        />
+      </el-form-item>
+
+      <div class="title_tip">璁垮淇℃伅</div>
+      <el-form-item label="鑱旂郴浜�" prop="name">
+        <el-input v-model="param.name" placeholder="璇疯緭鍏ヨ仈绯讳汉鐨勫鍚�"></el-input>
+      </el-form-item>
+      <el-form-item label="鎵嬫満鍙�" prop="phone">
+        <el-input v-model="param.phone" placeholder="璇疯緭鍏ヨ仈绯讳汉鐨勬墜鏈哄彿"></el-input>
+      </el-form-item>
+      <el-form-item label="鏉ヨ鍗曚綅" prop="companyName">
+        <el-input v-model="param.companyName" placeholder="璇疯緭鍏ユ潵璁跨殑鍗曚綅鍏ㄧО"></el-input>
+      </el-form-item>
+      <el-form-item label="鍏ュ洯杞﹁締" prop="carNos">
+        <el-input v-model="param.carNos" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input>
+      </el-form-item>
+      <el-form-item label="闅忚溅浜烘暟" prop="memberNum">
+        <el-input v-model="param.memberNum" placeholder="璇疯緭鍏ラ殢杞︿汉鍛樻�绘暟"></el-input>
+      </el-form-item>
+      <el-form-item label="鏉ヨ浜嬬敱" prop="reason">
+        <el-select v-model="param.reason" placeholder="璇烽�夋嫨">
+          <el-option v-for="item in VisitReason" :key="item.id" :label="item.title" :value="item.title" />
+        </el-select>
+      </el-form-item>
+    </el-form>
+  </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadFaceImg from '@/components/common/UploadFaceImg'
+import { createVisit, getVisitedVisitReason } from '@/api/business/visits'
+export default {
+  name: 'OperaVisitsHkWindow',
+  extends: BaseOpera,
+  components: {
+    GlobalWindow,
+    UploadFaceImg
+  },
+  data () {
+    return {
+      isShowModal: false,
+      param: {
+        type: 2
+      },
+      userInfo: this.$store.state.userInfo,
+      
+      VisitReason: [],
+      uploadData: {
+        folder: 'member'
+      },
+      rules: {
+        starttime: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }],
+        endtime: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }],
+        reason: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        type: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        idcardType: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+
+        memberNum: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        name: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        idcardNo: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        companyName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        phone: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        carNos: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        constructionReason: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+      }
+    }
+  },
+  created () {
+    this.initData()
+  },
+  methods: {
+    initData () {
+      getVisitedVisitReason({}).then(res => {
+        this.VisitReason = res || []
+      })
+    },
+    uploadAvatarSuccess (file) {
+      this.$set(this.param, 'faceImg', file.imgurl)
+      this.$set(this.param, 'faceImgUrl', file.imgurlfull)
+    },
+    // 鍚屾淇℃伅
+    confirm () {
+      this.$refs.paramRef.validate((valid) => {
+        if (!valid) {
+          return
+        }
+        // 璋冪敤鏂板缓鎺ュ彛
+        this.isWorking = true
+        createVisit({
+          ...this.param,
+          receptMemberId: this.userInfo.memberId,
+          receptMemberName: this.userInfo.realname
+        })
+          .then(() => {
+            this.visible = false
+            this.$tip.apiSuccess('鎻愪氦鎴愬姛')
+            this.$emit('success')
+            this.$emit('close')
+          })
+          .catch(e => {
+            this.$tip.apiFailed(e)
+          })
+          .finally(() => {
+            this.isWorking = false
+          })
+      })
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.title_tip{
+  font-size: 18px;
+  font-weight: 600;
+  margin-bottom: 10px;
+}
+</style>
diff --git a/admin/src/components/business/operaVisitsWindow.vue b/admin/src/components/business/operaVisitsWindow.vue
new file mode 100644
index 0000000..a772e6e
--- /dev/null
+++ b/admin/src/components/business/operaVisitsWindow.vue
@@ -0,0 +1,180 @@
+<template>
+  <GlobalWindow
+      title="鏂板璁垮棰勭害"
+      width="600px"
+      :visible.sync="isShowModal"
+      :confirm-working="isWorking"
+      @confirm="confirm"
+  >
+    <el-form :model="param" ref="paramRef" :rules="rules" >
+      <div class="title_tip">璁垮淇℃伅</div>
+      <el-form-item label="璁垮濮撳悕" prop="name">
+        <el-input v-model="param.name" placeholder="璇疯緭鍏ヨ瀹㈢殑濮撳悕"></el-input>
+      </el-form-item>
+      <el-form-item label="璁垮鎵嬫満鍙�" prop="phone">
+        <el-input v-model="param.phone" placeholder="璇疯緭鍏ヨ瀹㈢殑鎵嬫満鍙�"></el-input>
+      </el-form-item>
+      <el-form-item label="璇佷欢绫诲瀷" prop="idcardType">
+        <el-select v-model="param.idcardType" placeholder="璇烽�夋嫨">
+          <el-option label="韬唤璇�" :value="0" />
+          <el-option label="娓境璇佷欢" :value="1" />
+          <el-option label="鎶ょ収" :value="2" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="璇佷欢鍙风爜" prop="idcardNo">
+        <el-input maxlength="18" v-model="param.idcardNo" placeholder="璇疯緭鍏ヨ瀹㈢殑璇佷欢鍙风爜"></el-input>
+      </el-form-item>
+      <el-form-item label="鏉ヨ鍗曚綅" prop="companyName">
+        <el-input v-model="param.companyName" placeholder="璇疯緭鍏ユ潵璁跨殑鍗曚綅鍏ㄧО"></el-input>
+      </el-form-item>
+      <el-form-item label="浜鸿劯鐓х墖" prop="faceImgUrl">
+        <UploadFaceImg
+          :file="{ 'imgurlfull': param.faceImgUrl, 'imgurl': param.faceImg }"
+          :uploadData="uploadData"
+          @uploadSuccess="uploadAvatarSuccess"
+          @uploadEnd="isUploading = false"
+          @uploadBegin="isUploading = true"
+        />
+      </el-form-item>
+
+      <div class="title_tip" style="marginTop: 60px;">璁垮棰勭害</div>
+      <el-form-item label="琚浜�" prop="receptMemberId">
+        <el-select v-model="param.receptMemberId" placeholder="璇烽�夋嫨">
+          <el-option v-for="item in memberList" :key="item.id" :label="item.name + ' ' + item.companyName" :value="item.id" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鍏ュ洯鏃堕棿" prop="starttime">
+        <el-date-picker
+          v-model="param.starttime"
+          format="yyyy-MM-dd HH:mm"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetime"
+          default-time="08:00:00"
+        />
+      </el-form-item>
+      <el-form-item label="绂诲洯鏃堕棿" prop="endtime">
+        <el-date-picker
+          v-model="param.endtime"
+          format="yyyy-MM-dd HH:mm"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetime"
+          default-time="08:00:00"
+        />
+      </el-form-item>
+      <el-form-item label="鏉ヨ浜嬬敱" prop="reason">
+        <el-select v-model="param.reason" placeholder="璇烽�夋嫨">
+          <el-option v-for="item in VisitReason" :key="item.id" :label="item.title" :value="item.title" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鏄惁鏂藉伐浣滀笟" prop="type">
+        <el-switch
+          style="width: 200px"
+          v-model="param.type"
+          :active-value="1"
+          :inactive-value="0">
+        </el-switch>
+      </el-form-item>
+      <el-form-item v-if="param.type == 1" label="鏂藉伐鍐呭" prop="constructionReason">
+        <el-input v-model="param.constructionReason" placeholder="璇疯緭鍏ユ柦宸ュ唴瀹�"></el-input>
+      </el-form-item>
+      <el-form-item label="闅忚杞﹁締" prop="carNos">
+        <el-input v-model="param.carNos" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input>
+      </el-form-item>
+    </el-form>
+  </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadFaceImg from '@/components/common/UploadFaceImg'
+import { createFk, getVisitedVisitReason, getVisitedMember } from '@/api/business/visits'
+export default {
+  name: 'OperaVisitsHkWindow',
+  extends: BaseOpera,
+  components: {
+    GlobalWindow,
+    UploadFaceImg
+  },
+  data () {
+    return {
+      isShowModal: false,
+      param: {
+        type: 0,
+        idcardType: 0
+      },
+      
+      VisitReason: [],
+      memberList: [],
+      uploadData: {
+        folder: 'member'
+      },
+      rules: {
+        starttime: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }],
+        endtime: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }],
+        reason: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        type: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        idcardType: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        faceImgUrl: [{ required: true, message: '璇蜂笂浼�', trigger: 'change' }],
+
+        name: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        idcardNo: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        companyName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        phone: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        carNos: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+        constructionReason: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+      }
+    }
+  },
+  created () {
+    this.$set(this.param, 'receptMemberId', this.$store.state.userInfo.memberId)
+    this.initData()
+  },
+  methods: {
+    initData () {
+      getVisitedVisitReason({}).then(res => {
+        this.VisitReason = res || []
+      })
+      getVisitedMember({}).then(res => {
+        this.memberList = res || []
+      })
+    },
+    uploadAvatarSuccess (file) {
+      this.$set(this.param, 'faceImg', file.imgurl)
+      this.$set(this.param, 'faceImgUrl', file.imgurlfull)
+    },
+    // 鍚屾淇℃伅
+    confirm () {
+      this.$refs.paramRef.validate((valid) => {
+        if (!valid) {
+          return
+        }
+        // 璋冪敤鏂板缓鎺ュ彛
+        this.isWorking = true
+        createFk({
+          ...this.param
+        })
+          .then(() => {
+            this.visible = false
+            this.$tip.apiSuccess('鎻愪氦鎴愬姛')
+            this.$emit('success')
+            this.$emit('close')
+          })
+          .catch(e => {
+            this.$tip.apiFailed(e)
+          })
+          .finally(() => {
+            this.isWorking = false
+          })
+      })
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.title_tip{
+  font-size: 18px;
+  font-weight: 600;
+  margin-bottom: 10px;
+}
+</style>
diff --git a/admin/src/views/business/reportRecord.vue b/admin/src/views/business/reportRecord.vue
index 98ee6a0..fcb9c59 100644
--- a/admin/src/views/business/reportRecord.vue
+++ b/admin/src/views/business/reportRecord.vue
@@ -6,6 +6,10 @@
       @handleQuery="getList(1)"
       @clear="clear"
     />
+    <div style="margin: 16px 0 0" v-permissions="['business:visits:create', 'business:visits:exportExcel']">
+      <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" v-permissions="['business:visits:create']">鏂板缓</el-button>
+      <el-button type="primary" :loading="exLoading" @click="exportExcel" v-permissions="['business:visits:exportExcel']">瀵煎嚭</el-button>
+    </div>
     <el-table
       v-loading="loading"
       :data="dataList"
@@ -92,6 +96,7 @@
       :pagination="pagination"
     />
     <ReportDetail v-if="isShowReport" ref="VisReportDetailRef" />
+    <OperaVisitsReportWindow @close="isShowEdit = false" @success="getList"  v-if="isShowEdit" ref="operaVisitsWindowRef" />
   </div>
 </template>
 
@@ -100,18 +105,25 @@
 import QueryForm from '@/components/common/QueryForm'
 // import ReportDetail from './page-components/ReportDetail.vue'
 import ReportDetail from '@/views/task/visReportDetail.vue'
-import { fetchList } from '@/api/business/visits'
+import OperaVisitsReportWindow from '@/components/business/operaVisitsReportWindow.vue'
+import { fetchList, exportExcel } from '@/api/business/visits'
 export default {
   components: {
     ReportDetail,
     QueryForm,
-    Pagination
+    Pagination,
+    OperaVisitsReportWindow
   },
   data () {
     return {
+      isShowEdit: false,
+      exLoading: false,
+
       isShowReport: false,
       activeTab: '0',
-      filters: {},
+      filters: {
+        type: 2
+      },
       dataList: [],
       queryFormConfig: {
         formItems: [
@@ -144,6 +156,32 @@
     this.getList()
   },
   methods: {
+    exportExcel () {
+      this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+        .then(() => {
+          this.exLoading = true
+          exportExcel({
+            page: this.pagination.page,
+            capacity: 1000000,
+            model: this.filters
+          })
+            .then(response => {
+              this.download(response)
+            })
+            .catch(e => {
+              this.$tip.apiFailed(e)
+            })
+            .finally(() => {
+              this.exLoading = false
+            })
+        })
+    },
+    handleEdit () {
+      this.isShowEdit = true
+      this.$nextTick(() => {
+        this.$refs.operaVisitsWindowRef.isShowModal = true
+      })
+    },
     handleDetail (row) {
       this.isShowReport = true
       this.$nextTick(() => {
@@ -159,14 +197,16 @@
       const { pagination, filters } = this
       pagination.page = page || pagination.page
       fetchList({
-        model: { ...filters, type: 2 },
+        model: { ...filters },
         ...pagination
       }).then(res => {
         this.dataList = res.records || []
       })
     },
     clear () {
-      this.filters = {}
+      this.filters = {
+        type: 2
+      }
       this.getList(0)
     },
     handleSizeChange (capacity) {
diff --git a/admin/src/views/business/visits.vue b/admin/src/views/business/visits.vue
index 3a1dabd..25ebbb8 100644
--- a/admin/src/views/business/visits.vue
+++ b/admin/src/views/business/visits.vue
@@ -33,10 +33,10 @@
         </el-form>
         <!-- 琛ㄦ牸鍜屽垎椤� -->
         <template v-slot:table-wrap>
-<!--            <ul class="toolbar" v-permissions="['business:visits:create', 'business:visits:delete']">-->
-<!--                <li><el-button type="primary" @click="$refs.operaVisitsWindow.open('鏂板缓璁垮鐢宠淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:visits:create']">鏂板缓</el-button></li>-->
-<!--                <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:visits:delete']">鍒犻櫎</el-button></li>-->
-<!--            </ul>-->
+           <ul class="toolbar" v-permissions="['business:visits:create', 'business:visits:exportExcel']">
+               <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus" v-permissions="['business:visits:create']">鏂板缓</el-button></li>
+               <li><el-button type="primary" :loading="isWorking.export" @click="exportExcel" v-permissions="['business:visits:exportExcel']">瀵煎嚭</el-button></li>
+           </ul>
             <el-table
                 v-loading="isWorking.search"
                 :data="tableData.list"
@@ -110,6 +110,8 @@
             </pagination>
             <!--      璇︽儏      -->
             <OperaVisitsDesWindow ref="OperaVisitsDesWindow" />
+            <!-- 鏂板缓 -->
+            <OperaVisitsWindow @close="isShowEdit = false" @success="search"  v-if="isShowEdit" ref="operaVisitsWindowRef" />
         </template>
     </TableLayout>
 </template>
@@ -119,13 +121,15 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
+import OperaVisitsWindow from '@/components/business/operaVisitsWindow'
 
 export default {
   name: 'Visits',
   extends: BaseTable,
-  components: { TableLayout, Pagination, OperaVisitsDesWindow },
+  components: { TableLayout, Pagination, OperaVisitsDesWindow, OperaVisitsWindow },
   data () {
     return {
+      isShowEdit: false,
       // 鎼滅储
       searchForm: {
         name: '',
@@ -145,36 +149,42 @@
     this.search()
   },
   methods: {
-    departure(id) {
+    handleEdit () {
+      this.isShowEdit = true
+      this.$nextTick(() => {
+        this.$refs.operaVisitsWindowRef.isShowModal = true
+      })
+    },
+    departure (id) {
       this.$confirm('纭畾绂诲満鍚�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
         level(id)
-            .then(res => {
-              this.page = 1
-              this.getData()
-            })
+          .then(res => {
+            this.page = 1
+            this.getData()
+          })
       }).catch(() => {
 
-      });
+      })
     },
-    cancel(id) {
+    cancel (id) {
       this.$confirm('纭畾鍙栨秷棰勭害鍚�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
         visitCancel(id)
-            .then(res => {
-              this.page = 1
-              this.getData()
-            })
+          .then(res => {
+            this.page = 1
+            this.getData()
+          })
       }).catch(() => {
 
-      });
-    },
+      })
+    }
   }
 }
 </script>
diff --git a/h5/manifest.json b/h5/manifest.json
index f9d991e..89b9a59 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -89,12 +89,12 @@
             "historyApiFallback" : true,
             "disableHostCheck" : true,
             "proxy" : {
-                "/api" : {
+                "/admin_interface" : {
                     // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
                     "target" : "http://192.168.0.173/admin_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     "changeOrigin" : true, // 鍏佽璺ㄥ煙 
                     "pathRewrite" : {
-                        "^/api" : "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
+                        "^/admin_interface" : "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
                     }
                 }
             },

--
Gitblit v1.9.3