| | |
| | | } |
| | | }) |
| | | } |
| | | // æ¥è¯¢è¢«è®¿äººå表 |
| | | 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) |
| | | } |
| | |
| | | |
| | | export * from './business/index' |
| | | export * from './platform' |
| | | export * from './other/other' |
| | |
| | | trim: true |
| | | }) |
| | | } |
| | | // æ¥è¯¢åå
¸å¼æ°æ® |
| | | export const getSystemDictData = (params) => { |
| | | return request.get('/visitsAdmin/cloudService/web/other/getSystemDictData', { |
| | | params: { ...params } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | @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" |
| | |
| | | :pagination="pagination" |
| | | /> |
| | | <ReportDetail v-if="isShowReport" ref="VisReportDetailRef" /> |
| | | <OperaVisitsReportWindow @close="isShowEdit = false" @success="getList" v-if="isShowEdit" ref="operaVisitsWindowRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | 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: [ |
| | |
| | | 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(() => { |
| | |
| | | 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) { |
| | |
| | | </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" |
| | |
| | | </pagination> |
| | | <!-- 详æ
--> |
| | | <OperaVisitsDesWindow ref="OperaVisitsDesWindow" /> |
| | | <!-- æ°å»º --> |
| | | <OperaVisitsWindow @close="isShowEdit = false" @success="search" v-if="isShowEdit" ref="operaVisitsWindowRef" /> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | |
| | | 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: '', |
| | |
| | | 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> |
| | |
| | | "historyApiFallback" : true, |
| | | "disableHostCheck" : true, |
| | | "proxy" : { |
| | | "/api" : { |
| | | "/admin_interface" : { |
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å |
| | | "target" : "http://192.168.0.173/admin_interface", // 代çæå¡å¨ååæIPå°å |
| | | "changeOrigin" : true, // å
许跨å |
| | | "pathRewrite" : { |
| | | "^/api" : "" // éåå°åï¼å¦æå®é
æ¥å£ä¸æ¯ä¸å¸¦/dev-apiï¼éè¦å°è¿ä¸ªåç¼ç½®ç©ºï¼å 为è¿ä¸ªåç¼åªæ¯ä¸ºäºè¯å«ç¨ï¼è¯å«å®ä¹å就没ç¨äº |
| | | "^/admin_interface" : "" // éåå°åï¼å¦æå®é
æ¥å£ä¸æ¯ä¸å¸¦/dev-apiï¼éè¦å°è¿ä¸ªåç¼ç½®ç©ºï¼å 为è¿ä¸ªåç¼åªæ¯ä¸ºäºè¯å«ç¨ï¼è¯å«å®ä¹å就没ç¨äº |
| | | } |
| | | } |
| | | }, |